From d66783b2b83d6a4cdea38e8f00137e6fa95b6560 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 9 Jun 2025 13:53:01 +0100 Subject: [PATCH] . --- atlas/templates/atlas/case_display_block.html | 25 +++ .../atlas/series_finding_details.html | 4 + .../{index-DwrZLsZY.js => index-Drikhvya.js} | 190 +++++++++--------- templates/base.html | 2 +- 4 files changed, 125 insertions(+), 96 deletions(-) rename rad/static/dv3d/{index-DwrZLsZY.js => index-Drikhvya.js} (75%) diff --git a/atlas/templates/atlas/case_display_block.html b/atlas/templates/atlas/case_display_block.html index 1f92c72c..3dee8871 100755 --- a/atlas/templates/atlas/case_display_block.html +++ b/atlas/templates/atlas/case_display_block.html @@ -419,15 +419,40 @@ annotationjson = JSON.parse(viewer_element.dataset.annotationjson); viewport = JSON.parse(viewer_element.dataset.viewportjson); current_image_id_index = viewer_element.dataset.currentimageid; + console.log(viewer_element.dataset.annotationjson3d) + console.log(viewer_element.dataset.viewerstate3d) + load_3d = false; + viewer_element_3d = document.getElementById('root'); + if (viewer_element_3d.dataset.viewerstate3d != undefined) { + load_3d = true; + viewerState = JSON.parse(viewer_element_3d.dataset.viewerstate3d || {}); + annotationjson3d = JSON.parse(viewer_element_3d.dataset.annotationjson3d || {}); + } else { + viewer_element_3d = null; + } dicom_element = $(".cornerstone-element").get(0); // We have a slight delay to allow the viewer to load setTimeout(function () { // Then we load the annotation and viewport loadAnnotationAndViewportOnElement(annotationjson, viewport, dicom_element, current_image_id_index); + window.mountDicomViewers(); + if (load_3d) { + console.log("loading 3d") + + //setTimeout(function () { + // console.log("loading 3d annotation") + // importAnnotations_root(annotationjson3d) + // importViewerState_root(viewerState); + //}, 1000); + } else { + console.log("not loading 3d") + } }, 200); document.getElementById("reload-finding").addEventListener("click", function () { loadAnnotationAndViewportOnElement(annotationjson, viewport, dicom_element, current_image_id_index); + importAnnotations_root(annotationjson3d) + importViewerState_root(viewerState); }); // Initialize the DICOM viewer with the images and annotations diff --git a/atlas/templates/atlas/series_finding_details.html b/atlas/templates/atlas/series_finding_details.html index 7ac1fe91..6a10b3cb 100644 --- a/atlas/templates/atlas/series_finding_details.html +++ b/atlas/templates/atlas/series_finding_details.html @@ -23,5 +23,9 @@
+
{% endwith %} diff --git a/rad/static/dv3d/index-DwrZLsZY.js b/rad/static/dv3d/index-Drikhvya.js similarity index 75% rename from rad/static/dv3d/index-DwrZLsZY.js rename to rad/static/dv3d/index-Drikhvya.js index a1e7158f..e0517fdc 100644 --- a/rad/static/dv3d/index-DwrZLsZY.js +++ b/rad/static/dv3d/index-Drikhvya.js @@ -1,4 +1,4 @@ -var qV=Object.defineProperty;var XV=(t,e,r)=>e in t?qV(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var QS=(t,e,r)=>XV(t,typeof e!="symbol"?e+"":e,r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();var br=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function rh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function YV(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var i6={exports:{}},bm={},o6={exports:{}},Lt={};/** +var eF=Object.defineProperty;var tF=(t,e,r)=>e in t?eF(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var n4=(t,e,r)=>tF(t,typeof e!="symbol"?e+"":e,r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const a of o.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=r(i);fetch(i.href,o)}})();var Dr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function oh(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function nF(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var l6={exports:{}},Om={},u6={exports:{}},Lt={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var qV=Object.defineProperty;var XV=(t,e,r)=>e in t?qV(t,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ih=Symbol.for("react.element"),JV=Symbol.for("react.portal"),ZV=Symbol.for("react.fragment"),QV=Symbol.for("react.strict_mode"),eF=Symbol.for("react.profiler"),tF=Symbol.for("react.provider"),nF=Symbol.for("react.context"),rF=Symbol.for("react.forward_ref"),iF=Symbol.for("react.suspense"),oF=Symbol.for("react.memo"),aF=Symbol.for("react.lazy"),e4=Symbol.iterator;function sF(t){return t===null||typeof t!="object"?null:(t=e4&&t[e4]||t["@@iterator"],typeof t=="function"?t:null)}var a6={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},s6=Object.assign,c6={};function u0(t,e,r){this.props=t,this.context=e,this.refs=c6,this.updater=r||a6}u0.prototype.isReactComponent={};u0.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")};u0.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function l6(){}l6.prototype=u0.prototype;function q3(t,e,r){this.props=t,this.context=e,this.refs=c6,this.updater=r||a6}var X3=q3.prototype=new l6;X3.constructor=q3;s6(X3,u0.prototype);X3.isPureReactComponent=!0;var t4=Array.isArray,u6=Object.prototype.hasOwnProperty,Y3={current:null},f6={key:!0,ref:!0,__self:!0,__source:!0};function d6(t,e,r){var n,i={},o=null,a=null;if(e!=null)for(n in e.ref!==void 0&&(a=e.ref),e.key!==void 0&&(o=""+e.key),e)u6.call(e,n)&&!f6.hasOwnProperty(n)&&(i[n]=e[n]);var s=arguments.length-2;if(s===1)i.children=r;else if(1e in t?qV(t,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var dF=Qe,hF=Symbol.for("react.element"),gF=Symbol.for("react.fragment"),pF=Object.prototype.hasOwnProperty,mF=dF.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,vF={key:!0,ref:!0,__self:!0,__source:!0};function g6(t,e,r){var n,i={},o=null,a=null;r!==void 0&&(o=""+r),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(a=e.ref);for(n in e)pF.call(e,n)&&!vF.hasOwnProperty(n)&&(i[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:hF,type:t,key:o,ref:a,props:i,_owner:mF.current}}bm.Fragment=gF;bm.jsx=g6;bm.jsxs=g6;i6.exports=bm;var be=i6.exports,p6={exports:{}},Wi={},m6={exports:{}},v6={};/** + */var yF=Ze,xF=Symbol.for("react.element"),wF=Symbol.for("react.fragment"),CF=Object.prototype.hasOwnProperty,SF=yF.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,TF={key:!0,ref:!0,__self:!0,__source:!0};function x6(t,e,r){var n,i={},o=null,a=null;r!==void 0&&(o=""+r),e.key!==void 0&&(o=""+e.key),e.ref!==void 0&&(a=e.ref);for(n in e)CF.call(e,n)&&!TF.hasOwnProperty(n)&&(i[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)i[n]===void 0&&(i[n]=e[n]);return{$$typeof:xF,type:t,key:o,ref:a,props:i,_owner:SF.current}}Om.Fragment=wF;Om.jsx=x6;Om.jsxs=x6;l6.exports=Om;var be=l6.exports,w6={exports:{}},Wi={},C6={exports:{}},S6={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var qV=Object.defineProperty;var XV=(t,e,r)=>e in t?qV(t,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(t){function e(P,N){var V=P.length;P.push(N);e:for(;0>>1,j=P[$];if(0>>1;$i(Q,V))rei(de,Q)?(P[$]=de,P[re]=V,$=re):(P[$]=Q,P[te]=V,$=te);else if(rei(de,V))P[$]=de,P[re]=V,$=re;else break e}}return N}function i(P,N){var V=P.sortIndex-N.sortIndex;return V!==0?V:P.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;t.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();t.unstable_now=function(){return a.now()-s}}var c=[],l=[],f=1,u=null,d=3,h=!1,g=!1,p=!1,v=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(P){for(var N=r(l);N!==null;){if(N.callback===null)n(l);else if(N.startTime<=P)n(l),N.sortIndex=N.expirationTime,e(c,N);else break;N=r(l)}}function w(P){if(p=!1,y(P),!g)if(r(c)!==null)g=!0,A(C);else{var N=r(l);N!==null&&G(w,N.startTime-P)}}function C(P,N){g=!1,p&&(p=!1,x(_),_=-1),h=!0;var V=d;try{for(y(N),u=r(c);u!==null&&(!(u.expirationTime>N)||P&&!b());){var $=u.callback;if(typeof $=="function"){u.callback=null,d=u.priorityLevel;var j=$(u.expirationTime<=N);N=t.unstable_now(),typeof j=="function"?u.callback=j:u===r(c)&&n(c),y(N)}else n(c);u=r(c)}if(u!==null)var Y=!0;else{var te=r(l);te!==null&&G(w,te.startTime-N),Y=!1}return Y}finally{u=null,d=V,h=!1}}var S=!1,T=null,_=-1,E=5,D=-1;function b(){return!(t.unstable_now()-DP||125$?(P.sortIndex=V,e(l,P),r(c)===null&&P===r(l)&&(p?(x(_),_=-1):p=!0,G(w,V-$))):(P.sortIndex=j,e(c,P),g||h||(g=!0,A(C))),P},t.unstable_shouldYield=b,t.unstable_wrapCallback=function(P){var N=d;return function(){var V=d;d=N;try{return P.apply(this,arguments)}finally{d=V}}}})(v6);m6.exports=v6;var yF=m6.exports;/** + */(function(t){function e(P,N){var V=P.length;P.push(N);e:for(;0>>1,H=P[$];if(0>>1;$i(Q,V))eei(de,Q)?(P[$]=de,P[ee]=V,$=ee):(P[$]=Q,P[ne]=V,$=ne);else if(eei(de,V))P[$]=de,P[ee]=V,$=ee;else break e}}return N}function i(P,N){var V=P.sortIndex-N.sortIndex;return V!==0?V:P.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;t.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();t.unstable_now=function(){return a.now()-s}}var c=[],l=[],f=1,u=null,d=3,h=!1,g=!1,p=!1,v=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(P){for(var N=r(l);N!==null;){if(N.callback===null)n(l);else if(N.startTime<=P)n(l),N.sortIndex=N.expirationTime,e(c,N);else break;N=r(l)}}function w(P){if(p=!1,y(P),!g)if(r(c)!==null)g=!0,A(C);else{var N=r(l);N!==null&&G(w,N.startTime-P)}}function C(P,N){g=!1,p&&(p=!1,x(_),_=-1),h=!0;var V=d;try{for(y(N),u=r(c);u!==null&&(!(u.expirationTime>N)||P&&!b());){var $=u.callback;if(typeof $=="function"){u.callback=null,d=u.priorityLevel;var H=$(u.expirationTime<=N);N=t.unstable_now(),typeof H=="function"?u.callback=H:u===r(c)&&n(c),y(N)}else n(c);u=r(c)}if(u!==null)var Y=!0;else{var ne=r(l);ne!==null&&G(w,ne.startTime-N),Y=!1}return Y}finally{u=null,d=V,h=!1}}var S=!1,T=null,_=-1,E=5,D=-1;function b(){return!(t.unstable_now()-DP||125$?(P.sortIndex=V,e(l,P),r(c)===null&&P===r(l)&&(p?(x(_),_=-1):p=!0,G(w,V-$))):(P.sortIndex=H,e(c,P),g||h||(g=!0,A(C))),P},t.unstable_shouldYield=b,t.unstable_wrapCallback=function(P){var N=d;return function(){var V=d;d=N;try{return P.apply(this,arguments)}finally{d=V}}}})(S6);C6.exports=S6;var _F=C6.exports;/** * @license React * react-dom.production.min.js * @@ -30,24 +30,24 @@ var qV=Object.defineProperty;var XV=(t,e,r)=>e in t?qV(t,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var xF=Qe,Ui=yF;function Ne(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ly=Object.prototype.hasOwnProperty,wF=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,r4={},i4={};function CF(t){return Ly.call(i4,t)?!0:Ly.call(r4,t)?!1:wF.test(t)?i4[t]=!0:(r4[t]=!0,!1)}function SF(t,e,r,n){if(r!==null&&r.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function TF(t,e,r,n){if(e===null||typeof e>"u"||SF(t,e,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function hi(t,e,r,n,i,o,a){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=t,this.type=e,this.sanitizeURL=o,this.removeEmptyString=a}var Ur={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Ur[t]=new hi(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Ur[e]=new hi(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Ur[t]=new hi(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Ur[t]=new hi(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Ur[t]=new hi(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Ur[t]=new hi(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Ur[t]=new hi(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Ur[t]=new hi(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Ur[t]=new hi(t,5,!1,t.toLowerCase(),null,!1,!1)});var Z3=/[\-:]([a-z])/g;function Q3(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(Z3,Q3);Ur[e]=new hi(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(Z3,Q3);Ur[e]=new hi(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(Z3,Q3);Ur[e]=new hi(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Ur[t]=new hi(t,1,!1,t.toLowerCase(),null,!1,!1)});Ur.xlinkHref=new hi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Ur[t]=new hi(t,1,!1,t.toLowerCase(),null,!0,!0)});function ex(t,e,r,n){var i=Ur.hasOwnProperty(e)?Ur[e]:null;(i!==null?i.type!==0:n||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Py=Object.prototype.hasOwnProperty,DF=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,a4={},s4={};function bF(t){return Py.call(s4,t)?!0:Py.call(a4,t)?!1:DF.test(t)?s4[t]=!0:(a4[t]=!0,!1)}function IF(t,e,r,n){if(r!==null&&r.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function OF(t,e,r,n){if(e===null||typeof e>"u"||IF(t,e,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function hi(t,e,r,n,i,o,a){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=t,this.type=e,this.sanitizeURL=o,this.removeEmptyString=a}var Fr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Fr[t]=new hi(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Fr[e]=new hi(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Fr[t]=new hi(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Fr[t]=new hi(t,2,!1,t,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(t){Fr[t]=new hi(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Fr[t]=new hi(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Fr[t]=new hi(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Fr[t]=new hi(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Fr[t]=new hi(t,5,!1,t.toLowerCase(),null,!1,!1)});var tx=/[\-:]([a-z])/g;function nx(t){return t[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(t){var e=t.replace(tx,nx);Fr[e]=new hi(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(tx,nx);Fr[e]=new hi(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(tx,nx);Fr[e]=new hi(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Fr[t]=new hi(t,1,!1,t.toLowerCase(),null,!1,!1)});Fr.xlinkHref=new hi("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Fr[t]=new hi(t,1,!1,t.toLowerCase(),null,!0,!0)});function rx(t,e,r,n){var i=Fr.hasOwnProperty(e)?Fr[e]:null;(i!==null?i.type!==0:n||!(2s||i[a]!==o[s]){var c=` -`+i[a].replace(" at new "," at ");return t.displayName&&c.includes("")&&(c=c.replace("",t.displayName)),c}while(1<=a&&0<=s);break}}}finally{H2=!1,Error.prepareStackTrace=r}return(t=t?t.displayName||t.name:"")?gf(t):""}function _F(t){switch(t.tag){case 5:return gf(t.type);case 16:return gf("Lazy");case 13:return gf("Suspense");case 19:return gf("SuspenseList");case 0:case 2:case 15:return t=K2(t.type,!1),t;case 11:return t=K2(t.type.render,!1),t;case 1:return t=K2(t.type,!0),t;default:return""}}function ky(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Hl:return"Fragment";case jl:return"Portal";case Ny:return"Profiler";case tx:return"StrictMode";case Py:return"Suspense";case Ay:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case w6:return(t.displayName||"Context")+".Consumer";case x6:return(t._context.displayName||"Context")+".Provider";case nx:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case rx:return e=t.displayName||null,e!==null?e:ky(t.type)||"Memo";case ms:e=t._payload,t=t._init;try{return ky(t(e))}catch{}}return null}function EF(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ky(e);case 8:return e===tx?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function $s(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function S6(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function DF(t){var e=S6(t)?"checked":"value",r=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),n=""+t[e];if(!t.hasOwnProperty(e)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,o=r.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(a){n=""+a,o.call(this,a)}}),Object.defineProperty(t,e,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Gh(t){t._valueTracker||(t._valueTracker=DF(t))}function T6(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var r=e.getValue(),n="";return t&&(n=S6(t)?t.checked?"true":"false":t.value),t=n,t!==r?(e.setValue(t),!0):!1}function Hp(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Vy(t,e){var r=e.checked;return jn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??t._wrapperState.initialChecked})}function a4(t,e){var r=e.defaultValue==null?"":e.defaultValue,n=e.checked!=null?e.checked:e.defaultChecked;r=$s(e.value!=null?e.value:r),t._wrapperState={initialChecked:n,initialValue:r,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function _6(t,e){e=e.checked,e!=null&&ex(t,"checked",e,!1)}function Fy(t,e){_6(t,e);var r=$s(e.value),n=e.type;if(r!=null)n==="number"?(r===0&&t.value===""||t.value!=r)&&(t.value=""+r):t.value!==""+r&&(t.value=""+r);else if(n==="submit"||n==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Uy(t,e.type,r):e.hasOwnProperty("defaultValue")&&Uy(t,e.type,$s(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function s4(t,e,r){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var n=e.type;if(!(n!=="submit"&&n!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,r||e===t.value||(t.value=e),t.defaultValue=e}r=t.name,r!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,r!==""&&(t.name=r)}function Uy(t,e,r){(e!=="number"||Hp(t.ownerDocument)!==t)&&(r==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+r&&(t.defaultValue=""+r))}var pf=Array.isArray;function hu(t,e,r,n){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=Wh.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function cd(t,e){if(e){var r=t.firstChild;if(r&&r===t.lastChild&&r.nodeType===3){r.nodeValue=e;return}}t.textContent=e}var Lf={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bF=["Webkit","ms","Moz","O"];Object.keys(Lf).forEach(function(t){bF.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Lf[e]=Lf[t]})});function I6(t,e,r){return e==null||typeof e=="boolean"||e===""?"":r||typeof e!="number"||e===0||Lf.hasOwnProperty(t)&&Lf[t]?(""+e).trim():e+"px"}function O6(t,e){t=t.style;for(var r in e)if(e.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=I6(r,e[r],n);r==="float"&&(r="cssFloat"),n?t.setProperty(r,i):t[r]=i}}var IF=jn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Wy(t,e){if(e){if(IF[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Ne(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Ne(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Ne(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Ne(62))}}function zy(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $y=null;function ix(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var jy=null,gu=null,pu=null;function u4(t){if(t=sh(t)){if(typeof jy!="function")throw Error(Ne(280));var e=t.stateNode;e&&(e=Lm(e),jy(t.stateNode,t.type,e))}}function M6(t){gu?pu?pu.push(t):pu=[t]:gu=t}function R6(){if(gu){var t=gu,e=pu;if(pu=gu=null,u4(t),e)for(t=0;t>>=0,t===0?32:31-(UF(t)/BF|0)|0}var zh=64,$h=4194304;function mf(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Yp(t,e){var r=t.pendingLanes;if(r===0)return 0;var n=0,i=t.suspendedLanes,o=t.pingedLanes,a=r&268435455;if(a!==0){var s=a&~i;s!==0?n=mf(s):(o&=a,o!==0&&(n=mf(o)))}else a=r&~i,a!==0?n=mf(a):o!==0&&(n=mf(o));if(n===0)return 0;if(e!==0&&e!==n&&!(e&i)&&(i=n&-n,o=e&-e,i>=o||i===16&&(o&4194240)!==0))return e;if(n&4&&(n|=r&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=n;0r;r++)e.push(t);return e}function oh(t,e,r){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-Do(e),t[e]=r}function $F(t,e){var r=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var n=t.eventTimes;for(t=t.expirationTimes;0=Pf),x4=" ",w4=!1;function J6(t,e){switch(t){case"keyup":return yU.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Z6(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Kl=!1;function wU(t,e){switch(t){case"compositionend":return Z6(e);case"keypress":return e.which!==32?null:(w4=!0,x4);case"textInput":return t=e.data,t===x4&&w4?null:t;default:return null}}function CU(t,e){if(Kl)return t==="compositionend"||!dx&&J6(t,e)?(t=X6(),sp=lx=_s=null,Kl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:r,offset:e-t};t=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=_4(r)}}function n9(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?n9(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function r9(){for(var t=window,e=Hp();e instanceof t.HTMLIFrameElement;){try{var r=typeof e.contentWindow.location.href=="string"}catch{r=!1}if(r)t=e.contentWindow;else break;e=Hp(t.document)}return e}function hx(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function MU(t){var e=r9(),r=t.focusedElem,n=t.selectionRange;if(e!==r&&r&&r.ownerDocument&&n9(r.ownerDocument.documentElement,r)){if(n!==null&&hx(r)){if(e=n.start,t=n.end,t===void 0&&(t=e),"selectionStart"in r)r.selectionStart=e,r.selectionEnd=Math.min(t,r.value.length);else if(t=(e=r.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=r.textContent.length,o=Math.min(n.start,i);n=n.end===void 0?o:Math.min(n.end,i),!t.extend&&o>n&&(i=n,n=o,o=i),i=E4(r,o);var a=E4(r,n);i&&a&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==a.node||t.focusOffset!==a.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),o>n?(t.addRange(e),t.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),t.addRange(e)))}}for(e=[],t=r;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,ql=null,Jy=null,kf=null,Zy=!1;function D4(t,e,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Zy||ql==null||ql!==Hp(n)||(n=ql,"selectionStart"in n&&hx(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),kf&&gd(kf,n)||(kf=n,n=Qp(Jy,"onSelect"),0Jl||(t.current=i5[Jl],i5[Jl]=null,Jl--)}function vn(t,e){Jl++,i5[Jl]=t.current,t.current=e}var js={},Jr=oc(js),wi=oc(!1),el=js;function Au(t,e){var r=t.type.contextTypes;if(!r)return js;var n=t.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===e)return n.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in r)i[o]=e[o];return n&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function Ci(t){return t=t.childContextTypes,t!=null}function t1(){bn(wi),bn(Jr)}function N4(t,e,r){if(Jr.current!==js)throw Error(Ne(168));vn(Jr,e),vn(wi,r)}function d9(t,e,r){var n=t.stateNode;if(e=e.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in e))throw Error(Ne(108,EF(t)||"Unknown",i));return jn({},r,n)}function n1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||js,el=Jr.current,vn(Jr,t),vn(wi,wi.current),!0}function P4(t,e,r){var n=t.stateNode;if(!n)throw Error(Ne(169));r?(t=d9(t,e,el),n.__reactInternalMemoizedMergedChildContext=t,bn(wi),bn(Jr),vn(Jr,t)):bn(wi),vn(wi,r)}var Ta=null,Nm=!1,sv=!1;function h9(t){Ta===null?Ta=[t]:Ta.push(t)}function WU(t){Nm=!0,h9(t)}function ac(){if(!sv&&Ta!==null){sv=!0;var t=0,e=on;try{var r=Ta;for(on=1;t>=a,i-=a,Oa=1<<32-Do(e)+i|r<_?(E=T,T=null):E=T.sibling;var D=d(x,T,y[_],w);if(D===null){T===null&&(T=E);break}t&&T&&D.alternate===null&&e(x,T),m=o(D,m,_),S===null?C=D:S.sibling=D,S=D,T=E}if(_===y.length)return r(x,T),Nn&&Tc(x,_),C;if(T===null){for(;__?(E=T,T=null):E=T.sibling;var b=d(x,T,D.value,w);if(b===null){T===null&&(T=E);break}t&&T&&b.alternate===null&&e(x,T),m=o(b,m,_),S===null?C=b:S.sibling=b,S=b,T=E}if(D.done)return r(x,T),Nn&&Tc(x,_),C;if(T===null){for(;!D.done;_++,D=y.next())D=u(x,D.value,w),D!==null&&(m=o(D,m,_),S===null?C=D:S.sibling=D,S=D);return Nn&&Tc(x,_),C}for(T=n(x,T);!D.done;_++,D=y.next())D=h(T,x,_,D.value,w),D!==null&&(t&&D.alternate!==null&&T.delete(D.key===null?_:D.key),m=o(D,m,_),S===null?C=D:S.sibling=D,S=D);return t&&T.forEach(function(I){return e(x,I)}),Nn&&Tc(x,_),C}function v(x,m,y,w){if(typeof y=="object"&&y!==null&&y.type===Hl&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Bh:e:{for(var C=y.key,S=m;S!==null;){if(S.key===C){if(C=y.type,C===Hl){if(S.tag===7){r(x,S.sibling),m=i(S,y.props.children),m.return=x,x=m;break e}}else if(S.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===ms&&V4(C)===S.type){r(x,S.sibling),m=i(S,y.props),m.ref=j0(x,S,y),m.return=x,x=m;break e}r(x,S);break}else e(x,S);S=S.sibling}y.type===Hl?(m=$c(y.props.children,x.mode,w,y.key),m.return=x,x=m):(w=pp(y.type,y.key,y.props,null,x.mode,w),w.ref=j0(x,m,y),w.return=x,x=w)}return a(x);case jl:e:{for(S=y.key;m!==null;){if(m.key===S)if(m.tag===4&&m.stateNode.containerInfo===y.containerInfo&&m.stateNode.implementation===y.implementation){r(x,m.sibling),m=i(m,y.children||[]),m.return=x,x=m;break e}else{r(x,m);break}else e(x,m);m=m.sibling}m=pv(y,x.mode,w),m.return=x,x=m}return a(x);case ms:return S=y._init,v(x,m,S(y._payload),w)}if(pf(y))return g(x,m,y,w);if(B0(y))return p(x,m,y,w);Jh(x,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,m!==null&&m.tag===6?(r(x,m.sibling),m=i(m,y),m.return=x,x=m):(r(x,m),m=gv(y,x.mode,w),m.return=x,x=m),a(x)):r(x,m)}return v}var Vu=v9(!0),y9=v9(!1),o1=oc(null),a1=null,eu=null,vx=null;function yx(){vx=eu=a1=null}function xx(t){var e=o1.current;bn(o1),t._currentValue=e}function s5(t,e,r){for(;t!==null;){var n=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,n!==null&&(n.childLanes|=e)):n!==null&&(n.childLanes&e)!==e&&(n.childLanes|=e),t===r)break;t=t.return}}function vu(t,e){a1=t,vx=eu=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(yi=!0),t.firstContext=null)}function ro(t){var e=t._currentValue;if(vx!==t)if(t={context:t,memoizedValue:e,next:null},eu===null){if(a1===null)throw Error(Ne(308));eu=t,a1.dependencies={lanes:0,firstContext:t}}else eu=eu.next=t;return e}var kc=null;function wx(t){kc===null?kc=[t]:kc.push(t)}function x9(t,e,r,n){var i=e.interleaved;return i===null?(r.next=r,wx(e)):(r.next=i.next,i.next=r),e.interleaved=r,za(t,n)}function za(t,e){t.lanes|=e;var r=t.alternate;for(r!==null&&(r.lanes|=e),r=t,t=t.return;t!==null;)t.childLanes|=e,r=t.alternate,r!==null&&(r.childLanes|=e),r=t,t=t.return;return r.tag===3?r.stateNode:null}var vs=!1;function Cx(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function w9(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function Aa(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function ks(t,e,r){var n=t.updateQueue;if(n===null)return null;if(n=n.shared,Kt&2){var i=n.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),n.pending=e,za(t,r)}return i=n.interleaved,i===null?(e.next=e,wx(n)):(e.next=i.next,i.next=e),n.interleaved=e,za(t,r)}function lp(t,e,r){if(e=e.updateQueue,e!==null&&(e=e.shared,(r&4194240)!==0)){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,ax(t,r)}}function F4(t,e){var r=t.updateQueue,n=t.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,o=null;if(r=r.firstBaseUpdate,r!==null){do{var a={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};o===null?i=o=a:o=o.next=a,r=r.next}while(r!==null);o===null?i=o=e:o=o.next=e}else i=o=e;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:n.shared,effects:n.effects},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=e:t.next=e,r.lastBaseUpdate=e}function s1(t,e,r,n){var i=t.updateQueue;vs=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,a===null?o=l:a.next=l,a=c;var f=t.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==a&&(s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=c))}if(o!==null){var u=i.baseState;a=0,f=l=c=null,s=o;do{var d=s.lane,h=s.eventTime;if((n&d)===d){f!==null&&(f=f.next={eventTime:h,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=t,p=s;switch(d=e,h=r,p.tag){case 1:if(g=p.payload,typeof g=="function"){u=g.call(h,u,d);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=p.payload,d=typeof g=="function"?g.call(h,u,d):g,d==null)break e;u=jn({},u,d);break e;case 2:vs=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,d=i.effects,d===null?i.effects=[s]:d.push(s))}else h={eventTime:h,lane:d,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(l=f=h,c=u):f=f.next=h,a|=d;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;d=s,s=d.next,d.next=null,i.lastBaseUpdate=d,i.shared.pending=null}}while(!0);if(f===null&&(c=u),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=f,e=i.shared.interleaved,e!==null){i=e;do a|=i.lane,i=i.next;while(i!==e)}else o===null&&(i.shared.lanes=0);rl|=a,t.lanes=a,t.memoizedState=u}}function U4(t,e,r){if(t=e.effects,e.effects=null,t!==null)for(e=0;er?r:4,t(!0);var n=lv.transition;lv.transition={};try{t(!1),e()}finally{on=r,lv.transition=n}}function V9(){return io().memoizedState}function HU(t,e,r){var n=Fs(t);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},F9(t))U9(e,r);else if(r=x9(t,e,r,n),r!==null){var i=li();bo(r,t,n,i),B9(r,e,n)}}function KU(t,e,r){var n=Fs(t),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(F9(t))U9(e,i);else{var o=t.alternate;if(t.lanes===0&&(o===null||o.lanes===0)&&(o=e.lastRenderedReducer,o!==null))try{var a=e.lastRenderedState,s=o(a,r);if(i.hasEagerState=!0,i.eagerState=s,Mo(s,a)){var c=e.interleaved;c===null?(i.next=i,wx(e)):(i.next=c.next,c.next=i),e.interleaved=i;return}}catch{}finally{}r=x9(t,e,i,n),r!==null&&(i=li(),bo(r,t,n,i),B9(r,e,n))}}function F9(t){var e=t.alternate;return t===zn||e!==null&&e===zn}function U9(t,e){Vf=l1=!0;var r=t.pending;r===null?e.next=e:(e.next=r.next,r.next=e),t.pending=e}function B9(t,e,r){if(r&4194240){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,ax(t,r)}}var u1={readContext:ro,useCallback:zr,useContext:zr,useEffect:zr,useImperativeHandle:zr,useInsertionEffect:zr,useLayoutEffect:zr,useMemo:zr,useReducer:zr,useRef:zr,useState:zr,useDebugValue:zr,useDeferredValue:zr,useTransition:zr,useMutableSource:zr,useSyncExternalStore:zr,useId:zr,unstable_isNewReconciler:!1},qU={readContext:ro,useCallback:function(t,e){return Wo().memoizedState=[t,e===void 0?null:e],t},useContext:ro,useEffect:G4,useImperativeHandle:function(t,e,r){return r=r!=null?r.concat([t]):null,fp(4194308,4,L9.bind(null,e,t),r)},useLayoutEffect:function(t,e){return fp(4194308,4,t,e)},useInsertionEffect:function(t,e){return fp(4,2,t,e)},useMemo:function(t,e){var r=Wo();return e=e===void 0?null:e,t=t(),r.memoizedState=[t,e],t},useReducer:function(t,e,r){var n=Wo();return e=r!==void 0?r(e):e,n.memoizedState=n.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},n.queue=t,t=t.dispatch=HU.bind(null,zn,t),[n.memoizedState,t]},useRef:function(t){var e=Wo();return t={current:t},e.memoizedState=t},useState:B4,useDebugValue:Ox,useDeferredValue:function(t){return Wo().memoizedState=t},useTransition:function(){var t=B4(!1),e=t[0];return t=jU.bind(null,t[1]),Wo().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,r){var n=zn,i=Wo();if(Nn){if(r===void 0)throw Error(Ne(407));r=r()}else{if(r=e(),Or===null)throw Error(Ne(349));nl&30||_9(n,e,r)}i.memoizedState=r;var o={value:r,getSnapshot:e};return i.queue=o,G4(D9.bind(null,n,o,t),[t]),n.flags|=2048,Sd(9,E9.bind(null,n,o,r,e),void 0,null),r},useId:function(){var t=Wo(),e=Or.identifierPrefix;if(Nn){var r=Ma,n=Oa;r=(n&~(1<<32-Do(n)-1)).toString(32)+r,e=":"+e+"R"+r,r=wd++,0")&&(c=c.replace("",t.displayName)),c}while(1<=a&&0<=s);break}}}finally{q2=!1,Error.prepareStackTrace=r}return(t=t?t.displayName||t.name:"")?mf(t):""}function MF(t){switch(t.tag){case 5:return mf(t.type);case 16:return mf("Lazy");case 13:return mf("Suspense");case 19:return mf("SuspenseList");case 0:case 2:case 15:return t=X2(t.type,!1),t;case 11:return t=X2(t.type.render,!1),t;case 1:return t=X2(t.type,!0),t;default:return""}}function Fy(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Xl:return"Fragment";case ql:return"Portal";case Ay:return"Profiler";case ix:return"StrictMode";case ky:return"Suspense";case Vy:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case E6:return(t.displayName||"Context")+".Consumer";case _6:return(t._context.displayName||"Context")+".Provider";case ox:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case ax:return e=t.displayName||null,e!==null?e:Fy(t.type)||"Memo";case vs:e=t._payload,t=t._init;try{return Fy(t(e))}catch{}}return null}function RF(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Fy(e);case 8:return e===ix?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function js(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function b6(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function LF(t){var e=b6(t)?"checked":"value",r=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),n=""+t[e];if(!t.hasOwnProperty(e)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,o=r.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(a){n=""+a,o.call(this,a)}}),Object.defineProperty(t,e,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(a){n=""+a},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function zh(t){t._valueTracker||(t._valueTracker=LF(t))}function I6(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var r=e.getValue(),n="";return t&&(n=b6(t)?t.checked?"true":"false":t.value),t=n,t!==r?(e.setValue(t),!0):!1}function qp(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Uy(t,e){var r=e.checked;return jn({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??t._wrapperState.initialChecked})}function l4(t,e){var r=e.defaultValue==null?"":e.defaultValue,n=e.checked!=null?e.checked:e.defaultChecked;r=js(e.value!=null?e.value:r),t._wrapperState={initialChecked:n,initialValue:r,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function O6(t,e){e=e.checked,e!=null&&rx(t,"checked",e,!1)}function By(t,e){O6(t,e);var r=js(e.value),n=e.type;if(r!=null)n==="number"?(r===0&&t.value===""||t.value!=r)&&(t.value=""+r):t.value!==""+r&&(t.value=""+r);else if(n==="submit"||n==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Gy(t,e.type,r):e.hasOwnProperty("defaultValue")&&Gy(t,e.type,js(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function u4(t,e,r){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var n=e.type;if(!(n!=="submit"&&n!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,r||e===t.value||(t.value=e),t.defaultValue=e}r=t.name,r!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,r!==""&&(t.name=r)}function Gy(t,e,r){(e!=="number"||qp(t.ownerDocument)!==t)&&(r==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+r&&(t.defaultValue=""+r))}var vf=Array.isArray;function mu(t,e,r,n){if(t=t.options,e){e={};for(var i=0;i"+e.valueOf().toString()+"",e=$h.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function ud(t,e){if(e){var r=t.firstChild;if(r&&r===t.lastChild&&r.nodeType===3){r.nodeValue=e;return}}t.textContent=e}var Pf={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},NF=["Webkit","ms","Moz","O"];Object.keys(Pf).forEach(function(t){NF.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),Pf[e]=Pf[t]})});function N6(t,e,r){return e==null||typeof e=="boolean"||e===""?"":r||typeof e!="number"||e===0||Pf.hasOwnProperty(t)&&Pf[t]?(""+e).trim():e+"px"}function P6(t,e){t=t.style;for(var r in e)if(e.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=N6(r,e[r],n);r==="float"&&(r="cssFloat"),n?t.setProperty(r,i):t[r]=i}}var PF=jn({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function $y(t,e){if(e){if(PF[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(Ne(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(Ne(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(Ne(61))}if(e.style!=null&&typeof e.style!="object")throw Error(Ne(62))}}function jy(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Hy=null;function sx(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ky=null,vu=null,yu=null;function h4(t){if(t=lh(t)){if(typeof Ky!="function")throw Error(Ne(280));var e=t.stateNode;e&&(e=Pm(e),Ky(t.stateNode,t.type,e))}}function A6(t){vu?yu?yu.push(t):yu=[t]:vu=t}function k6(){if(vu){var t=vu,e=yu;if(yu=vu=null,h4(t),e)for(t=0;t>>=0,t===0?32:31-(jF(t)/HF|0)|0}var jh=64,Hh=4194304;function yf(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Zp(t,e){var r=t.pendingLanes;if(r===0)return 0;var n=0,i=t.suspendedLanes,o=t.pingedLanes,a=r&268435455;if(a!==0){var s=a&~i;s!==0?n=yf(s):(o&=a,o!==0&&(n=yf(o)))}else a=r&~i,a!==0?n=yf(a):o!==0&&(n=yf(o));if(n===0)return 0;if(e!==0&&e!==n&&!(e&i)&&(i=n&-n,o=e&-e,i>=o||i===16&&(o&4194240)!==0))return e;if(n&4&&(n|=r&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=n;0r;r++)e.push(t);return e}function sh(t,e,r){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-bo(e),t[e]=r}function YF(t,e){var r=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var n=t.eventTimes;for(t=t.expirationTimes;0=kf),S4=" ",T4=!1;function n9(t,e){switch(t){case"keyup":return _U.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function r9(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Yl=!1;function DU(t,e){switch(t){case"compositionend":return r9(e);case"keypress":return e.which!==32?null:(T4=!0,S4);case"textInput":return t=e.data,t===S4&&T4?null:t;default:return null}}function bU(t,e){if(Yl)return t==="compositionend"||!px&&n9(t,e)?(t=e9(),lp=dx=Es=null,Yl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:r,offset:e-t};t=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=b4(r)}}function s9(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?s9(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function c9(){for(var t=window,e=qp();e instanceof t.HTMLIFrameElement;){try{var r=typeof e.contentWindow.location.href=="string"}catch{r=!1}if(r)t=e.contentWindow;else break;e=qp(t.document)}return e}function mx(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function kU(t){var e=c9(),r=t.focusedElem,n=t.selectionRange;if(e!==r&&r&&r.ownerDocument&&s9(r.ownerDocument.documentElement,r)){if(n!==null&&mx(r)){if(e=n.start,t=n.end,t===void 0&&(t=e),"selectionStart"in r)r.selectionStart=e,r.selectionEnd=Math.min(t,r.value.length);else if(t=(e=r.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var i=r.textContent.length,o=Math.min(n.start,i);n=n.end===void 0?o:Math.min(n.end,i),!t.extend&&o>n&&(i=n,n=o,o=i),i=I4(r,o);var a=I4(r,n);i&&a&&(t.rangeCount!==1||t.anchorNode!==i.node||t.anchorOffset!==i.offset||t.focusNode!==a.node||t.focusOffset!==a.offset)&&(e=e.createRange(),e.setStart(i.node,i.offset),t.removeAllRanges(),o>n?(t.addRange(e),t.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),t.addRange(e)))}}for(e=[],t=r;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Jl=null,Qy=null,Ff=null,e5=!1;function O4(t,e,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;e5||Jl==null||Jl!==qp(n)||(n=Jl,"selectionStart"in n&&mx(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ff&&md(Ff,n)||(Ff=n,n=t1(Qy,"onSelect"),0eu||(t.current=a5[eu],a5[eu]=null,eu--)}function vn(t,e){eu++,a5[eu]=t.current,t.current=e}var Hs={},Yr=ac(Hs),wi=ac(!1),tl=Hs;function Fu(t,e){var r=t.type.contextTypes;if(!r)return Hs;var n=t.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===e)return n.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in r)i[o]=e[o];return n&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=i),i}function Ci(t){return t=t.childContextTypes,t!=null}function r1(){Dn(wi),Dn(Yr)}function k4(t,e,r){if(Yr.current!==Hs)throw Error(Ne(168));vn(Yr,e),vn(wi,r)}function v9(t,e,r){var n=t.stateNode;if(e=e.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in e))throw Error(Ne(108,RF(t)||"Unknown",i));return jn({},r,n)}function i1(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||Hs,tl=Yr.current,vn(Yr,t),vn(wi,wi.current),!0}function V4(t,e,r){var n=t.stateNode;if(!n)throw Error(Ne(169));r?(t=v9(t,e,tl),n.__reactInternalMemoizedMergedChildContext=t,Dn(wi),Dn(Yr),vn(Yr,t)):Dn(wi),vn(wi,r)}var _a=null,Am=!1,lv=!1;function y9(t){_a===null?_a=[t]:_a.push(t)}function qU(t){Am=!0,y9(t)}function sc(){if(!lv&&_a!==null){lv=!0;var t=0,e=rn;try{var r=_a;for(rn=1;t>=a,i-=a,Ma=1<<32-bo(e)+i|r<_?(E=T,T=null):E=T.sibling;var D=d(x,T,y[_],w);if(D===null){T===null&&(T=E);break}t&&T&&D.alternate===null&&e(x,T),m=o(D,m,_),S===null?C=D:S.sibling=D,S=D,T=E}if(_===y.length)return r(x,T),Ln&&_c(x,_),C;if(T===null){for(;__?(E=T,T=null):E=T.sibling;var b=d(x,T,D.value,w);if(b===null){T===null&&(T=E);break}t&&T&&b.alternate===null&&e(x,T),m=o(b,m,_),S===null?C=b:S.sibling=b,S=b,T=E}if(D.done)return r(x,T),Ln&&_c(x,_),C;if(T===null){for(;!D.done;_++,D=y.next())D=u(x,D.value,w),D!==null&&(m=o(D,m,_),S===null?C=D:S.sibling=D,S=D);return Ln&&_c(x,_),C}for(T=n(x,T);!D.done;_++,D=y.next())D=h(T,x,_,D.value,w),D!==null&&(t&&D.alternate!==null&&T.delete(D.key===null?_:D.key),m=o(D,m,_),S===null?C=D:S.sibling=D,S=D);return t&&T.forEach(function(I){return e(x,I)}),Ln&&_c(x,_),C}function v(x,m,y,w){if(typeof y=="object"&&y!==null&&y.type===Xl&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Wh:e:{for(var C=y.key,S=m;S!==null;){if(S.key===C){if(C=y.type,C===Xl){if(S.tag===7){r(x,S.sibling),m=i(S,y.props.children),m.return=x,x=m;break e}}else if(S.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===vs&&B4(C)===S.type){r(x,S.sibling),m=i(S,y.props),m.ref=K0(x,S,y),m.return=x,x=m;break e}r(x,S);break}else e(x,S);S=S.sibling}y.type===Xl?(m=jc(y.props.children,x.mode,w,y.key),m.return=x,x=m):(w=vp(y.type,y.key,y.props,null,x.mode,w),w.ref=K0(x,m,y),w.return=x,x=w)}return a(x);case ql:e:{for(S=y.key;m!==null;){if(m.key===S)if(m.tag===4&&m.stateNode.containerInfo===y.containerInfo&&m.stateNode.implementation===y.implementation){r(x,m.sibling),m=i(m,y.children||[]),m.return=x,x=m;break e}else{r(x,m);break}else e(x,m);m=m.sibling}m=vv(y,x.mode,w),m.return=x,x=m}return a(x);case vs:return S=y._init,v(x,m,S(y._payload),w)}if(vf(y))return g(x,m,y,w);if(W0(y))return p(x,m,y,w);Qh(x,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,m!==null&&m.tag===6?(r(x,m.sibling),m=i(m,y),m.return=x,x=m):(r(x,m),m=mv(y,x.mode,w),m.return=x,x=m),a(x)):r(x,m)}return v}var Bu=S9(!0),T9=S9(!1),s1=ac(null),c1=null,ru=null,wx=null;function Cx(){wx=ru=c1=null}function Sx(t){var e=s1.current;Dn(s1),t._currentValue=e}function l5(t,e,r){for(;t!==null;){var n=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,n!==null&&(n.childLanes|=e)):n!==null&&(n.childLanes&e)!==e&&(n.childLanes|=e),t===r)break;t=t.return}}function wu(t,e){c1=t,wx=ru=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(yi=!0),t.firstContext=null)}function io(t){var e=t._currentValue;if(wx!==t)if(t={context:t,memoizedValue:e,next:null},ru===null){if(c1===null)throw Error(Ne(308));ru=t,c1.dependencies={lanes:0,firstContext:t}}else ru=ru.next=t;return e}var Vc=null;function Tx(t){Vc===null?Vc=[t]:Vc.push(t)}function _9(t,e,r,n){var i=e.interleaved;return i===null?(r.next=r,Tx(e)):(r.next=i.next,i.next=r),e.interleaved=r,$a(t,n)}function $a(t,e){t.lanes|=e;var r=t.alternate;for(r!==null&&(r.lanes|=e),r=t,t=t.return;t!==null;)t.childLanes|=e,r=t.alternate,r!==null&&(r.childLanes|=e),r=t,t=t.return;return r.tag===3?r.stateNode:null}var ys=!1;function _x(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function E9(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function ka(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function Vs(t,e,r){var n=t.updateQueue;if(n===null)return null;if(n=n.shared,Ht&2){var i=n.pending;return i===null?e.next=e:(e.next=i.next,i.next=e),n.pending=e,$a(t,r)}return i=n.interleaved,i===null?(e.next=e,Tx(n)):(e.next=i.next,i.next=e),n.interleaved=e,$a(t,r)}function fp(t,e,r){if(e=e.updateQueue,e!==null&&(e=e.shared,(r&4194240)!==0)){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,lx(t,r)}}function G4(t,e){var r=t.updateQueue,n=t.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var i=null,o=null;if(r=r.firstBaseUpdate,r!==null){do{var a={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};o===null?i=o=a:o=o.next=a,r=r.next}while(r!==null);o===null?i=o=e:o=o.next=e}else i=o=e;r={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:o,shared:n.shared,effects:n.effects},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=e:t.next=e,r.lastBaseUpdate=e}function l1(t,e,r,n){var i=t.updateQueue;ys=!1;var o=i.firstBaseUpdate,a=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,a===null?o=l:a.next=l,a=c;var f=t.alternate;f!==null&&(f=f.updateQueue,s=f.lastBaseUpdate,s!==a&&(s===null?f.firstBaseUpdate=l:s.next=l,f.lastBaseUpdate=c))}if(o!==null){var u=i.baseState;a=0,f=l=c=null,s=o;do{var d=s.lane,h=s.eventTime;if((n&d)===d){f!==null&&(f=f.next={eventTime:h,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var g=t,p=s;switch(d=e,h=r,p.tag){case 1:if(g=p.payload,typeof g=="function"){u=g.call(h,u,d);break e}u=g;break e;case 3:g.flags=g.flags&-65537|128;case 0:if(g=p.payload,d=typeof g=="function"?g.call(h,u,d):g,d==null)break e;u=jn({},u,d);break e;case 2:ys=!0}}s.callback!==null&&s.lane!==0&&(t.flags|=64,d=i.effects,d===null?i.effects=[s]:d.push(s))}else h={eventTime:h,lane:d,tag:s.tag,payload:s.payload,callback:s.callback,next:null},f===null?(l=f=h,c=u):f=f.next=h,a|=d;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;d=s,s=d.next,d.next=null,i.lastBaseUpdate=d,i.shared.pending=null}}while(!0);if(f===null&&(c=u),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=f,e=i.shared.interleaved,e!==null){i=e;do a|=i.lane,i=i.next;while(i!==e)}else o===null&&(i.shared.lanes=0);il|=a,t.lanes=a,t.memoizedState=u}}function W4(t,e,r){if(t=e.effects,e.effects=null,t!==null)for(e=0;er?r:4,t(!0);var n=fv.transition;fv.transition={};try{t(!1),e()}finally{rn=r,fv.transition=n}}function W9(){return oo().memoizedState}function ZU(t,e,r){var n=Us(t);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},z9(t))$9(e,r);else if(r=_9(t,e,r,n),r!==null){var i=li();Io(r,t,n,i),j9(r,e,n)}}function QU(t,e,r){var n=Us(t),i={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(z9(t))$9(e,i);else{var o=t.alternate;if(t.lanes===0&&(o===null||o.lanes===0)&&(o=e.lastRenderedReducer,o!==null))try{var a=e.lastRenderedState,s=o(a,r);if(i.hasEagerState=!0,i.eagerState=s,Ro(s,a)){var c=e.interleaved;c===null?(i.next=i,Tx(e)):(i.next=c.next,c.next=i),e.interleaved=i;return}}catch{}finally{}r=_9(t,e,i,n),r!==null&&(i=li(),Io(r,t,n,i),j9(r,e,n))}}function z9(t){var e=t.alternate;return t===zn||e!==null&&e===zn}function $9(t,e){Uf=f1=!0;var r=t.pending;r===null?e.next=e:(e.next=r.next,r.next=e),t.pending=e}function j9(t,e,r){if(r&4194240){var n=e.lanes;n&=t.pendingLanes,r|=n,e.lanes=r,lx(t,r)}}var d1={readContext:io,useCallback:Wr,useContext:Wr,useEffect:Wr,useImperativeHandle:Wr,useInsertionEffect:Wr,useLayoutEffect:Wr,useMemo:Wr,useReducer:Wr,useRef:Wr,useState:Wr,useDebugValue:Wr,useDeferredValue:Wr,useTransition:Wr,useMutableSource:Wr,useSyncExternalStore:Wr,useId:Wr,unstable_isNewReconciler:!1},eB={readContext:io,useCallback:function(t,e){return zo().memoizedState=[t,e===void 0?null:e],t},useContext:io,useEffect:$4,useImperativeHandle:function(t,e,r){return r=r!=null?r.concat([t]):null,hp(4194308,4,V9.bind(null,e,t),r)},useLayoutEffect:function(t,e){return hp(4194308,4,t,e)},useInsertionEffect:function(t,e){return hp(4,2,t,e)},useMemo:function(t,e){var r=zo();return e=e===void 0?null:e,t=t(),r.memoizedState=[t,e],t},useReducer:function(t,e,r){var n=zo();return e=r!==void 0?r(e):e,n.memoizedState=n.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},n.queue=t,t=t.dispatch=ZU.bind(null,zn,t),[n.memoizedState,t]},useRef:function(t){var e=zo();return t={current:t},e.memoizedState=t},useState:z4,useDebugValue:Lx,useDeferredValue:function(t){return zo().memoizedState=t},useTransition:function(){var t=z4(!1),e=t[0];return t=JU.bind(null,t[1]),zo().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,r){var n=zn,i=zo();if(Ln){if(r===void 0)throw Error(Ne(407));r=r()}else{if(r=e(),Ir===null)throw Error(Ne(349));rl&30||O9(n,e,r)}i.memoizedState=r;var o={value:r,getSnapshot:e};return i.queue=o,$4(R9.bind(null,n,o,t),[t]),n.flags|=2048,_d(9,M9.bind(null,n,o,r,e),void 0,null),r},useId:function(){var t=zo(),e=Ir.identifierPrefix;if(Ln){var r=Ra,n=Ma;r=(n&~(1<<32-bo(n)-1)).toString(32)+r,e=":"+e+"R"+r,r=Sd++,0<\/script>",t=t.removeChild(t.firstChild)):typeof n.is=="string"?t=a.createElement(r,{is:n.is}):(t=a.createElement(r),r==="select"&&(a=t,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):t=a.createElementNS(t,r),t[Ko]=e,t[vd]=n,Y9(t,e,!1,!1),e.stateNode=t;e:{switch(a=zy(r,n),r){case"dialog":Tn("cancel",t),Tn("close",t),i=n;break;case"iframe":case"object":case"embed":Tn("load",t),i=n;break;case"video":case"audio":for(i=0;iBu&&(e.flags|=128,n=!0,H0(o,!1),e.lanes=4194304)}else{if(!n)if(t=c1(a),t!==null){if(e.flags|=128,n=!0,r=t.updateQueue,r!==null&&(e.updateQueue=r,e.flags|=4),H0(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Nn)return $r(e),null}else 2*nr()-o.renderingStartTime>Bu&&r!==1073741824&&(e.flags|=128,n=!0,H0(o,!1),e.lanes=4194304);o.isBackwards?(a.sibling=e.child,e.child=a):(r=o.last,r!==null?r.sibling=a:e.child=a,o.last=a)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=nr(),e.sibling=null,r=Un.current,vn(Un,n?r&1|2:r&1),e):($r(e),null);case 22:case 23:return Ax(),n=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==n&&(e.flags|=8192),n&&e.mode&1?Mi&1073741824&&($r(e),e.subtreeFlags&6&&(e.flags|=8192)):$r(e),null;case 24:return null;case 25:return null}throw Error(Ne(156,e.tag))}function nB(t,e){switch(px(e),e.tag){case 1:return Ci(e.type)&&t1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Fu(),bn(wi),bn(Jr),_x(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return Tx(e),null;case 13:if(bn(Un),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Ne(340));ku()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return bn(Un),null;case 4:return Fu(),null;case 10:return xx(e.type._context),null;case 22:case 23:return Ax(),null;case 24:return null;default:return null}}var Qh=!1,qr=!1,rB=typeof WeakSet=="function"?WeakSet:Set,Xe=null;function tu(t,e){var r=t.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){qn(t,e,n)}else r.current=null}function m5(t,e,r){try{r()}catch(n){qn(t,e,n)}}var Z4=!1;function iB(t,e){if(Qy=Jp,t=r9(),hx(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break e}var a=0,s=-1,c=-1,l=0,f=0,u=t,d=null;t:for(;;){for(var h;u!==r||i!==0&&u.nodeType!==3||(s=a+i),u!==o||n!==0&&u.nodeType!==3||(c=a+n),u.nodeType===3&&(a+=u.nodeValue.length),(h=u.firstChild)!==null;)d=u,u=h;for(;;){if(u===t)break t;if(d===r&&++l===i&&(s=a),d===o&&++f===n&&(c=a),(h=u.nextSibling)!==null)break;u=d,d=u.parentNode}u=h}r=s===-1||c===-1?null:{start:s,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(e5={focusedElem:t,selectionRange:r},Jp=!1,Xe=e;Xe!==null;)if(e=Xe,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Xe=t;else for(;Xe!==null;){e=Xe;try{var g=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var p=g.memoizedProps,v=g.memoizedState,x=e.stateNode,m=x.getSnapshotBeforeUpdate(e.elementType===e.type?p:vo(e.type,p),v);x.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ne(163))}}catch(w){qn(e,e.return,w)}if(t=e.sibling,t!==null){t.return=e.return,Xe=t;break}Xe=e.return}return g=Z4,Z4=!1,g}function Ff(t,e,r){var n=e.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&t)===t){var o=i.destroy;i.destroy=void 0,o!==void 0&&m5(e,r,o)}i=i.next}while(i!==n)}}function km(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var r=e=e.next;do{if((r.tag&t)===t){var n=r.create;r.destroy=n()}r=r.next}while(r!==e)}}function v5(t){var e=t.ref;if(e!==null){var r=t.stateNode;switch(t.tag){case 5:t=r;break;default:t=r}typeof e=="function"?e(t):e.current=t}}function Q9(t){var e=t.alternate;e!==null&&(t.alternate=null,Q9(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[Ko],delete e[vd],delete e[r5],delete e[BU],delete e[GU])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function eD(t){return t.tag===5||t.tag===3||t.tag===4}function Q4(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||eD(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function y5(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.nodeType===8?r.parentNode.insertBefore(t,e):r.insertBefore(t,e):(r.nodeType===8?(e=r.parentNode,e.insertBefore(t,r)):(e=r,e.appendChild(t)),r=r._reactRootContainer,r!=null||e.onclick!==null||(e.onclick=e1));else if(n!==4&&(t=t.child,t!==null))for(y5(t,e,r),t=t.sibling;t!==null;)y5(t,e,r),t=t.sibling}function x5(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.insertBefore(t,e):r.appendChild(t);else if(n!==4&&(t=t.child,t!==null))for(x5(t,e,r),t=t.sibling;t!==null;)x5(t,e,r),t=t.sibling}var Pr=null,xo=!1;function os(t,e,r){for(r=r.child;r!==null;)tD(t,e,r),r=r.sibling}function tD(t,e,r){if(Jo&&typeof Jo.onCommitFiberUnmount=="function")try{Jo.onCommitFiberUnmount(Im,r)}catch{}switch(r.tag){case 5:qr||tu(r,e);case 6:var n=Pr,i=xo;Pr=null,os(t,e,r),Pr=n,xo=i,Pr!==null&&(xo?(t=Pr,r=r.stateNode,t.nodeType===8?t.parentNode.removeChild(r):t.removeChild(r)):Pr.removeChild(r.stateNode));break;case 18:Pr!==null&&(xo?(t=Pr,r=r.stateNode,t.nodeType===8?av(t.parentNode,r):t.nodeType===1&&av(t,r),dd(t)):av(Pr,r.stateNode));break;case 4:n=Pr,i=xo,Pr=r.stateNode.containerInfo,xo=!0,os(t,e,r),Pr=n,xo=i;break;case 0:case 11:case 14:case 15:if(!qr&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&m5(r,e,a),i=i.next}while(i!==n)}os(t,e,r);break;case 1:if(!qr&&(tu(r,e),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){qn(r,e,s)}os(t,e,r);break;case 21:os(t,e,r);break;case 22:r.mode&1?(qr=(n=qr)||r.memoizedState!==null,os(t,e,r),qr=n):os(t,e,r);break;default:os(t,e,r)}}function eT(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var r=t.stateNode;r===null&&(r=t.stateNode=new rB),e.forEach(function(n){var i=hB.bind(null,t,n);r.has(n)||(r.add(n),n.then(i,i))})}}function uo(t,e){var r=e.deletions;if(r!==null)for(var n=0;ni&&(i=a),n&=~o}if(n=i,n=nr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*aB(n/1960))-n,10t?16:t,Es===null)var n=!1;else{if(t=Es,Es=null,h1=0,Kt&6)throw Error(Ne(331));var i=Kt;for(Kt|=4,Xe=t.current;Xe!==null;){var o=Xe,a=o.child;if(Xe.flags&16){var s=o.deletions;if(s!==null){for(var c=0;cnr()-Nx?zc(t,0):Lx|=r),Si(t,e)}function lD(t,e){e===0&&(t.mode&1?(e=$h,$h<<=1,!($h&130023424)&&($h=4194304)):e=1);var r=li();t=za(t,e),t!==null&&(oh(t,e,r),Si(t,r))}function dB(t){var e=t.memoizedState,r=0;e!==null&&(r=e.retryLane),lD(t,r)}function hB(t,e){var r=0;switch(t.tag){case 13:var n=t.stateNode,i=t.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=t.stateNode;break;default:throw Error(Ne(314))}n!==null&&n.delete(e),lD(t,r)}var uD;uD=function(t,e,r){if(t!==null)if(t.memoizedProps!==e.pendingProps||wi.current)yi=!0;else{if(!(t.lanes&r)&&!(e.flags&128))return yi=!1,eB(t,e,r);yi=!!(t.flags&131072)}else yi=!1,Nn&&e.flags&1048576&&g9(e,i1,e.index);switch(e.lanes=0,e.tag){case 2:var n=e.type;dp(t,e),t=e.pendingProps;var i=Au(e,Jr.current);vu(e,r),i=Dx(null,e,n,t,i,r);var o=bx();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ci(n)?(o=!0,n1(e)):o=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Cx(e),i.updater=Am,e.stateNode=i,i._reactInternals=e,l5(e,n,t,r),e=d5(null,e,n,!0,o,r)):(e.tag=0,Nn&&o&&gx(e),ii(null,e,i,r),e=e.child),e;case 16:n=e.elementType;e:{switch(dp(t,e),t=e.pendingProps,i=n._init,n=i(n._payload),e.type=n,i=e.tag=pB(n),t=vo(n,t),i){case 0:e=f5(null,e,n,t,r);break e;case 1:e=X4(null,e,n,t,r);break e;case 11:e=K4(null,e,n,t,r);break e;case 14:e=q4(null,e,n,vo(n.type,t),r);break e}throw Error(Ne(306,n,""))}return e;case 0:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:vo(n,i),f5(t,e,n,i,r);case 1:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:vo(n,i),X4(t,e,n,i,r);case 3:e:{if(K9(e),t===null)throw Error(Ne(387));n=e.pendingProps,o=e.memoizedState,i=o.element,w9(t,e),s1(e,n,null,r);var a=e.memoizedState;if(n=a.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},e.updateQueue.baseState=o,e.memoizedState=o,e.flags&256){i=Uu(Error(Ne(423)),e),e=Y4(t,e,n,r,i);break e}else if(n!==i){i=Uu(Error(Ne(424)),e),e=Y4(t,e,n,r,i);break e}else for(Ni=As(e.stateNode.containerInfo.firstChild),ki=e,Nn=!0,Co=null,r=y9(e,null,n,r),e.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(ku(),n===i){e=$a(t,e,r);break e}ii(t,e,n,r)}e=e.child}return e;case 5:return C9(e),t===null&&a5(e),n=e.type,i=e.pendingProps,o=t!==null?t.memoizedProps:null,a=i.children,t5(n,i)?a=null:o!==null&&t5(n,o)&&(e.flags|=32),H9(t,e),ii(t,e,a,r),e.child;case 6:return t===null&&a5(e),null;case 13:return q9(t,e,r);case 4:return Sx(e,e.stateNode.containerInfo),n=e.pendingProps,t===null?e.child=Vu(e,null,n,r):ii(t,e,n,r),e.child;case 11:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:vo(n,i),K4(t,e,n,i,r);case 7:return ii(t,e,e.pendingProps,r),e.child;case 8:return ii(t,e,e.pendingProps.children,r),e.child;case 12:return ii(t,e,e.pendingProps.children,r),e.child;case 10:e:{if(n=e.type._context,i=e.pendingProps,o=e.memoizedProps,a=i.value,vn(o1,n._currentValue),n._currentValue=a,o!==null)if(Mo(o.value,a)){if(o.children===i.children&&!wi.current){e=$a(t,e,r);break e}}else for(o=e.child,o!==null&&(o.return=e);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var c=s.firstContext;c!==null;){if(c.context===n){if(o.tag===1){c=Aa(-1,r&-r),c.tag=2;var l=o.updateQueue;if(l!==null){l=l.shared;var f=l.pending;f===null?c.next=c:(c.next=f.next,f.next=c),l.pending=c}}o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),s5(o.return,r,e),s.lanes|=r;break}c=c.next}}else if(o.tag===10)a=o.type===e.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ne(341));a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),s5(a,r,e),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===e){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}ii(t,e,i.children,r),e=e.child}return e;case 9:return i=e.type,n=e.pendingProps.children,vu(e,r),i=ro(i),n=n(i),e.flags|=1,ii(t,e,n,r),e.child;case 14:return n=e.type,i=vo(n,e.pendingProps),i=vo(n.type,i),q4(t,e,n,i,r);case 15:return $9(t,e,e.type,e.pendingProps,r);case 17:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:vo(n,i),dp(t,e),e.tag=1,Ci(n)?(t=!0,n1(e)):t=!1,vu(e,r),G9(e,n,i),l5(e,n,i,r),d5(null,e,n,!0,t,r);case 19:return X9(t,e,r);case 22:return j9(t,e,r)}throw Error(Ne(156,e.tag))};function fD(t,e){return F6(t,e)}function gB(t,e,r,n){this.tag=t,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function to(t,e,r,n){return new gB(t,e,r,n)}function Vx(t){return t=t.prototype,!(!t||!t.isReactComponent)}function pB(t){if(typeof t=="function")return Vx(t)?1:0;if(t!=null){if(t=t.$$typeof,t===nx)return 11;if(t===rx)return 14}return 2}function Us(t,e){var r=t.alternate;return r===null?(r=to(t.tag,e,t.key,t.mode),r.elementType=t.elementType,r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.pendingProps=e,r.type=t.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=t.flags&14680064,r.childLanes=t.childLanes,r.lanes=t.lanes,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,e=t.dependencies,r.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r}function pp(t,e,r,n,i,o){var a=2;if(n=t,typeof t=="function")Vx(t)&&(a=1);else if(typeof t=="string")a=5;else e:switch(t){case Hl:return $c(r.children,i,o,e);case tx:a=8,i|=8;break;case Ny:return t=to(12,r,e,i|2),t.elementType=Ny,t.lanes=o,t;case Py:return t=to(13,r,e,i),t.elementType=Py,t.lanes=o,t;case Ay:return t=to(19,r,e,i),t.elementType=Ay,t.lanes=o,t;case C6:return Fm(r,i,o,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case x6:a=10;break e;case w6:a=9;break e;case nx:a=11;break e;case rx:a=14;break e;case ms:a=16,n=null;break e}throw Error(Ne(130,t==null?t:typeof t,""))}return e=to(a,r,e,i),e.elementType=t,e.type=n,e.lanes=o,e}function $c(t,e,r,n){return t=to(7,t,n,e),t.lanes=r,t}function Fm(t,e,r,n){return t=to(22,t,n,e),t.elementType=C6,t.lanes=r,t.stateNode={isHidden:!1},t}function gv(t,e,r){return t=to(6,t,null,e),t.lanes=r,t}function pv(t,e,r){return e=to(4,t.children!==null?t.children:[],t.key,e),e.lanes=r,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function mB(t,e,r,n,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=X2(0),this.expirationTimes=X2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=X2(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Fx(t,e,r,n,i,o,a,s,c){return t=new mB(t,e,r,s,c),e===1?(e=1,o===!0&&(e|=8)):e=0,o=to(3,null,null,e),t.current=o,o.stateNode=t,o.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Cx(o),t}function vB(t,e,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(pD)}catch(t){console.error(t)}}pD(),p6.exports=Wi;var SB=p6.exports,Wx,cT=SB;Wx=cT.createRoot,cT.hydrateRoot;var Se;(function(t){t.ERROR_EVENT="CORNERSTONE_ERROR",t.CACHE_SIZE_EXCEEDED="CACHE_SIZE_EXCEEDED",t.IMAGE_LOAD_ERROR="IMAGE_LOAD_ERROR",t.CAMERA_MODIFIED="CORNERSTONE_CAMERA_MODIFIED",t.CAMERA_RESET="CORNERSTONE_CAMERA_RESET",t.VOI_MODIFIED="CORNERSTONE_VOI_MODIFIED",t.PRESET_MODIFIED="CORNERSTONE_VIEWPORT_RENDERING_PRESET_MODIFIED",t.DISPLAY_AREA_MODIFIED="CORNERSTONE_DISPLAY_AREA_MODIFIED",t.ELEMENT_DISABLED="CORNERSTONE_ELEMENT_DISABLED",t.ELEMENT_ENABLED="CORNERSTONE_ELEMENT_ENABLED",t.IMAGE_RENDERED="CORNERSTONE_IMAGE_RENDERED",t.IMAGE_VOLUME_MODIFIED="CORNERSTONE_IMAGE_VOLUME_MODIFIED",t.IMAGE_VOLUME_LOADING_COMPLETED="CORNERSTONE_IMAGE_VOLUME_LOADING_COMPLETED",t.IMAGE_LOADED="CORNERSTONE_IMAGE_LOADED",t.IMAGE_RETRIEVAL_STAGE="CORNERSTONE_IMAGE_RETRIEVAL_STAGE",t.IMAGE_LOAD_FAILED="CORNERSTONE_IMAGE_LOAD_FAILED",t.VOLUME_VIEWPORT_NEW_VOLUME="CORNERSTONE_VOLUME_VIEWPORT_NEW_VOLUME",t.VOLUME_LOADED="CORNERSTONE_VOLUME_LOADED",t.VOLUME_LOADED_FAILED="CORNERSTONE_VOLUME_LOADED_FAILED",t.IMAGE_CACHE_IMAGE_ADDED="CORNERSTONE_IMAGE_CACHE_IMAGE_ADDED",t.IMAGE_CACHE_IMAGE_REMOVED="CORNERSTONE_IMAGE_CACHE_IMAGE_REMOVED",t.VOLUME_CACHE_VOLUME_ADDED="CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED",t.VOLUME_CACHE_VOLUME_REMOVED="CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED",t.STACK_NEW_IMAGE="CORNERSTONE_STACK_NEW_IMAGE",t.VOLUME_NEW_IMAGE="CORNERSTONE_VOLUME_NEW_IMAGE",t.PRE_STACK_NEW_IMAGE="CORNERSTONE_PRE_STACK_NEW_IMAGE",t.IMAGE_SPACING_CALIBRATED="CORNERSTONE_IMAGE_SPACING_CALIBRATED",t.VIEWPORT_NEW_IMAGE_SET="CORNERSTONE_VIEWPORT_NEW_IMAGE_SET",t.STACK_VIEWPORT_SCROLL="CORNERSTONE_STACK_VIEWPORT_SCROLL",t.STACK_SCROLL_OUT_OF_BOUNDS="STACK_SCROLL_OUT_OF_BOUNDS",t.GEOMETRY_CACHE_GEOMETRY_ADDED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED",t.GEOMETRY_CACHE_GEOMETRY_REMOVED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_REMOVED",t.VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS="VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS",t.VOLUME_VIEWPORT_SCROLL="VOLUME_VIEWPORT_SCROLL",t.CLIPPING_PLANES_UPDATED="CORNERSTONE_CLIPPING_PLANES_UPDATED",t.WEB_WORKER_PROGRESS="CORNERSTONE_WEB_WORKER_PROGRESS",t.COLORMAP_MODIFIED="CORNERSTONE_COLORMAP_MODIFIED",t.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED="DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED",t.DYNAMIC_VOLUME_TIME_POINT_LOADED="DYNAMIC_VOLUME_TIME_POINT_LOADED",t.GEOMETRY_LOADED="GEOMETRY_LOADED",t.GEOMETRY_LOADED_FAILED="GEOMETRY_LOADED_FAILED"})(Se||(Se={}));var dt;(function(t){t.Interaction="interaction",t.Thumbnail="thumbnail",t.Prefetch="prefetch",t.Compute="compute"})(dt||(dt={}));var mn;(function(t){t.STACK="stack",t.ORTHOGRAPHIC="orthographic",t.PERSPECTIVE="perspective",t.VOLUME_3D="volume3d",t.VIDEO="video",t.WHOLE_SLIDE="wholeSlide"})(mn||(mn={}));var Ra;(function(t){t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR",t[t.FAST_LINEAR=2]="FAST_LINEAR"})(Ra||(Ra={}));const mp={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6},TB={OFF:0,NORMALIZED:1,RAW:2};var mD={BlendMode:mp,FilterMode:TB};const{BlendMode:ng}=mD;var Gu;(function(t){t[t.COMPOSITE=ng.COMPOSITE_BLEND]="COMPOSITE",t[t.MAXIMUM_INTENSITY_BLEND=ng.MAXIMUM_INTENSITY_BLEND]="MAXIMUM_INTENSITY_BLEND",t[t.MINIMUM_INTENSITY_BLEND=ng.MINIMUM_INTENSITY_BLEND]="MINIMUM_INTENSITY_BLEND",t[t.AVERAGE_INTENSITY_BLEND=ng.AVERAGE_INTENSITY_BLEND]="AVERAGE_INTENSITY_BLEND"})(Gu||(Gu={}));var Wu;(function(t){t.AXIAL="axial",t.CORONAL="coronal",t.SAGITTAL="sagittal",t.ACQUISITION="acquisition"})(Wu||(Wu={}));var _5;(function(t){t.CONTOUR="CONTOUR",t.SURFACE="SURFACE"})(_5||(_5={}));const ol=_5;var E5;(function(t){t.CLOSED_PLANAR="CLOSED_PLANAR",t.OPEN_PLANAR="OPEN_PLANAR"})(E5||(E5={}));const _B=E5;var ka;(function(t){t.LINEAR="LINEAR",t.SAMPLED_SIGMOID="SIGMOID"})(ka||(ka={}));var D5;(function(t){t.SUM="SUM",t.AVERAGE="AVERAGE",t.SUBTRACT="SUBTRACT"})(D5||(D5={}));const EB=D5;var m1;(function(t){t.NOT_APPLICABLE="",t.ERMF="ERMF",t.USER="User",t.PROJECTION="Proj",t.REGION="Region",t.ERROR="Error",t.UNCALIBRATED="Uncalibrated"})(m1||(m1={}));var oi;(function(t){t.NO_DATA="noData",t.LOADING="loading",t.PRE_RENDER="preRender",t.RESIZE="resize",t.RENDERED="rendered"})(oi||(oi={}));var Pi;(function(t){t[t.FAR_REPLICATE=1]="FAR_REPLICATE",t[t.ADJACENT_REPLICATE=3]="ADJACENT_REPLICATE",t[t.SUBRESOLUTION=6]="SUBRESOLUTION",t[t.LOSSY=7]="LOSSY",t[t.FULL_RESOLUTION=8]="FULL_RESOLUTION"})(Pi||(Pi={}));var _d;(function(t){t.FRAME="f",t.SECOND="s"})(_d||(_d={}));const DB=Object.freeze(Object.defineProperty({__proto__:null,get SpeedUnit(){return _d}},Symbol.toStringTag,{value:"Module"}));var si;(function(t){t.CALIBRATION="calibrationModule",t.CINE="cineModule",t.GENERAL_IMAGE="generalImageModule",t.GENERAL_SERIES="generalSeriesModule",t.GENERAL_STUDY="generalStudyModule",t.IMAGE_PIXEL="imagePixelModule",t.IMAGE_PLANE="imagePlaneModule",t.IMAGE_URL="imageUrlModule",t.MODALITY_LUT="modalityLutModule",t.MULTIFRAME="multiframeModule",t.NM_MULTIFRAME_GEOMETRY="nmMultiframeGeometryModule",t.OVERLAY_PLANE="overlayPlaneModule",t.PATIENT="patientModule",t.PATIENT_STUDY="patientStudyModule",t.PET_IMAGE="petImageModule",t.PET_ISOTOPE="petIsotopeModule",t.PET_SERIES="petSeriesModule",t.SOP_COMMON="sopCommonModule",t.ULTRASOUND_ENHANCED_REGION="ultrasoundEnhancedRegionModule",t.VOI_LUT="voiLutModule",t.WADO_WEB_CLIENT="wadoWebClient"})(si||(si={}));var xu;(function(t){t.SUM="SUM",t.SUBTRACT="SUBTRACT",t.AVERAGE="AVERAGE"})(xu||(xu={}));const Po=Object.freeze(Object.defineProperty({__proto__:null,BlendModes:Gu,CalibrationTypes:m1,ContourType:_B,DynamicOperatorType:EB,Events:Se,get GenerateImageType(){return xu},GeometryType:ol,ImageQualityStatus:Pi,InterpolationType:Ra,MetadataModules:si,OrientationAxis:Wu,RequestType:dt,VOILUTFunctionType:ka,VideoEnums:DB,ViewportStatus:oi,ViewportType:mn},Symbol.toStringTag,{value:"Module"})),b5={hotIron:{name:"Hot Iron",numOfColors:256,colors:[[0,0,0,255],[2,0,0,255],[4,0,0,255],[6,0,0,255],[8,0,0,255],[10,0,0,255],[12,0,0,255],[14,0,0,255],[16,0,0,255],[18,0,0,255],[20,0,0,255],[22,0,0,255],[24,0,0,255],[26,0,0,255],[28,0,0,255],[30,0,0,255],[32,0,0,255],[34,0,0,255],[36,0,0,255],[38,0,0,255],[40,0,0,255],[42,0,0,255],[44,0,0,255],[46,0,0,255],[48,0,0,255],[50,0,0,255],[52,0,0,255],[54,0,0,255],[56,0,0,255],[58,0,0,255],[60,0,0,255],[62,0,0,255],[64,0,0,255],[66,0,0,255],[68,0,0,255],[70,0,0,255],[72,0,0,255],[74,0,0,255],[76,0,0,255],[78,0,0,255],[80,0,0,255],[82,0,0,255],[84,0,0,255],[86,0,0,255],[88,0,0,255],[90,0,0,255],[92,0,0,255],[94,0,0,255],[96,0,0,255],[98,0,0,255],[100,0,0,255],[102,0,0,255],[104,0,0,255],[106,0,0,255],[108,0,0,255],[110,0,0,255],[112,0,0,255],[114,0,0,255],[116,0,0,255],[118,0,0,255],[120,0,0,255],[122,0,0,255],[124,0,0,255],[126,0,0,255],[128,0,0,255],[130,0,0,255],[132,0,0,255],[134,0,0,255],[136,0,0,255],[138,0,0,255],[140,0,0,255],[142,0,0,255],[144,0,0,255],[146,0,0,255],[148,0,0,255],[150,0,0,255],[152,0,0,255],[154,0,0,255],[156,0,0,255],[158,0,0,255],[160,0,0,255],[162,0,0,255],[164,0,0,255],[166,0,0,255],[168,0,0,255],[170,0,0,255],[172,0,0,255],[174,0,0,255],[176,0,0,255],[178,0,0,255],[180,0,0,255],[182,0,0,255],[184,0,0,255],[186,0,0,255],[188,0,0,255],[190,0,0,255],[192,0,0,255],[194,0,0,255],[196,0,0,255],[198,0,0,255],[200,0,0,255],[202,0,0,255],[204,0,0,255],[206,0,0,255],[208,0,0,255],[210,0,0,255],[212,0,0,255],[214,0,0,255],[216,0,0,255],[218,0,0,255],[220,0,0,255],[222,0,0,255],[224,0,0,255],[226,0,0,255],[228,0,0,255],[230,0,0,255],[232,0,0,255],[234,0,0,255],[236,0,0,255],[238,0,0,255],[240,0,0,255],[242,0,0,255],[244,0,0,255],[246,0,0,255],[248,0,0,255],[250,0,0,255],[252,0,0,255],[254,0,0,255],[255,0,0,255],[255,2,0,255],[255,4,0,255],[255,6,0,255],[255,8,0,255],[255,10,0,255],[255,12,0,255],[255,14,0,255],[255,16,0,255],[255,18,0,255],[255,20,0,255],[255,22,0,255],[255,24,0,255],[255,26,0,255],[255,28,0,255],[255,30,0,255],[255,32,0,255],[255,34,0,255],[255,36,0,255],[255,38,0,255],[255,40,0,255],[255,42,0,255],[255,44,0,255],[255,46,0,255],[255,48,0,255],[255,50,0,255],[255,52,0,255],[255,54,0,255],[255,56,0,255],[255,58,0,255],[255,60,0,255],[255,62,0,255],[255,64,0,255],[255,66,0,255],[255,68,0,255],[255,70,0,255],[255,72,0,255],[255,74,0,255],[255,76,0,255],[255,78,0,255],[255,80,0,255],[255,82,0,255],[255,84,0,255],[255,86,0,255],[255,88,0,255],[255,90,0,255],[255,92,0,255],[255,94,0,255],[255,96,0,255],[255,98,0,255],[255,100,0,255],[255,102,0,255],[255,104,0,255],[255,106,0,255],[255,108,0,255],[255,110,0,255],[255,112,0,255],[255,114,0,255],[255,116,0,255],[255,118,0,255],[255,120,0,255],[255,122,0,255],[255,124,0,255],[255,126,0,255],[255,128,4,255],[255,130,8,255],[255,132,12,255],[255,134,16,255],[255,136,20,255],[255,138,24,255],[255,140,28,255],[255,142,32,255],[255,144,36,255],[255,146,40,255],[255,148,44,255],[255,150,48,255],[255,152,52,255],[255,154,56,255],[255,156,60,255],[255,158,64,255],[255,160,68,255],[255,162,72,255],[255,164,76,255],[255,166,80,255],[255,168,84,255],[255,170,88,255],[255,172,92,255],[255,174,96,255],[255,176,100,255],[255,178,104,255],[255,180,108,255],[255,182,112,255],[255,184,116,255],[255,186,120,255],[255,188,124,255],[255,190,128,255],[255,192,132,255],[255,194,136,255],[255,196,140,255],[255,198,144,255],[255,200,148,255],[255,202,152,255],[255,204,156,255],[255,206,160,255],[255,208,164,255],[255,210,168,255],[255,212,172,255],[255,214,176,255],[255,216,180,255],[255,218,184,255],[255,220,188,255],[255,222,192,255],[255,224,196,255],[255,226,200,255],[255,228,204,255],[255,230,208,255],[255,232,212,255],[255,234,216,255],[255,236,220,255],[255,238,224,255],[255,240,228,255],[255,242,232,255],[255,244,236,255],[255,246,240,255],[255,248,244,255],[255,250,248,255],[255,252,252,255],[255,255,255,255]]},pet:{name:"PET",numColors:256,colors:[[0,0,0,255],[0,2,1,255],[0,4,3,255],[0,6,5,255],[0,8,7,255],[0,10,9,255],[0,12,11,255],[0,14,13,255],[0,16,15,255],[0,18,17,255],[0,20,19,255],[0,22,21,255],[0,24,23,255],[0,26,25,255],[0,28,27,255],[0,30,29,255],[0,32,31,255],[0,34,33,255],[0,36,35,255],[0,38,37,255],[0,40,39,255],[0,42,41,255],[0,44,43,255],[0,46,45,255],[0,48,47,255],[0,50,49,255],[0,52,51,255],[0,54,53,255],[0,56,55,255],[0,58,57,255],[0,60,59,255],[0,62,61,255],[0,65,63,255],[0,67,65,255],[0,69,67,255],[0,71,69,255],[0,73,71,255],[0,75,73,255],[0,77,75,255],[0,79,77,255],[0,81,79,255],[0,83,81,255],[0,85,83,255],[0,87,85,255],[0,89,87,255],[0,91,89,255],[0,93,91,255],[0,95,93,255],[0,97,95,255],[0,99,97,255],[0,101,99,255],[0,103,101,255],[0,105,103,255],[0,107,105,255],[0,109,107,255],[0,111,109,255],[0,113,111,255],[0,115,113,255],[0,117,115,255],[0,119,117,255],[0,121,119,255],[0,123,121,255],[0,125,123,255],[0,128,125,255],[1,126,127,255],[3,124,129,255],[5,122,131,255],[7,120,133,255],[9,118,135,255],[11,116,137,255],[13,114,139,255],[15,112,141,255],[17,110,143,255],[19,108,145,255],[21,106,147,255],[23,104,149,255],[25,102,151,255],[27,100,153,255],[29,98,155,255],[31,96,157,255],[33,94,159,255],[35,92,161,255],[37,90,163,255],[39,88,165,255],[41,86,167,255],[43,84,169,255],[45,82,171,255],[47,80,173,255],[49,78,175,255],[51,76,177,255],[53,74,179,255],[55,72,181,255],[57,70,183,255],[59,68,185,255],[61,66,187,255],[63,64,189,255],[65,63,191,255],[67,61,193,255],[69,59,195,255],[71,57,197,255],[73,55,199,255],[75,53,201,255],[77,51,203,255],[79,49,205,255],[81,47,207,255],[83,45,209,255],[85,43,211,255],[86,41,213,255],[88,39,215,255],[90,37,217,255],[92,35,219,255],[94,33,221,255],[96,31,223,255],[98,29,225,255],[100,27,227,255],[102,25,229,255],[104,23,231,255],[106,21,233,255],[108,19,235,255],[110,17,237,255],[112,15,239,255],[114,13,241,255],[116,11,243,255],[118,9,245,255],[120,7,247,255],[122,5,249,255],[124,3,251,255],[126,1,253,255],[128,0,255,255],[130,2,252,255],[132,4,248,255],[134,6,244,255],[136,8,240,255],[138,10,236,255],[140,12,232,255],[142,14,228,255],[144,16,224,255],[146,18,220,255],[148,20,216,255],[150,22,212,255],[152,24,208,255],[154,26,204,255],[156,28,200,255],[158,30,196,255],[160,32,192,255],[162,34,188,255],[164,36,184,255],[166,38,180,255],[168,40,176,255],[170,42,172,255],[171,44,168,255],[173,46,164,255],[175,48,160,255],[177,50,156,255],[179,52,152,255],[181,54,148,255],[183,56,144,255],[185,58,140,255],[187,60,136,255],[189,62,132,255],[191,64,128,255],[193,66,124,255],[195,68,120,255],[197,70,116,255],[199,72,112,255],[201,74,108,255],[203,76,104,255],[205,78,100,255],[207,80,96,255],[209,82,92,255],[211,84,88,255],[213,86,84,255],[215,88,80,255],[217,90,76,255],[219,92,72,255],[221,94,68,255],[223,96,64,255],[225,98,60,255],[227,100,56,255],[229,102,52,255],[231,104,48,255],[233,106,44,255],[235,108,40,255],[237,110,36,255],[239,112,32,255],[241,114,28,255],[243,116,24,255],[245,118,20,255],[247,120,16,255],[249,122,12,255],[251,124,8,255],[253,126,4,255],[255,128,0,255],[255,130,4,255],[255,132,8,255],[255,134,12,255],[255,136,16,255],[255,138,20,255],[255,140,24,255],[255,142,28,255],[255,144,32,255],[255,146,36,255],[255,148,40,255],[255,150,44,255],[255,152,48,255],[255,154,52,255],[255,156,56,255],[255,158,60,255],[255,160,64,255],[255,162,68,255],[255,164,72,255],[255,166,76,255],[255,168,80,255],[255,170,85,255],[255,172,89,255],[255,174,93,255],[255,176,97,255],[255,178,101,255],[255,180,105,255],[255,182,109,255],[255,184,113,255],[255,186,117,255],[255,188,121,255],[255,190,125,255],[255,192,129,255],[255,194,133,255],[255,196,137,255],[255,198,141,255],[255,200,145,255],[255,202,149,255],[255,204,153,255],[255,206,157,255],[255,208,161,255],[255,210,165,255],[255,212,170,255],[255,214,174,255],[255,216,178,255],[255,218,182,255],[255,220,186,255],[255,222,190,255],[255,224,194,255],[255,226,198,255],[255,228,202,255],[255,230,206,255],[255,232,210,255],[255,234,214,255],[255,236,218,255],[255,238,222,255],[255,240,226,255],[255,242,230,255],[255,244,234,255],[255,246,238,255],[255,248,242,255],[255,250,246,255],[255,252,250,255],[255,255,255,255]]},hotMetalBlue:{name:"Hot Metal Blue",numColors:256,colors:[[0,0,0,255],[0,0,2,255],[0,0,4,255],[0,0,6,255],[0,0,8,255],[0,0,10,255],[0,0,12,255],[0,0,14,255],[0,0,16,255],[0,0,17,255],[0,0,19,255],[0,0,21,255],[0,0,23,255],[0,0,25,255],[0,0,27,255],[0,0,29,255],[0,0,31,255],[0,0,33,255],[0,0,35,255],[0,0,37,255],[0,0,39,255],[0,0,41,255],[0,0,43,255],[0,0,45,255],[0,0,47,255],[0,0,49,255],[0,0,51,255],[0,0,53,255],[0,0,55,255],[0,0,57,255],[0,0,59,255],[0,0,61,255],[0,0,63,255],[0,0,65,255],[0,0,67,255],[0,0,69,255],[0,0,71,255],[0,0,73,255],[0,0,75,255],[0,0,77,255],[0,0,79,255],[0,0,81,255],[0,0,83,255],[0,0,84,255],[0,0,86,255],[0,0,88,255],[0,0,90,255],[0,0,92,255],[0,0,94,255],[0,0,96,255],[0,0,98,255],[0,0,100,255],[0,0,102,255],[0,0,104,255],[0,0,106,255],[0,0,108,255],[0,0,110,255],[0,0,112,255],[0,0,114,255],[0,0,116,255],[0,0,117,255],[0,0,119,255],[0,0,121,255],[0,0,123,255],[0,0,125,255],[0,0,127,255],[0,0,129,255],[0,0,131,255],[0,0,133,255],[0,0,135,255],[0,0,137,255],[0,0,139,255],[0,0,141,255],[0,0,143,255],[0,0,145,255],[0,0,147,255],[0,0,149,255],[0,0,151,255],[0,0,153,255],[0,0,155,255],[0,0,157,255],[0,0,159,255],[0,0,161,255],[0,0,163,255],[0,0,165,255],[0,0,167,255],[3,0,169,255],[6,0,171,255],[9,0,173,255],[12,0,175,255],[15,0,177,255],[18,0,179,255],[21,0,181,255],[24,0,183,255],[26,0,184,255],[29,0,186,255],[32,0,188,255],[35,0,190,255],[38,0,192,255],[41,0,194,255],[44,0,196,255],[47,0,198,255],[50,0,200,255],[52,0,197,255],[55,0,194,255],[57,0,191,255],[59,0,188,255],[62,0,185,255],[64,0,182,255],[66,0,179,255],[69,0,176,255],[71,0,174,255],[74,0,171,255],[76,0,168,255],[78,0,165,255],[81,0,162,255],[83,0,159,255],[85,0,156,255],[88,0,153,255],[90,0,150,255],[93,2,144,255],[96,4,138,255],[99,6,132,255],[102,8,126,255],[105,9,121,255],[108,11,115,255],[111,13,109,255],[114,15,103,255],[116,17,97,255],[119,19,91,255],[122,21,85,255],[125,23,79,255],[128,24,74,255],[131,26,68,255],[134,28,62,255],[137,30,56,255],[140,32,50,255],[143,34,47,255],[146,36,44,255],[149,38,41,255],[152,40,38,255],[155,41,35,255],[158,43,32,255],[161,45,29,255],[164,47,26,255],[166,49,24,255],[169,51,21,255],[172,53,18,255],[175,55,15,255],[178,56,12,255],[181,58,9,255],[184,60,6,255],[187,62,3,255],[190,64,0,255],[194,66,0,255],[198,68,0,255],[201,70,0,255],[205,72,0,255],[209,73,0,255],[213,75,0,255],[217,77,0,255],[221,79,0,255],[224,81,0,255],[228,83,0,255],[232,85,0,255],[236,87,0,255],[240,88,0,255],[244,90,0,255],[247,92,0,255],[251,94,0,255],[255,96,0,255],[255,98,3,255],[255,100,6,255],[255,102,9,255],[255,104,12,255],[255,105,15,255],[255,107,18,255],[255,109,21,255],[255,111,24,255],[255,113,26,255],[255,115,29,255],[255,117,32,255],[255,119,35,255],[255,120,38,255],[255,122,41,255],[255,124,44,255],[255,126,47,255],[255,128,50,255],[255,130,53,255],[255,132,56,255],[255,134,59,255],[255,136,62,255],[255,137,65,255],[255,139,68,255],[255,141,71,255],[255,143,74,255],[255,145,76,255],[255,147,79,255],[255,149,82,255],[255,151,85,255],[255,152,88,255],[255,154,91,255],[255,156,94,255],[255,158,97,255],[255,160,100,255],[255,162,103,255],[255,164,106,255],[255,166,109,255],[255,168,112,255],[255,169,115,255],[255,171,118,255],[255,173,121,255],[255,175,124,255],[255,177,126,255],[255,179,129,255],[255,181,132,255],[255,183,135,255],[255,184,138,255],[255,186,141,255],[255,188,144,255],[255,190,147,255],[255,192,150,255],[255,194,153,255],[255,196,156,255],[255,198,159,255],[255,200,162,255],[255,201,165,255],[255,203,168,255],[255,205,171,255],[255,207,174,255],[255,209,176,255],[255,211,179,255],[255,213,182,255],[255,215,185,255],[255,216,188,255],[255,218,191,255],[255,220,194,255],[255,222,197,255],[255,224,200,255],[255,226,203,255],[255,228,206,255],[255,229,210,255],[255,231,213,255],[255,233,216,255],[255,235,219,255],[255,237,223,255],[255,239,226,255],[255,240,229,255],[255,242,232,255],[255,244,236,255],[255,246,239,255],[255,248,242,255],[255,250,245,255],[255,251,249,255],[255,253,252,255],[255,255,255,255]]},pet20Step:{name:"PET 20 Step",numColors:256,colors:[[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255]]},gray:{name:"Gray",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,1,1]]}},jet:{name:"Jet",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.35,0,0],[.66,1,1],[.89,1,1],[1,.5,.5]],green:[[0,0,0],[.125,0,0],[.375,1,1],[.64,1,1],[.91,0,0],[1,0,0]],blue:[[0,.5,.5],[.11,1,1],[.34,1,1],[.65,0,0],[1,0,0]]}},hsv:{name:"HSV",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[.15873,1,1],[.174603,.96875,.96875],[.333333,.03125,.03125],[.349206,0,0],[.666667,0,0],[.68254,.03125,.03125],[.84127,.96875,.96875],[.857143,1,1],[1,1,1]],green:[[0,0,0],[.15873,.9375,.9375],[.174603,1,1],[.507937,1,1],[.666667,.0625,.0625],[.68254,0,0],[1,0,0]],blue:[[0,0,0],[.333333,0,0],[.349206,.0625,.0625],[.507937,1,1],[.84127,1,1],[.857143,.9375,.9375],[1,.09375,.09375]]}},hot:{name:"Hot",numColors:256,gamma:1,segmentedData:{red:[[0,.0416,.0416],[.365079,1,1],[1,1,1]],green:[[0,0,0],[.365079,0,0],[.746032,1,1],[1,1,1]],blue:[[0,0,0],[.746032,0,0],[1,1,1]]}},cool:{name:"Cool",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,1,1],[1,0,0]],blue:[[0,1,1],[1,1,1]]}},spring:{name:"Spring",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,0,0]]}},summer:{name:"Summer",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,.5,.5],[1,1,1]],blue:[[0,.4,.4],[1,.4,.4]]}},autumn:{name:"Autumn",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,0,0]]}},winter:{name:"Winter",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,0,0]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,.5,.5]]}},bone:{name:"Bone",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.746032,.652778,.652778],[1,1,1]],green:[[0,0,0],[.365079,.319444,.319444],[.746032,.777778,.777778],[1,1,1]],blue:[[0,0,0],[.365079,.444444,.444444],[1,1,1]]}},copper:{name:"Copper",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.809524,1,1],[1,1,1]],green:[[0,0,0],[1,.7812,.7812]],blue:[[0,0,0],[1,.4975,.4975]]}},spectral:{name:"Spectral",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.05,.4667,.4667],[.1,.5333,.5333],[.15,0,0],[.2,0,0],[.25,0,0],[.3,0,0],[.35,0,0],[.4,0,0],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,.7333,.7333],[.7,.9333,.9333],[.75,1,1],[.8,1,1],[.85,1,1],[.9,.8667,.8667],[.95,.8,.8],[1,.8,.8]],green:[[0,0,0],[.05,0,0],[.1,0,0],[.15,0,0],[.2,0,0],[.25,.4667,.4667],[.3,.6,.6],[.35,.6667,.6667],[.4,.6667,.6667],[.45,.6,.6],[.5,.7333,.7333],[.55,.8667,.8667],[.6,1,1],[.65,1,1],[.7,.9333,.9333],[.75,.8,.8],[.8,.6,.6],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]],blue:[[0,0,0],[.05,.5333,.5333],[.1,.6,.6],[.15,.6667,.6667],[.2,.8667,.8667],[.25,.8667,.8667],[.3,.8667,.8667],[.35,.6667,.6667],[.4,.5333,.5333],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,0,0],[.7,0,0],[.75,0,0],[.8,0,0],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]]}},coolwarm:{name:"CoolWarm",numColors:256,gamma:1,segmentedData:{red:[[0,.2298057,.2298057],[.03125,.26623388,.26623388],[.0625,.30386891,.30386891],[.09375,.342804478,.342804478],[.125,.38301334,.38301334],[.15625,.424369608,.424369608],[.1875,.46666708,.46666708],[.21875,.509635204,.509635204],[.25,.552953156,.552953156],[.28125,.596262162,.596262162],[.3125,.639176211,.639176211],[.34375,.681291281,.681291281],[.375,.722193294,.722193294],[.40625,.761464949,.761464949],[.4375,.798691636,.798691636],[.46875,.833466556,.833466556],[.5,.865395197,.865395197],[.53125,.897787179,.897787179],[.5625,.924127593,.924127593],[.59375,.944468518,.944468518],[.625,.958852946,.958852946],[.65625,.96732803,.96732803],[.6875,.969954137,.969954137],[.71875,.966811177,.966811177],[.75,.958003065,.958003065],[.78125,.943660866,.943660866],[.8125,.923944917,.923944917],[.84375,.89904617,.89904617],[.875,.869186849,.869186849],[.90625,.834620542,.834620542],[.9375,.795631745,.795631745],[.96875,.752534934,.752534934],[1,.705673158,.705673158]],green:[[0,.298717966,.298717966],[.03125,.353094838,.353094838],[.0625,.406535296,.406535296],[.09375,.458757618,.458757618],[.125,.50941904,.50941904],[.15625,.558148092,.558148092],[.1875,.604562568,.604562568],[.21875,.648280772,.648280772],[.25,.688929332,.688929332],[.28125,.726149107,.726149107],[.3125,.759599947,.759599947],[.34375,.788964712,.788964712],[.375,.813952739,.813952739],[.40625,.834302879,.834302879],[.4375,.849786142,.849786142],[.46875,.860207984,.860207984],[.5,.86541021,.86541021],[.53125,.848937047,.848937047],[.5625,.827384882,.827384882],[.59375,.800927443,.800927443],[.625,.769767752,.769767752],[.65625,.734132809,.734132809],[.6875,.694266682,.694266682],[.71875,.650421156,.650421156],[.75,.602842431,.602842431],[.78125,.551750968,.551750968],[.8125,.49730856,.49730856],[.84375,.439559467,.439559467],[.875,.378313092,.378313092],[.90625,.312874446,.312874446],[.9375,.24128379,.24128379],[.96875,.157246067,.157246067],[1,.01555616,.01555616]],blue:[[0,.753683153,.753683153],[.03125,.801466763,.801466763],[.0625,.84495867,.84495867],[.09375,.883725899,.883725899],[.125,.917387822,.917387822],[.15625,.945619588,.945619588],[.1875,.968154911,.968154911],[.21875,.98478814,.98478814],[.25,.995375608,.995375608],[.28125,.999836203,.999836203],[.3125,.998151185,.998151185],[.34375,.990363227,.990363227],[.375,.976574709,.976574709],[.40625,.956945269,.956945269],[.4375,.931688648,.931688648],[.46875,.901068838,.901068838],[.5,.865395561,.865395561],[.53125,.820880546,.820880546],[.5625,.774508472,.774508472],[.59375,.726736146,.726736146],[.625,.678007945,.678007945],[.65625,.628751763,.628751763],[.6875,.579375448,.579375448],[.71875,.530263762,.530263762],[.75,.481775914,.481775914],[.78125,.434243684,.434243684],[.8125,.387970225,.387970225],[.84375,.343229596,.343229596],[.875,.300267182,.300267182],[.90625,.259301199,.259301199],[.9375,.220525627,.220525627],[.96875,.184115123,.184115123],[1,.150232812,.150232812]]}},blues:{name:"Blues",numColors:256,gamma:1,segmentedData:{red:[[0,.9686274528503418,.9686274528503418],[.125,.8705882430076599,.8705882430076599],[.25,.7764706015586853,.7764706015586853],[.375,.6196078658103943,.6196078658103943],[.5,.41960784792900085,.41960784792900085],[.625,.25882354378700256,.25882354378700256],[.75,.12941177189350128,.12941177189350128],[.875,.0313725508749485,.0313725508749485],[1,.0313725508749485,.0313725508749485]],green:[[0,.9843137264251709,.9843137264251709],[.125,.9215686321258545,.9215686321258545],[.25,.8588235378265381,.8588235378265381],[.375,.7921568751335144,.7921568751335144],[.5,.6823529601097107,.6823529601097107],[.625,.572549045085907,.572549045085907],[.75,.4431372582912445,.4431372582912445],[.875,.3176470696926117,.3176470696926117],[1,.1882352977991104,.1882352977991104]],blue:[[0,1,1],[.125,.9686274528503418,.9686274528503418],[.25,.9372549057006836,.9372549057006836],[.375,.8823529481887817,.8823529481887817],[.5,.8392156958580017,.8392156958580017],[.625,.7764706015586853,.7764706015586853],[.75,.7098039388656616,.7098039388656616],[.875,.6117647290229797,.6117647290229797],[1,.41960784792900085,.41960784792900085]]}}},er={MINIMUM_SLAB_THICKNESS:.05,MAXIMUM_RAY_DISTANCE:1e6};Object.freeze(er);const Ro=.001;function vD(t){const e=Object.getOwnPropertyNames(t);for(const r of e){const n=t[r];n&&typeof n=="object"&&vD(n)}return Object.freeze(t)}const bB={axial:{viewPlaneNormal:[0,0,-1],viewUp:[0,-1,0],viewRight:[1,0,0]},sagittal:{viewPlaneNormal:[1,0,0],viewUp:[0,0,1],viewRight:[0,1,0]},coronal:{viewPlaneNormal:[0,-1,0],viewUp:[0,0,1],viewRight:[1,0,0]}},Ds=vD(bB),yD=[{name:"CT-AAA",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 143.556 0 166.222 0.686275 214.389 0.696078 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 143.556 0.615686 0.356863 0.184314 166.222 0.882353 0.603922 0.290196 214.389 1 1 1 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-AAA2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"16 -3024 0 129.542 0 145.244 0.166667 157.02 0.5 169.918 0.627451 395.575 0.8125 1578.73 0.8125 3071 0.8125",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"32 -3024 0 0 0 129.542 0.54902 0.25098 0.14902 145.244 0.6 0.627451 0.843137 157.02 0.890196 0.47451 0.6 169.918 0.992157 0.870588 0.392157 395.575 1 0.886275 0.658824 1578.73 1 0.829256 0.957922 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -16.4458 0 641.385 0.715686 3071 0.705882",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -16.4458 0.729412 0.254902 0.301961 641.385 0.905882 0.815686 0.552941 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bones",gradientOpacity:"4 0 1 985.12 1",specularPower:"1",scalarOpacity:"8 -1000 0 152.19 0 278.93 0.190476 952 0.2",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -1000 0.3 0.3 1 -488 0.3 1 0.3 463.28 1 0 0 659.15 1 0.912535 0.0374849 953 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-Cardiac",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 -77.6875 0 94.9518 0.285714 179.052 0.553571 260.439 0.848214 3071 0.875",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 -77.6875 0.54902 0.25098 0.14902 94.9518 0.882353 0.603922 0.290196 179.052 1 0.937033 0.954531 260.439 0.615686 0 0 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 42.8964 0 163.488 0.428571 277.642 0.776786 1587 0.754902 3071 0.754902",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 42.8964 0.54902 0.25098 0.14902 163.488 0.917647 0.639216 0.0588235 277.642 1 0.878431 0.623529 1587 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -3024 0 -86.9767 0 45.3791 0.169643 139.919 0.589286 347.907 0.607143 1224.16 0.607143 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -3024 0 0 0 -86.9767 0 0.25098 1 45.3791 1 0 0 139.919 1 0.894893 0.894893 347.907 1 1 0.25098 1224.16 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Contrast-Enhanced",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 67.0106 0 251.105 0.446429 439.291 0.625 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 67.0106 0.54902 0.25098 0.14902 251.105 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Vessels",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -3024 0 -1278.35 0 22.8277 0.428571 439.291 0.625 3071 0.616071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -3024 0 0 0 -1278.35 0.54902 0.25098 0.14902 22.8277 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 136.47 0 159.215 0.258929 318.43 0.571429 478.693 0.776786 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 136.47 0 0 0 159.215 0.159804 0.159804 0.159804 318.43 0.764706 0.764706 0.764706 478.693 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-2",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 142.677 0 145.016 0.116071 192.174 0.5625 217.24 0.776786 384.347 0.830357 3661 0.830357",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 142.677 0 0 0 145.016 0.615686 0 0.0156863 192.174 0.909804 0.454902 0 217.24 0.972549 0.807843 0.611765 384.347 0.909804 0.909804 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -2048 0 128.643 0 129.982 0.0982143 173.636 0.669643 255.884 0.857143 584.878 0.866071 3661 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -2048 0 0 0 128.643 0 0 0 129.982 0.615686 0 0.0156863 173.636 0.909804 0.454902 0 255.884 0.886275 0.886275 0.886275 584.878 0.968627 0.968627 0.968627 3661 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cropped-Volume-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -451 0 -450 1 1050 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -451 0 0 0 -450 0.0556356 0.0556356 0.0556356 1050 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Fat",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"14 -1000 0 -100 0 -99 0.15 -60 0.15 -59 0 101.2 0 952 0",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"36 -1000 0.3 0.3 1 -497.5 0.3 1 0.3 -99 0 0 1 -76.946 0 1 0 -65.481 0.835431 0.888889 0.0165387 83.89 1 0 0 463.28 1 0 0 659.15 1 0.912535 0.0374849 2952 1 0.300267 0.299886",diffuse:"1",interpolation:"1"},{name:"CT-Liver-Vasculature",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 149.113 0 157.884 0.482143 339.96 0.660714 388.526 0.830357 1197.95 0.839286 3661 0.848214",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 149.113 0 0 0 157.884 0.501961 0.25098 0 339.96 0.695386 0.59603 0.36886 388.526 0.854902 0.85098 0.827451 1197.95 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Lung",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"12 -1000 0 -600 0 -599 0.15 -400 0.15 -399 0 2952 0",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -1000 0.3 0.3 1 -600 0 0 1 -530 0.134704 0.781726 0.0724558 -460 0.929244 1 0.109473 -400 0.888889 0.254949 0.0240258 2952 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -637.62 0 700 1 3071 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -637.62 1 1 1 700 1 1 1 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Muscle",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 -155.407 0 217.641 0.676471 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 -155.407 0.54902 0.25098 0.14902 217.641 0.882353 0.603922 0.290196 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Pulmonary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 -568.625 0 -364.081 0.0714286 -244.813 0.401786 18.2775 0.607143 447.798 0.830357 3592.73 0.839286",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 -568.625 0 0 0 -364.081 0.396078 0.301961 0.180392 -244.813 0.611765 0.352941 0.0705882 18.2775 0.843137 0.0156863 0.156863 447.798 0.752941 0.752941 0.752941 3592.73 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Soft-Tissue",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -167.01 0 -160 1 240 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -167.01 0 0 0 -160 0.0556356 0.0556356 0.0556356 240 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Air",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0.705882 -900.0 0.715686 -500.0 0 3071 0",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 1 1 1 -900.0 0.2 1.0 1.0 -500.0 0.3 0.3 1.0 3071 0 0 0 ",diffuse:"0.9",interpolation:"1"},{name:"MR-Angio",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 151.354 0 158.279 0.4375 190.112 0.580357 200.873 0.732143 3661 0.741071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 151.354 0 0 0 158.279 0.74902 0.376471 0 190.112 1 0.866667 0.733333 200.873 0.937255 0.937255 0.937255 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-Default",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 0 0 20 0 40 0.15 120 0.3 220 0.375 1024 0.5",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 0 0 0 0 20 0.168627 0 0 40 0.403922 0.145098 0.0784314 120 0.780392 0.607843 0.380392 220 0.847059 0.835294 0.788235 1024 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"8 0 0 98.3725 0 416.637 1 2800 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"16 0 1 1 1 98.3725 1 1 1 416.637 1 1 1 2800 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-T2-Brain",gradientOpacity:"4 0 1 160.25 1",specularPower:"40",scalarOpacity:"10 0 0 36.05 0 218.302 0.171429 412.406 1 641 1",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"16 0 0 0 0 98.7223 0.956863 0.839216 0.192157 412.406 0 0.592157 0.807843 641 1 1 1",diffuse:"0.6",interpolation:"1"},{name:"DTI-FA-Brain",gradientOpacity:"4 0 1 0.9950 1",specularPower:"40",scalarOpacity:"16 0 0 0 0 0.3501 0.0158 0.49379 0.7619 0.6419 1 0.9920 1 0.9950 0 0.9950 0",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"28 0 1 0 0 0 1 0 0 0.24974 0.4941 1 0 0.49949 0 0.9882 1 0.7492 0.51764 0 1 0.9950 1 0 0 0.9950 1 0 0",diffuse:"0.9",interpolation:"1"}],IB={slicer3D:[160/255,164/255,217/255]},Cl=Object.freeze(Object.defineProperty({__proto__:null,BACKGROUND_COLORS:IB,CPU_COLORMAPS:b5,EPSILON:Ro,MPR_CAMERA_VALUES:Ds,RENDERING_DEFAULTS:er,VIEWPORT_PRESETS:yD},Symbol.toStringTag,{value:"Module"})),q0={},Ed={get:t=>q0[t],set:t=>{const e=t.id;q0[e]=t},delete:t=>delete q0[t],getAll:()=>{const e=Object.keys(q0).map(r=>q0[r]);return e.sort((r,n)=>r.id[0]==="_"&&n.id[0]!=="_"?1:r.id[0]!=="_"&&n.id[0]==="_"?-1:0),e}};class OB{constructor(){this.listeners={},this.debouncedListeners={}}reset(){this.listeners={},this.debouncedListeners={}}addEventListenerOnce(e,r){const n=i=>{this.removeEventListener(e,n),r.call(this,i)};this.addEventListener(e,n)}addEventListener(e,r){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].indexOf(r)===-1&&this.listeners[e].push(r)}addEventListenerDebounced(e,r,n){this.debouncedListeners[e]=this.debouncedListeners[e]||{};const i=this.debouncedListeners[e];if(!i[r]){const o=a=>{i[r]&&clearTimeout(i[r].timeoutId),i[r].timeoutId=setTimeout(()=>{r.call(this,a)},n)};i[r]={original:r,handle:o,timeoutId:null},this.addEventListener(e,o)}}removeEventListenerDebounced(e,r){var n;if((n=this.debouncedListeners[e])!=null&&n[r]){const i=this.debouncedListeners[e][r];this.removeEventListener(e,i.handle),clearTimeout(i.timeoutId),delete this.debouncedListeners[e][r]}}removeEventListener(e,r){if(!this.listeners[e])return;const n=this.listeners[e],i=n.length;for(let o=0;o(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16))}function De(t=Ce,e,r=null){if(!e)throw new Error("Event type was not defined");const n=new CustomEvent(e,{detail:r,cancelable:!0});return t==null?void 0:t.dispatchEvent(n)}var MB=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,i,o;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!t(e[i],r[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r};const xD=rh(MB);var lT=Object.prototype.toString,wD=function(e){var r=lT.call(e),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&lT.call(e.callee)==="[object Function]"),n},mv,uT;function RB(){if(uT)return mv;uT=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=wD,i=Object.prototype.propertyIsEnumerable,o=!i.call({toString:null},"toString"),a=i.call(function(){},"prototype"),s=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=function(d){var h=d.constructor;return h&&h.prototype===d},l={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if(typeof window>"u")return!1;for(var d in window)try{if(!l["$"+d]&&e.call(window,d)&&window[d]!==null&&typeof window[d]=="object")try{c(window[d])}catch{return!0}}catch{return!0}return!1}(),u=function(d){if(typeof window>"u"||!f)return c(d);try{return c(d)}catch{return!1}};t=function(h){var g=h!==null&&typeof h=="object",p=r.call(h)==="[object Function]",v=n(h),x=g&&r.call(h)==="[object String]",m=[];if(!g&&!p&&!v)throw new TypeError("Object.keys called on a non-object");var y=a&&p;if(x&&h.length>0&&!e.call(h,0))for(var w=0;w0)for(var C=0;C"u"||!Er?Nt:Er(Uint8Array),Hc={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Nt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Nt:ArrayBuffer,"%ArrayIteratorPrototype%":Ml&&Er?Er([][Symbol.iterator]()):Nt,"%AsyncFromSyncIteratorPrototype%":Nt,"%AsyncFunction%":zl,"%AsyncGenerator%":zl,"%AsyncGeneratorFunction%":zl,"%AsyncIteratorPrototype%":zl,"%Atomics%":typeof Atomics>"u"?Nt:Atomics,"%BigInt%":typeof BigInt>"u"?Nt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Nt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Nt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Nt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":rG,"%eval%":eval,"%EvalError%":iG,"%Float32Array%":typeof Float32Array>"u"?Nt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Nt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Nt:FinalizationRegistry,"%Function%":_D,"%GeneratorFunction%":zl,"%Int8Array%":typeof Int8Array>"u"?Nt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Nt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Nt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Ml&&Er?Er(Er([][Symbol.iterator]())):Nt,"%JSON%":typeof JSON=="object"?JSON:Nt,"%Map%":typeof Map>"u"?Nt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Ml||!Er?Nt:Er(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Nt:Promise,"%Proxy%":typeof Proxy>"u"?Nt:Proxy,"%RangeError%":oG,"%ReferenceError%":aG,"%Reflect%":typeof Reflect>"u"?Nt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Nt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Ml||!Er?Nt:Er(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Nt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Ml&&Er?Er(""[Symbol.iterator]()):Nt,"%Symbol%":Ml?Symbol:Nt,"%SyntaxError%":zu,"%ThrowTypeError%":cG,"%TypedArray%":uG,"%TypeError%":wu,"%Uint8Array%":typeof Uint8Array>"u"?Nt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Nt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Nt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Nt:Uint32Array,"%URIError%":sG,"%WeakMap%":typeof WeakMap>"u"?Nt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Nt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Nt:WeakSet};if(Er)try{null.error}catch(t){var fG=Er(Er(t));Hc["%Error.prototype%"]=fG}var dG=function t(e){var r;if(e==="%AsyncFunction%")r=yv("async function () {}");else if(e==="%GeneratorFunction%")r=yv("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=yv("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&Er&&(r=Er(i.prototype))}return Hc[e]=r,r},pT={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},lh=TD,v1=nG,hG=lh.call(Function.call,Array.prototype.concat),gG=lh.call(Function.apply,Array.prototype.splice),mT=lh.call(Function.call,String.prototype.replace),y1=lh.call(Function.call,String.prototype.slice),pG=lh.call(Function.call,RegExp.prototype.exec),mG=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,vG=/\\(\\)?/g,yG=function(e){var r=y1(e,0,1),n=y1(e,-1);if(r==="%"&&n!=="%")throw new zu("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new zu("invalid intrinsic syntax, expected opening `%`");var i=[];return mT(e,mG,function(o,a,s,c){i[i.length]=s?mT(c,vG,"$1"):a||o}),i},xG=function(e,r){var n=e,i;if(v1(pT,n)&&(i=pT[n],n="%"+i[0]+"%"),v1(Hc,n)){var o=Hc[n];if(o===zl&&(o=dG(n)),typeof o>"u"&&!r)throw new wu("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:o}}throw new zu("intrinsic "+e+" does not exist!")},ED=function(e,r){if(typeof e!="string"||e.length===0)throw new wu("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new wu('"allowMissing" argument must be a boolean');if(pG(/^%?[^%]*%?$/,e)===null)throw new zu("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=yG(e),i=n.length>0?n[0]:"",o=xG("%"+i+"%",r),a=o.name,s=o.value,c=!1,l=o.alias;l&&(i=l[0],gG(n,hG([0,1],l)));for(var f=1,u=!0;f=n.length){var p=jc(s,d);u=!!p,u&&"get"in p&&!("originalValue"in p.get)?s=p.get:s=s[d]}else u=v1(s,d),s=s[d];u&&!c&&(Hc[a]=s)}}return s},wG=ED,yp=wG("%Object.defineProperty%",!0)||!1;if(yp)try{yp({},"a",{value:1})}catch{yp=!1}var DD=yp,CG=ED,xp=CG("%Object.getOwnPropertyDescriptor%",!0);if(xp)try{xp([],"length")}catch{xp=null}var SG=xp,vT=DD,TG=CD,Rl=SD,yT=SG,_G=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new Rl("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new Rl("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Rl("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Rl("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Rl("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Rl("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,c=!!yT&&yT(e,r);if(vT)vT(e,r,{configurable:a===null&&c?c.configurable:!a,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:o===null&&c?c.writable:!o});else if(s||!i&&!o&&!a)e[r]=n;else throw new TG("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},I5=DD,bD=function(){return!!I5};bD.hasArrayLengthDefineBug=function(){if(!I5)return null;try{return I5([],"length",{value:1}).length!==1}catch{return!0}};var EG=bD,DG=PB,bG=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",IG=Object.prototype.toString,OG=Array.prototype.concat,xT=_G,MG=function(t){return typeof t=="function"&&IG.call(t)==="[object Function]"},ID=EG(),RG=function(t,e,r,n){if(e in t){if(n===!0){if(t[e]===r)return}else if(!MG(n)||!n())return}ID?xT(t,e,r,!0):xT(t,e,r)},OD=function(t,e){var r=arguments.length>2?arguments[2]:{},n=DG(e);bG&&(n=OG.call(n,Object.getOwnPropertySymbols(e)));for(var i=0;inull};function _o(t){if(t==null||t.isA)return t;if(!t.vtkClass)return So.console&&So.console.error&&So.console.error("Invalid VTK object"),null;const e=AD[t.vtkClass];if(!e)return So.console&&So.console.error&&So.console.error(`No vtk class found for Object of type ${t.vtkClass}`),null;const r={...t};Object.keys(r).forEach(i=>{r[i]&&typeof r[i]=="object"&&r[i].vtkClass&&(r[i]=_o(r[i]))});const n=e(r);return n&&n.modified&&n.modified(),n}function WG(t,e){AD[t]=e}_o.register=WG;class wv extends Array{push(){for(let e=0;e{VD[t]=Ic});So.console=console.hasOwnProperty("log")?console:VD;const Hs={debug:Ic,error:So.console.error||Ic,info:So.console.info||Ic,log:So.console.log||Ic,warn:So.console.warn||Ic};function FD(t,e){Hs[t]&&(Hs[t]=e||Ic)}function UD(){Hs.log(...arguments)}function BD(){Hs.info(...arguments)}function x1(){Hs.debug(...arguments)}function Dt(){Hs.error(...arguments)}function zm(){Hs.warn(...arguments)}const wT={};function GD(t){wT[t]||(Hs.error(t),wT[t]=!0)}const Zr=Object.create(null);Zr.Float32Array=Float32Array;Zr.Float64Array=Float64Array;Zr.Uint8Array=Uint8Array;Zr.Int8Array=Int8Array;Zr.Uint16Array=Uint16Array;Zr.Int16Array=Int16Array;Zr.Uint32Array=Uint32Array;Zr.Int32Array=Int32Array;Zr.Uint8ClampedArray=Uint8ClampedArray;try{Zr.BigInt64Array=BigInt64Array,Zr.BigUint64Array=BigUint64Array}catch{}function h0(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n1&&arguments[1]!==void 0?arguments[1]:2,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e3;const n=["TB","GB","MB","KB"];let i=Number(t),o="B";for(;i>r;)i/=r,o=n.pop();return`${i.toFixed(e)} ${o}`}function $D(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ";const r=[];let n=t;for(;n>1e3;)r.push(`000${n%1e3}`.slice(-3)),n=Math.floor(n/1e3);return n>0&&r.push(n),r.reverse(),r.join(e)}function jD(t){Object.keys(t).forEach(e=>{Array.isArray(t[e])&&(t[e]=[].concat(t[e]))})}function jG(t){return Object.values(Zr).some(e=>t instanceof e)}function HG(t,e){if(t===e)return!0;if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let r=0;rt[r]===e)}function HD(t){return t&&t.isA?t.getState():t}function zx(t){setTimeout(t,0)}function KD(t,e){const r=performance.now();t.finally(()=>{const n=performance.now()-r;e(n)})}function fn(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};jD(e);const r=[];if(Number.isInteger(e.mtime)||(e.mtime=++O5),!("classHierarchy"in e))e.classHierarchy=new wv("vtkObject");else if(!(e.classHierarchy instanceof wv)){const o=new wv;for(let a=0;a!!e.deleted,t.modified=o=>{if(e.deleted){Dt("instance deleted - cannot call any method");return}o&&oa&&a(t)))},t.onModified=o=>{if(e.deleted)return Dt("instance deleted - cannot call any method"),null;const a=r.length;return r.push(o),i(a)},t.getMTime=()=>e.mtime,t.isA=o=>{let a=e.classHierarchy.length;for(;a--;)if(e.classHierarchy[a]===o)return!0;return!1},t.getClassName=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.classHierarchy[e.classHierarchy.length-1-o]},t.set=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,c=!1;return Object.keys(o).forEach(l=>{const f=s?null:t[`set${jm(l)}`];f&&Array.isArray(o[l])&&f.length>1?c=f(...o[l])||c:f?c=f(o[l])||c:(["mtime"].indexOf(l)===-1&&!a&&zm(`Warning: Set value to model directly ${l}, ${o[l]}`),c=e[l]!==o[l]||c,e[l]=o[l])}),c},t.get=function(){for(var o=arguments.length,a=new Array(o),s=0;s{c[l]=e[l]}),c},t.getReferenceByName=o=>e[o],t.delete=()=>{Object.keys(e).forEach(o=>delete e[o]),r.forEach((o,a)=>n(a)),e.deleted=!0},t.getState=()=>{if(e.deleted)return null;const o={...e,vtkClass:t.getClassName()};Object.keys(o).forEach(s=>{o[s]===null||o[s]===void 0||s[0]==="_"?delete o[s]:o[s].isA?o[s]=o[s].getState():Array.isArray(o[s])?o[s]=o[s].map(HD):jG(o[s])&&(o[s]=Array.from(o[s]))});const a={};return Object.keys(o).sort().forEach(s=>{a[s]=o[s]}),a.mtime&&delete a.mtime,a},t.shallowCopy=function(o){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(o.getClassName()!==t.getClassName())throw new Error(`Cannot ShallowCopy ${o.getClassName()} into ${t.getClassName()}`);const s=o.get(),c=Object.keys(e).sort();Object.keys(s).sort().forEach(f=>{const u=c.indexOf(f);u===-1?a&&x1(`add ${f} in shallowCopy`):c.splice(u,1),e[f]=s[f]}),c.length&&a&&x1(`Untouched keys: ${c.join(", ")}`),t.modified()},t.toJSON=function(){return t.getState()},t}const qG={object(t,e,r){return function(){return{...e[r.name]}}}};function gi(t,e,r){r.forEach(n=>{if(typeof n=="object"){const i=qG[n.type];i?t[`get${Yn(n.name)}`]=i(t,e,n):t[`get${Yn(n.name)}`]=()=>e[n.name]}else t[`get${Yn(n)}`]=()=>e[n]})}const qD={enum(t,e,r){const n=`_on${Yn(r.name)}Changed`;return i=>{var o;if(typeof i=="string"){if(r.enum[i]!==void 0)return e[r.name]!==r.enum[i]?(e[r.name]=r.enum[i],t.modified(),!0):!1;throw Dt(`Set Enum with invalid argument ${r}, ${i}`),new RangeError("Set Enum with invalid string argument")}if(typeof i=="number"){if(e[r.name]!==i){if(Object.keys(r.enum).map(a=>r.enum[a]).indexOf(i)!==-1){const a=e[r.name];return e[r.name]=i,(o=e[n])==null||o.call(e,t,e,i,a),t.modified(),!0}throw Dt(`Set Enum outside numeric range ${r}, ${i}`),new RangeError("Set Enum outside numeric range")}return!1}throw Dt(`Set Enum with invalid argument (String/Number) ${r}, ${i}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(t,e,r){var i;((i=r.params)==null?void 0:i.length)===1&&zm('Setter of type "object" with a single "param" field is not supported');const n=`_on${Yn(r.name)}Changed`;return function(){var l,f;for(var o=arguments.length,a=new Array(o),s=0;s1&&((l=r.params)!=null&&l.length)?c=r.params.reduce((u,d,h)=>Object.assign(u,{[d]:a[h]}),{}):c=a[0],!xD(e[r.name],c)){const u=e[r.name];return e[r.name]=c,(f=e[n])==null||f.call(e,t,e,c,u),t.modified(),!0}return!1}}};function CT(t){if(typeof t=="object"){const e=qD[t.type];if(e)return(r,n)=>e(r,n,t);throw Dt(`No setter for field ${t}`),new TypeError("No setter for field")}return function(r,n){const i=`_on${Yn(t)}Changed`;return function(a){var s;if(n.deleted)return Dt("instance deleted - cannot call any method"),!1;if(n[t]!==a){const c=n[t.name];return n[t]=a,(s=n[i])==null||s.call(n,r,n,a,c),r.modified(),!0}return!1}}}function uh(t,e,r){r.forEach(n=>{typeof n=="object"?t[`set${Yn(n.name)}`]=CT(n)(t,e):t[`set${Yn(n)}`]=CT(n)(t,e)})}function Jn(t,e,r){gi(t,e,r),uh(t,e,r)}function g0(t,e,r){r.forEach(n=>{t[`get${Yn(n)}`]=()=>e[n]?Array.from(e[n]):e[n],t[`get${Yn(n)}ByReference`]=()=>e[n]})}function $x(t,e,r,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;r.forEach(o=>{if(e[o]&&n&&e[o].length!==n)throw new RangeError(`Invalid initial number of values for array (${o})`);const a=`_on${Yn(o)}Changed`;t[`set${Yn(o)}`]=function(){var h;if(e.deleted)return Dt("instance deleted - cannot call any method"),!1;for(var s=arguments.length,c=new Array(s),l=0;l=0)&&(f=f[0],d=!0),f==null)u=e[o]!==f;else{if(n&&f.length!==n)if(f.length{const c=e[o];s.forEach((l,f)=>{c[f]=l})}})}function jx(t,e,r,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;g0(t,e,r),$x(t,e,r,n,i)}function fh(t,e,r){for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){Dt("instance deleted - cannot call any method");return}if(g>=e.numberOfInputs){Dt(`algorithm ${t.getClassName()} only has ${e.numberOfInputs} input ports. To add more input ports, use addInputData()`);return}(e.inputData[g]!==h||e.inputConnection[g])&&(e.inputData[g]=h,e.inputConnection[g]=null,t.modified&&t.modified())}function o(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[h]&&(e.inputData[h]=e.inputConnection[h]()),e.inputData[h]}function a(h){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){Dt("instance deleted - cannot call any method");return}if(g>=e.numberOfInputs){let p=`algorithm ${t.getClassName()} only has `;p+=`${e.numberOfInputs}`,p+=" input ports. To add more input ports, use addInputConnection()",Dt(p);return}e.inputData[g]=null,e.inputConnection[g]=h}function s(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[h]}function c(){let h=e.numberOfInputs;for(;h&&!e.inputData[h-1]&&!e.inputConnection[h-1];)h--;return h===e.numberOfInputs&&e.numberOfInputs++,h}function l(h){if(e.deleted){Dt("instance deleted - cannot call any method");return}a(h,c())}function f(h){if(e.deleted){Dt("instance deleted - cannot call any method");return}i(h,c())}function u(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.deleted?(Dt("instance deleted - cannot call any method"),null):(t.shouldUpdate()&&t.update(),e.output[h])}t.shouldUpdate=()=>{var v,x;const h=t.getMTime();let g=1/0,p=n;for(;p--;){if(!e.output[p]||e.output[p].isDeleted())return!0;const m=e.output[p].getMTime();if(mg)return!0;return!1};function d(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const g=()=>u(h);return g.filter=t,g}if(e.numberOfInputs){let h=e.numberOfInputs;for(;h--;)e.inputData.push(null),e.inputConnection.push(null);t.setInputData=i,t.setInputConnection=a,t.addInputData=f,t.addInputConnection=l,t.getInputData=o,t.getInputConnection=s}n&&(t.getOutputData=u,t.getOutputPort=d),t.update=()=>{const h=[];if(e.numberOfInputs){let g=0;for(;ge.numberOfInputs,t.getNumberOfOutputPorts=()=>n||e.output.length,t.getInputArrayToProcess=h=>{const g=e.inputArrayToProcess[h],p=e.inputData[h];return g&&p?p[`get${g.fieldAssociation}`]().getArray(g.arrayName):null},t.setInputArrayToProcess=function(h,g,p){let v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"Scalars";for(;e.inputArrayToProcess.lengthu.apply(t,arguments),1-d);else if(u.apply(t,arguments)===Kx)break}}}t[`invoke${Yn(r)}`]=c,t[`on${Yn(r)}`]=function(l){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!l.apply)return console.error(`Invalid callback for event ${r}`),null;if(e.deleted)return Dt("instance deleted - cannot call any method"),null;const u=o++;return n.push([u,l,f]),n.sort((d,h)=>h[2]-d[2]),s(u)},t.delete=()=>{i(),n.forEach(l=>{let[f]=l;return a(f)})}}function Bt(t,e){const r=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const i={},o={};return t(o,i,n),Object.freeze(o)};return e&&_o.register(e,r),r}function dh(){for(var t=arguments.length,e=new Array(t),r=0;r!!a).map(a=>a(...i))}}function qx(t){return t&&t.isA&&t.isA("vtkObject")}function w1(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];if(qx(t)){if(n.indexOf(t)>=0)return r;n.push(t);const i=e(t);i!==void 0&&r.push(i);const o=t.get();Object.keys(o).forEach(a=>{const s=o[a];Array.isArray(s)?s.forEach(c=>{w1(c,e,r,n)}):w1(s,e,r,n)})}return r}function YD(t,e,r){var n=this;let i;const o=function(){for(var a=arguments.length,s=new Array(a),c=0;c{i=null,r||t.apply(l,s)},u=r&&!i;clearTimeout(i),i=setTimeout(f,e),u&&t.apply(l,s)};return o.cancel=()=>clearTimeout(i),o}function JD(t,e){let r=!1,n=null;function i(){r=!1,n!==null&&(o(...n),n=null)}function o(){for(var a=arguments.length,s=new Array(a),c=0;c2&&arguments[2]!==void 0?arguments[2]:{};e.keystore=Object.assign(e.keystore||{},r),t.setKey=(n,i)=>{e.keystore[n]=i},t.getKey=n=>e.keystore[n],t.getAllKeys=()=>Object.keys(e.keystore),t.deleteKey=n=>delete e.keystore[n],t.clearKeystore=()=>t.getAllKeys().forEach(n=>delete e.keystore[n])}let XG=1;const rg="__root__";function ZD(t,e){Xx(t,e);const r=t.delete;e.proxyId=`${XG++}`,e.ui=JSON.parse(JSON.stringify(e.ui||[])),gi(t,e,["proxyId","proxyGroup","proxyName"]),Jn(t,e,["proxyManager"]);const n={},i={};function o(l,f){i[f]||(i[f]=[]);const u=i[f];for(let d=0;d{e.ui=JSON.parse(JSON.stringify(l||[])),Object.keys(n).forEach(f=>delete n[f]),Object.keys(i).forEach(f=>delete i[f]),o(e.ui,rg),t.modified()};function a(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:rg;return i[l]}t.updateProxyProperty=(l,f)=>{const u=n[l];u?Object.assign(u,f):n[l]={...f}},t.activate=()=>{if(e.proxyManager){const l=`setActive${Yn(t.getProxyGroup().slice(0,-1))}`;e.proxyManager[l]&&e.proxyManager[l](t)}},e.propertyLinkSubscribers={},t.registerPropertyLinkForGC=(l,f)=>{f in e.propertyLinkSubscribers||(e.propertyLinkSubscribers[f]=[]),e.propertyLinkSubscribers[f].push(l)},t.gcPropertyLinks=l=>{const f=e.propertyLinkSubscribers[l]||[];for(;f.length;)f.pop().unbind(t)},e.propertyLinkMap={},t.getPropertyLink=function(l){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.propertyLinkMap[l])return e.propertyLinkMap[l];let u=null;const d=[];let h=0,g=!1;function p(w){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(g)return null;const S=[];let T=null;for(h=d.length;h--;){const E=d[h];E.instance===w?T=E:S.push(E)}if(!T)return null;const _=T.instance[`get${Yn(T.propertyName)}`]();if(!HG(_,u)||C){for(u=_,g=!0;S.length;){const E=S.pop();E.instance.set({[E.propertyName]:u})}g=!1}return e.propertyLinkMap[l].persistent&&(e.propertyLinkMap[l].value=_),_}function v(w,C){const S=[];for(h=d.length;h--;){const T=d[h];T.instance===w&&(T.propertyName===C||C===void 0)&&(T.subscription.unsubscribe(),S.push(h))}for(;S.length;)d.splice(S.pop(),1)}function x(w,C){let S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const T=w.onModified(p),_=d[0];return d.push({instance:w,propertyName:C,subscription:T}),S&&(e.propertyLinkMap[l].persistent&&e.propertyLinkMap[l].value!==void 0?w.set({[C]:e.propertyLinkMap[l].value}):_&&p(_.instance,!0)),{unsubscribe:()=>v(w,C)}}function m(){for(;d.length;)d.pop().subscription.unsubscribe()}const y={bind:x,unbind:v,unsubscribe:m,persistent:f};return e.propertyLinkMap[l]=y,y};function s(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:rg;const f=[],u=e.proxyId,d=a(l)||[];for(let h=0;hs().map(l=>l.name),t.getPropertyByName=l=>s().find(f=>f.name===l),t.getPropertyDomainByName=l=>(n[l]||{}).domain,t.getProxySection=()=>({id:e.proxyId,name:e.proxyGroup,ui:e.ui,properties:s()}),t.delete=()=>{const l=Object.keys(e.propertyLinkMap);let f=l.length;for(;f--;)e.propertyLinkMap[l[f]].unsubscribe();Object.keys(e.propertyLinkSubscribers).forEach(t.gcPropertyLinks),r()},t.getState=()=>null;function c(){if(e.links)for(let l=0;l{for(;i.length;)i.pop().unsubscribe();n()}}function e7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};e.this=t;function i(s){const c=Object.keys(s);let l=c.length;for(;l--;){const f=c[l];e[f].set(s[f])}}const o=Object.keys(n);let a=o.length;for(;a--;){const s=o[a];e[s]=n[s];const c=r[s];t[`set${Yn(s)}`]=l=>{if(l!==e[s]){e[s]=l;const f=c[l];i(f),t.modified()}}}o.length&&gi(t,e,o)}const ST=10,TT=40,_T=800;function t7(t){let e=0,r=0,n=0,i=0;return"detail"in t&&(r=t.detail),"wheelDelta"in t&&(r=-t.wheelDelta/120),"wheelDeltaY"in t&&(r=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=r,r=0),n=e*ST,i=r*ST,"deltaY"in t&&(i=t.deltaY),"deltaX"in t&&(n=t.deltaX),(n||i)&&t.deltaMode&&(t.deltaMode===1?(n*=TT,i*=TT):(n*=_T,i*=_T)),n&&!e&&(e=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:e,spinY:r||e,pixelX:n,pixelY:i||n}}var W={algo:Hx,capitalize:jm,chain:dh,debounce:YD,enumToString:KG,event:XD,EVENT_ABORT:Kx,formatBytesToProperUnit:zD,formatNumbersWithThousandSeparator:$D,get:gi,getArray:g0,getCurrentGlobalMTime:zG,getStateArrayMapFunc:HD,isVtkObject:qx,keystore:Xx,measurePromiseExecution:KD,moveToProtected:fh,newInstance:Bt,newTypedArray:h0,newTypedArrayFrom:$m,normalizeWheel:t7,obj:fn,proxy:ZD,proxyPropertyMapping:QD,proxyPropertyState:e7,safeArrays:jD,set:uh,setArray:$x,setGet:Jn,setGetArray:jx,setImmediate:zx,setLoggerFunction:FD,throttle:JD,traverseInstanceTree:w1,TYPED_ARRAYS:Zr,uncapitalize:WD,VOID:kD,vtkDebugMacro:x1,vtkErrorMacro:Dt,vtkInfoMacro:BD,vtkLogMacro:UD,vtkOnceErrorMacro:GD,vtkWarningMacro:zm,objectSetterMap:qD},Gr=Object.freeze({__proto__:null,VOID:kD,setLoggerFunction:FD,vtkLogMacro:UD,vtkInfoMacro:BD,vtkDebugMacro:x1,vtkErrorMacro:Dt,vtkWarningMacro:zm,vtkOnceErrorMacro:GD,TYPED_ARRAYS:Zr,newTypedArray:h0,newTypedArrayFrom:$m,capitalize:jm,_capitalize:Yn,uncapitalize:WD,formatBytesToProperUnit:zD,formatNumbersWithThousandSeparator:$D,setImmediateVTK:zx,measurePromiseExecution:KD,obj:fn,get:gi,set:uh,setGet:Jn,getArray:g0,setArray:$x,setGetArray:jx,moveToProtected:fh,algo:Hx,EVENT_ABORT:Kx,event:XD,newInstance:Bt,chain:dh,isVtkObject:qx,traverseInstanceTree:w1,debounce:YD,throttle:JD,keystore:Xx,proxy:ZD,proxyPropertyMapping:QD,proxyPropertyState:e7,normalizeWheel:t7,default:W});const n7={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},yt={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},YG=yt.FLOAT;var r7={DefaultDataType:YG,DataTypeByteSize:n7,VtkDataTypes:yt};const JG="WebGL",C1=Object.create(null);function i7(t,e){C1[t]=e}function ZG(){return Object.keys(C1)}function o7(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return C1[t]&&C1[t](e)}function QG(t,e){e.classHierarchy.push("vtkRenderWindow"),t.addRenderer=r=>{t.hasRenderer(r)||(r.setRenderWindow(t),e.renderers.push(r),t.modified())},t.removeRenderer=r=>{e.renderers=e.renderers.filter(n=>n!==r),t.modified()},t.hasRenderer=r=>e.renderers.indexOf(r)!==-1,t.newAPISpecificView=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return o7(r||e.defaultViewAPI,n)},t.addView=r=>{t.hasView(r)||(r.setRenderable(t),e._views.push(r),t.modified())},t.removeView=r=>{e._views=e._views.filter(n=>n!==r),t.modified()},t.hasView=r=>e._views.indexOf(r)!==-1,t.preRender=()=>{e.renderers.forEach(r=>{r.isActiveCameraCreated()||r.resetCamera()})},t.render=()=>{t.preRender(),e.interactor?e.interactor.render():e._views.forEach(r=>r.traverseAllPasses())},t.getStatistics=()=>{const r={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return e._views.forEach(n=>{n.getGraphicsMemoryInfo&&(r.gpuMemoryMB+=n.getGraphicsMemoryInfo()/1e6)}),e.renderers.forEach(n=>{const i=n.getViewProps(),o=e._views[0].getViewNodeFor(n);i.forEach(a=>{if(a.getVisibility()){r.propCount+=1;const s=a.getMapper&&a.getMapper();if(s&&s.getPrimitiveCount){const c=o.getViewNodeFor(s);if(c){c.getAllocatedGPUMemoryInBytes&&(r.gpuMemoryMB+=c.getAllocatedGPUMemoryInBytes()/1e6);const l=s.getPrimitiveCount();Object.keys(l).forEach(f=>{r[f]||(r[f]=0),r[f]+=l[f]})}}}else r.invisiblePropCount+=1})}),r.str=Object.keys(r).map(n=>`${n}: ${r[n]}`).join(` -`),r},t.captureImages=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"image/png",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return W.setImmediate(t.render),e._views.map(i=>i.captureNextImage?i.captureNextImage(r,n):void 0).filter(i=>!!i)},t.addRenderWindow=r=>e.childRenderWindows.includes(r)?!1:(e.childRenderWindows.push(r),t.modified(),!0),t.removeRenderWindow=r=>{const n=e.childRenderWindows.findIndex(i=>i===r);return n<0?!1:(e.childRenderWindows.splice(n,1),t.modified(),!0)}}const eW={defaultViewAPI:JG,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function a7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eW,r),W.obj(t,e),W.setGet(t,e,["interactor","numberOfLayers","_views","defaultViewAPI"]),W.get(t,e,["neverRendered"]),W.getArray(t,e,["renderers","childRenderWindows"]),W.moveToProtected(t,e,["views"]),W.event(t,e,"completion"),QG(t,e)}const tW=W.newInstance(a7,"vtkRenderWindow");var nW={newInstance:tW,extend:a7,registerViewConstructor:i7,listViewAPIs:ZG,newAPISpecificView:o7};const Dd={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Je={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var s7={Wrap:Dd,Filter:Je};const c7=new Float32Array(1),rW=new Int32Array(c7.buffer);function iW(t){c7[0]=t;const e=rW[0];let r=e>>16&32768,n=e>>12&2047;const i=e>>23&255;return i<103?r:i>142?(r|=31744,r|=(i===255?0:1)&&e&8388607,r):i<113?(n|=2048,r|=(n>>114-i)+(n>>113-i&1),r):(r|=i-112<<10|n>>1,r+=n&1,r)}function oW(t){const e=(t&32768)>>15,r=(t&31744)>>10,n=t&1023;return r===0?(e?-1:1)*2**-14*(n/2**10):r===31?n?NaN:(e?-1:1)*(1/0):(e?-1:1)*2**(r-15)*(1+n/2**10)}var Oc={fromHalf:oW,toHalf:iW},Yx={exports:{}};Yx.exports;(function(t){(function(e,r,n){function i(c){var l=this,f=s();l.next=function(){var u=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=u-(l.c=u|0)},l.c=1,l.s0=f(" "),l.s1=f(" "),l.s2=f(" "),l.s0-=f(c),l.s0<0&&(l.s0+=1),l.s1-=f(c),l.s1<0&&(l.s1+=1),l.s2-=f(c),l.s2<0&&(l.s2+=1),f=null}function o(c,l){return l.c=c.c,l.s0=c.s0,l.s1=c.s1,l.s2=c.s2,l}function a(c,l){var f=new i(c),u=l&&l.state,d=f.next;return d.int32=function(){return f.next()*4294967296|0},d.double=function(){return d()+(d()*2097152|0)*11102230246251565e-32},d.quick=d,u&&(typeof u=="object"&&o(u,f),d.state=function(){return o(f,{})}),d}function s(){var c=4022871197,l=function(f){f=String(f);for(var u=0;u>>0,d-=c,d*=c,c=d>>>0,d-=c,c+=d*4294967296}return(c>>>0)*23283064365386963e-26};return l}r&&r.exports?r.exports=a:this.alea=a})(br,t)})(Yx);var aW=Yx.exports,Jx={exports:{}};Jx.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var u=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^u^u>>>8},s===(s|0)?c.x=s:l+=s;for(var f=0;f>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xor128=a})(br,t)})(Jx);var sW=Jx.exports,Zx={exports:{}};Zx.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.next=function(){var u=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(u^u<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,s===(s|0)?c.x=s:l+=s;for(var f=0;f>>4),c.next()}function o(s,c){return c.x=s.x,c.y=s.y,c.z=s.z,c.w=s.w,c.v=s.v,c.d=s.d,c}function a(s,c){var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xorwow=a})(br,t)})(Zx);var cW=Zx.exports,Qx={exports:{}};Qx.exports;(function(t){(function(e,r,n){function i(s){var c=this;c.next=function(){var f=c.x,u=c.i,d,h;return d=f[u],d^=d>>>7,h=d^d<<24,d=f[u+1&7],h^=d^d>>>10,d=f[u+3&7],h^=d^d>>>3,d=f[u+4&7],h^=d^d<<7,d=f[u+7&7],d=d^d<<13,h^=d^d<<9,f[u]=h,c.i=u+1&7,h};function l(f,u){var d,h=[];if(u===(u|0))h[0]=u;else for(u=""+u,d=0;d0;--d)f.next()}l(c,s)}function o(s,c){return c.x=s.x.slice(),c.i=s.i,c}function a(s,c){s==null&&(s=+new Date);var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(f.x&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xorshift7=a})(br,t)})(Qx);var lW=Qx.exports,ew={exports:{}};ew.exports;(function(t){(function(e,r,n){function i(s){var c=this;c.next=function(){var f=c.w,u=c.X,d=c.i,h,g;return c.w=f=f+1640531527|0,g=u[d+34&127],h=u[d=d+1&127],g^=g<<13,h^=h<<17,g^=g>>>15,h^=h>>>12,g=u[d]=g^h,c.i=d,g+(f^f>>>16)|0};function l(f,u){var d,h,g,p,v,x=[],m=128;for(u===(u|0)?(h=u,u=null):(u=u+"\0",h=0,m=Math.max(m,u.length)),g=0,p=-32;p>>15,h^=h<<4,h^=h>>>13,p>=0&&(v=v+1640531527|0,d=x[p&127]^=h+v,g=d==0?g+1:0);for(g>=128&&(x[(u&&u.length||0)&127]=-1),g=127,p=4*128;p>0;--p)h=x[g+34&127],d=x[g=g+1&127],h^=h<<13,d^=d<<17,h^=h>>>15,d^=d>>>12,x[g]=h^d;f.w=v,f.X=x,f.i=g}l(c,s)}function o(s,c){return c.i=s.i,c.w=s.w,c.X=s.X.slice(),c}function a(s,c){s==null&&(s=+new Date);var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(f.X&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xor4096=a})(br,t)})(ew);var uW=ew.exports,tw={exports:{}};tw.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.next=function(){var u=c.b,d=c.c,h=c.d,g=c.a;return u=u<<25^u>>>7^d,d=d-h|0,h=h<<24^h>>>8^g,g=g-u|0,c.b=u=u<<20^u>>>12^d,c.c=d=d-h|0,c.d=h<<16^d>>>16^g,c.a=g-u|0},c.a=0,c.b=0,c.c=-1640531527,c.d=1367130551,s===Math.floor(s)?(c.a=s/4294967296|0,c.b=s|0):l+=s;for(var f=0;f>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.tychei=a})(br,t)})(tw);var fW=tw.exports,l7={exports:{}};const dW={},hW=Object.freeze(Object.defineProperty({__proto__:null,default:dW},Symbol.toStringTag,{value:"Module"})),u7=YV(hW);(function(t){(function(e,r,n){var i=256,o=6,a=52,s="random",c=n.pow(i,o),l=n.pow(2,a),f=l*2,u=i-1,d;function h(w,C,S){var T=[];C=C==!0?{entropy:!0}:C||{};var _=x(v(C.entropy?[w,y(r)]:w??m(),3),T),E=new g(T),D=function(){for(var b=E.g(o),I=c,R=0;b=f;)b/=2,I/=2,R>>>=1;return(b+R)/I};return D.int32=function(){return E.g(4)|0},D.quick=function(){return E.g(4)/4294967296},D.double=D,x(y(E.S),r),(C.pass||S||function(b,I,R,M){return M&&(M.S&&p(M,E),b.state=function(){return p(E,{})}),R?(n[s]=b,I):b})(D,_,"global"in C?C.global:this==n,C.state)}function g(w){var C,S=w.length,T=this,_=0,E=T.i=T.j=0,D=T.S=[];for(S||(w=[S++]);_f7(`vtkMath::${t} - NOT IMPLEMENTED`)}function Gf(t,e,r,n){let i;for(let o=0;o0&&arguments[0]!==void 0?arguments[0]:3;const e=Array(t);for(let r=0;rMath.PI;function Vn(t){return t/180*Math.PI}function S1(t){return t*180/Math.PI}const{round:xf,floor:ow,ceil:EW,min:DW,max:bW}=Math;function IW(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=1/0;for(let i=e,o=t.length;i1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=-1/0;for(let i=e,o=t.length;i1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=1/0,i=-1/0;for(let o=e,a=t.length;o=0;--i)if(r[i]0&&arguments[0]!==void 0?arguments[0]:0;const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)-t;return t+r*Math.random()}const UW=hh("gaussian");function T1(t,e,r){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r[2]=t[2]+e[2],r}function Va(t,e,r){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r[2]=t[2]-e[2],r}function h7(t,e){return t[0]*=e,t[1]*=e,t[2]*=e,t}function g7(t,e){return t[0]*=e,t[1]*=e,t}function M5(t,e,r,n){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n[2]=t[2]+e[2]*r,n}function BW(t,e,r,n){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n}function wt(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function GW(t,e,r){r[0]=t[0]*e[0],r[1]=t[0]*e[1],r[2]=t[0]*e[2],r[3]=t[1]*e[0],r[4]=t[1]*e[1],r[5]=t[1]*e[2],r[6]=t[2]*e[0],r[7]=t[2]*e[1],r[8]=t[2]*e[2]}function ra(t,e,r){const n=t[1]*e[2]-t[2]*e[1],i=t[2]*e[0]-t[0]*e[2],o=t[0]*e[1]-t[1]*e[0];return r[0]=n,r[1]=i,r[2]=o,r}function bs(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;switch(e){case 1:return Math.abs(t);case 2:return Math.sqrt(t[0]*t[0]+t[1]*t[1]);case 3:return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);default:{let r=0;for(let n=0;no&&i>a?(c=0,l=1,f=2):o>a?(c=1,l=2,f=0):(c=2,l=0,f=1);const u=t[c]/s,d=t[l]/s,h=t[f]/s,g=Math.sqrt(u*u+h*h);if(n!==0){const p=Math.sin(n),v=Math.cos(n);e&&(e[c]=(h*v-u*d*p)/g,e[l]=p*g,e[f]=(-(u*v)-d*h*p)/g),r&&(r[c]=(-(h*p)-u*d*v)/g,r[l]=v*g,r[f]=(u*p-d*h*v)/g)}else e&&(e[c]=h/g,e[l]=0,e[f]=-u/g),r&&(r[c]=-u*d/g,r[l]=g,r[f]=-d*h/g)}function zW(t,e,r){const n=wt(e,e);if(n===0)return r[0]=0,r[1]=0,r[2]=0,!1;const i=wt(t,e)/n;for(let o=0;o<3;o++)r[o]=e[o];return h7(r,i),!0}function R5(t,e){return t[0]*e[0]+t[1]*e[1]}function $W(t,e,r){const n=R5(e,e);if(n===0)return r[0]=0,r[1]=0,!1;const i=R5(t,e)/n;for(let o=0;o<2;o++)r[o]=e[o];return g7(r,i),!0}function $o(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])+(t[2]-e[2])*(t[2]-e[2])}function jW(t,e){const r=[0,0,0];return ra(t,e,r),Math.atan2(bs(r),wt(t,e))}function HW(t,e,r){const n=Math.abs(t-r);return 1/Math.sqrt(2*Math.PI*e)*Math.exp(-(n**2)/(2*e))}function KW(t,e,r){const n=Math.abs(t-r);return Math.exp(-(n**2)/(2*e))}function qW(t,e,r){r[0]=t[0]*e[0],r[1]=t[0]*e[1],r[2]=t[1]*e[0],r[3]=t[1]*e[1]}function p7(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function m7(t){const e=p7(t);return e!==0&&(t[0]/=e,t[1]/=e),e}function Fn(){for(var t=arguments.length,e=new Array(t),r=0;ri&&(i=n),(n=Math.abs(t[a*3+2]))>i&&(i=n),o[a]=1/i;i=o[0]*Math.abs(t[0]),r=0,(n=o[1]*Math.abs(t[3]))>=i&&(i=n,r=1),(n=o[2]*Math.abs(t[6]))>=i&&(r=2),r!==0&&(Gf(t,3,r,0),o[r]=o[0]),e[0]=r,t[3]/=t[0],t[6]/=t[0],t[4]-=t[3]*t[1],t[7]-=t[6]*t[1],i=o[1]*Math.abs(t[4]),r=1,(n=o[2]*Math.abs(t[7]))>=i&&(r=2,Gf(t,3,1,2),o[2]=o[1]),e[1]=r,t[7]/=t[4],t[5]-=t[3]*t[2],t[8]-=t[6]*t[2]+t[7]*t[5],e[2]=2}function YW(t,e,r){let n=r[e[0]];r[e[0]]=r[0],r[0]=n,n=r[e[1]],r[e[1]]=r[1],r[1]=n-t[3]*r[0],n=r[e[2]],r[e[2]]=r[2],r[2]=n-t[6]*r[0]-t[7]*r[1],r[2]/=t[8],r[1]=(r[1]-t[5]*r[2])/t[4],r[0]=(r[0]-t[1]*r[1]-t[2]*r[2])/t[0]}function JW(t,e,r){const n=t[0],i=t[1],o=t[2],a=t[3],s=t[4],c=t[5],l=t[6],f=t[7],u=t[8],d=+Fn(s,f,c,u),h=-Fn(a,l,c,u),g=+Fn(a,l,s,f),p=-Fn(i,f,o,u),v=+Fn(n,l,o,u),x=-Fn(n,l,i,f),m=+Fn(i,s,o,c),y=-Fn(n,a,o,c),w=+Fn(n,a,i,s),C=n*d+i*h+o*g,S=d*e[0]+p*e[1]+m*e[2],T=h*e[0]+v*e[1]+y*e[2],_=g*e[0]+x*e[1]+w*e[2];r[0]=S/C,r[1]=T/C,r[2]=_/C}function Cp(t,e,r){const n=t[0]*e[0]+t[1]*e[1]+t[2]*e[2],i=t[3]*e[0]+t[4]*e[1]+t[5]*e[2],o=t[6]*e[0]+t[7]*e[1]+t[8]*e[2];r[0]=n,r[1]=i,r[2]=o}function L5(t,e,r){const n=[...t],i=[...e];for(let o=0;o<3;o++)r[o]=n[0]*i[o]+n[1]*i[o+3]+n[2]*i[o+6],r[o+3]=n[3]*i[o]+n[4]*i[o+3]+n[5]*i[o+6],r[o+6]=n[6]*i[o]+n[7]*i[o+3]+n[8]*i[o+6]}function ZW(t,e,r,n,i,o,a){n!==i&&f7("Number of columns of A must match number of rows of B.");const s=[...t],c=[...e];for(let l=0;l2&&arguments[2]!==void 0?arguments[2]:rw;if(t.length!==e.length)return!1;function n(i,o){return Math.abs(i-e[o])<=r}return t.every(n)}const gh=v7;function y7(t){for(let e=0;e<3;e++)t[e*3]=t[e*3+1]=t[e*3+2]=0,t[e*3+e]=1}function x7(t,e){for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:rw;return gh(t,nw,e)}function tz(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:rw;return gh(t,TW,e)}function w7(t,e){const r=t[0]*t[0],n=t[0]*t[1],i=t[0]*t[2],o=t[0]*t[3],a=t[1]*t[1],s=t[2]*t[2],c=t[3]*t[3],l=t[1]*t[2],f=t[1]*t[3],u=t[2]*t[3],d=a+s+c;let h=1/(r+d);const g=(r-d)*h;h*=2,e[0]=a*h+g,e[3]=(l+o)*h,e[6]=(f-i)*h,e[1]=(l-o)*h,e[4]=s*h+g,e[7]=(u+n)*h,e[2]=(f+i)*h,e[5]=(u-n)*h,e[8]=c*h+g}function Sp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!`${t}`.includes("e"))return+`${Math.round(`${t}e+${e}`)}e-${e}`;const r=`${t}`.split("e");let n="";return+r[1]+e>0&&(n="+"),+`${Math.round(`${+r[0]}e${n}${+r[1]+e}`)}e-${e}`}function N5(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return e[0]=Sp(t[0],r),e[1]=Sp(t[1],r),e[2]=Sp(t[2],r),e}function ph(t,e,r,n){let i,o,a,s,c,l,f,u,d,h,g,p,v,x,m,y;const w=pn(e),C=pn(e),S=(_,E,D)=>{x=_[E],v=_[D],_[E]=x-p*(v+x*h),_[D]=v+p*(x-v*h)};for(x7(e,n),c=0;c3&&Math.abs(r[c])+x===Math.abs(r[c])&&Math.abs(r[s])+x===Math.abs(r[s]))t[c*e+s]=0;else if(Math.abs(t[c*e+s])>f){for(v=r[s]-r[c],Math.abs(v)+x===Math.abs(v)?d=t[c*e+s]/v:(u=.5*v/t[c*e+s],d=1/(Math.abs(u)+Math.sqrt(1+u*u)),u<0&&(d=-d)),m=1/Math.sqrt(1+d*d),p=d*m,h=p/(1+m),v=d*t[c*e+s],C[c]-=v,C[s]+=v,r[c]-=v,r[s]+=v,t[c*e+s]=0,o=0;o<=c-1;o++)S(t,o*e+c,o*e+s);for(o=c+1;o<=s-1;o++)S(t,c*e+o,o*e+s);for(o=s+1;o=ET)return al("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=y||Math.abs(r[i]-y)>1)+(e&1);for(l=0,i=0;i=0&&l++;if(lh?g:h,i=p>i?p:i,r[d]=1,i!==0&&(r[d]/=i)}const o=Math.abs(e[0])*r[0],a=Math.abs(e[3])*r[1],s=Math.abs(e[6])*r[2];n[0]=0,i=o,a>=i&&(i=a,n[0]=1),s>=i&&(n[0]=2),n[0]!==0&&(yf(e,3,n[0],0),r[n[0]]=r[0]);const c=Math.abs(e[4])*r[1],l=Math.abs(e[7])*r[2];n[1]=1,i=c,l>=i&&(n[1]=2,yf(e,3,1,2)),n[2]=2;let f=0;if(Hm(e)<0){f=1;for(let d=0;d<9;d++)e[d]=-e[d]}const u=pn(4);if(C7(e,u),w7(u,e),f)for(let d=0;d<9;d++)e[d]=-e[d];n[1]!==1&&yf(e,3,n[1],1),n[0]!==0&&yf(e,3,n[0],0)}function T7(t,e,r){let n,i,o,a,s,c;const l=[...t];if(ph(l,3,e,r),e[0]===e[1]&&e[0]===e[2]){y7(r);return}for(Cu(r,r),n=0;n<3;n++)if(e[(n+1)%3]===e[(n+2)%3]){for(c=Math.abs(r[n*3]),a=0,i=1;i<3;i++)c<(s=Math.abs(r[n*3+i]))&&(c=s,a=i);a!==n&&(s=e[a],e[a]=e[n],e[n]=s,Gf(r,3,n,a)),r[a*3+a]<0&&(r[a*3]=-r[a*3],r[a*3+1]=-r[a*3+1],r[a*3+2]=-r[a*3+2]),i=(a+1)%3,o=(a+2)%3,r[i*3]=0,r[i*3+1]=0,r[i*3+2]=0,r[i*3+i]=1;const f=ra([r[a*3],r[a*3+1],r[a*3+2]],[r[i*3],r[i*3+1],r[i*3+2]],[]);sl(f);const u=ra(f,[r[a*3],r[a*3+1],r[a*3+2]],[]);for(let d=0;d<3;d++)r[o*3+d]=f[d],r[i*3+d]=u[d];Cu(r,r);return}for(c=Math.abs(r[0]),a=0,n=1;n<3;n++)c<(s=Math.abs(r[n*3]))&&(c=s,a=n);if(a!==0){const f=e[a];e[a]=e[0],e[0]=f,Gf(r,3,a,0)}if(Math.abs(r[4])a&&(a=f);if(a===0)return al("Unable to factor linear system"),0;u[n]=1/a}for(i=0;i=a&&(a=l,s=n)}if(i!==s){for(o=0;o=0)for(o=a;o<=i-1;o++)c-=t[i*n+o]*r[o];else c!==0&&(a=i);r[i]=c}for(i=n-1;i>=0;i--){for(c=r[i],o=i+1;o3&&arguments[3]!==void 0?arguments[3]:null,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;const o=n||pn(r),a=i||pn(r);if(aw(t,o,r)===0)return null;for(let s=0;sn&&(n=Math.abs(t[i*e+o]));for(let i=0;i6&&arguments[6]!==void 0?arguments[6]:!0;if(tiw&&(c=0,s[d]=0);if(c&&i===1)return al("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),P5(t,e,r,o);if(c)g=1;else for(d=0;d1&&arguments[1]!==void 0?arguments[1]:[0,.5,1];switch(t.length){case 3:return e[0]=parseInt(t[0],16)*17/255,e[1]=parseInt(t[1],16)*17/255,e[2]=parseInt(t[2],16)*17/255,e;case 4:return e[0]=parseInt(t[1],16)*17/255,e[1]=parseInt(t[2],16)*17/255,e[2]=parseInt(t[3],16)*17/255,e;case 6:return e[0]=parseInt(t.substr(0,2),16)/255,e[1]=parseInt(t.substr(2,2),16)/255,e[2]=parseInt(t.substr(4,2),16)/255,e;case 7:return e[0]=parseInt(t.substr(1,2),16)/255,e[1]=parseInt(t.substr(3,2),16)/255,e[2]=parseInt(t.substr(5,2),16)/255,e;case 9:return e[0]=parseInt(t.substr(1,2),16)/255,e[1]=parseInt(t.substr(3,2),16)/255,e[2]=parseInt(t.substr(5,2),16)/255,e[3]=parseInt(t.substr(7,2),16)/255,e;default:return e}}function Cf(t,e){let r,n;const[i,o,a]=t,s=1/3,c=1/6,l=2/3;let f=i,u=i;o>f?f=o:of?f=a:a0?n=(f-u)/f:n=0,n>0?(i===f?r=c*(o-a)/(f-u):o===f?r=s+c*(a-i)/(f-u):r=l+c*(i-o)/(f-u),r<0&&(r+=1)):r=0,e[0]=r,e[1]=n,e[2]=d}function Mc(t,e){const[r,n,i]=t,o=1/3,a=1/6,s=2/3,c=5/6;let l,f,u;r>a&&r<=o?(f=1,l=(o-r)/a,u=0):r>o&&r<=.5?(f=1,u=(r-o)/a,l=0):r>.5&&r<=s?(u=1,f=(s-r)/a,l=0):r>s&&r<=c?(u=1,l=(r-s)/a,f=0):r>c&&r<=1?(l=1,u=(1-r)/a,f=0):(l=1,f=r/a,u=0),l=n*l+(1-n),f=n*f+(1-n),u=n*u+(1-n),l*=i,f*=i,u*=i,e[0]=l,e[1]=f,e[2]=u}function D7(t,e){const[r,n,i]=t;let o=(r+16)/116,a=n/500+o,s=o-i/200;o**3>.008856?o**=3:o=(o-16/116)/7.787,a**3>.008856?a**=3:a=(a-16/116)/7.787,s**3>.008856?s**=3:s=(s-16/116)/7.787;const c=.9505,l=1,f=1.089;e[0]=c*a,e[1]=l*o,e[2]=f*s}function b7(t,e){const[r,n,i]=t,o=.9505,a=1,s=1.089;let c=r/o,l=n/a,f=i/s;c>.008856?c**=1/3:c=7.787*c+16/116,l>.008856?l**=1/3:l=7.787*l+16/116,f>.008856?f**=1/3:f=7.787*f+16/116,e[0]=116*l-16,e[1]=500*(c-l),e[2]=200*(l-f)}function I7(t,e){const[r,n,i]=t;let o=r*3.2406+n*-1.5372+i*-.4986,a=r*-.9689+n*1.8758+i*.0415,s=r*.0557+n*-.204+i*1.057;o>.0031308?o=1.055*o**(1/2.4)-.055:o*=12.92,a>.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let c=o;c1&&(o/=c,a/=c,s/=c),o<0&&(o=0),a<0&&(a=0),s<0&&(s=0),e[0]=o,e[1]=a,e[2]=s}function O7(t,e){let[r,n,i]=t;r>.04045?r=((r+.055)/1.055)**2.4:r/=12.92,n>.04045?n=((n+.055)/1.055)**2.4:n/=12.92,i>.04045?i=((i+.055)/1.055)**2.4:i/=12.92,e[0]=r*.4124+n*.3576+i*.1805,e[1]=r*.2126+n*.7152+i*.0722,e[2]=r*.0193+n*.1192+i*.9505}function Fc(t,e){const r=[0,0,0];O7(t,r),b7(r,e)}function _1(t,e){const r=[0,0,0];D7(t,r),I7(r,e)}function p0(t){return t[0]=1,t[1]=-1,t[2]=1,t[3]=-1,t[4]=1,t[5]=-1,t}function Tp(t){return!(t[1]-t[0]<0)}function cz(t,e,r){return r[0]=Math.min(t[0],e[0]),r[1]=Math.max(t[0],e[0]),r[2]=Math.min(t[1],e[1]),r[3]=Math.max(t[1],e[1]),r[4]=Math.min(t[2],e[2]),r[5]=Math.max(t[2],e[2]),r}function Eo(t,e,r){return tr?r:t}function A5(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[0,0,0];return n[0]=Eo(t[0],e[0],r[0]),n[1]=Eo(t[1],e[1],r[1]),n[2]=Eo(t[2],e[2],r[2]),n}function lz(t,e){let r=0;return e[0]!==e[1]&&(te[1]?r=e[1]:r=t,r=(r-e[0])/(e[1]-e[0])),r}const uz=hh("GetScalarTypeFittingRange"),fz=hh("GetAdjustedScalarRange");function dz(t,e){if(!t||!e)return 0;for(let r=0;r<6;r+=2)if(t[r]e[r+1]||t[r+1]e[r+1])return 0;return 1}function hz(t,e,r){if(!t||!e)return 0;for(let n=0;n<6;n+=2)if(t[n]+r[n/2]e[n+1]||t[n+1]+r[n/2]e[n+1])return 0;return 1}function gz(t,e,r){if(!t||!e||!r)return 0;for(let n=0;n<3;n++)if(t[n]+r[n]e[2*n+1])return 0;return 1}function pz(t,e,r,n){const i=pn(3),o=pn(3),a=pn(3),s=pn(3),c=pn(3),l=pn(3);for(let w=0;w<3;++w)i[w]=t[w]-e[w],o[w]=e[w]-r[w],a[w]=r[w]-t[w],s[w]=-i[w],c[w]=-o[w],l[w]=-a[w];const f=bs(s),u=bs(c),d=bs(a),h=pn(3);ra(i,o,h);const g=bs(h),p=f*u*d/(2*g),v=2*g*g,x=u*u*wt(i,l)/v,m=d*d*wt(s,o)/v,y=f*f*wt(a,c)/v;for(let w=0;w<3;++w)n[w]=x*t[w]+m*e[w]+y*r[w];return p}const mz=1/0,vz=-1/0,M7=t=>!Number.isFinite(t),{isFinite:yz,isNaN:k5}=Number,E1=k5;function Ks(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function xz(t){let e=-1,r=-1;for(let n=0;ne&&(r=n,e=i)}return r}function R7(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;const r=new Array(e),n=new Array(e);for(let o=0;o0;o--){let a=-1/0,s=0,c=0;for(let l=0;l<=o;++l){const f=r[l];for(let u=0;u<=o;++u){const d=n[u],h=Math.abs(t[f+e*d]);h>a&&(a=h,s=l,c=u)}}[r[o],r[s]]=[r[s],r[o]],[n[o],n[c]]=[n[c],n[o]]}const i=new Array(e*e).fill(0);for(let o=0;o15?e.toString(16):`0${e.toString(16)}`}function wz(t){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"#"}${t.map(L7).join("")}`}function ig(t){return Math.round(t*255)}function Cz(t){return t.length===3?`rgb(${t.map(ig).join(", ")})`:`rgba(${ig(t[0]||0)}, ${ig(t[1]||0)}, ${ig(t[2]||0)}, ${t[3]||0})`}var nt={Pi:_W,radiansFromDegrees:Vn,degreesFromRadians:S1,round:xf,floor:ow,ceil:EW,ceilLog2:RW,min:DW,max:bW,arrayMin:IW,arrayMax:OW,arrayRange:MW,isPowerOfTwo:wf,nearestPowerOfTwo:Zi,factorial:LW,binomial:NW,beginCombination:PW,nextCombination:AW,randomSeed:kW,getSeed:VW,random:FW,gaussian:UW,add:T1,subtract:Va,multiplyScalar:h7,multiplyScalar2D:g7,multiplyAccumulate:M5,multiplyAccumulate2D:BW,dot:wt,outer:GW,cross:ra,norm:bs,normalize:sl,perpendiculars:WW,projectVector:zW,projectVector2D:$W,distance2BetweenPoints:$o,angleBetweenVectors:jW,gaussianAmplitude:HW,gaussianWeight:KW,dot2D:R5,outer2D:qW,norm2D:p7,normalize2D:m7,determinant2x2:Fn,LUFactor3x3:XW,LUSolve3x3:YW,linearSolve3x3:JW,multiply3x3_vect3:Cp,multiply3x3_mat3:L5,multiplyMatrix:ZW,transpose3x3:Cu,invert3x3:QW,identity3x3:y7,identity:x7,isIdentity:ez,isIdentity3x3:tz,determinant3x3:Hm,quaternionToMatrix3x3:w7,areEquals:v7,areMatricesEqual:gh,roundNumber:Sp,roundVector:N5,matrix3x3ToQuaternion:C7,multiplyQuaternion:nz,orthogonalize3x3:S7,diagonalize3x3:T7,singularValueDecomposition3x3:rz,solveLinearSystem:_7,invertMatrix:E7,luFactorLinearSystem:aw,luSolveLinearSystem:sw,estimateMatrixCondition:iz,jacobi:oz,jacobiN:ph,solveHomogeneousLeastSquares:P5,solveLeastSquares:az,hex2float:sz,rgb2hsv:Cf,hsv2rgb:Mc,lab2xyz:D7,xyz2lab:b7,xyz2rgb:I7,rgb2xyz:O7,rgb2lab:Fc,lab2rgb:_1,uninitializeBounds:p0,areBoundsInitialized:Tp,computeBoundsFromPoints:cz,clampValue:Eo,clampVector:A5,clampAndNormalizeValue:lz,getScalarTypeFittingRange:uz,getAdjustedScalarRange:fz,extentIsWithinOtherExtent:dz,boundsIsWithinOtherBounds:hz,pointIsWithinBounds:gz,solve3PointCircle:pz,inf:mz,negInf:vz,isInf:M7,isNan:k5,isNaN:k5,isFinite:yz,createUninitializedBounds:Ks,getMajorAxisIndex:xz,getSparseOrthogonalMatrix:R7,floatToHex2:L7,floatRGB2HexCode:wz,float2CssRGBA:Cz};const{vtkErrorMacro:Sz}=Gr,{DefaultDataType:Tz}=r7,_z=1e-6;function V5(t,e,r){const n=t.length;let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,a,s;for(s=e;so&&(o=a);return{min:i,max:o}}function Ez(){let t=Number.MAX_VALUE,e=-Number.MAX_VALUE,r=0,n=0;return{add(i){t>i&&(t=i),e1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;if(e<0&&r>1){const i=t.length/r,o=new Float64Array(i);for(let a=0,s=0;a1&&arguments[1]!==void 0?arguments[1]:0;const r=t||[];for(;r.length<=e;)r.push(null);return r}function cw(t){return Object.prototype.toString.call(t).slice(8,-1)}function Dz(t){const e=t.getNumberOfComponents();let r=0;const n=new Array(e);for(let i=0;ir&&(r=o)}return r}const bz={computeRange:N7,createRangeHelper:Ez,fastComputeRange:V5,getDataType:cw,getMaxNorm:Dz};function Iz(t,e){e.classHierarchy.push("vtkDataArray");function r(n){if(n<0)return!1;const i=t.getNumberOfComponents(),o=e.values.length/(i>0?i:1);if(n===o)return!0;if(n>o){const a=e.values;return e.values=h0(e.dataType,(n+o)*i),e.values.set(a),!0}return e.size>n*i&&(e.size=n*i,t.dataChange()),!0}t.dataChange=()=>{e.ranges=null,t.modified()},t.resize=n=>{r(n);const i=n*t.getNumberOfComponents();return e.size!==i?(e.size=i,t.dataChange(),!0):!1},t.initialize=()=>{t.resize(0)},t.getElementComponentSize=()=>e.values.BYTES_PER_ELEMENT,t.getComponent=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.values[n*e.numberOfComponents+i]},t.setComponent=(n,i,o)=>{o!==e.values[n*e.numberOfComponents+i]&&(e.values[n*e.numberOfComponents+i]=o,t.dataChange())},t.getValue=n=>{const i=n/e.numberOfComponents,o=n%e.numberOfComponents;return t.getComponent(i,o)},t.setValue=(n,i)=>{const o=n/e.numberOfComponents,a=n%e.numberOfComponents;t.setComponent(o,a,i)},t.getData=()=>e.size===e.values.length?e.values:e.values.subarray(0,e.size),t.getRange=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,i=n;i<0&&(i=e.numberOfComponents===1?0:e.numberOfComponents);let o=null;return e.ranges||(e.ranges=DT(e.ranges,e.numberOfComponents)),o=e.ranges[i],o?(e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple):(o=N7(t.getData(),n,e.numberOfComponents),e.ranges[i]=o,e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple)},t.setRange=(n,i)=>{e.ranges||(e.ranges=DT(e.ranges,e.numberOfComponents));const o={min:n.min,max:n.max};return e.ranges[i]=o,e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple},t.setTuple=(n,i)=>{const o=n*e.numberOfComponents;for(let a=0;a{let o=n*e.numberOfComponents;const a=Math.min(i.length,e.size-o);for(let s=0;s(e.size<=n*e.numberOfComponents&&(e.size=(n+1)*e.numberOfComponents,r(n+1)),t.setTuple(n,i),n),t.insertTuples=(n,i)=>{const o=n+i.length/e.numberOfComponents;return e.size{const i=e.size/e.numberOfComponents;return t.insertTuple(i,n)},t.insertNextTuples=n=>{const i=e.size/e.numberOfComponents;return t.insertTuples(i,n)},t.findTuple=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_z;for(let o=0;oi){a=!1;break}if(a)return o/e.numberOfComponents}return-1},t.getTuple=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const o=e.numberOfComponents||1,a=n*o;switch(o){case 4:i[3]=e.values[a+3];case 3:i[2]=e.values[a+2];case 2:i[1]=e.values[a+1];case 1:i[0]=e.values[a];break;default:for(let s=o-1;s>=0;--s)i[s]=e.values[a+s]}return i},t.getTuples=(n,i)=>{const o=(n??0)*e.numberOfComponents,a=(i??t.getNumberOfTuples())*e.numberOfComponents,s=t.getData().subarray(o,a);return s.length>0?s:null},t.getTupleLocation=function(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:1)*e.numberOfComponents},t.getNumberOfComponents=()=>e.numberOfComponents,t.getNumberOfValues=()=>e.size,t.getNumberOfTuples=()=>e.size/e.numberOfComponents,t.getDataType=()=>e.dataType,t.newClone=()=>A7({empty:!0,name:e.name,dataType:e.dataType,numberOfComponents:e.numberOfComponents}),t.getName=()=>(e.name||(t.modified(),e.name=`vtkDataArray${t.getMTime()}`),e.name),t.setData=(n,i)=>{e.values=n,e.size=n.length,e.dataType=cw(n),i&&(e.numberOfComponents=i),e.size%e.numberOfComponents!==0&&(e.numberOfComponents=1),t.dataChange()},t.getState=()=>{if(e.deleted)return null;const n={...e,vtkClass:t.getClassName()};n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(o=>{n[o]||delete n[o]});const i={};return Object.keys(n).sort().forEach(o=>{i[o]=n[o]}),i.mtime&&delete i.mtime,i},t.deepCopy=n=>{const i=t.getDataType(),o=e.values;t.shallowCopy(n),(o==null?void 0:o.length)>=n.getNumberOfValues()&&i===n.getDataType()?(o.set(n.getData()),e.values=o,t.dataChange()):t.setData(n.getData().slice())},t.interpolateTuple=(n,i,o,a,s,c)=>{const l=e.numberOfComponents||1;(l!==i.getNumberOfComponents()||l!==a.getNumberOfComponents())&&Sz("numberOfComponents must match");const f=i.getTuple(o),u=a.getTuple(s),d=[];switch(d.length=l,l){case 4:d[3]=f[3]+(u[3]-f[3])*c;case 3:d[2]=f[2]+(u[2]-f[2])*c;case 2:d[1]=f[1]+(u[1]-f[1])*c;case 1:d[0]=f[0]+(u[0]-f[0])*c;break;default:for(let h=0;h2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,Oz,r),!e.empty&&!e.values&&!e.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(e.values?Array.isArray(e.values)&&(e.values=$m(e.dataType,e.values)):e.values=h0(e.dataType,e.size),e.values&&(e.size=e.size??e.values.length,e.dataType=cw(e.values)),fn(t,e),uh(t,e,["name","numberOfComponents"]),e.size%e.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");Iz(t,e)}const A7=Bt(P7,"vtkDataArray");var tt={newInstance:A7,extend:P7,...bz,...r7};const{vtkErrorMacro:Mz}=W,Rz=["Build","Render"];function Lz(t,e){e.classHierarchy.push("vtkViewNode"),t.build=n=>{},t.render=n=>{},t.traverse=n=>{const i=n.getTraverseOperation(),o=t[i];if(o){o(n);return}t.apply(n,!0);for(let a=0;a{const o=t[n.getOperation()];o&&o(i,n)},t.getViewNodeFor=n=>{if(e.renderable===n)return t;for(let i=0;ie._parent?e._parent.isA(n)?e._parent:e._parent.getFirstAncestorOfType(n):null,t.getLastAncestorOfType=n=>{if(!e._parent)return null;const i=e._parent.getLastAncestorOfType(n);return i||(e._parent.isA(n)?e._parent:null)},t.addMissingNode=n=>{if(!n)return;const i=e._renderableChildMap.get(n);if(i!==void 0)return i.setVisited(!0),i;const o=t.createViewNode(n);if(o)return o.setParent(t),o.setVisited(!0),e._renderableChildMap.set(n,o),e.children.push(o),o},t.addMissingNodes=n=>{if(!(!n||!n.length))for(let i=0;i{if(!(!n||!n.length))for(let i=0;i{const i=e.children.findIndex(a=>a===n);if(i<0)return!1;const o=n.getRenderable();return o&&e._renderableChildMap.delete(o),n.delete(),e.children.splice(i,1),!0},t.prepareNodes=()=>{for(let n=0;n{e.visited=n},t.removeUnusedNodes=()=>{let n=0;for(let i=0;i{if(!e.myFactory)return Mz("Cannot create view nodes without my own factory"),null;const i=e.myFactory.createNode(n);return i&&i.setRenderable(n),i};const r=t.delete;t.delete=()=>{for(let n=0;n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nz,r),W.obj(t,e),W.event(t,e,"event"),e._renderableChildMap=new Map,W.get(t,e,["visited"]),W.setGet(t,e,["_parent","renderable","myFactory"]),W.getArray(t,e,["children"]),W.moveToProtected(t,e,["parent"]),Lz(t,e)}const Pz=W.newInstance(k7,"vtkViewNode");var nn={newInstance:Pz,extend:k7,PASS_TYPES:Rz};function Az(t,e){e.overrides||(e.overrides={}),e.classHierarchy.push("vtkViewNodeFactory"),t.createNode=r=>{if(r.isDeleted())return null;let n=0,i=r.getClassName(n++),o=!1;const a=Object.keys(e.overrides);for(;i&&!o;)a.indexOf(i)!==-1?o=!0:i=r.getClassName(n++);if(!o)return null;const s=e.overrides[i]();return s.setMyFactory(t),s}}const kz={};function V7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kz,r),W.obj(t,e),Az(t,e)}const Vz=W.newInstance(V7,"vtkViewNodeFactory");var lw={newInstance:Vz,extend:V7};const F7=Object.create(null);function ir(t,e){F7[t]=e}function Fz(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}const Uz={};function U7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Uz,r),e.overrides=F7,lw.extend(t,e,r),Fz(t,e)}const Bz=W.newInstance(U7,"vtkOpenGLViewNodeFactory");var Gz={newInstance:Bz,extend:U7};const{Wrap:_a,Filter:Lr}=s7,{VtkDataTypes:Gt}=tt,{vtkDebugMacro:Cv,vtkErrorMacro:Ll,vtkWarningMacro:bT}=Gr,{toHalf:Wz}=Oc;function zz(t,e){e.classHierarchy.push("vtkOpenGLTexture"),t.render=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(c?e._openGLRenderWindow=c:(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow")),e.context=e._openGLRenderWindow.getContext(),e.renderable.getInterpolate()?(e.generateMipmap?t.setMinificationFilter(Lr.LINEAR_MIPMAP_LINEAR):t.setMinificationFilter(Lr.LINEAR),t.setMagnificationFilter(Lr.LINEAR)):(t.setMinificationFilter(Lr.NEAREST),t.setMagnificationFilter(Lr.NEAREST)),e.renderable.getRepeat()&&(t.setWrapR(_a.REPEAT),t.setWrapS(_a.REPEAT),t.setWrapT(_a.REPEAT)),e.renderable.getInputData()&&e.renderable.setImage(null),!e.handle||e.renderable.getMTime()>e.textureBuildTime.getMTime()){if(e.renderable.getImage()!==null&&(e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Lr.LINEAR_MIPMAP_LINEAR)),e.renderable.getImage()&&e.renderable.getImageLoaded()&&(t.create2DFromImage(e.renderable.getImage()),t.activate(),t.sendParameters(),e.textureBuildTime.modified())),e.renderable.getCanvas()!==null){e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Lr.LINEAR_MIPMAP_LINEAR));const f=e.renderable.getCanvas();t.create2DFromRaw(f.width,f.height,4,Gt.UNSIGNED_CHAR,f,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}if(e.renderable.getJsImageData()!==null){const f=e.renderable.getJsImageData();e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Lr.LINEAR_MIPMAP_LINEAR)),t.create2DFromRaw(f.width,f.height,4,Gt.UNSIGNED_CHAR,f.data,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}const l=e.renderable.getInputData(0);if(l&&l.getPointData().getScalars()){const f=l.getExtent(),u=l.getPointData().getScalars(),d=[];for(let h=0;h{t.deactivate(),e.context&&e.handle&&e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.components=0,e.width=0,e.height=0,e.depth=0,t.resetFormatAndType()},t.createTexture=()=>{e.handle||(e.handle=e.context.createTexture(),e.target&&(e.context.bindTexture(e.target,e.handle),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.bindTexture(e.target,null)))},t.getTextureUnit=()=>e._openGLRenderWindow?e._openGLRenderWindow.getTextureUnitForTexture(t):-1,t.activate=()=>{e._openGLRenderWindow.activateTexture(t),t.bind()},t.deactivate=()=>{e._openGLRenderWindow&&e._openGLRenderWindow.deactivateTexture(t)},t.releaseGraphicsResources=c=>{c&&e.handle&&(c.activateTexture(t),c.deactivateTexture(t),e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.internalFormat=0,e.format=0,e.openGLDataType=0,e.components=0,e.width=0,e.height=0,e.depth=0,e.allocatedGPUMemoryInBytes=0),e.shaderProgram&&(e.shaderProgram.releaseGraphicsResources(c),e.shaderProgram=null)},t.bind=()=>{e.context.bindTexture(e.target,e.handle),e.autoParameters&&t.getMTime()>e.sendParametersTime.getMTime()&&t.sendParameters()},t.isBound=()=>{let c=!1;if(e.context&&e.handle){let l=0;switch(e.target){case e.context.TEXTURE_2D:l=e.context.TEXTURE_BINDING_2D;break;default:bT("impossible case");break}c=e.context.getIntegerv(l)===e.handle}return c},t.sendParameters=()=>{e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e._openGLRenderWindow.getWebgl2()&&(e.context.texParameteri(e.target,e.context.TEXTURE_BASE_LEVEL,e.baseLevel),e.context.texParameteri(e.target,e.context.TEXTURE_MAX_LEVEL,e.maxLevel)),e.sendParametersTime.modified()},t.getInternalFormat=(c,l)=>(e._forceInternalFormat||(e.internalFormat=t.getDefaultInternalFormat(c,l)),e.internalFormat||Cv(`Unable to find suitable internal format for T=${c} NC= ${l}`),[e.context.R32F,e.context.RG32F,e.context.RGB32F,e.context.RGBA32F].includes(e.internalFormat)&&!e.context.getExtension("OES_texture_float_linear")&&bT("Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats."),e.internalFormat),t.getDefaultInternalFormat=(c,l)=>{let f=0;return f=e._openGLRenderWindow.getDefaultTextureInternalFormat(c,l,e.oglNorm16Ext,t.useHalfFloat()),f||(f||(Cv("Unsupported internal texture type!"),Cv(`Unable to find suitable internal format for T=${c} NC= ${l}`)),f)},t.useHalfFloat=()=>e.enableHalfFloat&&e.canUseHalfFloat,t.setInternalFormat=c=>{e._forceInternalFormat=!0,c!==e.internalFormat&&(e.internalFormat=c,t.modified())},t.getFormat=(c,l)=>(e.format=t.getDefaultFormat(c,l),e.format),t.getDefaultFormat=(c,l)=>{if(e._openGLRenderWindow.getWebgl2())switch(l){case 1:return e.context.RED;case 2:return e.context.RG;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}else switch(l){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}},t.resetFormatAndType=()=>{e.format=0,e.internalFormat=0,e._forceInternalFormat=!1,e.openGLDataType=0},t.getDefaultDataType=c=>{const l=t.useHalfFloat();if(e._openGLRenderWindow.getWebgl2())switch(c){case Gt.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case(e.oglNorm16Ext&&!l&&Gt.SHORT):return e.context.SHORT;case(e.oglNorm16Ext&&!l&&Gt.UNSIGNED_SHORT):return e.context.UNSIGNED_SHORT;case(l&&Gt.SHORT):return e.context.HALF_FLOAT;case(l&&Gt.UNSIGNED_SHORT):return e.context.HALF_FLOAT;case Gt.FLOAT:case Gt.VOID:default:return e.context.FLOAT}switch(c){case Gt.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case Gt.FLOAT:case Gt.VOID:default:if(e.context.getExtension("OES_texture_float")&&e.context.getExtension("OES_texture_float_linear"))return e.context.FLOAT;{const f=e.context.getExtension("OES_texture_half_float");if(f&&e.context.getExtension("OES_texture_half_float_linear"))return f.HALF_FLOAT_OES}return e.context.UNSIGNED_BYTE}},t.getOpenGLDataType=function(c){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return(!e.openGLDataType||l)&&(e.openGLDataType=t.getDefaultDataType(c)),e.openGLDataType},t.getShiftAndScale=()=>{let c=0,l=1;switch(e.openGLDataType){case e.context.BYTE:l=127.5,c=l-128;break;case e.context.UNSIGNED_BYTE:l=255,c=0;break;case e.context.SHORT:l=32767.5,c=l-32768;break;case e.context.UNSIGNED_SHORT:l=65536,c=0;break;case e.context.INT:l=21474836475e-1,c=l-2147483648;break;case e.context.UNSIGNED_INT:l=4294967295,c=0;break;case e.context.FLOAT:}return{shift:c,scale:l}},t.getOpenGLFilterMode=c=>{switch(c){case Lr.NEAREST:return e.context.NEAREST;case Lr.LINEAR:return e.context.LINEAR;case Lr.NEAREST_MIPMAP_NEAREST:return e.context.NEAREST_MIPMAP_NEAREST;case Lr.NEAREST_MIPMAP_LINEAR:return e.context.NEAREST_MIPMAP_LINEAR;case Lr.LINEAR_MIPMAP_NEAREST:return e.context.LINEAR_MIPMAP_NEAREST;case Lr.LINEAR_MIPMAP_LINEAR:return e.context.LINEAR_MIPMAP_LINEAR;default:return e.context.NEAREST}},t.getOpenGLWrapMode=c=>{switch(c){case _a.CLAMP_TO_EDGE:return e.context.CLAMP_TO_EDGE;case _a.REPEAT:return e.context.REPEAT;case _a.MIRRORED_REPEAT:return e.context.MIRRORED_REPEAT;default:return e.context.CLAMP_TO_EDGE}},t.updateArrayDataTypeForGL=function(c,l){let f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const u=[];let d=e.width*e.height*e.components;if(f&&(d*=e.depth),c!==Gt.FLOAT&&e.openGLDataType===e.context.FLOAT)for(let g=0;gd?l[g].subarray(0,d):l[g];u.push(new Float32Array(p))}else u.push(null);if(c!==Gt.UNSIGNED_CHAR&&e.openGLDataType===e.context.UNSIGNED_BYTE)for(let g=0;gd?l[g].subarray(0,d):l[g];u.push(new Uint8Array(p))}else u.push(null);let h=!1;if(e._openGLRenderWindow.getWebgl2())h=e.openGLDataType===e.context.HALF_FLOAT;else{const g=e.context.getExtension("OES_texture_half_float");h=g&&e.openGLDataType===g.HALF_FLOAT_OES}if(h)for(let g=0;g=u&&(D=u-1);const b=_-E,I=1-b;E=E*f*d,D=D*f*d;for(let R=0;R=f&&(G=f-1);const P=L-A;A*=d,G*=d;for(let N=0;N5&&arguments[5]!==void 0?arguments[5]:!1;if(t.getOpenGLDataType(u,!0),t.getInternalFormat(u,f),t.getFormat(u,f),!e.internalFormat||!e.format||!e.openGLDataType)return Ll("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=f,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind();const g=[d],p=t.updateArrayDataTypeForGL(u,g),v=r(p);return e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,h),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),n(u)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),v[0]!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,v[0])):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,v[0]),e.generateMipmap&&e.context.generateMipmap(e.target),h&&e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,!1),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*f*e._openGLRenderWindow.getDefaultTextureByteSize(u,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0},t.createCubeFromRaw=(c,l,f,u,d)=>{if(t.getOpenGLDataType(u),t.getInternalFormat(u,f),t.getFormat(u,f),!e.internalFormat||!e.format||!e.openGLDataType)return Ll("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_CUBE_MAP,e.components=f,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),e.maxLevel=d.length/6-1,t.createTexture(),t.bind();const h=t.updateArrayDataTypeForGL(u,d),g=r(h),p=[];let v=e.width,x=e.height;for(let m=0;m=1&&C>=1;){let S=null;y<=e.maxLevel&&(S=p[6*y+m]),n(u)?S!=null&&e.context.texSubImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+m,y,0,0,w,C,e.format,e.openGLDataType,S):e.context.texImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+m,y,e.internalFormat,w,C,0,e.format,e.openGLDataType,S),y++,w/=2,C/=2}}return e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*f*e._openGLRenderWindow.getDefaultTextureByteSize(u,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0},t.createDepthFromRaw=(c,l,f,u)=>(t.getOpenGLDataType(f),e.format=e.context.DEPTH_COMPONENT,e._openGLRenderWindow.getWebgl2()?f===Gt.FLOAT?e.internalFormat=e.context.DEPTH_COMPONENT32F:e.internalFormat=e.context.DEPTH_COMPONENT16:e.internalFormat=e.context.DEPTH_COMPONENT,!e.internalFormat||!e.format||!e.openGLDataType?(Ll("Failed to determine texture parameters."),!1):(e.target=e.context.TEXTURE_2D,e.components=1,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),n(f)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),u!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,u)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,u),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(f,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0)),t.create2DFromImage=c=>{if(t.getOpenGLDataType(Gt.UNSIGNED_CHAR),t.getInternalFormat(Gt.UNSIGNED_CHAR,4),t.getFormat(Gt.UNSIGNED_CHAR,4),!e.internalFormat||!e.format||!e.openGLDataType)return Ll("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=4,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1);const l=!e._openGLRenderWindow.getWebgl2()&&(!wf(c.width)||!wf(c.height)),f=document.createElement("canvas");f.width=l?Zi(c.width):c.width,f.height=l?Zi(c.height):c.height,e.width=f.width,e.height=f.height;const u=f.getContext("2d");u.translate(0,f.height),u.scale(1,-1),u.drawImage(c,0,0,c.width,c.height,0,0,f.width,f.height);const d=f;return n(Gt.UNSIGNED_CHAR)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),d!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,d)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,d),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(Gt.UNSIGNED_CHAR,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0};function i(c,l,f){const u=new Array(f),d=new Array(f);for(let h=0;h2048||d<-2048||d>2048)return!1}return!0}function a(c,l,f,u){t.getOpenGLDataType(c);let d=!1;if(e._openGLRenderWindow.getWebgl2())d=e.openGLDataType===e.context.HALF_FLOAT;else{const g=e.context.getExtension("OES_texture_half_float");d=g&&e.openGLDataType===g.HALF_FLOAT_OES}const h=d&&(o(l,f)||u);e.canUseHalfFloat=h}function s(c,l){const f=c.getNumberOfComponents(),u=c.getDataType(),d=c.getData(),h=new Array(f),g=new Array(f);for(let v=0;v5&&arguments[5]!==void 0?arguments[5]:!1;return t.create2DFilterableFromDataArray(c,l,tt.newInstance({numberOfComponents:f,dataType:u,values:d}),h)},t.create2DFilterableFromDataArray=function(c,l,f){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const{numComps:d,dataType:h,data:g}=s(f,u);t.create2DFromRaw(c,l,d,h,g)},t.updateVolumeInfoForGL=(c,l)=>{var d,h;let f=!1;const u=t.useHalfFloat();(!((d=e.volumeInfo)!=null&&d.scale)||!((h=e.volumeInfo)!=null&&h.offset))&&(e.volumeInfo={scale:new Array(l),offset:new Array(l)});for(let g=0;g{let g=d,p=h;if(!t.updateVolumeInfoForGL(g,u)&&p){const w=c*l*f,C=structuredClone(e.volumeInfo),S=new Float32Array(w*u);e.volumeInfo.offset=C.offset,e.volumeInfo.scale=C.scale;let T=0;const _=C.scale.map(E=>1/E);for(let E=0;E6&&arguments[6]!==void 0?arguments[6]:!1;return t.create3DFilterableFromDataArray(c,l,f,tt.newInstance({numberOfComponents:u,dataType:d,values:h}),g)},t.create3DFilterableFromDataArray=function(c,l,f,u){let d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const{numComps:h,dataType:g,data:p,scaleOffsets:v}=s(u,d),x=[],m=[];for(let N=0;N{N[V]=$},S=Gt.UNSIGNED_CHAR;if(g===Gt.UNSIGNED_CHAR)for(let N=0;N{N[V]=($-j)/Y}):(S=Gt.UNSIGNED_CHAR,C=(N,V,$,j,Y)=>{N[V]=255*($-j)/Y});if(t.getOpenGLDataType(S),t.getInternalFormat(S,h),t.getFormat(S,h),!e.internalFormat||!e.format||!e.openGLDataType)return Ll("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=h,e.depth=1,e.numberOfDimensions=2;let T=e.context.getParameter(e.context.MAX_TEXTURE_SIZE);T>4096&&(S===Gt.FLOAT||h>=3)&&(T=4096);let _=1,E=1;y>T*T&&(_=Math.ceil(Math.sqrt(y/(T*T))),E=_);let D=Math.sqrt(y)/_;D=Zi(D);const b=Math.floor(D*_/c),I=Math.ceil(f/b),R=Zi(l*I/E);e.width=D,e.height=R,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.volumeInfo.xreps=b,e.volumeInfo.yreps=I,e.volumeInfo.xstride=_,e.volumeInfo.ystride=E,e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let M;const L=D*R*h;S===Gt.FLOAT?M=new Float32Array(L):M=new Uint8Array(L);let A=0;const G=Math.floor(c/_),P=Math.floor(l/E);for(let N=0;N{e._openGLRenderWindow!==c&&(t.releaseGraphicsResources(),e._openGLRenderWindow=c,e.context=null,c&&(e.context=e._openGLRenderWindow.getContext()))},t.getMaximumTextureSize=c=>c&&c.isCurrent()?c.getIntegerv(c.MAX_TEXTURE_SIZE):-1,t.enableUseHalfFloat=c=>{e.enableUseHalfFloat=c}}const $z={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:_a.CLAMP_TO_EDGE,wrapT:_a.CLAMP_TO_EDGE,wrapR:_a.CLAMP_TO_EDGE,minificationFilter:Lr.NEAREST,magnificationFilter:Lr.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function B7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$z,r),nn.extend(t,e,r),e.sendParametersTime={},fn(e.sendParametersTime,{mtime:0}),e.textureBuildTime={},fn(e.textureBuildTime,{mtime:0}),uh(t,e,["format","openGLDataType"]),Jn(t,e,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),gi(t,e,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),fh(t,e,["openGLRenderWindow"]),zz(t,e)}const G7=Bt(B7,"vtkOpenGLTexture");var yn={newInstance:G7,extend:B7,...s7};ir("vtkTexture",G7);function jz(t,e){e.classHierarchy.push("vtkFramebuffer"),t.getBothMode=()=>e.context.FRAMEBUFFER,t.saveCurrentBindingsAndBuffers=r=>{const n=typeof r<"u"?r:t.getBothMode();t.saveCurrentBindings(n),t.saveCurrentBuffers(n)},t.saveCurrentBindings=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling saveCurrentBindings");return}const n=e.context;e.previousDrawBinding=n.getParameter(e.context.FRAMEBUFFER_BINDING),e.previousActiveFramebuffer=e._openGLRenderWindow.getActiveFramebuffer()},t.saveCurrentBuffers=r=>{},t.restorePreviousBindingsAndBuffers=r=>{const n=typeof r<"u"?r:t.getBothMode();t.restorePreviousBindings(n),t.restorePreviousBuffers(n)},t.restorePreviousBindings=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling restorePreviousBindings");return}const n=e.context;n.bindFramebuffer(n.FRAMEBUFFER,e.previousDrawBinding),e._openGLRenderWindow.setActiveFramebuffer(e.previousActiveFramebuffer)},t.restorePreviousBuffers=r=>{},t.bind=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;n===null&&(n=e.context.FRAMEBUFFER),e.context.bindFramebuffer(n,e.glFramebuffer);for(let i=0;i{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling create");return}e.glFramebuffer=e.context.createFramebuffer(),e.glFramebuffer.width=r,e.glFramebuffer.height=n},t.setColorBuffer=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const i=e.context;if(!i){Dt("you must set the OpenGLRenderWindow before calling setColorBuffer");return}let o=i.COLOR_ATTACHMENT0;if(n>0)if(e._openGLRenderWindow.getWebgl2())o+=n;else{Dt("Using multiple framebuffer attachments requires WebGL 2");return}e.colorBuffers[n]=r,i.framebufferTexture2D(i.FRAMEBUFFER,o,i.TEXTURE_2D,r.getHandle(),0)},t.removeColorBuffer=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const n=e.context;if(!n){Dt("you must set the OpenGLRenderWindow before calling removeColorBuffer");return}let i=n.COLOR_ATTACHMENT0;if(r>0)if(e._openGLRenderWindow.getWebgl2())i+=r;else{Dt("Using multiple framebuffer attachments requires WebGL 2");return}n.framebufferTexture2D(n.FRAMEBUFFER,i,n.TEXTURE_2D,null,0),e.colorBuffers=e.colorBuffers.splice(r,1)},t.setDepthBuffer=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling setDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const n=e.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,r.getHandle(),0)}else Dt("Attaching depth buffer textures to fbo requires WebGL 2")},t.removeDepthBuffer=()=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling removeDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const r=e.context;r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,null,0)}else Dt("Attaching depth buffer textures to framebuffers requires WebGL 2")},t.getGLFramebuffer=()=>e.glFramebuffer,t.setOpenGLRenderWindow=r=>{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))},t.releaseGraphicsResources=()=>{e.glFramebuffer&&e.context.deleteFramebuffer(e.glFramebuffer)},t.getSize=()=>e.glFramebuffer==null?null:[e.glFramebuffer.width,e.glFramebuffer.height],t.populateFramebuffer=()=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling populateFrameBuffer");return}t.bind();const r=e.context,n=yn.newInstance();n.setOpenGLRenderWindow(e._openGLRenderWindow),n.setMinificationFilter(Je.LINEAR),n.setMagnificationFilter(Je.LINEAR),n.create2DFromRaw(e.glFramebuffer.width,e.glFramebuffer.height,4,yt.UNSIGNED_CHAR,null),t.setColorBuffer(n),e.depthTexture=r.createRenderbuffer(),r.bindRenderbuffer(r.RENDERBUFFER,e.depthTexture),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_COMPONENT16,e.glFramebuffer.width,e.glFramebuffer.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,e.depthTexture)},t.getColorTexture=()=>e.colorBuffers[0]}const Hz={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function W7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hz,r),fn(t,e),e.colorBuffers&&Dt("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),e.colorBuffers=[],g0(t,e,["colorBuffers"]),jz(t,e)}const Kz=Bt(W7,"vtkFramebuffer");var Km={newInstance:Kz,extend:W7};function qz(t,e){e.classHierarchy.push("vtkRenderPass"),t.getOperation=()=>e.currentOperation,t.setCurrentOperation=r=>{e.currentOperation=r,e.currentTraverseOperation=`traverse${W.capitalize(e.currentOperation)}`},t.getTraverseOperation=()=>e.currentTraverseOperation,t.traverse=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e.deleted||(e._currentParent=n,e.preDelegateOperations.forEach(i=>{t.setCurrentOperation(i),r.traverse(t)}),e.delegates.forEach(i=>{i.traverse(r,t)}),e.postDelegateOperations.forEach(i=>{t.setCurrentOperation(i),r.traverse(t)}))}}const Xz={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function z7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Xz,r),W.obj(t,e),W.get(t,e,["currentOperation"]),W.setGet(t,e,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),W.moveToProtected(t,e,["currentParent"]),qz(t,e)}const Yz=W.newInstance(z7,"vtkRenderPass");var uw={newInstance:Yz,extend:z7},At=1e-6,Hn=typeof Float32Array<"u"?Float32Array:Array,Jz=Math.PI/180;function Zz(t){return t*Jz}function qs(t,e){return Math.abs(t-e)<=At*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});function fw(){var t=new Hn(9);return Hn!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function qm(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function Qz(t){var e=new Hn(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function e$(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function Sf(t,e,r,n,i,o,a,s,c){var l=new Hn(9);return l[0]=t,l[1]=e,l[2]=r,l[3]=n,l[4]=i,l[5]=o,l[6]=a,l[7]=s,l[8]=c,l}function $7(t,e,r,n,i,o,a,s,c,l){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=o,t[5]=a,t[6]=s,t[7]=c,t[8]=l,t}function oo(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function dw(t,e){if(t===e){var r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function mh(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=f*a-s*l,d=-f*o+s*c,h=l*o-a*c,g=r*u+n*d+i*h;return g?(g=1/g,t[0]=u*g,t[1]=(-f*n+i*l)*g,t[2]=(s*n-i*a)*g,t[3]=d*g,t[4]=(f*r-i*c)*g,t[5]=(-s*r+i*o)*g,t[6]=h*g,t[7]=(-l*r+n*c)*g,t[8]=(a*r-n*o)*g,t):null}function t$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8];return t[0]=a*f-s*l,t[1]=i*l-n*f,t[2]=n*s-i*a,t[3]=s*c-o*f,t[4]=r*f-i*c,t[5]=i*o-r*s,t[6]=o*l-a*c,t[7]=n*c-r*l,t[8]=r*a-n*o,t}function Ec(t){var e=t[0],r=t[1],n=t[2],i=t[3],o=t[4],a=t[5],s=t[6],c=t[7],l=t[8];return e*(l*o-a*c)+r*(-l*i+a*s)+n*(c*i-o*s)}function $u(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=r[0],h=r[1],g=r[2],p=r[3],v=r[4],x=r[5],m=r[6],y=r[7],w=r[8];return t[0]=d*n+h*a+g*l,t[1]=d*i+h*s+g*f,t[2]=d*o+h*c+g*u,t[3]=p*n+v*a+x*l,t[4]=p*i+v*s+x*f,t[5]=p*o+v*c+x*u,t[6]=m*n+y*a+w*l,t[7]=m*i+y*s+w*f,t[8]=m*o+y*c+w*u,t}function n$(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=r[0],h=r[1];return t[0]=n,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=d*n+h*a+l,t[7]=d*i+h*s+f,t[8]=d*o+h*c+u,t}function r$(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=Math.sin(r),h=Math.cos(r);return t[0]=h*n+d*a,t[1]=h*i+d*s,t[2]=h*o+d*c,t[3]=h*a-d*n,t[4]=h*s-d*i,t[5]=h*c-d*o,t[6]=l,t[7]=f,t[8]=u,t}function i$(t,e,r){var n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function o$(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t}function a$(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function s$(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function c$(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t}function l$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=r+r,s=n+n,c=i+i,l=r*a,f=n*a,u=n*s,d=i*a,h=i*s,g=i*c,p=o*a,v=o*s,x=o*c;return t[0]=1-u-g,t[3]=f-x,t[6]=d+v,t[1]=f+x,t[4]=1-l-g,t[7]=h-p,t[2]=d-v,t[5]=h+p,t[8]=1-l-u,t}function u$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15],m=r*s-n*a,y=r*c-i*a,w=r*l-o*a,C=n*c-i*s,S=n*l-o*s,T=i*l-o*c,_=f*p-u*g,E=f*v-d*g,D=f*x-h*g,b=u*v-d*p,I=u*x-h*p,R=d*x-h*v,M=m*R-y*I+w*b+C*D-S*E+T*_;return M?(M=1/M,t[0]=(s*R-c*I+l*b)*M,t[1]=(c*D-a*R-l*E)*M,t[2]=(a*I-s*D+l*_)*M,t[3]=(i*I-n*R-o*b)*M,t[4]=(r*R-i*D+o*E)*M,t[5]=(n*D-r*I-o*_)*M,t[6]=(p*T-v*S+x*C)*M,t[7]=(v*w-g*T-x*y)*M,t[8]=(g*S-p*w+x*m)*M,t):null}function f$(t,e,r){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function d$(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function h$(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function g$(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t}function j7(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t}function p$(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t}function m$(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t}function v$(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]}function y$(t,e){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],l=t[7],f=t[8],u=e[0],d=e[1],h=e[2],g=e[3],p=e[4],v=e[5],x=e[6],m=e[7],y=e[8];return Math.abs(r-u)<=At*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(n-d)<=At*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-h)<=At*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-g)<=At*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(a-p)<=At*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-v)<=At*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(c-x)<=At*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(l-m)<=At*Math.max(1,Math.abs(l),Math.abs(m))&&Math.abs(f-y)<=At*Math.max(1,Math.abs(f),Math.abs(y))}var x$=$u,w$=j7;const C$=Object.freeze(Object.defineProperty({__proto__:null,add:g$,adjoint:t$,clone:Qz,copy:e$,create:fw,determinant:Ec,equals:y$,exactEquals:v$,frob:h$,fromMat2d:c$,fromMat4:qm,fromQuat:l$,fromRotation:a$,fromScaling:s$,fromTranslation:o$,fromValues:Sf,identity:oo,invert:mh,mul:x$,multiply:$u,multiplyScalar:p$,multiplyScalarAndAdd:m$,normalFromMat4:u$,projection:f$,rotate:r$,scale:i$,set:$7,str:d$,sub:w$,subtract:j7,translate:n$,transpose:dw},Symbol.toStringTag,{value:"Module"}));function co(){var t=new Hn(16);return Hn!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function S$(t){var e=new Hn(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function En(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function hw(t,e,r,n,i,o,a,s,c,l,f,u,d,h,g,p){var v=new Hn(16);return v[0]=t,v[1]=e,v[2]=r,v[3]=n,v[4]=i,v[5]=o,v[6]=a,v[7]=s,v[8]=c,v[9]=l,v[10]=f,v[11]=u,v[12]=d,v[13]=h,v[14]=g,v[15]=p,v}function T$(t,e,r,n,i,o,a,s,c,l,f,u,d,h,g,p,v){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=o,t[5]=a,t[6]=s,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=d,t[12]=h,t[13]=g,t[14]=p,t[15]=v,t}function qe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function St(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],o=e[6],a=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=o,t[11]=e[14],t[12]=i,t[13]=a,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function $n(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15],m=r*s-n*a,y=r*c-i*a,w=r*l-o*a,C=n*c-i*s,S=n*l-o*s,T=i*l-o*c,_=f*p-u*g,E=f*v-d*g,D=f*x-h*g,b=u*v-d*p,I=u*x-h*p,R=d*x-h*v,M=m*R-y*I+w*b+C*D-S*E+T*_;return M?(M=1/M,t[0]=(s*R-c*I+l*b)*M,t[1]=(i*I-n*R-o*b)*M,t[2]=(p*T-v*S+x*C)*M,t[3]=(d*S-u*T-h*C)*M,t[4]=(c*D-a*R-l*E)*M,t[5]=(r*R-i*D+o*E)*M,t[6]=(v*w-g*T-x*y)*M,t[7]=(f*T-d*w+h*y)*M,t[8]=(a*I-s*D+l*_)*M,t[9]=(n*D-r*I-o*_)*M,t[10]=(g*S-p*w+x*m)*M,t[11]=(u*w-f*S-h*m)*M,t[12]=(s*E-a*b-c*_)*M,t[13]=(r*b-n*E+i*_)*M,t[14]=(p*y-g*C-v*m)*M,t[15]=(f*C-u*y+d*m)*M,t):null}function _$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15];return t[0]=s*(d*x-h*v)-u*(c*x-l*v)+p*(c*h-l*d),t[1]=-(n*(d*x-h*v)-u*(i*x-o*v)+p*(i*h-o*d)),t[2]=n*(c*x-l*v)-s*(i*x-o*v)+p*(i*l-o*c),t[3]=-(n*(c*h-l*d)-s*(i*h-o*d)+u*(i*l-o*c)),t[4]=-(a*(d*x-h*v)-f*(c*x-l*v)+g*(c*h-l*d)),t[5]=r*(d*x-h*v)-f*(i*x-o*v)+g*(i*h-o*d),t[6]=-(r*(c*x-l*v)-a*(i*x-o*v)+g*(i*l-o*c)),t[7]=r*(c*h-l*d)-a*(i*h-o*d)+f*(i*l-o*c),t[8]=a*(u*x-h*p)-f*(s*x-l*p)+g*(s*h-l*u),t[9]=-(r*(u*x-h*p)-f*(n*x-o*p)+g*(n*h-o*u)),t[10]=r*(s*x-l*p)-a*(n*x-o*p)+g*(n*l-o*s),t[11]=-(r*(s*h-l*u)-a*(n*h-o*u)+f*(n*l-o*s)),t[12]=-(a*(u*v-d*p)-f*(s*v-c*p)+g*(s*d-c*u)),t[13]=r*(u*v-d*p)-f*(n*v-i*p)+g*(n*d-i*u),t[14]=-(r*(s*v-c*p)-a*(n*v-i*p)+g*(n*c-i*s)),t[15]=r*(s*d-c*u)-a*(n*d-i*u)+f*(n*c-i*s),t}function E$(t){var e=t[0],r=t[1],n=t[2],i=t[3],o=t[4],a=t[5],s=t[6],c=t[7],l=t[8],f=t[9],u=t[10],d=t[11],h=t[12],g=t[13],p=t[14],v=t[15],x=e*a-r*o,m=e*s-n*o,y=e*c-i*o,w=r*s-n*a,C=r*c-i*a,S=n*c-i*s,T=l*g-f*h,_=l*p-u*h,E=l*v-d*h,D=f*p-u*g,b=f*v-d*g,I=u*v-d*p;return x*I-m*b+y*D+w*E-C*_+S*T}function bt(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=e[9],h=e[10],g=e[11],p=e[12],v=e[13],x=e[14],m=e[15],y=r[0],w=r[1],C=r[2],S=r[3];return t[0]=y*n+w*s+C*u+S*p,t[1]=y*i+w*c+C*d+S*v,t[2]=y*o+w*l+C*h+S*x,t[3]=y*a+w*f+C*g+S*m,y=r[4],w=r[5],C=r[6],S=r[7],t[4]=y*n+w*s+C*u+S*p,t[5]=y*i+w*c+C*d+S*v,t[6]=y*o+w*l+C*h+S*x,t[7]=y*a+w*f+C*g+S*m,y=r[8],w=r[9],C=r[10],S=r[11],t[8]=y*n+w*s+C*u+S*p,t[9]=y*i+w*c+C*d+S*v,t[10]=y*o+w*l+C*h+S*x,t[11]=y*a+w*f+C*g+S*m,y=r[12],w=r[13],C=r[14],S=r[15],t[12]=y*n+w*s+C*u+S*p,t[13]=y*i+w*c+C*d+S*v,t[14]=y*o+w*l+C*h+S*x,t[15]=y*a+w*f+C*g+S*m,t}function rn(t,e,r){var n=r[0],i=r[1],o=r[2],a,s,c,l,f,u,d,h,g,p,v,x;return e===t?(t[12]=e[0]*n+e[4]*i+e[8]*o+e[12],t[13]=e[1]*n+e[5]*i+e[9]*o+e[13],t[14]=e[2]*n+e[6]*i+e[10]*o+e[14],t[15]=e[3]*n+e[7]*i+e[11]*o+e[15]):(a=e[0],s=e[1],c=e[2],l=e[3],f=e[4],u=e[5],d=e[6],h=e[7],g=e[8],p=e[9],v=e[10],x=e[11],t[0]=a,t[1]=s,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=d,t[7]=h,t[8]=g,t[9]=p,t[10]=v,t[11]=x,t[12]=a*n+f*i+g*o+e[12],t[13]=s*n+u*i+p*o+e[13],t[14]=c*n+d*i+v*o+e[14],t[15]=l*n+h*i+x*o+e[15]),t}function ja(t,e,r){var n=r[0],i=r[1],o=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Kr(t,e,r,n){var i=n[0],o=n[1],a=n[2],s=Math.hypot(i,o,a),c,l,f,u,d,h,g,p,v,x,m,y,w,C,S,T,_,E,D,b,I,R,M,L;return s0?(r[0]=(s*a+f*n+c*o-l*i)*2/u,r[1]=(c*a+f*i+l*n-s*o)*2/u,r[2]=(l*a+f*o+s*i-c*n)*2/u):(r[0]=(s*a+f*n+c*o-l*i)*2,r[1]=(c*a+f*i+l*n-s*o)*2,r[2]=(l*a+f*o+s*i-c*n)*2),H7(t,e,r),t}function M$(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function K7(t,e){var r=e[0],n=e[1],i=e[2],o=e[4],a=e[5],s=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.hypot(r,n,i),t[1]=Math.hypot(o,a,s),t[2]=Math.hypot(c,l,f),t}function F5(t,e){var r=new Hn(3);K7(r,e);var n=1/r[0],i=1/r[1],o=1/r[2],a=e[0]*n,s=e[1]*i,c=e[2]*o,l=e[4]*n,f=e[5]*i,u=e[6]*o,d=e[8]*n,h=e[9]*i,g=e[10]*o,p=a+f+g,v=0;return p>0?(v=Math.sqrt(p+1)*2,t[3]=.25*v,t[0]=(u-h)/v,t[1]=(d-c)/v,t[2]=(s-l)/v):a>f&&a>g?(v=Math.sqrt(1+a-f-g)*2,t[3]=(u-h)/v,t[0]=.25*v,t[1]=(s+l)/v,t[2]=(d+c)/v):f>g?(v=Math.sqrt(1+f-a-g)*2,t[3]=(d-c)/v,t[0]=(s+l)/v,t[1]=.25*v,t[2]=(u+h)/v):(v=Math.sqrt(1+g-a-f)*2,t[3]=(s-l)/v,t[0]=(d+c)/v,t[1]=(u+h)/v,t[2]=.25*v),t}function q7(t,e,r,n){var i=e[0],o=e[1],a=e[2],s=e[3],c=i+i,l=o+o,f=a+a,u=i*c,d=i*l,h=i*f,g=o*l,p=o*f,v=a*f,x=s*c,m=s*l,y=s*f,w=n[0],C=n[1],S=n[2];return t[0]=(1-(g+v))*w,t[1]=(d+y)*w,t[2]=(h-m)*w,t[3]=0,t[4]=(d-y)*C,t[5]=(1-(u+v))*C,t[6]=(p+x)*C,t[7]=0,t[8]=(h+m)*S,t[9]=(p-x)*S,t[10]=(1-(u+g))*S,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function R$(t,e,r,n,i){var o=e[0],a=e[1],s=e[2],c=e[3],l=o+o,f=a+a,u=s+s,d=o*l,h=o*f,g=o*u,p=a*f,v=a*u,x=s*u,m=c*l,y=c*f,w=c*u,C=n[0],S=n[1],T=n[2],_=i[0],E=i[1],D=i[2],b=(1-(p+x))*C,I=(h+w)*C,R=(g-y)*C,M=(h-w)*S,L=(1-(d+x))*S,A=(v+m)*S,G=(g+y)*T,P=(v-m)*T,N=(1-(d+p))*T;return t[0]=b,t[1]=I,t[2]=R,t[3]=0,t[4]=M,t[5]=L,t[6]=A,t[7]=0,t[8]=G,t[9]=P,t[10]=N,t[11]=0,t[12]=r[0]+_-(b*_+M*E+G*D),t[13]=r[1]+E-(I*_+L*E+P*D),t[14]=r[2]+D-(R*_+A*E+N*D),t[15]=1,t}function D1(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=r+r,s=n+n,c=i+i,l=r*a,f=n*a,u=n*s,d=i*a,h=i*s,g=i*c,p=o*a,v=o*s,x=o*c;return t[0]=1-u-g,t[1]=f+x,t[2]=d-v,t[3]=0,t[4]=f-x,t[5]=1-l-g,t[6]=h+p,t[7]=0,t[8]=d+v,t[9]=h-p,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function L$(t,e,r,n,i,o,a){var s=1/(r-e),c=1/(i-n),l=1/(o-a);return t[0]=o*2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*s,t[9]=(i+n)*c,t[10]=(a+o)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=a*o*2*l,t[15]=0,t}function X7(t,e,r,n,i){var o=1/Math.tan(e/2),a;return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0?(a=1/(n-i),t[10]=(i+n)*a,t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t}var N$=X7;function P$(t,e,r,n,i){var o=1/Math.tan(e/2),a;return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0?(a=1/(n-i),t[10]=i*a,t[14]=i*n*a):(t[10]=-1,t[14]=-n),t}function A$(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),o=Math.tan(e.downDegrees*Math.PI/180),a=Math.tan(e.leftDegrees*Math.PI/180),s=Math.tan(e.rightDegrees*Math.PI/180),c=2/(a+s),l=2/(i+o);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((a-s)*c*.5),t[9]=(i-o)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function Y7(t,e,r,n,i,o,a){var s=1/(e-r),c=1/(n-i),l=1/(o-a);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*c,t[14]=(a+o)*l,t[15]=1,t}var xw=Y7;function k$(t,e,r,n,i,o,a){var s=1/(e-r),c=1/(n-i),l=1/(o-a);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*c,t[14]=o*l,t[15]=1,t}function ww(t,e,r,n){var i,o,a,s,c,l,f,u,d,h,g=e[0],p=e[1],v=e[2],x=n[0],m=n[1],y=n[2],w=r[0],C=r[1],S=r[2];return Math.abs(g-w)0&&(h=1/Math.sqrt(h),f*=h,u*=h,d*=h);var g=c*d-l*u,p=l*f-s*d,v=s*u-c*f;return h=g*g+p*p+v*v,h>0&&(h=1/Math.sqrt(h),g*=h,p*=h,v*=h),t[0]=g,t[1]=p,t[2]=v,t[3]=0,t[4]=u*v-d*p,t[5]=d*g-f*v,t[6]=f*p-u*g,t[7]=0,t[8]=f,t[9]=u,t[10]=d,t[11]=0,t[12]=i,t[13]=o,t[14]=a,t[15]=1,t}function F$(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}function U$(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}function B$(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function J7(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function Z7(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function G$(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function W$(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function z$(t,e){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],l=t[7],f=t[8],u=t[9],d=t[10],h=t[11],g=t[12],p=t[13],v=t[14],x=t[15],m=e[0],y=e[1],w=e[2],C=e[3],S=e[4],T=e[5],_=e[6],E=e[7],D=e[8],b=e[9],I=e[10],R=e[11],M=e[12],L=e[13],A=e[14],G=e[15];return Math.abs(r-m)<=At*Math.max(1,Math.abs(r),Math.abs(m))&&Math.abs(n-y)<=At*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-w)<=At*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-C)<=At*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(a-S)<=At*Math.max(1,Math.abs(a),Math.abs(S))&&Math.abs(s-T)<=At*Math.max(1,Math.abs(s),Math.abs(T))&&Math.abs(c-_)<=At*Math.max(1,Math.abs(c),Math.abs(_))&&Math.abs(l-E)<=At*Math.max(1,Math.abs(l),Math.abs(E))&&Math.abs(f-D)<=At*Math.max(1,Math.abs(f),Math.abs(D))&&Math.abs(u-b)<=At*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(d-I)<=At*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(h-R)<=At*Math.max(1,Math.abs(h),Math.abs(R))&&Math.abs(g-M)<=At*Math.max(1,Math.abs(g),Math.abs(M))&&Math.abs(p-L)<=At*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(v-A)<=At*Math.max(1,Math.abs(v),Math.abs(A))&&Math.abs(x-G)<=At*Math.max(1,Math.abs(x),Math.abs(G))}var b1=bt,$$=J7;const bd=Object.freeze(Object.defineProperty({__proto__:null,add:B$,adjoint:_$,clone:S$,copy:En,create:co,determinant:E$,equals:z$,exactEquals:W$,frob:U$,fromQuat:D1,fromQuat2:O$,fromRotation:yw,fromRotationTranslation:H7,fromRotationTranslationScale:q7,fromRotationTranslationScaleOrigin:R$,fromScaling:vw,fromTranslation:Xm,fromValues:hw,fromXRotation:D$,fromYRotation:b$,fromZRotation:I$,frustum:L$,getRotation:F5,getScaling:K7,getTranslation:M$,identity:qe,invert:$n,lookAt:ww,mul:b1,multiply:bt,multiplyScalar:Z7,multiplyScalarAndAdd:G$,ortho:xw,orthoNO:Y7,orthoZO:k$,perspective:N$,perspectiveFromFieldOfView:A$,perspectiveNO:X7,perspectiveZO:P$,rotate:Kr,rotateX:gw,rotateY:pw,rotateZ:mw,scale:ja,set:T$,str:F$,sub:$$,subtract:J7,targetTo:V$,translate:rn,transpose:St},Symbol.toStringTag,{value:"Module"}));function xe(){var t=new Hn(3);return Hn!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Su(t){var e=new Hn(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function ui(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function Ye(t,e,r){var n=new Hn(3);return n[0]=t,n[1]=e,n[2]=r,n}function Id(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function jt(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function xn(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function kt(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function j$(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function H$(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function K$(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function cr(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Vt(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function Cr(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.hypot(r,n,i)}function Q7(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}function Kc(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function eb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function an(t,e){var r=e[0],n=e[1],i=e[2],o=r*r+n*n+i*i;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}function je(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function qt(t,e,r){var n=e[0],i=e[1],o=e[2],a=r[0],s=r[1],c=r[2];return t[0]=i*c-o*s,t[1]=o*a-n*c,t[2]=n*s-i*a,t}function et(t,e,r){var n=e[0],i=e[1],o=e[2],a=r[3]*n+r[7]*i+r[11]*o+r[15];return a=a||1,t[0]=(r[0]*n+r[4]*i+r[8]*o+r[12])/a,t[1]=(r[1]*n+r[5]*i+r[9]*o+r[13])/a,t[2]=(r[2]*n+r[6]*i+r[10]*o+r[14])/a,t}function _p(t,e,r){var n=e[0],i=e[1],o=e[2];return t[0]=n*r[0]+i*r[3]+o*r[6],t[1]=n*r[1]+i*r[4]+o*r[7],t[2]=n*r[2]+i*r[5]+o*r[8],t}function Cw(t,e){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2],c=Math.sqrt(r*r+n*n+i*i),l=Math.sqrt(o*o+a*a+s*s),f=c*l,u=f&&je(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function q$(t){return t[0]=0,t[1]=0,t[2]=0,t}function IT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function U5(t,e){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2];return Math.abs(r-o)<=At*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=At*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-s)<=At*Math.max(1,Math.abs(i),Math.abs(s))}var en=kt,X$=j$,OT=Q7,Od=ui;(function(){var t=xe();return function(e,r,n,i,o,a){var s,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;s0&&(a=1/Math.sqrt(a)),t[0]=r*a,t[1]=n*a,t[2]=i*a,t[3]=o*a,t}function RT(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Is(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*o+r[12]*a,t[1]=r[1]*n+r[5]*i+r[9]*o+r[13]*a,t[2]=r[2]*n+r[6]*i+r[10]*o+r[14]*a,t[3]=r[3]*n+r[7]*i+r[11]*o+r[15]*a,t}(function(){var t=tb();return function(e,r,n,i,o,a){var s,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;sAt?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function LT(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+a*s+i*l-o*c,t[1]=i*f+a*c+o*s-n*l,t[2]=o*f+a*l+n*c-i*s,t[3]=a*f-n*s-i*c-o*l,t}function Dp(t,e,r,n){var i=e[0],o=e[1],a=e[2],s=e[3],c=r[0],l=r[1],f=r[2],u=r[3],d,h,g,p,v;return h=i*c+o*l+a*f+s*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>At?(d=Math.acos(h),g=Math.sin(d),p=Math.sin((1-n)*d)/g,v=Math.sin(n*d)/g):(p=1-n,v=n),t[0]=p*i+v*c,t[1]=p*o+v*l,t[2]=p*a+v*f,t[3]=p*s+v*u,t}function Z$(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Q$(t,e){var r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var o=(i+1)%3,a=(i+2)%3;n=Math.sqrt(e[i*3+i]-e[o*3+o]-e[a*3+a]+1),t[i]=.5*n,n=.5/n,t[3]=(e[o*3+a]-e[a*3+o])*n,t[o]=(e[o*3+i]+e[i*3+o])*n,t[a]=(e[a*3+i]+e[i*3+a])*n}return t}var NT=Ep,nb=Y$;(function(){var t=xe(),e=Ye(1,0,0),r=Ye(0,1,0);return function(n,i,o){var a=je(i,o);return a<-.999999?(qt(t,e,i),Od(t)<1e-6&&qt(t,r,i),an(t,t),Sw(n,t,Math.PI),n):a>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(qt(t,i,o),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+a,nb(n,n))}})();(function(){var t=cl(),e=cl();return function(r,n,i,o,a,s){return Dp(t,n,a,s),Dp(e,i,o,s),Dp(r,t,e,2*s*(1-s)),r}})();(function(){var t=fw();return function(e,r,n,i){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],nb(e,Q$(e,t))}})();function ot(){var t=new Hn(2);return Hn!=Float32Array&&(t[0]=0,t[1]=0),t}function og(t){var e=new Hn(2);return e[0]=t[0],e[1]=t[1],e}function PT(t,e){var r=new Hn(2);return r[0]=t,r[1]=e,r}function Qi(t,e,r){return t[0]=e,t[1]=r,t}function Nr(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function kn(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Ea(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function ej(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function In(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function B5(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function La(t,e){var r=e[0],n=e[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function Tw(t,e){return t[0]*e[0]+t[1]*e[1]}function tj(t,e){var r=t[0],n=t[1],i=e[0],o=e[1],a=Math.sqrt(r*r+n*n)*Math.sqrt(i*i+o*o),s=a&&(r*i+n*o)/a;return Math.acos(Math.min(Math.max(s,-1),1))}var Io=kn,_w=In;(function(){var t=ot();return function(e,r,n,i,o,a){var s,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;sn,t.setType=s=>{n=s},t.getHandle=()=>i,t.isReady=()=>o===!1,t.generateBuffer=s=>{const c=r(s);return i===null&&(i=e.context.createBuffer(),n=s),r(n)===c},t.upload=(s,c)=>t.generateBuffer(c)?(e.context.bindBuffer(r(n),i),e.context.bufferData(r(n),s,e.context.STATIC_DRAW),e.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,o=!1,!0):(a="Trying to upload array buffer to incompatible buffer.",!1),t.bind=()=>i?(e.context.bindBuffer(r(n),i),!0):!1,t.release=()=>i?(e.context.bindBuffer(r(n),null),!0):!1,t.releaseGraphicsResources=()=>{i!==null&&(e.context.bindBuffer(r(n),null),e.context.deleteBuffer(i),i=null,e.allocatedGPUMemoryInBytes=0)},t.setOpenGLRenderWindow=s=>{e._openGLRenderWindow!==s&&(t.releaseGraphicsResources(),e._openGLRenderWindow=s,e.context=null,s&&(e.context=e._openGLRenderWindow.getContext()))},t.getError=()=>a}const ij={objectType:bp.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function ib(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ij,r),W.obj(t,e),W.get(t,e,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),W.moveToProtected(t,e,["openGLRenderWindow"]),rj(t,e)}const oj=W.newInstance(ib);var Na={newInstance:oj,extend:ib,...nj,...rb};const ob={FLAT:0,GOURAUD:1,PHONG:2},Vr={POINTS:0,WIREFRAME:1,SURFACE:2},aj=ob;var ab={Shading:ob,Representation:Vr,Interpolation:aj};const{vtkErrorMacro:AT}=W;function sj(t,e){const r=new Float64Array(3);eb(r,e);const n=new Float64Array(16);return q7(n,cl(),t,r),n}function cj(t,e){return t===null||e===null?!1:!(IT(t,[0,0,0])&&IT(e,[1,1,1]))}function lj(t,e){e.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),t.setType(Fa.ARRAY_BUFFER),t.createVBO=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;if(!r.getData()||!r.getData().length)return e.elementCount=0,0;e.blockSize=3,e.vertexOffset=0,e.normalOffset=0,e.tCoordOffset=0,e.tCoordComponents=0,e.colorComponents=0,e.colorOffset=0,e.customData=[];const s=o.points.getData();let c=null,l=null,f=null;const u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(e.normalOffset=4*e.blockSize,e.blockSize+=3,c=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(N=>{N&&(e.customData.push({data:N.getData(),offset:4*e.blockSize,components:N.getNumberOfComponents(),name:N.getName()}),e.blockSize+=N.getNumberOfComponents())}),o.tcoords&&(e.tCoordOffset=4*e.blockSize,e.tCoordComponents=d,e.blockSize+=d,l=o.tcoords.getData()),o.colors?(e.colorComponents=o.colors.getNumberOfComponents(),e.colorOffset=0,f=o.colors.getData(),e.colorBO||(e.colorBO=Na.newInstance()),e.colorBO.setOpenGLRenderWindow(e._openGLRenderWindow)):e.colorBO=null,e.stride=4*e.blockSize;let h=0,g=0,p=0,v=0,x=0,m=0,y;const w={anythingToPoints(N,V,$,j){for(let Y=0;Y2)for(let Y=0;Y2){for(let Y=0;Y1?(N-1)*2:0},polysToWireframe(N,V){return N>2?N*2:0},stripsToWireframe(N,V){return N>2?N*4-6:0},polysToSurface(N,V){return N>2?(N-2)*3:0},stripsToSurface(N,V,$){return N>2?(N-2)*3:0}};let S=null,T=null;i===Vr.POINTS||n==="verts"?(S=w.anythingToPoints,T=C.anythingToPoints):i===Vr.WIREFRAME||n==="lines"?(S=w[`${n}ToWireframe`],T=C[`${n}ToWireframe`]):(S=w[`${n}ToSurface`],T=C[`${n}ToSurface`]);const _=r.getData(),E=_.length;let D=0;for(let N=0;N0&&(Math.abs(A)/L>1e6||Math.abs(Math.log10(L))>3||L===0&&A>1e6)){const N=new Float64Array(3),V=new Float64Array(3);for(let $=0;$<3;++$){const j=o.points.getRange($),Y=j[1]-j[0];N[$]=.5*(j[1]+j[0]),V[$]=Y>0?1/Y:1}t.setCoordShiftAndScale(N,V)}else e.coordShiftAndScaleEnabled===!0&&t.setCoordShiftAndScale(null,null);if(a)if(!a.points&&!a.cells)a.points=new Int32Array(D),a.cells=new Int32Array(D);else{const N=new Int32Array(D+a.points.length);N.set(a.points),a.points=N;const V=new Int32Array(D+a.cells.length);V.set(a.cells),a.cells=V}let P=o.vertexOffset;y=function(V,$){if(a&&(a.points[P]=V,a.cells[P]=m+o.cellOffset),++P,h=V*3,e.coordShiftAndScaleEnabled?(I[R++]=(s[h++]-e.coordShift[0])*e.coordScale[0],I[R++]=(s[h++]-e.coordShift[1])*e.coordScale[1],I[R++]=(s[h++]-e.coordShift[2])*e.coordScale[2]):(I[R++]=s[h++],I[R++]=s[h++],I[R++]=s[h++]),c!==null&&(o.haveCellNormals?g=(m+o.cellOffset)*3:g=V*3,I[R++]=c[g++],I[R++]=c[g++],I[R++]=c[g++]),e.customData.forEach(j=>{x=V*j.components;for(let Y=0;Y{if(r!==null&&(r.constructor!==Float64Array||r.length!==3)){AT("Wrong type for coordShift, expected vec3 or null");return}if(n!==null&&(n.constructor!==Float64Array||n.length!==3)){AT("Wrong type for coordScale, expected vec3 or null");return}(e.coordShift===null||r===null||!U5(r,e.coordShift))&&(e.coordShift=r),(e.coordScale===null||n===null||!U5(n,e.coordScale))&&(e.coordScale=n),e.coordShiftAndScaleEnabled=cj(e.coordShift,e.coordScale),e.coordShiftAndScaleEnabled?e.inverseShiftAndScaleMatrix=sj(e.coordShift,e.coordScale):e.inverseShiftAndScaleMatrix=null}}const uj={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function sb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uj,r),Na.extend(t,e,r),W.setGet(t,e,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),W.get(t,e,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),lj(t,e)}const fj=W.newInstance(sb);var dj={newInstance:fj,extend:sb};const{vtkErrorMacro:hj}=W;function gj(t,e){e.classHierarchy.push("vtkShader"),t.compile=()=>{let r=e.context.VERTEX_SHADER;if(!e.source||!e.source.length||e.shaderType==="Unknown")return!1;switch(e.handle!==0&&(e.context.deleteShader(e.handle),e.handle=0),e.shaderType){case"Fragment":r=e.context.FRAGMENT_SHADER;break;case"Vertex":default:r=e.context.VERTEX_SHADER;break}if(e.handle=e.context.createShader(r),e.context.shaderSource(e.handle,e.source),e.context.compileShader(e.handle),!e.context.getShaderParameter(e.handle,e.context.COMPILE_STATUS)){const i=e.context.getShaderInfoLog(e.handle);return hj(`Error compiling shader '${e.source}': ${i}`),e.context.deleteShader(e.handle),e.handle=0,!1}return!0},t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(e.context.deleteShader(e.handle),e.handle=0,e.dirty=!0)}}const pj={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function cb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pj,r),W.obj(t,e),W.setGet(t,e,["shaderType","source","error","handle","context"]),gj(t,e)}const mj=W.newInstance(cb,"vtkShader");var Sv={newInstance:mj,extend:cb};const{vtkErrorMacro:Fo}=W;function vj(t,e,r,n){const i=typeof r=="string"?r:r.join(` -`),o=n===!1?e:new RegExp(e,"g"),a=t.replace(o,i);return{replace:a!==i,result:a}}function yj(t,e){e.classHierarchy.push("vtkShaderProgram"),t.compileShader=()=>e.vertexShader.compile()?e.fragmentShader.compile()?!t.attachShader(e.vertexShader)||!t.attachShader(e.fragmentShader)?(Fo(e.error),0):t.link()?(t.setCompiled(!0),1):(Fo(`Links failed: ${e.error}`),0):(Fo(e.fragmentShader.getSource().split(` +`+o.stack}return{value:t,source:e,stack:i,digest:null}}function gv(t,e,r){return{value:t,source:null,stack:r??null,digest:e??null}}function d5(t,e){try{console.error(e.value)}catch(r){setTimeout(function(){throw r})}}var rB=typeof WeakMap=="function"?WeakMap:Map;function K9(t,e,r){r=ka(-1,r),r.tag=3,r.payload={element:null};var n=e.value;return r.callback=function(){g1||(g1=!0,S5=n),d5(t,e)},r}function q9(t,e,r){r=ka(-1,r),r.tag=3;var n=t.type.getDerivedStateFromError;if(typeof n=="function"){var i=e.value;r.payload=function(){return n(i)},r.callback=function(){d5(t,e)}}var o=t.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(r.callback=function(){d5(t,e),typeof n!="function"&&(Fs===null?Fs=new Set([this]):Fs.add(this));var a=e.stack;this.componentDidCatch(e.value,{componentStack:a!==null?a:""})}),r}function K4(t,e,r){var n=t.pingCache;if(n===null){n=t.pingCache=new rB;var i=new Set;n.set(e,i)}else i=n.get(e),i===void 0&&(i=new Set,n.set(e,i));i.has(r)||(i.add(r),t=vB.bind(null,t,e,r),e.then(t,t))}function q4(t){do{var e;if((e=t.tag===13)&&(e=t.memoizedState,e=e!==null?e.dehydrated!==null:!0),e)return t;t=t.return}while(t!==null);return null}function X4(t,e,r,n,i){return t.mode&1?(t.flags|=65536,t.lanes=i,t):(t===e?t.flags|=65536:(t.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(e=ka(-1,1),e.tag=2,Vs(r,e,1))),r.lanes|=1),t)}var iB=Qa.ReactCurrentOwner,yi=!1;function ii(t,e,r,n){e.child=t===null?T9(e,null,r,n):Bu(e,t.child,r,n)}function Y4(t,e,r,n,i){r=r.render;var o=e.ref;return wu(e,i),n=Ox(t,e,r,n,o,i),r=Mx(),t!==null&&!yi?(e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~i,ja(t,e,i)):(Ln&&r&&vx(e),e.flags|=1,ii(t,e,n,i),e.child)}function J4(t,e,r,n,i){if(t===null){var o=r.type;return typeof o=="function"&&!Bx(o)&&o.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(e.tag=15,e.type=o,X9(t,e,o,n,i)):(t=vp(r.type,null,n,e,e.mode,i),t.ref=e.ref,t.return=e,e.child=t)}if(o=t.child,!(t.lanes&i)){var a=o.memoizedProps;if(r=r.compare,r=r!==null?r:md,r(a,n)&&t.ref===e.ref)return ja(t,e,i)}return e.flags|=1,t=Bs(o,n),t.ref=e.ref,t.return=e,e.child=t}function X9(t,e,r,n,i){if(t!==null){var o=t.memoizedProps;if(md(o,n)&&t.ref===e.ref)if(yi=!1,e.pendingProps=n=o,(t.lanes&i)!==0)t.flags&131072&&(yi=!0);else return e.lanes=t.lanes,ja(t,e,i)}return h5(t,e,r,n,i)}function Y9(t,e,r){var n=e.pendingProps,i=n.children,o=t!==null?t.memoizedState:null;if(n.mode==="hidden")if(!(e.mode&1))e.memoizedState={baseLanes:0,cachePool:null,transitions:null},vn(ou,Mi),Mi|=r;else{if(!(r&1073741824))return t=o!==null?o.baseLanes|r:r,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:t,cachePool:null,transitions:null},e.updateQueue=null,vn(ou,Mi),Mi|=t,null;e.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=o!==null?o.baseLanes:r,vn(ou,Mi),Mi|=n}else o!==null?(n=o.baseLanes|r,e.memoizedState=null):n=r,vn(ou,Mi),Mi|=n;return ii(t,e,i,r),e.child}function J9(t,e){var r=e.ref;(t===null&&r!==null||t!==null&&t.ref!==r)&&(e.flags|=512,e.flags|=2097152)}function h5(t,e,r,n,i){var o=Ci(r)?tl:Yr.current;return o=Fu(e,o),wu(e,i),r=Ox(t,e,r,n,o,i),n=Mx(),t!==null&&!yi?(e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~i,ja(t,e,i)):(Ln&&n&&vx(e),e.flags|=1,ii(t,e,r,i),e.child)}function Z4(t,e,r,n,i){if(Ci(r)){var o=!0;i1(e)}else o=!1;if(wu(e,i),e.stateNode===null)gp(t,e),H9(e,r,n),f5(e,r,n,i),n=!0;else if(t===null){var a=e.stateNode,s=e.memoizedProps;a.props=s;var c=a.context,l=r.contextType;typeof l=="object"&&l!==null?l=io(l):(l=Ci(r)?tl:Yr.current,l=Fu(e,l));var f=r.getDerivedStateFromProps,u=typeof f=="function"||typeof a.getSnapshotBeforeUpdate=="function";u||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==n||c!==l)&&H4(e,a,n,l),ys=!1;var d=e.memoizedState;a.state=d,l1(e,n,a,i),c=e.memoizedState,s!==n||d!==c||wi.current||ys?(typeof f=="function"&&(u5(e,r,f,n),c=e.memoizedState),(s=ys||j4(e,r,s,n,d,c,l))?(u||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(e.flags|=4194308)):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=n,e.memoizedState=c),a.props=n,a.state=c,a.context=l,n=s):(typeof a.componentDidMount=="function"&&(e.flags|=4194308),n=!1)}else{a=e.stateNode,E9(t,e),s=e.memoizedProps,l=e.type===e.elementType?s:yo(e.type,s),a.props=l,u=e.pendingProps,d=a.context,c=r.contextType,typeof c=="object"&&c!==null?c=io(c):(c=Ci(r)?tl:Yr.current,c=Fu(e,c));var h=r.getDerivedStateFromProps;(f=typeof h=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==u||d!==c)&&H4(e,a,n,c),ys=!1,d=e.memoizedState,a.state=d,l1(e,n,a,i);var g=e.memoizedState;s!==u||d!==g||wi.current||ys?(typeof h=="function"&&(u5(e,r,h,n),g=e.memoizedState),(l=ys||j4(e,r,l,n,d,g,c)||!1)?(f||typeof a.UNSAFE_componentWillUpdate!="function"&&typeof a.componentWillUpdate!="function"||(typeof a.componentWillUpdate=="function"&&a.componentWillUpdate(n,g,c),typeof a.UNSAFE_componentWillUpdate=="function"&&a.UNSAFE_componentWillUpdate(n,g,c)),typeof a.componentDidUpdate=="function"&&(e.flags|=4),typeof a.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof a.componentDidUpdate!="function"||s===t.memoizedProps&&d===t.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===t.memoizedProps&&d===t.memoizedState||(e.flags|=1024),e.memoizedProps=n,e.memoizedState=g),a.props=n,a.state=g,a.context=c,n=l):(typeof a.componentDidUpdate!="function"||s===t.memoizedProps&&d===t.memoizedState||(e.flags|=4),typeof a.getSnapshotBeforeUpdate!="function"||s===t.memoizedProps&&d===t.memoizedState||(e.flags|=1024),n=!1)}return g5(t,e,r,n,o,i)}function g5(t,e,r,n,i,o){J9(t,e);var a=(e.flags&128)!==0;if(!n&&!a)return i&&V4(e,r,!1),ja(t,e,o);n=e.stateNode,iB.current=e;var s=a&&typeof r.getDerivedStateFromError!="function"?null:n.render();return e.flags|=1,t!==null&&a?(e.child=Bu(e,t.child,null,o),e.child=Bu(e,null,s,o)):ii(t,e,s,o),e.memoizedState=n.state,i&&V4(e,r,!0),e.child}function Z9(t){var e=t.stateNode;e.pendingContext?k4(t,e.pendingContext,e.pendingContext!==e.context):e.context&&k4(t,e.context,!1),Ex(t,e.containerInfo)}function Q4(t,e,r,n,i){return Uu(),xx(i),e.flags|=256,ii(t,e,r,n),e.child}var p5={dehydrated:null,treeContext:null,retryLane:0};function m5(t){return{baseLanes:t,cachePool:null,transitions:null}}function Q9(t,e,r){var n=e.pendingProps,i=Un.current,o=!1,a=(e.flags&128)!==0,s;if((s=a)||(s=t!==null&&t.memoizedState===null?!1:(i&2)!==0),s?(o=!0,e.flags&=-129):(t===null||t.memoizedState!==null)&&(i|=1),vn(Un,i&1),t===null)return c5(e),t=e.memoizedState,t!==null&&(t=t.dehydrated,t!==null)?(e.mode&1?t.data==="$!"?e.lanes=8:e.lanes=1073741824:e.lanes=1,null):(a=n.children,t=n.fallback,o?(n=e.mode,o=e.child,a={mode:"hidden",children:a},!(n&1)&&o!==null?(o.childLanes=0,o.pendingProps=a):o=Bm(a,n,0,null),t=jc(t,n,r,null),o.return=e,t.return=e,o.sibling=t,e.child=o,e.child.memoizedState=m5(r),e.memoizedState=p5,t):Nx(e,a));if(i=t.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return oB(t,e,a,n,s,i,r);if(o){o=n.fallback,a=e.mode,i=t.child,s=i.sibling;var c={mode:"hidden",children:n.children};return!(a&1)&&e.child!==i?(n=e.child,n.childLanes=0,n.pendingProps=c,e.deletions=null):(n=Bs(i,c),n.subtreeFlags=i.subtreeFlags&14680064),s!==null?o=Bs(s,o):(o=jc(o,a,r,null),o.flags|=2),o.return=e,n.return=e,n.sibling=o,e.child=n,n=o,o=e.child,a=t.child.memoizedState,a=a===null?m5(r):{baseLanes:a.baseLanes|r,cachePool:null,transitions:a.transitions},o.memoizedState=a,o.childLanes=t.childLanes&~r,e.memoizedState=p5,n}return o=t.child,t=o.sibling,n=Bs(o,{mode:"visible",children:n.children}),!(e.mode&1)&&(n.lanes=r),n.return=e,n.sibling=null,t!==null&&(r=e.deletions,r===null?(e.deletions=[t],e.flags|=16):r.push(t)),e.child=n,e.memoizedState=null,n}function Nx(t,e){return e=Bm({mode:"visible",children:e},t.mode,0,null),e.return=t,t.child=e}function eg(t,e,r,n){return n!==null&&xx(n),Bu(e,t.child,null,r),t=Nx(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function oB(t,e,r,n,i,o,a){if(r)return e.flags&256?(e.flags&=-257,n=gv(Error(Ne(422))),eg(t,e,a,n)):e.memoizedState!==null?(e.child=t.child,e.flags|=128,null):(o=n.fallback,i=e.mode,n=Bm({mode:"visible",children:n.children},i,0,null),o=jc(o,i,a,null),o.flags|=2,n.return=e,o.return=e,n.sibling=o,e.child=n,e.mode&1&&Bu(e,t.child,null,a),e.child.memoizedState=m5(a),e.memoizedState=p5,o);if(!(e.mode&1))return eg(t,e,a,null);if(i.data==="$!"){if(n=i.nextSibling&&i.nextSibling.dataset,n)var s=n.dgst;return n=s,o=Error(Ne(419)),n=gv(o,n,void 0),eg(t,e,a,n)}if(s=(a&t.childLanes)!==0,yi||s){if(n=Ir,n!==null){switch(a&-a){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(n.suspendedLanes|a)?0:i,i!==0&&i!==o.retryLane&&(o.retryLane=i,$a(t,i),Io(n,t,i,-1))}return Ux(),n=gv(Error(Ne(421))),eg(t,e,a,n)}return i.data==="$?"?(e.flags|=128,e.child=t.child,e=yB.bind(null,t),i._reactRetry=e,null):(t=o.treeContext,Ni=ks(i.nextSibling),ki=e,Ln=!0,So=null,t!==null&&(Ji[Zi++]=Ma,Ji[Zi++]=Ra,Ji[Zi++]=nl,Ma=t.id,Ra=t.overflow,nl=e),e=Nx(e,n.children),e.flags|=4096,e)}function eT(t,e,r){t.lanes|=e;var n=t.alternate;n!==null&&(n.lanes|=e),l5(t.return,e,r)}function pv(t,e,r,n,i){var o=t.memoizedState;o===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:i}:(o.isBackwards=e,o.rendering=null,o.renderingStartTime=0,o.last=n,o.tail=r,o.tailMode=i)}function eD(t,e,r){var n=e.pendingProps,i=n.revealOrder,o=n.tail;if(ii(t,e,n.children,r),n=Un.current,n&2)n=n&1|2,e.flags|=128;else{if(t!==null&&t.flags&128)e:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&eT(t,r,e);else if(t.tag===19)eT(t,r,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}n&=1}if(vn(Un,n),!(e.mode&1))e.memoizedState=null;else switch(i){case"forwards":for(r=e.child,i=null;r!==null;)t=r.alternate,t!==null&&u1(t)===null&&(i=r),r=r.sibling;r=i,r===null?(i=e.child,e.child=null):(i=r.sibling,r.sibling=null),pv(e,!1,i,r,o);break;case"backwards":for(r=null,i=e.child,e.child=null;i!==null;){if(t=i.alternate,t!==null&&u1(t)===null){e.child=i;break}t=i.sibling,i.sibling=r,r=i,i=t}pv(e,!0,r,null,o);break;case"together":pv(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function gp(t,e){!(e.mode&1)&&t!==null&&(t.alternate=null,e.alternate=null,e.flags|=2)}function ja(t,e,r){if(t!==null&&(e.dependencies=t.dependencies),il|=e.lanes,!(r&e.childLanes))return null;if(t!==null&&e.child!==t.child)throw Error(Ne(153));if(e.child!==null){for(t=e.child,r=Bs(t,t.pendingProps),e.child=r,r.return=e;t.sibling!==null;)t=t.sibling,r=r.sibling=Bs(t,t.pendingProps),r.return=e;r.sibling=null}return e.child}function aB(t,e,r){switch(e.tag){case 3:Z9(e),Uu();break;case 5:D9(e);break;case 1:Ci(e.type)&&i1(e);break;case 4:Ex(e,e.stateNode.containerInfo);break;case 10:var n=e.type._context,i=e.memoizedProps.value;vn(s1,n._currentValue),n._currentValue=i;break;case 13:if(n=e.memoizedState,n!==null)return n.dehydrated!==null?(vn(Un,Un.current&1),e.flags|=128,null):r&e.child.childLanes?Q9(t,e,r):(vn(Un,Un.current&1),t=ja(t,e,r),t!==null?t.sibling:null);vn(Un,Un.current&1);break;case 19:if(n=(r&e.childLanes)!==0,t.flags&128){if(n)return eD(t,e,r);e.flags|=128}if(i=e.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),vn(Un,Un.current),n)break;return null;case 22:case 23:return e.lanes=0,Y9(t,e,r)}return ja(t,e,r)}var tD,v5,nD,rD;tD=function(t,e){for(var r=e.child;r!==null;){if(r.tag===5||r.tag===6)t.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===e)break;for(;r.sibling===null;){if(r.return===null||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};v5=function(){};nD=function(t,e,r,n){var i=t.memoizedProps;if(i!==n){t=e.stateNode,Fc(Qo.current);var o=null;switch(r){case"input":i=Uy(t,i),n=Uy(t,n),o=[];break;case"select":i=jn({},i,{value:void 0}),n=jn({},n,{value:void 0}),o=[];break;case"textarea":i=Wy(t,i),n=Wy(t,n),o=[];break;default:typeof i.onClick!="function"&&typeof n.onClick=="function"&&(t.onclick=n1)}$y(r,n);var a;r=null;for(l in i)if(!n.hasOwnProperty(l)&&i.hasOwnProperty(l)&&i[l]!=null)if(l==="style"){var s=i[l];for(a in s)s.hasOwnProperty(a)&&(r||(r={}),r[a]="")}else l!=="dangerouslySetInnerHTML"&&l!=="children"&&l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&l!=="autoFocus"&&(ld.hasOwnProperty(l)?o||(o=[]):(o=o||[]).push(l,null));for(l in n){var c=n[l];if(s=i!=null?i[l]:void 0,n.hasOwnProperty(l)&&c!==s&&(c!=null||s!=null))if(l==="style")if(s){for(a in s)!s.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(r||(r={}),r[a]="");for(a in c)c.hasOwnProperty(a)&&s[a]!==c[a]&&(r||(r={}),r[a]=c[a])}else r||(o||(o=[]),o.push(l,r)),r=c;else l==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,s=s?s.__html:void 0,c!=null&&s!==c&&(o=o||[]).push(l,c)):l==="children"?typeof c!="string"&&typeof c!="number"||(o=o||[]).push(l,""+c):l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&(ld.hasOwnProperty(l)?(c!=null&&l==="onScroll"&&Sn("scroll",t),o||s===c||(o=[])):(o=o||[]).push(l,c))}r&&(o=o||[]).push("style",r);var l=o;(e.updateQueue=l)&&(e.flags|=4)}};rD=function(t,e,r,n){r!==n&&(e.flags|=4)};function q0(t,e){if(!Ln)switch(t.tailMode){case"hidden":e=t.tail;for(var r=null;e!==null;)e.alternate!==null&&(r=e),e=e.sibling;r===null?t.tail=null:r.sibling=null;break;case"collapsed":r=t.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:n.sibling=null}}function zr(t){var e=t.alternate!==null&&t.alternate.child===t.child,r=0,n=0;if(e)for(var i=t.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags&14680064,n|=i.flags&14680064,i.return=t,i=i.sibling;else for(i=t.child;i!==null;)r|=i.lanes|i.childLanes,n|=i.subtreeFlags,n|=i.flags,i.return=t,i=i.sibling;return t.subtreeFlags|=n,t.childLanes=r,e}function sB(t,e,r){var n=e.pendingProps;switch(yx(e),e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return zr(e),null;case 1:return Ci(e.type)&&r1(),zr(e),null;case 3:return n=e.stateNode,Gu(),Dn(wi),Dn(Yr),bx(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(t===null||t.child===null)&&(Zh(e)?e.flags|=4:t===null||t.memoizedState.isDehydrated&&!(e.flags&256)||(e.flags|=1024,So!==null&&(E5(So),So=null))),v5(t,e),zr(e),null;case 5:Dx(e);var i=Fc(Cd.current);if(r=e.type,t!==null&&e.stateNode!=null)nD(t,e,r,n,i),t.ref!==e.ref&&(e.flags|=512,e.flags|=2097152);else{if(!n){if(e.stateNode===null)throw Error(Ne(166));return zr(e),null}if(t=Fc(Qo.current),Zh(e)){n=e.stateNode,r=e.type;var o=e.memoizedProps;switch(n[qo]=e,n[xd]=o,t=(e.mode&1)!==0,r){case"dialog":Sn("cancel",n),Sn("close",n);break;case"iframe":case"object":case"embed":Sn("load",n);break;case"video":case"audio":for(i=0;i<\/script>",t=t.removeChild(t.firstChild)):typeof n.is=="string"?t=a.createElement(r,{is:n.is}):(t=a.createElement(r),r==="select"&&(a=t,n.multiple?a.multiple=!0:n.size&&(a.size=n.size))):t=a.createElementNS(t,r),t[qo]=e,t[xd]=n,tD(t,e,!1,!1),e.stateNode=t;e:{switch(a=jy(r,n),r){case"dialog":Sn("cancel",t),Sn("close",t),i=n;break;case"iframe":case"object":case"embed":Sn("load",t),i=n;break;case"video":case"audio":for(i=0;izu&&(e.flags|=128,n=!0,q0(o,!1),e.lanes=4194304)}else{if(!n)if(t=u1(a),t!==null){if(e.flags|=128,n=!0,r=t.updateQueue,r!==null&&(e.updateQueue=r,e.flags|=4),q0(o,!0),o.tail===null&&o.tailMode==="hidden"&&!a.alternate&&!Ln)return zr(e),null}else 2*nr()-o.renderingStartTime>zu&&r!==1073741824&&(e.flags|=128,n=!0,q0(o,!1),e.lanes=4194304);o.isBackwards?(a.sibling=e.child,e.child=a):(r=o.last,r!==null?r.sibling=a:e.child=a,o.last=a)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=nr(),e.sibling=null,r=Un.current,vn(Un,n?r&1|2:r&1),e):(zr(e),null);case 22:case 23:return Fx(),n=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==n&&(e.flags|=8192),n&&e.mode&1?Mi&1073741824&&(zr(e),e.subtreeFlags&6&&(e.flags|=8192)):zr(e),null;case 24:return null;case 25:return null}throw Error(Ne(156,e.tag))}function cB(t,e){switch(yx(e),e.tag){case 1:return Ci(e.type)&&r1(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Gu(),Dn(wi),Dn(Yr),bx(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return Dx(e),null;case 13:if(Dn(Un),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(Ne(340));Uu()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return Dn(Un),null;case 4:return Gu(),null;case 10:return Sx(e.type._context),null;case 22:case 23:return Fx(),null;case 24:return null;default:return null}}var tg=!1,Kr=!1,lB=typeof WeakSet=="function"?WeakSet:Set,Xe=null;function iu(t,e){var r=t.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){qn(t,e,n)}else r.current=null}function y5(t,e,r){try{r()}catch(n){qn(t,e,n)}}var tT=!1;function uB(t,e){if(t5=Qp,t=c9(),mx(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var i=n.anchorOffset,o=n.focusNode;n=n.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break e}var a=0,s=-1,c=-1,l=0,f=0,u=t,d=null;t:for(;;){for(var h;u!==r||i!==0&&u.nodeType!==3||(s=a+i),u!==o||n!==0&&u.nodeType!==3||(c=a+n),u.nodeType===3&&(a+=u.nodeValue.length),(h=u.firstChild)!==null;)d=u,u=h;for(;;){if(u===t)break t;if(d===r&&++l===i&&(s=a),d===o&&++f===n&&(c=a),(h=u.nextSibling)!==null)break;u=d,d=u.parentNode}u=h}r=s===-1||c===-1?null:{start:s,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(n5={focusedElem:t,selectionRange:r},Qp=!1,Xe=e;Xe!==null;)if(e=Xe,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Xe=t;else for(;Xe!==null;){e=Xe;try{var g=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(g!==null){var p=g.memoizedProps,v=g.memoizedState,x=e.stateNode,m=x.getSnapshotBeforeUpdate(e.elementType===e.type?p:yo(e.type,p),v);x.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Ne(163))}}catch(w){qn(e,e.return,w)}if(t=e.sibling,t!==null){t.return=e.return,Xe=t;break}Xe=e.return}return g=tT,tT=!1,g}function Bf(t,e,r){var n=e.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var i=n=n.next;do{if((i.tag&t)===t){var o=i.destroy;i.destroy=void 0,o!==void 0&&y5(e,r,o)}i=i.next}while(i!==n)}}function Fm(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var r=e=e.next;do{if((r.tag&t)===t){var n=r.create;r.destroy=n()}r=r.next}while(r!==e)}}function x5(t){var e=t.ref;if(e!==null){var r=t.stateNode;switch(t.tag){case 5:t=r;break;default:t=r}typeof e=="function"?e(t):e.current=t}}function iD(t){var e=t.alternate;e!==null&&(t.alternate=null,iD(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[qo],delete e[xd],delete e[o5],delete e[HU],delete e[KU])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function oD(t){return t.tag===5||t.tag===3||t.tag===4}function nT(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||oD(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function w5(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.nodeType===8?r.parentNode.insertBefore(t,e):r.insertBefore(t,e):(r.nodeType===8?(e=r.parentNode,e.insertBefore(t,r)):(e=r,e.appendChild(t)),r=r._reactRootContainer,r!=null||e.onclick!==null||(e.onclick=n1));else if(n!==4&&(t=t.child,t!==null))for(w5(t,e,r),t=t.sibling;t!==null;)w5(t,e,r),t=t.sibling}function C5(t,e,r){var n=t.tag;if(n===5||n===6)t=t.stateNode,e?r.insertBefore(t,e):r.appendChild(t);else if(n!==4&&(t=t.child,t!==null))for(C5(t,e,r),t=t.sibling;t!==null;)C5(t,e,r),t=t.sibling}var Nr=null,wo=!1;function as(t,e,r){for(r=r.child;r!==null;)aD(t,e,r),r=r.sibling}function aD(t,e,r){if(Zo&&typeof Zo.onCommitFiberUnmount=="function")try{Zo.onCommitFiberUnmount(Mm,r)}catch{}switch(r.tag){case 5:Kr||iu(r,e);case 6:var n=Nr,i=wo;Nr=null,as(t,e,r),Nr=n,wo=i,Nr!==null&&(wo?(t=Nr,r=r.stateNode,t.nodeType===8?t.parentNode.removeChild(r):t.removeChild(r)):Nr.removeChild(r.stateNode));break;case 18:Nr!==null&&(wo?(t=Nr,r=r.stateNode,t.nodeType===8?cv(t.parentNode,r):t.nodeType===1&&cv(t,r),gd(t)):cv(Nr,r.stateNode));break;case 4:n=Nr,i=wo,Nr=r.stateNode.containerInfo,wo=!0,as(t,e,r),Nr=n,wo=i;break;case 0:case 11:case 14:case 15:if(!Kr&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){i=n=n.next;do{var o=i,a=o.destroy;o=o.tag,a!==void 0&&(o&2||o&4)&&y5(r,e,a),i=i.next}while(i!==n)}as(t,e,r);break;case 1:if(!Kr&&(iu(r,e),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){qn(r,e,s)}as(t,e,r);break;case 21:as(t,e,r);break;case 22:r.mode&1?(Kr=(n=Kr)||r.memoizedState!==null,as(t,e,r),Kr=n):as(t,e,r);break;default:as(t,e,r)}}function rT(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var r=t.stateNode;r===null&&(r=t.stateNode=new lB),e.forEach(function(n){var i=xB.bind(null,t,n);r.has(n)||(r.add(n),n.then(i,i))})}}function fo(t,e){var r=e.deletions;if(r!==null)for(var n=0;ni&&(i=a),n&=~o}if(n=i,n=nr()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*dB(n/1960))-n,10t?16:t,Ds===null)var n=!1;else{if(t=Ds,Ds=null,p1=0,Ht&6)throw Error(Ne(331));var i=Ht;for(Ht|=4,Xe=t.current;Xe!==null;){var o=Xe,a=o.child;if(Xe.flags&16){var s=o.deletions;if(s!==null){for(var c=0;cnr()-kx?$c(t,0):Ax|=r),Si(t,e)}function gD(t,e){e===0&&(t.mode&1?(e=Hh,Hh<<=1,!(Hh&130023424)&&(Hh=4194304)):e=1);var r=li();t=$a(t,e),t!==null&&(sh(t,e,r),Si(t,r))}function yB(t){var e=t.memoizedState,r=0;e!==null&&(r=e.retryLane),gD(t,r)}function xB(t,e){var r=0;switch(t.tag){case 13:var n=t.stateNode,i=t.memoizedState;i!==null&&(r=i.retryLane);break;case 19:n=t.stateNode;break;default:throw Error(Ne(314))}n!==null&&n.delete(e),gD(t,r)}var pD;pD=function(t,e,r){if(t!==null)if(t.memoizedProps!==e.pendingProps||wi.current)yi=!0;else{if(!(t.lanes&r)&&!(e.flags&128))return yi=!1,aB(t,e,r);yi=!!(t.flags&131072)}else yi=!1,Ln&&e.flags&1048576&&x9(e,a1,e.index);switch(e.lanes=0,e.tag){case 2:var n=e.type;gp(t,e),t=e.pendingProps;var i=Fu(e,Yr.current);wu(e,r),i=Ox(null,e,n,t,i,r);var o=Mx();return e.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ci(n)?(o=!0,i1(e)):o=!1,e.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,_x(e),i.updater=Vm,e.stateNode=i,i._reactInternals=e,f5(e,n,t,r),e=g5(null,e,n,!0,o,r)):(e.tag=0,Ln&&o&&vx(e),ii(null,e,i,r),e=e.child),e;case 16:n=e.elementType;e:{switch(gp(t,e),t=e.pendingProps,i=n._init,n=i(n._payload),e.type=n,i=e.tag=CB(n),t=yo(n,t),i){case 0:e=h5(null,e,n,t,r);break e;case 1:e=Z4(null,e,n,t,r);break e;case 11:e=Y4(null,e,n,t,r);break e;case 14:e=J4(null,e,n,yo(n.type,t),r);break e}throw Error(Ne(306,n,""))}return e;case 0:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:yo(n,i),h5(t,e,n,i,r);case 1:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:yo(n,i),Z4(t,e,n,i,r);case 3:e:{if(Z9(e),t===null)throw Error(Ne(387));n=e.pendingProps,o=e.memoizedState,i=o.element,E9(t,e),l1(e,n,null,r);var a=e.memoizedState;if(n=a.element,o.isDehydrated)if(o={element:n,isDehydrated:!1,cache:a.cache,pendingSuspenseBoundaries:a.pendingSuspenseBoundaries,transitions:a.transitions},e.updateQueue.baseState=o,e.memoizedState=o,e.flags&256){i=Wu(Error(Ne(423)),e),e=Q4(t,e,n,r,i);break e}else if(n!==i){i=Wu(Error(Ne(424)),e),e=Q4(t,e,n,r,i);break e}else for(Ni=ks(e.stateNode.containerInfo.firstChild),ki=e,Ln=!0,So=null,r=T9(e,null,n,r),e.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Uu(),n===i){e=ja(t,e,r);break e}ii(t,e,n,r)}e=e.child}return e;case 5:return D9(e),t===null&&c5(e),n=e.type,i=e.pendingProps,o=t!==null?t.memoizedProps:null,a=i.children,r5(n,i)?a=null:o!==null&&r5(n,o)&&(e.flags|=32),J9(t,e),ii(t,e,a,r),e.child;case 6:return t===null&&c5(e),null;case 13:return Q9(t,e,r);case 4:return Ex(e,e.stateNode.containerInfo),n=e.pendingProps,t===null?e.child=Bu(e,null,n,r):ii(t,e,n,r),e.child;case 11:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:yo(n,i),Y4(t,e,n,i,r);case 7:return ii(t,e,e.pendingProps,r),e.child;case 8:return ii(t,e,e.pendingProps.children,r),e.child;case 12:return ii(t,e,e.pendingProps.children,r),e.child;case 10:e:{if(n=e.type._context,i=e.pendingProps,o=e.memoizedProps,a=i.value,vn(s1,n._currentValue),n._currentValue=a,o!==null)if(Ro(o.value,a)){if(o.children===i.children&&!wi.current){e=ja(t,e,r);break e}}else for(o=e.child,o!==null&&(o.return=e);o!==null;){var s=o.dependencies;if(s!==null){a=o.child;for(var c=s.firstContext;c!==null;){if(c.context===n){if(o.tag===1){c=ka(-1,r&-r),c.tag=2;var l=o.updateQueue;if(l!==null){l=l.shared;var f=l.pending;f===null?c.next=c:(c.next=f.next,f.next=c),l.pending=c}}o.lanes|=r,c=o.alternate,c!==null&&(c.lanes|=r),l5(o.return,r,e),s.lanes|=r;break}c=c.next}}else if(o.tag===10)a=o.type===e.type?null:o.child;else if(o.tag===18){if(a=o.return,a===null)throw Error(Ne(341));a.lanes|=r,s=a.alternate,s!==null&&(s.lanes|=r),l5(a,r,e),a=o.sibling}else a=o.child;if(a!==null)a.return=o;else for(a=o;a!==null;){if(a===e){a=null;break}if(o=a.sibling,o!==null){o.return=a.return,a=o;break}a=a.return}o=a}ii(t,e,i.children,r),e=e.child}return e;case 9:return i=e.type,n=e.pendingProps.children,wu(e,r),i=io(i),n=n(i),e.flags|=1,ii(t,e,n,r),e.child;case 14:return n=e.type,i=yo(n,e.pendingProps),i=yo(n.type,i),J4(t,e,n,i,r);case 15:return X9(t,e,e.type,e.pendingProps,r);case 17:return n=e.type,i=e.pendingProps,i=e.elementType===n?i:yo(n,i),gp(t,e),e.tag=1,Ci(n)?(t=!0,i1(e)):t=!1,wu(e,r),H9(e,n,i),f5(e,n,i,r),g5(null,e,n,!0,t,r);case 19:return eD(t,e,r);case 22:return Y9(t,e,r)}throw Error(Ne(156,e.tag))};function mD(t,e){return z6(t,e)}function wB(t,e,r,n){this.tag=t,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function no(t,e,r,n){return new wB(t,e,r,n)}function Bx(t){return t=t.prototype,!(!t||!t.isReactComponent)}function CB(t){if(typeof t=="function")return Bx(t)?1:0;if(t!=null){if(t=t.$$typeof,t===ox)return 11;if(t===ax)return 14}return 2}function Bs(t,e){var r=t.alternate;return r===null?(r=no(t.tag,e,t.key,t.mode),r.elementType=t.elementType,r.type=t.type,r.stateNode=t.stateNode,r.alternate=t,t.alternate=r):(r.pendingProps=e,r.type=t.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=t.flags&14680064,r.childLanes=t.childLanes,r.lanes=t.lanes,r.child=t.child,r.memoizedProps=t.memoizedProps,r.memoizedState=t.memoizedState,r.updateQueue=t.updateQueue,e=t.dependencies,r.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},r.sibling=t.sibling,r.index=t.index,r.ref=t.ref,r}function vp(t,e,r,n,i,o){var a=2;if(n=t,typeof t=="function")Bx(t)&&(a=1);else if(typeof t=="string")a=5;else e:switch(t){case Xl:return jc(r.children,i,o,e);case ix:a=8,i|=8;break;case Ay:return t=no(12,r,e,i|2),t.elementType=Ay,t.lanes=o,t;case ky:return t=no(13,r,e,i),t.elementType=ky,t.lanes=o,t;case Vy:return t=no(19,r,e,i),t.elementType=Vy,t.lanes=o,t;case D6:return Bm(r,i,o,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case _6:a=10;break e;case E6:a=9;break e;case ox:a=11;break e;case ax:a=14;break e;case vs:a=16,n=null;break e}throw Error(Ne(130,t==null?t:typeof t,""))}return e=no(a,r,e,i),e.elementType=t,e.type=n,e.lanes=o,e}function jc(t,e,r,n){return t=no(7,t,n,e),t.lanes=r,t}function Bm(t,e,r,n){return t=no(22,t,n,e),t.elementType=D6,t.lanes=r,t.stateNode={isHidden:!1},t}function mv(t,e,r){return t=no(6,t,null,e),t.lanes=r,t}function vv(t,e,r){return e=no(4,t.children!==null?t.children:[],t.key,e),e.lanes=r,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function SB(t,e,r,n,i){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=J2(0),this.expirationTimes=J2(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=J2(0),this.identifierPrefix=n,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Gx(t,e,r,n,i,o,a,s,c){return t=new SB(t,e,r,s,c),e===1?(e=1,o===!0&&(e|=8)):e=0,o=no(3,null,null,e),t.current=o,o.stateNode=t,o.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},_x(o),t}function TB(t,e,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(wD)}catch(t){console.error(t)}}wD(),w6.exports=Wi;var IB=w6.exports,D5,fT=IB;D5=fT.createRoot,fT.hydrateRoot;var Se;(function(t){t.ERROR_EVENT="CORNERSTONE_ERROR",t.CACHE_SIZE_EXCEEDED="CACHE_SIZE_EXCEEDED",t.IMAGE_LOAD_ERROR="IMAGE_LOAD_ERROR",t.CAMERA_MODIFIED="CORNERSTONE_CAMERA_MODIFIED",t.CAMERA_RESET="CORNERSTONE_CAMERA_RESET",t.VOI_MODIFIED="CORNERSTONE_VOI_MODIFIED",t.PRESET_MODIFIED="CORNERSTONE_VIEWPORT_RENDERING_PRESET_MODIFIED",t.DISPLAY_AREA_MODIFIED="CORNERSTONE_DISPLAY_AREA_MODIFIED",t.ELEMENT_DISABLED="CORNERSTONE_ELEMENT_DISABLED",t.ELEMENT_ENABLED="CORNERSTONE_ELEMENT_ENABLED",t.IMAGE_RENDERED="CORNERSTONE_IMAGE_RENDERED",t.IMAGE_VOLUME_MODIFIED="CORNERSTONE_IMAGE_VOLUME_MODIFIED",t.IMAGE_VOLUME_LOADING_COMPLETED="CORNERSTONE_IMAGE_VOLUME_LOADING_COMPLETED",t.IMAGE_LOADED="CORNERSTONE_IMAGE_LOADED",t.IMAGE_RETRIEVAL_STAGE="CORNERSTONE_IMAGE_RETRIEVAL_STAGE",t.IMAGE_LOAD_FAILED="CORNERSTONE_IMAGE_LOAD_FAILED",t.VOLUME_VIEWPORT_NEW_VOLUME="CORNERSTONE_VOLUME_VIEWPORT_NEW_VOLUME",t.VOLUME_LOADED="CORNERSTONE_VOLUME_LOADED",t.VOLUME_LOADED_FAILED="CORNERSTONE_VOLUME_LOADED_FAILED",t.IMAGE_CACHE_IMAGE_ADDED="CORNERSTONE_IMAGE_CACHE_IMAGE_ADDED",t.IMAGE_CACHE_IMAGE_REMOVED="CORNERSTONE_IMAGE_CACHE_IMAGE_REMOVED",t.VOLUME_CACHE_VOLUME_ADDED="CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED",t.VOLUME_CACHE_VOLUME_REMOVED="CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED",t.STACK_NEW_IMAGE="CORNERSTONE_STACK_NEW_IMAGE",t.VOLUME_NEW_IMAGE="CORNERSTONE_VOLUME_NEW_IMAGE",t.PRE_STACK_NEW_IMAGE="CORNERSTONE_PRE_STACK_NEW_IMAGE",t.IMAGE_SPACING_CALIBRATED="CORNERSTONE_IMAGE_SPACING_CALIBRATED",t.VIEWPORT_NEW_IMAGE_SET="CORNERSTONE_VIEWPORT_NEW_IMAGE_SET",t.STACK_VIEWPORT_SCROLL="CORNERSTONE_STACK_VIEWPORT_SCROLL",t.STACK_SCROLL_OUT_OF_BOUNDS="STACK_SCROLL_OUT_OF_BOUNDS",t.GEOMETRY_CACHE_GEOMETRY_ADDED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED",t.GEOMETRY_CACHE_GEOMETRY_REMOVED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_REMOVED",t.VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS="VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS",t.VOLUME_VIEWPORT_SCROLL="VOLUME_VIEWPORT_SCROLL",t.CLIPPING_PLANES_UPDATED="CORNERSTONE_CLIPPING_PLANES_UPDATED",t.WEB_WORKER_PROGRESS="CORNERSTONE_WEB_WORKER_PROGRESS",t.COLORMAP_MODIFIED="CORNERSTONE_COLORMAP_MODIFIED",t.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED="DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED",t.DYNAMIC_VOLUME_TIME_POINT_LOADED="DYNAMIC_VOLUME_TIME_POINT_LOADED",t.GEOMETRY_LOADED="GEOMETRY_LOADED",t.GEOMETRY_LOADED_FAILED="GEOMETRY_LOADED_FAILED"})(Se||(Se={}));var ht;(function(t){t.Interaction="interaction",t.Thumbnail="thumbnail",t.Prefetch="prefetch",t.Compute="compute"})(ht||(ht={}));var mn;(function(t){t.STACK="stack",t.ORTHOGRAPHIC="orthographic",t.PERSPECTIVE="perspective",t.VOLUME_3D="volume3d",t.VIDEO="video",t.WHOLE_SLIDE="wholeSlide"})(mn||(mn={}));var La;(function(t){t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR",t[t.FAST_LINEAR=2]="FAST_LINEAR"})(La||(La={}));const yp={COMPOSITE_BLEND:0,MAXIMUM_INTENSITY_BLEND:1,MINIMUM_INTENSITY_BLEND:2,AVERAGE_INTENSITY_BLEND:3,ADDITIVE_INTENSITY_BLEND:4,RADON_TRANSFORM_BLEND:5,LABELMAP_EDGE_PROJECTION_BLEND:6},OB={OFF:0,NORMALIZED:1,RAW:2};var CD={BlendMode:yp,FilterMode:OB};const{BlendMode:ig}=CD;var $u;(function(t){t[t.COMPOSITE=ig.COMPOSITE_BLEND]="COMPOSITE",t[t.MAXIMUM_INTENSITY_BLEND=ig.MAXIMUM_INTENSITY_BLEND]="MAXIMUM_INTENSITY_BLEND",t[t.MINIMUM_INTENSITY_BLEND=ig.MINIMUM_INTENSITY_BLEND]="MINIMUM_INTENSITY_BLEND",t[t.AVERAGE_INTENSITY_BLEND=ig.AVERAGE_INTENSITY_BLEND]="AVERAGE_INTENSITY_BLEND"})($u||($u={}));var ju;(function(t){t.AXIAL="axial",t.CORONAL="coronal",t.SAGITTAL="sagittal",t.ACQUISITION="acquisition"})(ju||(ju={}));var b5;(function(t){t.CONTOUR="CONTOUR",t.SURFACE="SURFACE"})(b5||(b5={}));const al=b5;var I5;(function(t){t.CLOSED_PLANAR="CLOSED_PLANAR",t.OPEN_PLANAR="OPEN_PLANAR"})(I5||(I5={}));const MB=I5;var Va;(function(t){t.LINEAR="LINEAR",t.SAMPLED_SIGMOID="SIGMOID"})(Va||(Va={}));var O5;(function(t){t.SUM="SUM",t.AVERAGE="AVERAGE",t.SUBTRACT="SUBTRACT"})(O5||(O5={}));const RB=O5;var y1;(function(t){t.NOT_APPLICABLE="",t.ERMF="ERMF",t.USER="User",t.PROJECTION="Proj",t.REGION="Region",t.ERROR="Error",t.UNCALIBRATED="Uncalibrated"})(y1||(y1={}));var oi;(function(t){t.NO_DATA="noData",t.LOADING="loading",t.PRE_RENDER="preRender",t.RESIZE="resize",t.RENDERED="rendered"})(oi||(oi={}));var Pi;(function(t){t[t.FAR_REPLICATE=1]="FAR_REPLICATE",t[t.ADJACENT_REPLICATE=3]="ADJACENT_REPLICATE",t[t.SUBRESOLUTION=6]="SUBRESOLUTION",t[t.LOSSY=7]="LOSSY",t[t.FULL_RESOLUTION=8]="FULL_RESOLUTION"})(Pi||(Pi={}));var Dd;(function(t){t.FRAME="f",t.SECOND="s"})(Dd||(Dd={}));const LB=Object.freeze(Object.defineProperty({__proto__:null,get SpeedUnit(){return Dd}},Symbol.toStringTag,{value:"Module"}));var si;(function(t){t.CALIBRATION="calibrationModule",t.CINE="cineModule",t.GENERAL_IMAGE="generalImageModule",t.GENERAL_SERIES="generalSeriesModule",t.GENERAL_STUDY="generalStudyModule",t.IMAGE_PIXEL="imagePixelModule",t.IMAGE_PLANE="imagePlaneModule",t.IMAGE_URL="imageUrlModule",t.MODALITY_LUT="modalityLutModule",t.MULTIFRAME="multiframeModule",t.NM_MULTIFRAME_GEOMETRY="nmMultiframeGeometryModule",t.OVERLAY_PLANE="overlayPlaneModule",t.PATIENT="patientModule",t.PATIENT_STUDY="patientStudyModule",t.PET_IMAGE="petImageModule",t.PET_ISOTOPE="petIsotopeModule",t.PET_SERIES="petSeriesModule",t.SOP_COMMON="sopCommonModule",t.ULTRASOUND_ENHANCED_REGION="ultrasoundEnhancedRegionModule",t.VOI_LUT="voiLutModule",t.WADO_WEB_CLIENT="wadoWebClient"})(si||(si={}));var Su;(function(t){t.SUM="SUM",t.SUBTRACT="SUBTRACT",t.AVERAGE="AVERAGE"})(Su||(Su={}));const Ao=Object.freeze(Object.defineProperty({__proto__:null,BlendModes:$u,CalibrationTypes:y1,ContourType:MB,DynamicOperatorType:RB,Events:Se,get GenerateImageType(){return Su},GeometryType:al,ImageQualityStatus:Pi,InterpolationType:La,MetadataModules:si,OrientationAxis:ju,RequestType:ht,VOILUTFunctionType:Va,VideoEnums:LB,ViewportStatus:oi,ViewportType:mn},Symbol.toStringTag,{value:"Module"})),M5={hotIron:{name:"Hot Iron",numOfColors:256,colors:[[0,0,0,255],[2,0,0,255],[4,0,0,255],[6,0,0,255],[8,0,0,255],[10,0,0,255],[12,0,0,255],[14,0,0,255],[16,0,0,255],[18,0,0,255],[20,0,0,255],[22,0,0,255],[24,0,0,255],[26,0,0,255],[28,0,0,255],[30,0,0,255],[32,0,0,255],[34,0,0,255],[36,0,0,255],[38,0,0,255],[40,0,0,255],[42,0,0,255],[44,0,0,255],[46,0,0,255],[48,0,0,255],[50,0,0,255],[52,0,0,255],[54,0,0,255],[56,0,0,255],[58,0,0,255],[60,0,0,255],[62,0,0,255],[64,0,0,255],[66,0,0,255],[68,0,0,255],[70,0,0,255],[72,0,0,255],[74,0,0,255],[76,0,0,255],[78,0,0,255],[80,0,0,255],[82,0,0,255],[84,0,0,255],[86,0,0,255],[88,0,0,255],[90,0,0,255],[92,0,0,255],[94,0,0,255],[96,0,0,255],[98,0,0,255],[100,0,0,255],[102,0,0,255],[104,0,0,255],[106,0,0,255],[108,0,0,255],[110,0,0,255],[112,0,0,255],[114,0,0,255],[116,0,0,255],[118,0,0,255],[120,0,0,255],[122,0,0,255],[124,0,0,255],[126,0,0,255],[128,0,0,255],[130,0,0,255],[132,0,0,255],[134,0,0,255],[136,0,0,255],[138,0,0,255],[140,0,0,255],[142,0,0,255],[144,0,0,255],[146,0,0,255],[148,0,0,255],[150,0,0,255],[152,0,0,255],[154,0,0,255],[156,0,0,255],[158,0,0,255],[160,0,0,255],[162,0,0,255],[164,0,0,255],[166,0,0,255],[168,0,0,255],[170,0,0,255],[172,0,0,255],[174,0,0,255],[176,0,0,255],[178,0,0,255],[180,0,0,255],[182,0,0,255],[184,0,0,255],[186,0,0,255],[188,0,0,255],[190,0,0,255],[192,0,0,255],[194,0,0,255],[196,0,0,255],[198,0,0,255],[200,0,0,255],[202,0,0,255],[204,0,0,255],[206,0,0,255],[208,0,0,255],[210,0,0,255],[212,0,0,255],[214,0,0,255],[216,0,0,255],[218,0,0,255],[220,0,0,255],[222,0,0,255],[224,0,0,255],[226,0,0,255],[228,0,0,255],[230,0,0,255],[232,0,0,255],[234,0,0,255],[236,0,0,255],[238,0,0,255],[240,0,0,255],[242,0,0,255],[244,0,0,255],[246,0,0,255],[248,0,0,255],[250,0,0,255],[252,0,0,255],[254,0,0,255],[255,0,0,255],[255,2,0,255],[255,4,0,255],[255,6,0,255],[255,8,0,255],[255,10,0,255],[255,12,0,255],[255,14,0,255],[255,16,0,255],[255,18,0,255],[255,20,0,255],[255,22,0,255],[255,24,0,255],[255,26,0,255],[255,28,0,255],[255,30,0,255],[255,32,0,255],[255,34,0,255],[255,36,0,255],[255,38,0,255],[255,40,0,255],[255,42,0,255],[255,44,0,255],[255,46,0,255],[255,48,0,255],[255,50,0,255],[255,52,0,255],[255,54,0,255],[255,56,0,255],[255,58,0,255],[255,60,0,255],[255,62,0,255],[255,64,0,255],[255,66,0,255],[255,68,0,255],[255,70,0,255],[255,72,0,255],[255,74,0,255],[255,76,0,255],[255,78,0,255],[255,80,0,255],[255,82,0,255],[255,84,0,255],[255,86,0,255],[255,88,0,255],[255,90,0,255],[255,92,0,255],[255,94,0,255],[255,96,0,255],[255,98,0,255],[255,100,0,255],[255,102,0,255],[255,104,0,255],[255,106,0,255],[255,108,0,255],[255,110,0,255],[255,112,0,255],[255,114,0,255],[255,116,0,255],[255,118,0,255],[255,120,0,255],[255,122,0,255],[255,124,0,255],[255,126,0,255],[255,128,4,255],[255,130,8,255],[255,132,12,255],[255,134,16,255],[255,136,20,255],[255,138,24,255],[255,140,28,255],[255,142,32,255],[255,144,36,255],[255,146,40,255],[255,148,44,255],[255,150,48,255],[255,152,52,255],[255,154,56,255],[255,156,60,255],[255,158,64,255],[255,160,68,255],[255,162,72,255],[255,164,76,255],[255,166,80,255],[255,168,84,255],[255,170,88,255],[255,172,92,255],[255,174,96,255],[255,176,100,255],[255,178,104,255],[255,180,108,255],[255,182,112,255],[255,184,116,255],[255,186,120,255],[255,188,124,255],[255,190,128,255],[255,192,132,255],[255,194,136,255],[255,196,140,255],[255,198,144,255],[255,200,148,255],[255,202,152,255],[255,204,156,255],[255,206,160,255],[255,208,164,255],[255,210,168,255],[255,212,172,255],[255,214,176,255],[255,216,180,255],[255,218,184,255],[255,220,188,255],[255,222,192,255],[255,224,196,255],[255,226,200,255],[255,228,204,255],[255,230,208,255],[255,232,212,255],[255,234,216,255],[255,236,220,255],[255,238,224,255],[255,240,228,255],[255,242,232,255],[255,244,236,255],[255,246,240,255],[255,248,244,255],[255,250,248,255],[255,252,252,255],[255,255,255,255]]},pet:{name:"PET",numColors:256,colors:[[0,0,0,255],[0,2,1,255],[0,4,3,255],[0,6,5,255],[0,8,7,255],[0,10,9,255],[0,12,11,255],[0,14,13,255],[0,16,15,255],[0,18,17,255],[0,20,19,255],[0,22,21,255],[0,24,23,255],[0,26,25,255],[0,28,27,255],[0,30,29,255],[0,32,31,255],[0,34,33,255],[0,36,35,255],[0,38,37,255],[0,40,39,255],[0,42,41,255],[0,44,43,255],[0,46,45,255],[0,48,47,255],[0,50,49,255],[0,52,51,255],[0,54,53,255],[0,56,55,255],[0,58,57,255],[0,60,59,255],[0,62,61,255],[0,65,63,255],[0,67,65,255],[0,69,67,255],[0,71,69,255],[0,73,71,255],[0,75,73,255],[0,77,75,255],[0,79,77,255],[0,81,79,255],[0,83,81,255],[0,85,83,255],[0,87,85,255],[0,89,87,255],[0,91,89,255],[0,93,91,255],[0,95,93,255],[0,97,95,255],[0,99,97,255],[0,101,99,255],[0,103,101,255],[0,105,103,255],[0,107,105,255],[0,109,107,255],[0,111,109,255],[0,113,111,255],[0,115,113,255],[0,117,115,255],[0,119,117,255],[0,121,119,255],[0,123,121,255],[0,125,123,255],[0,128,125,255],[1,126,127,255],[3,124,129,255],[5,122,131,255],[7,120,133,255],[9,118,135,255],[11,116,137,255],[13,114,139,255],[15,112,141,255],[17,110,143,255],[19,108,145,255],[21,106,147,255],[23,104,149,255],[25,102,151,255],[27,100,153,255],[29,98,155,255],[31,96,157,255],[33,94,159,255],[35,92,161,255],[37,90,163,255],[39,88,165,255],[41,86,167,255],[43,84,169,255],[45,82,171,255],[47,80,173,255],[49,78,175,255],[51,76,177,255],[53,74,179,255],[55,72,181,255],[57,70,183,255],[59,68,185,255],[61,66,187,255],[63,64,189,255],[65,63,191,255],[67,61,193,255],[69,59,195,255],[71,57,197,255],[73,55,199,255],[75,53,201,255],[77,51,203,255],[79,49,205,255],[81,47,207,255],[83,45,209,255],[85,43,211,255],[86,41,213,255],[88,39,215,255],[90,37,217,255],[92,35,219,255],[94,33,221,255],[96,31,223,255],[98,29,225,255],[100,27,227,255],[102,25,229,255],[104,23,231,255],[106,21,233,255],[108,19,235,255],[110,17,237,255],[112,15,239,255],[114,13,241,255],[116,11,243,255],[118,9,245,255],[120,7,247,255],[122,5,249,255],[124,3,251,255],[126,1,253,255],[128,0,255,255],[130,2,252,255],[132,4,248,255],[134,6,244,255],[136,8,240,255],[138,10,236,255],[140,12,232,255],[142,14,228,255],[144,16,224,255],[146,18,220,255],[148,20,216,255],[150,22,212,255],[152,24,208,255],[154,26,204,255],[156,28,200,255],[158,30,196,255],[160,32,192,255],[162,34,188,255],[164,36,184,255],[166,38,180,255],[168,40,176,255],[170,42,172,255],[171,44,168,255],[173,46,164,255],[175,48,160,255],[177,50,156,255],[179,52,152,255],[181,54,148,255],[183,56,144,255],[185,58,140,255],[187,60,136,255],[189,62,132,255],[191,64,128,255],[193,66,124,255],[195,68,120,255],[197,70,116,255],[199,72,112,255],[201,74,108,255],[203,76,104,255],[205,78,100,255],[207,80,96,255],[209,82,92,255],[211,84,88,255],[213,86,84,255],[215,88,80,255],[217,90,76,255],[219,92,72,255],[221,94,68,255],[223,96,64,255],[225,98,60,255],[227,100,56,255],[229,102,52,255],[231,104,48,255],[233,106,44,255],[235,108,40,255],[237,110,36,255],[239,112,32,255],[241,114,28,255],[243,116,24,255],[245,118,20,255],[247,120,16,255],[249,122,12,255],[251,124,8,255],[253,126,4,255],[255,128,0,255],[255,130,4,255],[255,132,8,255],[255,134,12,255],[255,136,16,255],[255,138,20,255],[255,140,24,255],[255,142,28,255],[255,144,32,255],[255,146,36,255],[255,148,40,255],[255,150,44,255],[255,152,48,255],[255,154,52,255],[255,156,56,255],[255,158,60,255],[255,160,64,255],[255,162,68,255],[255,164,72,255],[255,166,76,255],[255,168,80,255],[255,170,85,255],[255,172,89,255],[255,174,93,255],[255,176,97,255],[255,178,101,255],[255,180,105,255],[255,182,109,255],[255,184,113,255],[255,186,117,255],[255,188,121,255],[255,190,125,255],[255,192,129,255],[255,194,133,255],[255,196,137,255],[255,198,141,255],[255,200,145,255],[255,202,149,255],[255,204,153,255],[255,206,157,255],[255,208,161,255],[255,210,165,255],[255,212,170,255],[255,214,174,255],[255,216,178,255],[255,218,182,255],[255,220,186,255],[255,222,190,255],[255,224,194,255],[255,226,198,255],[255,228,202,255],[255,230,206,255],[255,232,210,255],[255,234,214,255],[255,236,218,255],[255,238,222,255],[255,240,226,255],[255,242,230,255],[255,244,234,255],[255,246,238,255],[255,248,242,255],[255,250,246,255],[255,252,250,255],[255,255,255,255]]},hotMetalBlue:{name:"Hot Metal Blue",numColors:256,colors:[[0,0,0,255],[0,0,2,255],[0,0,4,255],[0,0,6,255],[0,0,8,255],[0,0,10,255],[0,0,12,255],[0,0,14,255],[0,0,16,255],[0,0,17,255],[0,0,19,255],[0,0,21,255],[0,0,23,255],[0,0,25,255],[0,0,27,255],[0,0,29,255],[0,0,31,255],[0,0,33,255],[0,0,35,255],[0,0,37,255],[0,0,39,255],[0,0,41,255],[0,0,43,255],[0,0,45,255],[0,0,47,255],[0,0,49,255],[0,0,51,255],[0,0,53,255],[0,0,55,255],[0,0,57,255],[0,0,59,255],[0,0,61,255],[0,0,63,255],[0,0,65,255],[0,0,67,255],[0,0,69,255],[0,0,71,255],[0,0,73,255],[0,0,75,255],[0,0,77,255],[0,0,79,255],[0,0,81,255],[0,0,83,255],[0,0,84,255],[0,0,86,255],[0,0,88,255],[0,0,90,255],[0,0,92,255],[0,0,94,255],[0,0,96,255],[0,0,98,255],[0,0,100,255],[0,0,102,255],[0,0,104,255],[0,0,106,255],[0,0,108,255],[0,0,110,255],[0,0,112,255],[0,0,114,255],[0,0,116,255],[0,0,117,255],[0,0,119,255],[0,0,121,255],[0,0,123,255],[0,0,125,255],[0,0,127,255],[0,0,129,255],[0,0,131,255],[0,0,133,255],[0,0,135,255],[0,0,137,255],[0,0,139,255],[0,0,141,255],[0,0,143,255],[0,0,145,255],[0,0,147,255],[0,0,149,255],[0,0,151,255],[0,0,153,255],[0,0,155,255],[0,0,157,255],[0,0,159,255],[0,0,161,255],[0,0,163,255],[0,0,165,255],[0,0,167,255],[3,0,169,255],[6,0,171,255],[9,0,173,255],[12,0,175,255],[15,0,177,255],[18,0,179,255],[21,0,181,255],[24,0,183,255],[26,0,184,255],[29,0,186,255],[32,0,188,255],[35,0,190,255],[38,0,192,255],[41,0,194,255],[44,0,196,255],[47,0,198,255],[50,0,200,255],[52,0,197,255],[55,0,194,255],[57,0,191,255],[59,0,188,255],[62,0,185,255],[64,0,182,255],[66,0,179,255],[69,0,176,255],[71,0,174,255],[74,0,171,255],[76,0,168,255],[78,0,165,255],[81,0,162,255],[83,0,159,255],[85,0,156,255],[88,0,153,255],[90,0,150,255],[93,2,144,255],[96,4,138,255],[99,6,132,255],[102,8,126,255],[105,9,121,255],[108,11,115,255],[111,13,109,255],[114,15,103,255],[116,17,97,255],[119,19,91,255],[122,21,85,255],[125,23,79,255],[128,24,74,255],[131,26,68,255],[134,28,62,255],[137,30,56,255],[140,32,50,255],[143,34,47,255],[146,36,44,255],[149,38,41,255],[152,40,38,255],[155,41,35,255],[158,43,32,255],[161,45,29,255],[164,47,26,255],[166,49,24,255],[169,51,21,255],[172,53,18,255],[175,55,15,255],[178,56,12,255],[181,58,9,255],[184,60,6,255],[187,62,3,255],[190,64,0,255],[194,66,0,255],[198,68,0,255],[201,70,0,255],[205,72,0,255],[209,73,0,255],[213,75,0,255],[217,77,0,255],[221,79,0,255],[224,81,0,255],[228,83,0,255],[232,85,0,255],[236,87,0,255],[240,88,0,255],[244,90,0,255],[247,92,0,255],[251,94,0,255],[255,96,0,255],[255,98,3,255],[255,100,6,255],[255,102,9,255],[255,104,12,255],[255,105,15,255],[255,107,18,255],[255,109,21,255],[255,111,24,255],[255,113,26,255],[255,115,29,255],[255,117,32,255],[255,119,35,255],[255,120,38,255],[255,122,41,255],[255,124,44,255],[255,126,47,255],[255,128,50,255],[255,130,53,255],[255,132,56,255],[255,134,59,255],[255,136,62,255],[255,137,65,255],[255,139,68,255],[255,141,71,255],[255,143,74,255],[255,145,76,255],[255,147,79,255],[255,149,82,255],[255,151,85,255],[255,152,88,255],[255,154,91,255],[255,156,94,255],[255,158,97,255],[255,160,100,255],[255,162,103,255],[255,164,106,255],[255,166,109,255],[255,168,112,255],[255,169,115,255],[255,171,118,255],[255,173,121,255],[255,175,124,255],[255,177,126,255],[255,179,129,255],[255,181,132,255],[255,183,135,255],[255,184,138,255],[255,186,141,255],[255,188,144,255],[255,190,147,255],[255,192,150,255],[255,194,153,255],[255,196,156,255],[255,198,159,255],[255,200,162,255],[255,201,165,255],[255,203,168,255],[255,205,171,255],[255,207,174,255],[255,209,176,255],[255,211,179,255],[255,213,182,255],[255,215,185,255],[255,216,188,255],[255,218,191,255],[255,220,194,255],[255,222,197,255],[255,224,200,255],[255,226,203,255],[255,228,206,255],[255,229,210,255],[255,231,213,255],[255,233,216,255],[255,235,219,255],[255,237,223,255],[255,239,226,255],[255,240,229,255],[255,242,232,255],[255,244,236,255],[255,246,239,255],[255,248,242,255],[255,250,245,255],[255,251,249,255],[255,253,252,255],[255,255,255,255]]},pet20Step:{name:"PET 20 Step",numColors:256,colors:[[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[0,0,0,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[96,0,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,80,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[48,48,112,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[80,80,128,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[96,96,176,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[112,112,192,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[128,128,224,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,96,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[48,144,48,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[80,192,80,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[64,224,64,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[224,224,80,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,208,96,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,176,64,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[208,144,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[192,96,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[176,48,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,0,0,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255],[255,255,255,255]]},gray:{name:"Gray",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,1,1]]}},jet:{name:"Jet",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.35,0,0],[.66,1,1],[.89,1,1],[1,.5,.5]],green:[[0,0,0],[.125,0,0],[.375,1,1],[.64,1,1],[.91,0,0],[1,0,0]],blue:[[0,.5,.5],[.11,1,1],[.34,1,1],[.65,0,0],[1,0,0]]}},hsv:{name:"HSV",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[.15873,1,1],[.174603,.96875,.96875],[.333333,.03125,.03125],[.349206,0,0],[.666667,0,0],[.68254,.03125,.03125],[.84127,.96875,.96875],[.857143,1,1],[1,1,1]],green:[[0,0,0],[.15873,.9375,.9375],[.174603,1,1],[.507937,1,1],[.666667,.0625,.0625],[.68254,0,0],[1,0,0]],blue:[[0,0,0],[.333333,0,0],[.349206,.0625,.0625],[.507937,1,1],[.84127,1,1],[.857143,.9375,.9375],[1,.09375,.09375]]}},hot:{name:"Hot",numColors:256,gamma:1,segmentedData:{red:[[0,.0416,.0416],[.365079,1,1],[1,1,1]],green:[[0,0,0],[.365079,0,0],[.746032,1,1],[1,1,1]],blue:[[0,0,0],[.746032,0,0],[1,1,1]]}},cool:{name:"Cool",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,1,1],[1,0,0]],blue:[[0,1,1],[1,1,1]]}},spring:{name:"Spring",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,0,0]]}},summer:{name:"Summer",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,1,1]],green:[[0,.5,.5],[1,1,1]],blue:[[0,.4,.4],[1,.4,.4]]}},autumn:{name:"Autumn",numColors:256,gamma:1,segmentedData:{red:[[0,1,1],[1,1,1]],green:[[0,0,0],[1,1,1]],blue:[[0,0,0],[1,0,0]]}},winter:{name:"Winter",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[1,0,0]],green:[[0,0,0],[1,1,1]],blue:[[0,1,1],[1,.5,.5]]}},bone:{name:"Bone",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.746032,.652778,.652778],[1,1,1]],green:[[0,0,0],[.365079,.319444,.319444],[.746032,.777778,.777778],[1,1,1]],blue:[[0,0,0],[.365079,.444444,.444444],[1,1,1]]}},copper:{name:"Copper",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.809524,1,1],[1,1,1]],green:[[0,0,0],[1,.7812,.7812]],blue:[[0,0,0],[1,.4975,.4975]]}},spectral:{name:"Spectral",numColors:256,gamma:1,segmentedData:{red:[[0,0,0],[.05,.4667,.4667],[.1,.5333,.5333],[.15,0,0],[.2,0,0],[.25,0,0],[.3,0,0],[.35,0,0],[.4,0,0],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,.7333,.7333],[.7,.9333,.9333],[.75,1,1],[.8,1,1],[.85,1,1],[.9,.8667,.8667],[.95,.8,.8],[1,.8,.8]],green:[[0,0,0],[.05,0,0],[.1,0,0],[.15,0,0],[.2,0,0],[.25,.4667,.4667],[.3,.6,.6],[.35,.6667,.6667],[.4,.6667,.6667],[.45,.6,.6],[.5,.7333,.7333],[.55,.8667,.8667],[.6,1,1],[.65,1,1],[.7,.9333,.9333],[.75,.8,.8],[.8,.6,.6],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]],blue:[[0,0,0],[.05,.5333,.5333],[.1,.6,.6],[.15,.6667,.6667],[.2,.8667,.8667],[.25,.8667,.8667],[.3,.8667,.8667],[.35,.6667,.6667],[.4,.5333,.5333],[.45,0,0],[.5,0,0],[.55,0,0],[.6,0,0],[.65,0,0],[.7,0,0],[.75,0,0],[.8,0,0],[.85,0,0],[.9,0,0],[.95,0,0],[1,.8,.8]]}},coolwarm:{name:"CoolWarm",numColors:256,gamma:1,segmentedData:{red:[[0,.2298057,.2298057],[.03125,.26623388,.26623388],[.0625,.30386891,.30386891],[.09375,.342804478,.342804478],[.125,.38301334,.38301334],[.15625,.424369608,.424369608],[.1875,.46666708,.46666708],[.21875,.509635204,.509635204],[.25,.552953156,.552953156],[.28125,.596262162,.596262162],[.3125,.639176211,.639176211],[.34375,.681291281,.681291281],[.375,.722193294,.722193294],[.40625,.761464949,.761464949],[.4375,.798691636,.798691636],[.46875,.833466556,.833466556],[.5,.865395197,.865395197],[.53125,.897787179,.897787179],[.5625,.924127593,.924127593],[.59375,.944468518,.944468518],[.625,.958852946,.958852946],[.65625,.96732803,.96732803],[.6875,.969954137,.969954137],[.71875,.966811177,.966811177],[.75,.958003065,.958003065],[.78125,.943660866,.943660866],[.8125,.923944917,.923944917],[.84375,.89904617,.89904617],[.875,.869186849,.869186849],[.90625,.834620542,.834620542],[.9375,.795631745,.795631745],[.96875,.752534934,.752534934],[1,.705673158,.705673158]],green:[[0,.298717966,.298717966],[.03125,.353094838,.353094838],[.0625,.406535296,.406535296],[.09375,.458757618,.458757618],[.125,.50941904,.50941904],[.15625,.558148092,.558148092],[.1875,.604562568,.604562568],[.21875,.648280772,.648280772],[.25,.688929332,.688929332],[.28125,.726149107,.726149107],[.3125,.759599947,.759599947],[.34375,.788964712,.788964712],[.375,.813952739,.813952739],[.40625,.834302879,.834302879],[.4375,.849786142,.849786142],[.46875,.860207984,.860207984],[.5,.86541021,.86541021],[.53125,.848937047,.848937047],[.5625,.827384882,.827384882],[.59375,.800927443,.800927443],[.625,.769767752,.769767752],[.65625,.734132809,.734132809],[.6875,.694266682,.694266682],[.71875,.650421156,.650421156],[.75,.602842431,.602842431],[.78125,.551750968,.551750968],[.8125,.49730856,.49730856],[.84375,.439559467,.439559467],[.875,.378313092,.378313092],[.90625,.312874446,.312874446],[.9375,.24128379,.24128379],[.96875,.157246067,.157246067],[1,.01555616,.01555616]],blue:[[0,.753683153,.753683153],[.03125,.801466763,.801466763],[.0625,.84495867,.84495867],[.09375,.883725899,.883725899],[.125,.917387822,.917387822],[.15625,.945619588,.945619588],[.1875,.968154911,.968154911],[.21875,.98478814,.98478814],[.25,.995375608,.995375608],[.28125,.999836203,.999836203],[.3125,.998151185,.998151185],[.34375,.990363227,.990363227],[.375,.976574709,.976574709],[.40625,.956945269,.956945269],[.4375,.931688648,.931688648],[.46875,.901068838,.901068838],[.5,.865395561,.865395561],[.53125,.820880546,.820880546],[.5625,.774508472,.774508472],[.59375,.726736146,.726736146],[.625,.678007945,.678007945],[.65625,.628751763,.628751763],[.6875,.579375448,.579375448],[.71875,.530263762,.530263762],[.75,.481775914,.481775914],[.78125,.434243684,.434243684],[.8125,.387970225,.387970225],[.84375,.343229596,.343229596],[.875,.300267182,.300267182],[.90625,.259301199,.259301199],[.9375,.220525627,.220525627],[.96875,.184115123,.184115123],[1,.150232812,.150232812]]}},blues:{name:"Blues",numColors:256,gamma:1,segmentedData:{red:[[0,.9686274528503418,.9686274528503418],[.125,.8705882430076599,.8705882430076599],[.25,.7764706015586853,.7764706015586853],[.375,.6196078658103943,.6196078658103943],[.5,.41960784792900085,.41960784792900085],[.625,.25882354378700256,.25882354378700256],[.75,.12941177189350128,.12941177189350128],[.875,.0313725508749485,.0313725508749485],[1,.0313725508749485,.0313725508749485]],green:[[0,.9843137264251709,.9843137264251709],[.125,.9215686321258545,.9215686321258545],[.25,.8588235378265381,.8588235378265381],[.375,.7921568751335144,.7921568751335144],[.5,.6823529601097107,.6823529601097107],[.625,.572549045085907,.572549045085907],[.75,.4431372582912445,.4431372582912445],[.875,.3176470696926117,.3176470696926117],[1,.1882352977991104,.1882352977991104]],blue:[[0,1,1],[.125,.9686274528503418,.9686274528503418],[.25,.9372549057006836,.9372549057006836],[.375,.8823529481887817,.8823529481887817],[.5,.8392156958580017,.8392156958580017],[.625,.7764706015586853,.7764706015586853],[.75,.7098039388656616,.7098039388656616],[.875,.6117647290229797,.6117647290229797],[1,.41960784792900085,.41960784792900085]]}}},er={MINIMUM_SLAB_THICKNESS:.05,MAXIMUM_RAY_DISTANCE:1e6};Object.freeze(er);const Lo=.001;function SD(t){const e=Object.getOwnPropertyNames(t);for(const r of e){const n=t[r];n&&typeof n=="object"&&SD(n)}return Object.freeze(t)}const NB={axial:{viewPlaneNormal:[0,0,-1],viewUp:[0,-1,0],viewRight:[1,0,0]},sagittal:{viewPlaneNormal:[1,0,0],viewUp:[0,0,1],viewRight:[0,1,0]},coronal:{viewPlaneNormal:[0,-1,0],viewUp:[0,0,1],viewRight:[1,0,0]}},bs=SD(NB),TD=[{name:"CT-AAA",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 143.556 0 166.222 0.686275 214.389 0.696078 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 143.556 0.615686 0.356863 0.184314 166.222 0.882353 0.603922 0.290196 214.389 1 1 1 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-AAA2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"16 -3024 0 129.542 0 145.244 0.166667 157.02 0.5 169.918 0.627451 395.575 0.8125 1578.73 0.8125 3071 0.8125",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"32 -3024 0 0 0 129.542 0.54902 0.25098 0.14902 145.244 0.6 0.627451 0.843137 157.02 0.890196 0.47451 0.6 169.918 0.992157 0.870588 0.392157 395.575 1 0.886275 0.658824 1578.73 1 0.829256 0.957922 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -16.4458 0 641.385 0.715686 3071 0.705882",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -16.4458 0.729412 0.254902 0.301961 641.385 0.905882 0.815686 0.552941 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Bones",gradientOpacity:"4 0 1 985.12 1",specularPower:"1",scalarOpacity:"8 -1000 0 152.19 0 278.93 0.190476 952 0.2",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -1000 0.3 0.3 1 -488 0.3 1 0.3 463.28 1 0 0 659.15 1 0.912535 0.0374849 953 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-Cardiac",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 -77.6875 0 94.9518 0.285714 179.052 0.553571 260.439 0.848214 3071 0.875",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 -77.6875 0.54902 0.25098 0.14902 94.9518 0.882353 0.603922 0.290196 179.052 1 0.937033 0.954531 260.439 0.615686 0 0 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac2",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"12 -3024 0 42.8964 0 163.488 0.428571 277.642 0.776786 1587 0.754902 3071 0.754902",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"24 -3024 0 0 0 42.8964 0.54902 0.25098 0.14902 163.488 0.917647 0.639216 0.0588235 277.642 1 0.878431 0.623529 1587 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cardiac3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -3024 0 -86.9767 0 45.3791 0.169643 139.919 0.589286 347.907 0.607143 1224.16 0.607143 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -3024 0 0 0 -86.9767 0 0.25098 1 45.3791 1 0 0 139.919 1 0.894893 0.894893 347.907 1 1 0.25098 1224.16 1 1 1 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Contrast-Enhanced",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 67.0106 0 251.105 0.446429 439.291 0.625 3071 0.616071",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 67.0106 0.54902 0.25098 0.14902 251.105 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Chest-Vessels",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -3024 0 -1278.35 0 22.8277 0.428571 439.291 0.625 3071 0.616071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"20 -3024 0 0 0 -1278.35 0.54902 0.25098 0.14902 22.8277 0.882353 0.603922 0.290196 439.291 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 136.47 0 159.215 0.258929 318.43 0.571429 478.693 0.776786 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 136.47 0 0 0 159.215 0.159804 0.159804 0.159804 318.43 0.764706 0.764706 0.764706 478.693 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-2",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 142.677 0 145.016 0.116071 192.174 0.5625 217.24 0.776786 384.347 0.830357 3661 0.830357",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 142.677 0 0 0 145.016 0.615686 0 0.0156863 192.174 0.909804 0.454902 0 217.24 0.972549 0.807843 0.611765 384.347 0.909804 0.909804 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Coronary-Arteries-3",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"14 -2048 0 128.643 0 129.982 0.0982143 173.636 0.669643 255.884 0.857143 584.878 0.866071 3661 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"28 -2048 0 0 0 128.643 0 0 0 129.982 0.615686 0 0.0156863 173.636 0.909804 0.454902 0 255.884 0.886275 0.886275 0.886275 584.878 0.968627 0.968627 0.968627 3661 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Cropped-Volume-Bone",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -451 0 -450 1 1050 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -451 0 0 0 -450 0.0556356 0.0556356 0.0556356 1050 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Fat",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"14 -1000 0 -100 0 -99 0.15 -60 0.15 -59 0 101.2 0 952 0",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"36 -1000 0.3 0.3 1 -497.5 0.3 1 0.3 -99 0 0 1 -76.946 0 1 0 -65.481 0.835431 0.888889 0.0165387 83.89 1 0 0 463.28 1 0 0 659.15 1 0.912535 0.0374849 2952 1 0.300267 0.299886",diffuse:"1",interpolation:"1"},{name:"CT-Liver-Vasculature",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 149.113 0 157.884 0.482143 339.96 0.660714 388.526 0.830357 1197.95 0.839286 3661 0.848214",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 149.113 0 0 0 157.884 0.501961 0.25098 0 339.96 0.695386 0.59603 0.36886 388.526 0.854902 0.85098 0.827451 1197.95 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Lung",gradientOpacity:"6 0 1 985.12 1 988 1",specularPower:"1",scalarOpacity:"12 -1000 0 -600 0 -599 0.15 -400 0.15 -399 0 2952 0",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -1000 0.3 0.3 1 -600 0 0 1 -530 0.134704 0.781726 0.0724558 -460 0.929244 1 0.109473 -400 0.888889 0.254949 0.0240258 2952 1 0.3 0.3",diffuse:"1",interpolation:"1"},{name:"CT-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0 -637.62 0 700 1 3071 1",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 0 0 0 -637.62 1 1 1 700 1 1 1 3071 1 1 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Muscle",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"10 -3024 0 -155.407 0 217.641 0.676471 419.736 0.833333 3071 0.803922",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"20 -3024 0 0 0 -155.407 0.54902 0.25098 0.14902 217.641 0.882353 0.603922 0.290196 419.736 1 0.937033 0.954531 3071 0.827451 0.658824 1",diffuse:"0.9",interpolation:"1"},{name:"CT-Pulmonary-Arteries",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"14 -2048 0 -568.625 0 -364.081 0.0714286 -244.813 0.401786 18.2775 0.607143 447.798 0.830357 3592.73 0.839286",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"28 -2048 0 0 0 -568.625 0 0 0 -364.081 0.396078 0.301961 0.180392 -244.813 0.611765 0.352941 0.0705882 18.2775 0.843137 0.0156863 0.156863 447.798 0.752941 0.752941 0.752941 3592.73 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Soft-Tissue",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"10 -2048 0 -167.01 0 -160 1 240 1 3661 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"20 -2048 0 0 0 -167.01 0 0 0 -160 0.0556356 0.0556356 0.0556356 240 1 1 1 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"CT-Air",gradientOpacity:"4 0 1 255 1",specularPower:"10",scalarOpacity:"8 -3024 0.705882 -900.0 0.715686 -500.0 0 3071 0",specular:"0.2",shade:"1",ambient:"0.1",colorTransfer:"16 -3024 1 1 1 -900.0 0.2 1.0 1.0 -500.0 0.3 0.3 1.0 3071 0 0 0 ",diffuse:"0.9",interpolation:"1"},{name:"MR-Angio",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 -2048 0 151.354 0 158.279 0.4375 190.112 0.580357 200.873 0.732143 3661 0.741071",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 -2048 0 0 0 151.354 0 0 0 158.279 0.74902 0.376471 0 190.112 1 0.866667 0.733333 200.873 0.937255 0.937255 0.937255 3661 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-Default",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"12 0 0 20 0 40 0.15 120 0.3 220 0.375 1024 0.5",specular:"0",shade:"1",ambient:"0.2",colorTransfer:"24 0 0 0 0 20 0.168627 0 0 40 0.403922 0.145098 0.0784314 120 0.780392 0.607843 0.380392 220 0.847059 0.835294 0.788235 1024 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-MIP",gradientOpacity:"4 0 1 255 1",specularPower:"1",scalarOpacity:"8 0 0 98.3725 0 416.637 1 2800 1",specular:"0",shade:"0",ambient:"0.2",colorTransfer:"16 0 1 1 1 98.3725 1 1 1 416.637 1 1 1 2800 1 1 1",diffuse:"1",interpolation:"1"},{name:"MR-T2-Brain",gradientOpacity:"4 0 1 160.25 1",specularPower:"40",scalarOpacity:"10 0 0 36.05 0 218.302 0.171429 412.406 1 641 1",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"16 0 0 0 0 98.7223 0.956863 0.839216 0.192157 412.406 0 0.592157 0.807843 641 1 1 1",diffuse:"0.6",interpolation:"1"},{name:"DTI-FA-Brain",gradientOpacity:"4 0 1 0.9950 1",specularPower:"40",scalarOpacity:"16 0 0 0 0 0.3501 0.0158 0.49379 0.7619 0.6419 1 0.9920 1 0.9950 0 0.9950 0",specular:"0.5",shade:"1",ambient:"0.3",colorTransfer:"28 0 1 0 0 0 1 0 0 0.24974 0.4941 1 0 0.49949 0 0.9882 1 0.7492 0.51764 0 1 0.9950 1 0 0 0.9950 1 0 0",diffuse:"0.9",interpolation:"1"}],PB={slicer3D:[160/255,164/255,217/255]},Sl=Object.freeze(Object.defineProperty({__proto__:null,BACKGROUND_COLORS:PB,CPU_COLORMAPS:M5,EPSILON:Lo,MPR_CAMERA_VALUES:bs,RENDERING_DEFAULTS:er,VIEWPORT_PRESETS:TD},Symbol.toStringTag,{value:"Module"})),Y0={},bd={get:t=>Y0[t],set:t=>{const e=t.id;Y0[e]=t},delete:t=>delete Y0[t],getAll:()=>{const e=Object.keys(Y0).map(r=>Y0[r]);return e.sort((r,n)=>r.id[0]==="_"&&n.id[0]!=="_"?1:r.id[0]!=="_"&&n.id[0]==="_"?-1:0),e}};class AB{constructor(){this.listeners={},this.debouncedListeners={}}reset(){this.listeners={},this.debouncedListeners={}}addEventListenerOnce(e,r){const n=i=>{this.removeEventListener(e,n),r.call(this,i)};this.addEventListener(e,n)}addEventListener(e,r){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].indexOf(r)===-1&&this.listeners[e].push(r)}addEventListenerDebounced(e,r,n){this.debouncedListeners[e]=this.debouncedListeners[e]||{};const i=this.debouncedListeners[e];if(!i[r]){const o=a=>{i[r]&&clearTimeout(i[r].timeoutId),i[r].timeoutId=setTimeout(()=>{r.call(this,a)},n)};i[r]={original:r,handle:o,timeoutId:null},this.addEventListener(e,o)}}removeEventListenerDebounced(e,r){var n;if((n=this.debouncedListeners[e])!=null&&n[r]){const i=this.debouncedListeners[e][r];this.removeEventListener(e,i.handle),clearTimeout(i.timeoutId),delete this.debouncedListeners[e][r]}}removeEventListener(e,r){if(!this.listeners[e])return;const n=this.listeners[e],i=n.length;for(let o=0;o(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16))}function De(t=Ce,e,r=null){if(!e)throw new Error("Event type was not defined");const n=new CustomEvent(e,{detail:r,cancelable:!0});return t==null?void 0:t.dispatchEvent(n)}var kB=function t(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var n,i,o;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(i=n;i--!==0;)if(!t(e[i],r[i]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(r).length)return!1;for(i=n;i--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[i]))return!1;for(i=n;i--!==0;){var a=o[i];if(!t(e[a],r[a]))return!1}return!0}return e!==e&&r!==r};const _D=oh(kB);var dT=Object.prototype.toString,ED=function(e){var r=dT.call(e),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&dT.call(e.callee)==="[object Function]"),n},yv,hT;function VB(){if(hT)return yv;hT=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=ED,i=Object.prototype.propertyIsEnumerable,o=!i.call({toString:null},"toString"),a=i.call(function(){},"prototype"),s=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=function(d){var h=d.constructor;return h&&h.prototype===d},l={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if(typeof window>"u")return!1;for(var d in window)try{if(!l["$"+d]&&e.call(window,d)&&window[d]!==null&&typeof window[d]=="object")try{c(window[d])}catch{return!0}}catch{return!0}return!1}(),u=function(d){if(typeof window>"u"||!f)return c(d);try{return c(d)}catch{return!1}};t=function(h){var g=h!==null&&typeof h=="object",p=r.call(h)==="[object Function]",v=n(h),x=g&&r.call(h)==="[object String]",m=[];if(!g&&!p&&!v)throw new TypeError("Object.keys called on a non-object");var y=a&&p;if(x&&h.length>0&&!e.call(h,0))for(var w=0;w0)for(var C=0;C"u"||!_r?Nt:_r(Uint8Array),Kc={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Nt:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Nt:ArrayBuffer,"%ArrayIteratorPrototype%":Nl&&_r?_r([][Symbol.iterator]()):Nt,"%AsyncFromSyncIteratorPrototype%":Nt,"%AsyncFunction%":Hl,"%AsyncGenerator%":Hl,"%AsyncGeneratorFunction%":Hl,"%AsyncIteratorPrototype%":Hl,"%Atomics%":typeof Atomics>"u"?Nt:Atomics,"%BigInt%":typeof BigInt>"u"?Nt:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Nt:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Nt:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Nt:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":lG,"%eval%":eval,"%EvalError%":uG,"%Float32Array%":typeof Float32Array>"u"?Nt:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Nt:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Nt:FinalizationRegistry,"%Function%":OD,"%GeneratorFunction%":Hl,"%Int8Array%":typeof Int8Array>"u"?Nt:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Nt:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Nt:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":Nl&&_r?_r(_r([][Symbol.iterator]())):Nt,"%JSON%":typeof JSON=="object"?JSON:Nt,"%Map%":typeof Map>"u"?Nt:Map,"%MapIteratorPrototype%":typeof Map>"u"||!Nl||!_r?Nt:_r(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Nt:Promise,"%Proxy%":typeof Proxy>"u"?Nt:Proxy,"%RangeError%":fG,"%ReferenceError%":dG,"%Reflect%":typeof Reflect>"u"?Nt:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Nt:Set,"%SetIteratorPrototype%":typeof Set>"u"||!Nl||!_r?Nt:_r(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Nt:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":Nl&&_r?_r(""[Symbol.iterator]()):Nt,"%Symbol%":Nl?Symbol:Nt,"%SyntaxError%":Hu,"%ThrowTypeError%":gG,"%TypedArray%":mG,"%TypeError%":Tu,"%Uint8Array%":typeof Uint8Array>"u"?Nt:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Nt:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Nt:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Nt:Uint32Array,"%URIError%":hG,"%WeakMap%":typeof WeakMap>"u"?Nt:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Nt:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Nt:WeakSet};if(_r)try{null.error}catch(t){var vG=_r(_r(t));Kc["%Error.prototype%"]=vG}var yG=function t(e){var r;if(e==="%AsyncFunction%")r=wv("async function () {}");else if(e==="%GeneratorFunction%")r=wv("function* () {}");else if(e==="%AsyncGeneratorFunction%")r=wv("async function* () {}");else if(e==="%AsyncGenerator%"){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&_r&&(r=_r(i.prototype))}return Kc[e]=r,r},yT={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},fh=ID,x1=cG,xG=fh.call(Function.call,Array.prototype.concat),wG=fh.call(Function.apply,Array.prototype.splice),xT=fh.call(Function.call,String.prototype.replace),w1=fh.call(Function.call,String.prototype.slice),CG=fh.call(Function.call,RegExp.prototype.exec),SG=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,TG=/\\(\\)?/g,_G=function(e){var r=w1(e,0,1),n=w1(e,-1);if(r==="%"&&n!=="%")throw new Hu("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new Hu("invalid intrinsic syntax, expected opening `%`");var i=[];return xT(e,SG,function(o,a,s,c){i[i.length]=s?xT(c,TG,"$1"):a||o}),i},EG=function(e,r){var n=e,i;if(x1(yT,n)&&(i=yT[n],n="%"+i[0]+"%"),x1(Kc,n)){var o=Kc[n];if(o===Hl&&(o=yG(n)),typeof o>"u"&&!r)throw new Tu("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:o}}throw new Hu("intrinsic "+e+" does not exist!")},MD=function(e,r){if(typeof e!="string"||e.length===0)throw new Tu("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new Tu('"allowMissing" argument must be a boolean');if(CG(/^%?[^%]*%?$/,e)===null)throw new Hu("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=_G(e),i=n.length>0?n[0]:"",o=EG("%"+i+"%",r),a=o.name,s=o.value,c=!1,l=o.alias;l&&(i=l[0],wG(n,xG([0,1],l)));for(var f=1,u=!0;f=n.length){var p=Hc(s,d);u=!!p,u&&"get"in p&&!("originalValue"in p.get)?s=p.get:s=s[d]}else u=x1(s,d),s=s[d];u&&!c&&(Kc[a]=s)}}return s},DG=MD,wp=DG("%Object.defineProperty%",!0)||!1;if(wp)try{wp({},"a",{value:1})}catch{wp=!1}var RD=wp,bG=MD,Cp=bG("%Object.getOwnPropertyDescriptor%",!0);if(Cp)try{Cp([],"length")}catch{Cp=null}var IG=Cp,wT=RD,OG=DD,Pl=bD,CT=IG,MG=function(e,r,n){if(!e||typeof e!="object"&&typeof e!="function")throw new Pl("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new Pl("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new Pl("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new Pl("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new Pl("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new Pl("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,o=arguments.length>4?arguments[4]:null,a=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,c=!!CT&&CT(e,r);if(wT)wT(e,r,{configurable:a===null&&c?c.configurable:!a,enumerable:i===null&&c?c.enumerable:!i,value:n,writable:o===null&&c?c.writable:!o});else if(s||!i&&!o&&!a)e[r]=n;else throw new OG("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},R5=RD,LD=function(){return!!R5};LD.hasArrayLengthDefineBug=function(){if(!R5)return null;try{return R5([],"length",{value:1}).length!==1}catch{return!0}};var RG=LD,LG=BB,NG=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",PG=Object.prototype.toString,AG=Array.prototype.concat,ST=MG,kG=function(t){return typeof t=="function"&&PG.call(t)==="[object Function]"},ND=RG(),VG=function(t,e,r,n){if(e in t){if(n===!0){if(t[e]===r)return}else if(!kG(n)||!n())return}ND?ST(t,e,r,!0):ST(t,e,r)},PD=function(t,e){var r=arguments.length>2?arguments[2]:{},n=LG(e);NG&&(n=AG.call(n,Object.getOwnPropertySymbols(e)));for(var i=0;inull};function Eo(t){if(t==null||t.isA)return t;if(!t.vtkClass)return To.console&&To.console.error&&To.console.error("Invalid VTK object"),null;const e=BD[t.vtkClass];if(!e)return To.console&&To.console.error&&To.console.error(`No vtk class found for Object of type ${t.vtkClass}`),null;const r={...t};Object.keys(r).forEach(i=>{r[i]&&typeof r[i]=="object"&&r[i].vtkClass&&(r[i]=Eo(r[i]))});const n=e(r);return n&&n.modified&&n.modified(),n}function qG(t,e){BD[t]=e}Eo.register=qG;class Sv extends Array{push(){for(let e=0;e{WD[t]=Oc});To.console=console.hasOwnProperty("log")?console:WD;const Ks={debug:Oc,error:To.console.error||Oc,info:To.console.info||Oc,log:To.console.log||Oc,warn:To.console.warn||Oc};function zD(t,e){Ks[t]&&(Ks[t]=e||Oc)}function $D(){Ks.log(...arguments)}function jD(){Ks.info(...arguments)}function C1(){Ks.debug(...arguments)}function Dt(){Ks.error(...arguments)}function jm(){Ks.warn(...arguments)}const TT={};function HD(t){TT[t]||(Ks.error(t),TT[t]=!0)}const Jr=Object.create(null);Jr.Float32Array=Float32Array;Jr.Float64Array=Float64Array;Jr.Uint8Array=Uint8Array;Jr.Int8Array=Int8Array;Jr.Uint16Array=Uint16Array;Jr.Int16Array=Int16Array;Jr.Uint32Array=Uint32Array;Jr.Int32Array=Int32Array;Jr.Uint8ClampedArray=Uint8ClampedArray;try{Jr.BigInt64Array=BigInt64Array,Jr.BigUint64Array=BigUint64Array}catch{}function m0(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n1&&arguments[1]!==void 0?arguments[1]:2,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1e3;const n=["TB","GB","MB","KB"];let i=Number(t),o="B";for(;i>r;)i/=r,o=n.pop();return`${i.toFixed(e)} ${o}`}function XD(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:" ";const r=[];let n=t;for(;n>1e3;)r.push(`000${n%1e3}`.slice(-3)),n=Math.floor(n/1e3);return n>0&&r.push(n),r.reverse(),r.join(e)}function YD(t){Object.keys(t).forEach(e=>{Array.isArray(t[e])&&(t[e]=[].concat(t[e]))})}function JG(t){return Object.values(Jr).some(e=>t instanceof e)}function ZG(t,e){if(t===e)return!0;if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(let r=0;rt[r]===e)}function JD(t){return t&&t.isA?t.getState():t}function jx(t){setTimeout(t,0)}function ZD(t,e){const r=performance.now();t.finally(()=>{const n=performance.now()-r;e(n)})}function un(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};YD(e);const r=[];if(Number.isInteger(e.mtime)||(e.mtime=++L5),!("classHierarchy"in e))e.classHierarchy=new Sv("vtkObject");else if(!(e.classHierarchy instanceof Sv)){const o=new Sv;for(let a=0;a!!e.deleted,t.modified=o=>{if(e.deleted){Dt("instance deleted - cannot call any method");return}o&&oa&&a(t)))},t.onModified=o=>{if(e.deleted)return Dt("instance deleted - cannot call any method"),null;const a=r.length;return r.push(o),i(a)},t.getMTime=()=>e.mtime,t.isA=o=>{let a=e.classHierarchy.length;for(;a--;)if(e.classHierarchy[a]===o)return!0;return!1},t.getClassName=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.classHierarchy[e.classHierarchy.length-1-o]},t.set=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,c=!1;return Object.keys(o).forEach(l=>{const f=s?null:t[`set${Km(l)}`];f&&Array.isArray(o[l])&&f.length>1?c=f(...o[l])||c:f?c=f(o[l])||c:(["mtime"].indexOf(l)===-1&&!a&&jm(`Warning: Set value to model directly ${l}, ${o[l]}`),c=e[l]!==o[l]||c,e[l]=o[l])}),c},t.get=function(){for(var o=arguments.length,a=new Array(o),s=0;s{c[l]=e[l]}),c},t.getReferenceByName=o=>e[o],t.delete=()=>{Object.keys(e).forEach(o=>delete e[o]),r.forEach((o,a)=>n(a)),e.deleted=!0},t.getState=()=>{if(e.deleted)return null;const o={...e,vtkClass:t.getClassName()};Object.keys(o).forEach(s=>{o[s]===null||o[s]===void 0||s[0]==="_"?delete o[s]:o[s].isA?o[s]=o[s].getState():Array.isArray(o[s])?o[s]=o[s].map(JD):JG(o[s])&&(o[s]=Array.from(o[s]))});const a={};return Object.keys(o).sort().forEach(s=>{a[s]=o[s]}),a.mtime&&delete a.mtime,a},t.shallowCopy=function(o){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(o.getClassName()!==t.getClassName())throw new Error(`Cannot ShallowCopy ${o.getClassName()} into ${t.getClassName()}`);const s=o.get(),c=Object.keys(e).sort();Object.keys(s).sort().forEach(f=>{const u=c.indexOf(f);u===-1?a&&C1(`add ${f} in shallowCopy`):c.splice(u,1),e[f]=s[f]}),c.length&&a&&C1(`Untouched keys: ${c.join(", ")}`),t.modified()},t.toJSON=function(){return t.getState()},t}const eW={object(t,e,r){return function(){return{...e[r.name]}}}};function gi(t,e,r){r.forEach(n=>{if(typeof n=="object"){const i=eW[n.type];i?t[`get${Yn(n.name)}`]=i(t,e,n):t[`get${Yn(n.name)}`]=()=>e[n.name]}else t[`get${Yn(n)}`]=()=>e[n]})}const QD={enum(t,e,r){const n=`_on${Yn(r.name)}Changed`;return i=>{var o;if(typeof i=="string"){if(r.enum[i]!==void 0)return e[r.name]!==r.enum[i]?(e[r.name]=r.enum[i],t.modified(),!0):!1;throw Dt(`Set Enum with invalid argument ${r}, ${i}`),new RangeError("Set Enum with invalid string argument")}if(typeof i=="number"){if(e[r.name]!==i){if(Object.keys(r.enum).map(a=>r.enum[a]).indexOf(i)!==-1){const a=e[r.name];return e[r.name]=i,(o=e[n])==null||o.call(e,t,e,i,a),t.modified(),!0}throw Dt(`Set Enum outside numeric range ${r}, ${i}`),new RangeError("Set Enum outside numeric range")}return!1}throw Dt(`Set Enum with invalid argument (String/Number) ${r}, ${i}`),new TypeError("Set Enum with invalid argument (String/Number)")}},object(t,e,r){var i;((i=r.params)==null?void 0:i.length)===1&&jm('Setter of type "object" with a single "param" field is not supported');const n=`_on${Yn(r.name)}Changed`;return function(){var l,f;for(var o=arguments.length,a=new Array(o),s=0;s1&&((l=r.params)!=null&&l.length)?c=r.params.reduce((u,d,h)=>Object.assign(u,{[d]:a[h]}),{}):c=a[0],!_D(e[r.name],c)){const u=e[r.name];return e[r.name]=c,(f=e[n])==null||f.call(e,t,e,c,u),t.modified(),!0}return!1}}};function _T(t){if(typeof t=="object"){const e=QD[t.type];if(e)return(r,n)=>e(r,n,t);throw Dt(`No setter for field ${t}`),new TypeError("No setter for field")}return function(r,n){const i=`_on${Yn(t)}Changed`;return function(a){var s;if(n.deleted)return Dt("instance deleted - cannot call any method"),!1;if(n[t]!==a){const c=n[t.name];return n[t]=a,(s=n[i])==null||s.call(n,r,n,a,c),r.modified(),!0}return!1}}}function dh(t,e,r){r.forEach(n=>{typeof n=="object"?t[`set${Yn(n.name)}`]=_T(n)(t,e):t[`set${Yn(n)}`]=_T(n)(t,e)})}function Jn(t,e,r){gi(t,e,r),dh(t,e,r)}function v0(t,e,r){r.forEach(n=>{t[`get${Yn(n)}`]=()=>e[n]?Array.from(e[n]):e[n],t[`get${Yn(n)}ByReference`]=()=>e[n]})}function Hx(t,e,r,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;r.forEach(o=>{if(e[o]&&n&&e[o].length!==n)throw new RangeError(`Invalid initial number of values for array (${o})`);const a=`_on${Yn(o)}Changed`;t[`set${Yn(o)}`]=function(){var h;if(e.deleted)return Dt("instance deleted - cannot call any method"),!1;for(var s=arguments.length,c=new Array(s),l=0;l=0)&&(f=f[0],d=!0),f==null)u=e[o]!==f;else{if(n&&f.length!==n)if(f.length{const c=e[o];s.forEach((l,f)=>{c[f]=l})}})}function Kx(t,e,r,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:void 0;v0(t,e,r),Hx(t,e,r,n,i)}function hh(t,e,r){for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){Dt("instance deleted - cannot call any method");return}if(g>=e.numberOfInputs){Dt(`algorithm ${t.getClassName()} only has ${e.numberOfInputs} input ports. To add more input ports, use addInputData()`);return}(e.inputData[g]!==h||e.inputConnection[g])&&(e.inputData[g]=h,e.inputConnection[g]=null,t.modified&&t.modified())}function o(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[h]&&(e.inputData[h]=e.inputConnection[h]()),e.inputData[h]}function a(h){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(e.deleted){Dt("instance deleted - cannot call any method");return}if(g>=e.numberOfInputs){let p=`algorithm ${t.getClassName()} only has `;p+=`${e.numberOfInputs}`,p+=" input ports. To add more input ports, use addInputConnection()",Dt(p);return}e.inputData[g]=null,e.inputConnection[g]=h}function s(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.inputConnection[h]}function c(){let h=e.numberOfInputs;for(;h&&!e.inputData[h-1]&&!e.inputConnection[h-1];)h--;return h===e.numberOfInputs&&e.numberOfInputs++,h}function l(h){if(e.deleted){Dt("instance deleted - cannot call any method");return}a(h,c())}function f(h){if(e.deleted){Dt("instance deleted - cannot call any method");return}i(h,c())}function u(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.deleted?(Dt("instance deleted - cannot call any method"),null):(t.shouldUpdate()&&t.update(),e.output[h])}t.shouldUpdate=()=>{var v,x;const h=t.getMTime();let g=1/0,p=n;for(;p--;){if(!e.output[p]||e.output[p].isDeleted())return!0;const m=e.output[p].getMTime();if(mg)return!0;return!1};function d(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const g=()=>u(h);return g.filter=t,g}if(e.numberOfInputs){let h=e.numberOfInputs;for(;h--;)e.inputData.push(null),e.inputConnection.push(null);t.setInputData=i,t.setInputConnection=a,t.addInputData=f,t.addInputConnection=l,t.getInputData=o,t.getInputConnection=s}n&&(t.getOutputData=u,t.getOutputPort=d),t.update=()=>{const h=[];if(e.numberOfInputs){let g=0;for(;ge.numberOfInputs,t.getNumberOfOutputPorts=()=>n||e.output.length,t.getInputArrayToProcess=h=>{const g=e.inputArrayToProcess[h],p=e.inputData[h];return g&&p?p[`get${g.fieldAssociation}`]().getArray(g.arrayName):null},t.setInputArrayToProcess=function(h,g,p){let v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"Scalars";for(;e.inputArrayToProcess.lengthu.apply(t,arguments),1-d);else if(u.apply(t,arguments)===Xx)break}}}t[`invoke${Yn(r)}`]=c,t[`on${Yn(r)}`]=function(l){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!l.apply)return console.error(`Invalid callback for event ${r}`),null;if(e.deleted)return Dt("instance deleted - cannot call any method"),null;const u=o++;return n.push([u,l,f]),n.sort((d,h)=>h[2]-d[2]),s(u)},t.delete=()=>{i(),n.forEach(l=>{let[f]=l;return a(f)})}}function Bt(t,e){const r=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const i={},o={};return t(o,i,n),Object.freeze(o)};return e&&Eo.register(e,r),r}function gh(){for(var t=arguments.length,e=new Array(t),r=0;r!!a).map(a=>a(...i))}}function Yx(t){return t&&t.isA&&t.isA("vtkObject")}function S1(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[];if(Yx(t)){if(n.indexOf(t)>=0)return r;n.push(t);const i=e(t);i!==void 0&&r.push(i);const o=t.get();Object.keys(o).forEach(a=>{const s=o[a];Array.isArray(s)?s.forEach(c=>{S1(c,e,r,n)}):S1(s,e,r,n)})}return r}function t7(t,e,r){var n=this;let i;const o=function(){for(var a=arguments.length,s=new Array(a),c=0;c{i=null,r||t.apply(l,s)},u=r&&!i;clearTimeout(i),i=setTimeout(f,e),u&&t.apply(l,s)};return o.cancel=()=>clearTimeout(i),o}function n7(t,e){let r=!1,n=null;function i(){r=!1,n!==null&&(o(...n),n=null)}function o(){for(var a=arguments.length,s=new Array(a),c=0;c2&&arguments[2]!==void 0?arguments[2]:{};e.keystore=Object.assign(e.keystore||{},r),t.setKey=(n,i)=>{e.keystore[n]=i},t.getKey=n=>e.keystore[n],t.getAllKeys=()=>Object.keys(e.keystore),t.deleteKey=n=>delete e.keystore[n],t.clearKeystore=()=>t.getAllKeys().forEach(n=>delete e.keystore[n])}let tW=1;const og="__root__";function r7(t,e){Jx(t,e);const r=t.delete;e.proxyId=`${tW++}`,e.ui=JSON.parse(JSON.stringify(e.ui||[])),gi(t,e,["proxyId","proxyGroup","proxyName"]),Jn(t,e,["proxyManager"]);const n={},i={};function o(l,f){i[f]||(i[f]=[]);const u=i[f];for(let d=0;d{e.ui=JSON.parse(JSON.stringify(l||[])),Object.keys(n).forEach(f=>delete n[f]),Object.keys(i).forEach(f=>delete i[f]),o(e.ui,og),t.modified()};function a(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:og;return i[l]}t.updateProxyProperty=(l,f)=>{const u=n[l];u?Object.assign(u,f):n[l]={...f}},t.activate=()=>{if(e.proxyManager){const l=`setActive${Yn(t.getProxyGroup().slice(0,-1))}`;e.proxyManager[l]&&e.proxyManager[l](t)}},e.propertyLinkSubscribers={},t.registerPropertyLinkForGC=(l,f)=>{f in e.propertyLinkSubscribers||(e.propertyLinkSubscribers[f]=[]),e.propertyLinkSubscribers[f].push(l)},t.gcPropertyLinks=l=>{const f=e.propertyLinkSubscribers[l]||[];for(;f.length;)f.pop().unbind(t)},e.propertyLinkMap={},t.getPropertyLink=function(l){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.propertyLinkMap[l])return e.propertyLinkMap[l];let u=null;const d=[];let h=0,g=!1;function p(w){let C=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(g)return null;const S=[];let T=null;for(h=d.length;h--;){const E=d[h];E.instance===w?T=E:S.push(E)}if(!T)return null;const _=T.instance[`get${Yn(T.propertyName)}`]();if(!ZG(_,u)||C){for(u=_,g=!0;S.length;){const E=S.pop();E.instance.set({[E.propertyName]:u})}g=!1}return e.propertyLinkMap[l].persistent&&(e.propertyLinkMap[l].value=_),_}function v(w,C){const S=[];for(h=d.length;h--;){const T=d[h];T.instance===w&&(T.propertyName===C||C===void 0)&&(T.subscription.unsubscribe(),S.push(h))}for(;S.length;)d.splice(S.pop(),1)}function x(w,C){let S=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const T=w.onModified(p),_=d[0];return d.push({instance:w,propertyName:C,subscription:T}),S&&(e.propertyLinkMap[l].persistent&&e.propertyLinkMap[l].value!==void 0?w.set({[C]:e.propertyLinkMap[l].value}):_&&p(_.instance,!0)),{unsubscribe:()=>v(w,C)}}function m(){for(;d.length;)d.pop().subscription.unsubscribe()}const y={bind:x,unbind:v,unsubscribe:m,persistent:f};return e.propertyLinkMap[l]=y,y};function s(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:og;const f=[],u=e.proxyId,d=a(l)||[];for(let h=0;hs().map(l=>l.name),t.getPropertyByName=l=>s().find(f=>f.name===l),t.getPropertyDomainByName=l=>(n[l]||{}).domain,t.getProxySection=()=>({id:e.proxyId,name:e.proxyGroup,ui:e.ui,properties:s()}),t.delete=()=>{const l=Object.keys(e.propertyLinkMap);let f=l.length;for(;f--;)e.propertyLinkMap[l[f]].unsubscribe();Object.keys(e.propertyLinkSubscribers).forEach(t.gcPropertyLinks),r()},t.getState=()=>null;function c(){if(e.links)for(let l=0;l{for(;i.length;)i.pop().unsubscribe();n()}}function o7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};e.this=t;function i(s){const c=Object.keys(s);let l=c.length;for(;l--;){const f=c[l];e[f].set(s[f])}}const o=Object.keys(n);let a=o.length;for(;a--;){const s=o[a];e[s]=n[s];const c=r[s];t[`set${Yn(s)}`]=l=>{if(l!==e[s]){e[s]=l;const f=c[l];i(f),t.modified()}}}o.length&&gi(t,e,o)}const ET=10,DT=40,bT=800;function a7(t){let e=0,r=0,n=0,i=0;return"detail"in t&&(r=t.detail),"wheelDelta"in t&&(r=-t.wheelDelta/120),"wheelDeltaY"in t&&(r=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=r,r=0),n=e*ET,i=r*ET,"deltaY"in t&&(i=t.deltaY),"deltaX"in t&&(n=t.deltaX),(n||i)&&t.deltaMode&&(t.deltaMode===1?(n*=DT,i*=DT):(n*=bT,i*=bT)),n&&!e&&(e=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:e,spinY:r||e,pixelX:n,pixelY:i||n}}var W={algo:qx,capitalize:Km,chain:gh,debounce:t7,enumToString:QG,event:e7,EVENT_ABORT:Xx,formatBytesToProperUnit:qD,formatNumbersWithThousandSeparator:XD,get:gi,getArray:v0,getCurrentGlobalMTime:XG,getStateArrayMapFunc:JD,isVtkObject:Yx,keystore:Jx,measurePromiseExecution:ZD,moveToProtected:hh,newInstance:Bt,newTypedArray:m0,newTypedArrayFrom:Hm,normalizeWheel:a7,obj:un,proxy:r7,proxyPropertyMapping:i7,proxyPropertyState:o7,safeArrays:YD,set:dh,setArray:Hx,setGet:Jn,setGetArray:Kx,setImmediate:jx,setLoggerFunction:zD,throttle:n7,traverseInstanceTree:S1,TYPED_ARRAYS:Jr,uncapitalize:KD,VOID:GD,vtkDebugMacro:C1,vtkErrorMacro:Dt,vtkInfoMacro:jD,vtkLogMacro:$D,vtkOnceErrorMacro:HD,vtkWarningMacro:jm,objectSetterMap:QD},Br=Object.freeze({__proto__:null,VOID:GD,setLoggerFunction:zD,vtkLogMacro:$D,vtkInfoMacro:jD,vtkDebugMacro:C1,vtkErrorMacro:Dt,vtkWarningMacro:jm,vtkOnceErrorMacro:HD,TYPED_ARRAYS:Jr,newTypedArray:m0,newTypedArrayFrom:Hm,capitalize:Km,_capitalize:Yn,uncapitalize:KD,formatBytesToProperUnit:qD,formatNumbersWithThousandSeparator:XD,setImmediateVTK:jx,measurePromiseExecution:ZD,obj:un,get:gi,set:dh,setGet:Jn,getArray:v0,setArray:Hx,setGetArray:Kx,moveToProtected:hh,algo:qx,EVENT_ABORT:Xx,event:e7,newInstance:Bt,chain:gh,isVtkObject:Yx,traverseInstanceTree:S1,debounce:t7,throttle:n7,keystore:Jx,proxy:r7,proxyPropertyMapping:i7,proxyPropertyState:o7,normalizeWheel:a7,default:W});const s7={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},vt={VOID:"",CHAR:"Int8Array",SIGNED_CHAR:"Int8Array",UNSIGNED_CHAR:"Uint8Array",UNSIGNED_CHAR_CLAMPED:"Uint8ClampedArray",SHORT:"Int16Array",UNSIGNED_SHORT:"Uint16Array",INT:"Int32Array",UNSIGNED_INT:"Uint32Array",FLOAT:"Float32Array",DOUBLE:"Float64Array"},nW=vt.FLOAT;var c7={DefaultDataType:nW,DataTypeByteSize:s7,VtkDataTypes:vt};const rW="WebGL",T1=Object.create(null);function l7(t,e){T1[t]=e}function iW(){return Object.keys(T1)}function u7(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return T1[t]&&T1[t](e)}function oW(t,e){e.classHierarchy.push("vtkRenderWindow"),t.addRenderer=r=>{t.hasRenderer(r)||(r.setRenderWindow(t),e.renderers.push(r),t.modified())},t.removeRenderer=r=>{e.renderers=e.renderers.filter(n=>n!==r),t.modified()},t.hasRenderer=r=>e.renderers.indexOf(r)!==-1,t.newAPISpecificView=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return u7(r||e.defaultViewAPI,n)},t.addView=r=>{t.hasView(r)||(r.setRenderable(t),e._views.push(r),t.modified())},t.removeView=r=>{e._views=e._views.filter(n=>n!==r),t.modified()},t.hasView=r=>e._views.indexOf(r)!==-1,t.preRender=()=>{e.renderers.forEach(r=>{r.isActiveCameraCreated()||r.resetCamera()})},t.render=()=>{t.preRender(),e.interactor?e.interactor.render():e._views.forEach(r=>r.traverseAllPasses())},t.getStatistics=()=>{const r={propCount:0,invisiblePropCount:0,gpuMemoryMB:0};return e._views.forEach(n=>{n.getGraphicsMemoryInfo&&(r.gpuMemoryMB+=n.getGraphicsMemoryInfo()/1e6)}),e.renderers.forEach(n=>{const i=n.getViewProps(),o=e._views[0].getViewNodeFor(n);i.forEach(a=>{if(a.getVisibility()){r.propCount+=1;const s=a.getMapper&&a.getMapper();if(s&&s.getPrimitiveCount){const c=o.getViewNodeFor(s);if(c){c.getAllocatedGPUMemoryInBytes&&(r.gpuMemoryMB+=c.getAllocatedGPUMemoryInBytes()/1e6);const l=s.getPrimitiveCount();Object.keys(l).forEach(f=>{r[f]||(r[f]=0),r[f]+=l[f]})}}}else r.invisiblePropCount+=1})}),r.str=Object.keys(r).map(n=>`${n}: ${r[n]}`).join(` +`),r},t.captureImages=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"image/png",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return W.setImmediate(t.render),e._views.map(i=>i.captureNextImage?i.captureNextImage(r,n):void 0).filter(i=>!!i)},t.addRenderWindow=r=>e.childRenderWindows.includes(r)?!1:(e.childRenderWindows.push(r),t.modified(),!0),t.removeRenderWindow=r=>{const n=e.childRenderWindows.findIndex(i=>i===r);return n<0?!1:(e.childRenderWindows.splice(n,1),t.modified(),!0)}}const aW={defaultViewAPI:rW,renderers:[],views:[],interactor:null,neverRendered:!0,numberOfLayers:1,childRenderWindows:[]};function f7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aW,r),W.obj(t,e),W.setGet(t,e,["interactor","numberOfLayers","_views","defaultViewAPI"]),W.get(t,e,["neverRendered"]),W.getArray(t,e,["renderers","childRenderWindows"]),W.moveToProtected(t,e,["views"]),W.event(t,e,"completion"),oW(t,e)}const sW=W.newInstance(f7,"vtkRenderWindow");var cW={newInstance:sW,extend:f7,registerViewConstructor:l7,listViewAPIs:iW,newAPISpecificView:u7};const Id={CLAMP_TO_EDGE:0,REPEAT:1,MIRRORED_REPEAT:2},Je={NEAREST:0,LINEAR:1,NEAREST_MIPMAP_NEAREST:2,NEAREST_MIPMAP_LINEAR:3,LINEAR_MIPMAP_NEAREST:4,LINEAR_MIPMAP_LINEAR:5};var d7={Wrap:Id,Filter:Je};const h7=new Float32Array(1),lW=new Int32Array(h7.buffer);function uW(t){h7[0]=t;const e=lW[0];let r=e>>16&32768,n=e>>12&2047;const i=e>>23&255;return i<103?r:i>142?(r|=31744,r|=(i===255?0:1)&&e&8388607,r):i<113?(n|=2048,r|=(n>>114-i)+(n>>113-i&1),r):(r|=i-112<<10|n>>1,r+=n&1,r)}function fW(t){const e=(t&32768)>>15,r=(t&31744)>>10,n=t&1023;return r===0?(e?-1:1)*2**-14*(n/2**10):r===31?n?NaN:(e?-1:1)*(1/0):(e?-1:1)*2**(r-15)*(1+n/2**10)}var Mc={fromHalf:fW,toHalf:uW},Zx={exports:{}};Zx.exports;(function(t){(function(e,r,n){function i(c){var l=this,f=s();l.next=function(){var u=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=u-(l.c=u|0)},l.c=1,l.s0=f(" "),l.s1=f(" "),l.s2=f(" "),l.s0-=f(c),l.s0<0&&(l.s0+=1),l.s1-=f(c),l.s1<0&&(l.s1+=1),l.s2-=f(c),l.s2<0&&(l.s2+=1),f=null}function o(c,l){return l.c=c.c,l.s0=c.s0,l.s1=c.s1,l.s2=c.s2,l}function a(c,l){var f=new i(c),u=l&&l.state,d=f.next;return d.int32=function(){return f.next()*4294967296|0},d.double=function(){return d()+(d()*2097152|0)*11102230246251565e-32},d.quick=d,u&&(typeof u=="object"&&o(u,f),d.state=function(){return o(f,{})}),d}function s(){var c=4022871197,l=function(f){f=String(f);for(var u=0;u>>0,d-=c,d*=c,c=d>>>0,d-=c,c+=d*4294967296}return(c>>>0)*23283064365386963e-26};return l}r&&r.exports?r.exports=a:this.alea=a})(Dr,t)})(Zx);var dW=Zx.exports,Qx={exports:{}};Qx.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.x=0,c.y=0,c.z=0,c.w=0,c.next=function(){var u=c.x^c.x<<11;return c.x=c.y,c.y=c.z,c.z=c.w,c.w^=c.w>>>19^u^u>>>8},s===(s|0)?c.x=s:l+=s;for(var f=0;f>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xor128=a})(Dr,t)})(Qx);var hW=Qx.exports,ew={exports:{}};ew.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.next=function(){var u=c.x^c.x>>>2;return c.x=c.y,c.y=c.z,c.z=c.w,c.w=c.v,(c.d=c.d+362437|0)+(c.v=c.v^c.v<<4^(u^u<<1))|0},c.x=0,c.y=0,c.z=0,c.w=0,c.v=0,s===(s|0)?c.x=s:l+=s;for(var f=0;f>>4),c.next()}function o(s,c){return c.x=s.x,c.y=s.y,c.z=s.z,c.w=s.w,c.v=s.v,c.d=s.d,c}function a(s,c){var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xorwow=a})(Dr,t)})(ew);var gW=ew.exports,tw={exports:{}};tw.exports;(function(t){(function(e,r,n){function i(s){var c=this;c.next=function(){var f=c.x,u=c.i,d,h;return d=f[u],d^=d>>>7,h=d^d<<24,d=f[u+1&7],h^=d^d>>>10,d=f[u+3&7],h^=d^d>>>3,d=f[u+4&7],h^=d^d<<7,d=f[u+7&7],d=d^d<<13,h^=d^d<<9,f[u]=h,c.i=u+1&7,h};function l(f,u){var d,h=[];if(u===(u|0))h[0]=u;else for(u=""+u,d=0;d0;--d)f.next()}l(c,s)}function o(s,c){return c.x=s.x.slice(),c.i=s.i,c}function a(s,c){s==null&&(s=+new Date);var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(f.x&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xorshift7=a})(Dr,t)})(tw);var pW=tw.exports,nw={exports:{}};nw.exports;(function(t){(function(e,r,n){function i(s){var c=this;c.next=function(){var f=c.w,u=c.X,d=c.i,h,g;return c.w=f=f+1640531527|0,g=u[d+34&127],h=u[d=d+1&127],g^=g<<13,h^=h<<17,g^=g>>>15,h^=h>>>12,g=u[d]=g^h,c.i=d,g+(f^f>>>16)|0};function l(f,u){var d,h,g,p,v,x=[],m=128;for(u===(u|0)?(h=u,u=null):(u=u+"\0",h=0,m=Math.max(m,u.length)),g=0,p=-32;p>>15,h^=h<<4,h^=h>>>13,p>=0&&(v=v+1640531527|0,d=x[p&127]^=h+v,g=d==0?g+1:0);for(g>=128&&(x[(u&&u.length||0)&127]=-1),g=127,p=4*128;p>0;--p)h=x[g+34&127],d=x[g=g+1&127],h^=h<<13,d^=d<<17,h^=h>>>15,d^=d>>>12,x[g]=h^d;f.w=v,f.X=x,f.i=g}l(c,s)}function o(s,c){return c.i=s.i,c.w=s.w,c.X=s.X.slice(),c}function a(s,c){s==null&&(s=+new Date);var l=new i(s),f=c&&c.state,u=function(){return(l.next()>>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(f.X&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.xor4096=a})(Dr,t)})(nw);var mW=nw.exports,rw={exports:{}};rw.exports;(function(t){(function(e,r,n){function i(s){var c=this,l="";c.next=function(){var u=c.b,d=c.c,h=c.d,g=c.a;return u=u<<25^u>>>7^d,d=d-h|0,h=h<<24^h>>>8^g,g=g-u|0,c.b=u=u<<20^u>>>12^d,c.c=d=d-h|0,c.d=h<<16^d>>>16^g,c.a=g-u|0},c.a=0,c.b=0,c.c=-1640531527,c.d=1367130551,s===Math.floor(s)?(c.a=s/4294967296|0,c.b=s|0):l+=s;for(var f=0;f>>0)/4294967296};return u.double=function(){do var d=l.next()>>>11,h=(l.next()>>>0)/4294967296,g=(d+h)/(1<<21);while(g===0);return g},u.int32=l.next,u.quick=u,f&&(typeof f=="object"&&o(f,l),u.state=function(){return o(l,{})}),u}r&&r.exports?r.exports=a:this.tychei=a})(Dr,t)})(rw);var vW=rw.exports,g7={exports:{}};const yW={},xW=Object.freeze(Object.defineProperty({__proto__:null,default:yW},Symbol.toStringTag,{value:"Module"})),p7=nF(xW);(function(t){(function(e,r,n){var i=256,o=6,a=52,s="random",c=n.pow(i,o),l=n.pow(2,a),f=l*2,u=i-1,d;function h(w,C,S){var T=[];C=C==!0?{entropy:!0}:C||{};var _=x(v(C.entropy?[w,y(r)]:w??m(),3),T),E=new g(T),D=function(){for(var b=E.g(o),I=c,R=0;b=f;)b/=2,I/=2,R>>>=1;return(b+R)/I};return D.int32=function(){return E.g(4)|0},D.quick=function(){return E.g(4)/4294967296},D.double=D,x(y(E.S),r),(C.pass||S||function(b,I,R,M){return M&&(M.S&&p(M,E),b.state=function(){return p(E,{})}),R?(n[s]=b,I):b})(D,_,"global"in C?C.global:this==n,C.state)}function g(w){var C,S=w.length,T=this,_=0,E=T.i=T.j=0,D=T.S=[];for(S||(w=[S++]);_m7(`vtkMath::${t} - NOT IMPLEMENTED`)}function zf(t,e,r,n){let i;for(let o=0;o0&&arguments[0]!==void 0?arguments[0]:3;const e=Array(t);for(let r=0;rMath.PI;function Vn(t){return t/180*Math.PI}function _1(t){return t*180/Math.PI}const{round:Cf,floor:sw,ceil:RW,min:LW,max:NW}=Math;function PW(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=1/0;for(let i=e,o=t.length;i1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=-1/0;for(let i=e,o=t.length;i1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=1/0,i=-1/0;for(let o=e,a=t.length;o=0;--i)if(r[i]0&&arguments[0]!==void 0?arguments[0]:0;const r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:1)-t;return t+r*Math.random()}const jW=ph("gaussian");function E1(t,e,r){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r[2]=t[2]+e[2],r}function Fa(t,e,r){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r[2]=t[2]-e[2],r}function y7(t,e){return t[0]*=e,t[1]*=e,t[2]*=e,t}function x7(t,e){return t[0]*=e,t[1]*=e,t}function N5(t,e,r,n){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n[2]=t[2]+e[2]*r,n}function HW(t,e,r,n){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n}function wt(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function KW(t,e,r){r[0]=t[0]*e[0],r[1]=t[0]*e[1],r[2]=t[0]*e[2],r[3]=t[1]*e[0],r[4]=t[1]*e[1],r[5]=t[1]*e[2],r[6]=t[2]*e[0],r[7]=t[2]*e[1],r[8]=t[2]*e[2]}function ia(t,e,r){const n=t[1]*e[2]-t[2]*e[1],i=t[2]*e[0]-t[0]*e[2],o=t[0]*e[1]-t[1]*e[0];return r[0]=n,r[1]=i,r[2]=o,r}function Is(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;switch(e){case 1:return Math.abs(t);case 2:return Math.sqrt(t[0]*t[0]+t[1]*t[1]);case 3:return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);default:{let r=0;for(let n=0;no&&i>a?(c=0,l=1,f=2):o>a?(c=1,l=2,f=0):(c=2,l=0,f=1);const u=t[c]/s,d=t[l]/s,h=t[f]/s,g=Math.sqrt(u*u+h*h);if(n!==0){const p=Math.sin(n),v=Math.cos(n);e&&(e[c]=(h*v-u*d*p)/g,e[l]=p*g,e[f]=(-(u*v)-d*h*p)/g),r&&(r[c]=(-(h*p)-u*d*v)/g,r[l]=v*g,r[f]=(u*p-d*h*v)/g)}else e&&(e[c]=h/g,e[l]=0,e[f]=-u/g),r&&(r[c]=-u*d/g,r[l]=g,r[f]=-d*h/g)}function XW(t,e,r){const n=wt(e,e);if(n===0)return r[0]=0,r[1]=0,r[2]=0,!1;const i=wt(t,e)/n;for(let o=0;o<3;o++)r[o]=e[o];return y7(r,i),!0}function P5(t,e){return t[0]*e[0]+t[1]*e[1]}function YW(t,e,r){const n=P5(e,e);if(n===0)return r[0]=0,r[1]=0,!1;const i=P5(t,e)/n;for(let o=0;o<2;o++)r[o]=e[o];return x7(r,i),!0}function jo(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])+(t[2]-e[2])*(t[2]-e[2])}function JW(t,e){const r=[0,0,0];return ia(t,e,r),Math.atan2(Is(r),wt(t,e))}function ZW(t,e,r){const n=Math.abs(t-r);return 1/Math.sqrt(2*Math.PI*e)*Math.exp(-(n**2)/(2*e))}function QW(t,e,r){const n=Math.abs(t-r);return Math.exp(-(n**2)/(2*e))}function ez(t,e,r){r[0]=t[0]*e[0],r[1]=t[0]*e[1],r[2]=t[1]*e[0],r[3]=t[1]*e[1]}function w7(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function C7(t){const e=w7(t);return e!==0&&(t[0]/=e,t[1]/=e),e}function Fn(){for(var t=arguments.length,e=new Array(t),r=0;ri&&(i=n),(n=Math.abs(t[a*3+2]))>i&&(i=n),o[a]=1/i;i=o[0]*Math.abs(t[0]),r=0,(n=o[1]*Math.abs(t[3]))>=i&&(i=n,r=1),(n=o[2]*Math.abs(t[6]))>=i&&(r=2),r!==0&&(zf(t,3,r,0),o[r]=o[0]),e[0]=r,t[3]/=t[0],t[6]/=t[0],t[4]-=t[3]*t[1],t[7]-=t[6]*t[1],i=o[1]*Math.abs(t[4]),r=1,(n=o[2]*Math.abs(t[7]))>=i&&(r=2,zf(t,3,1,2),o[2]=o[1]),e[1]=r,t[7]/=t[4],t[5]-=t[3]*t[2],t[8]-=t[6]*t[2]+t[7]*t[5],e[2]=2}function nz(t,e,r){let n=r[e[0]];r[e[0]]=r[0],r[0]=n,n=r[e[1]],r[e[1]]=r[1],r[1]=n-t[3]*r[0],n=r[e[2]],r[e[2]]=r[2],r[2]=n-t[6]*r[0]-t[7]*r[1],r[2]/=t[8],r[1]=(r[1]-t[5]*r[2])/t[4],r[0]=(r[0]-t[1]*r[1]-t[2]*r[2])/t[0]}function rz(t,e,r){const n=t[0],i=t[1],o=t[2],a=t[3],s=t[4],c=t[5],l=t[6],f=t[7],u=t[8],d=+Fn(s,f,c,u),h=-Fn(a,l,c,u),g=+Fn(a,l,s,f),p=-Fn(i,f,o,u),v=+Fn(n,l,o,u),x=-Fn(n,l,i,f),m=+Fn(i,s,o,c),y=-Fn(n,a,o,c),w=+Fn(n,a,i,s),C=n*d+i*h+o*g,S=d*e[0]+p*e[1]+m*e[2],T=h*e[0]+v*e[1]+y*e[2],_=g*e[0]+x*e[1]+w*e[2];r[0]=S/C,r[1]=T/C,r[2]=_/C}function Tp(t,e,r){const n=t[0]*e[0]+t[1]*e[1]+t[2]*e[2],i=t[3]*e[0]+t[4]*e[1]+t[5]*e[2],o=t[6]*e[0]+t[7]*e[1]+t[8]*e[2];r[0]=n,r[1]=i,r[2]=o}function A5(t,e,r){const n=[...t],i=[...e];for(let o=0;o<3;o++)r[o]=n[0]*i[o]+n[1]*i[o+3]+n[2]*i[o+6],r[o+3]=n[3]*i[o]+n[4]*i[o+3]+n[5]*i[o+6],r[o+6]=n[6]*i[o]+n[7]*i[o+3]+n[8]*i[o+6]}function iz(t,e,r,n,i,o,a){n!==i&&m7("Number of columns of A must match number of rows of B.");const s=[...t],c=[...e];for(let l=0;l2&&arguments[2]!==void 0?arguments[2]:ow;if(t.length!==e.length)return!1;function n(i,o){return Math.abs(i-e[o])<=r}return t.every(n)}const mh=S7;function T7(t){for(let e=0;e<3;e++)t[e*3]=t[e*3+1]=t[e*3+2]=0,t[e*3+e]=1}function _7(t,e){for(let r=0;r1&&arguments[1]!==void 0?arguments[1]:ow;return mh(t,iw,e)}function sz(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ow;return mh(t,OW,e)}function E7(t,e){const r=t[0]*t[0],n=t[0]*t[1],i=t[0]*t[2],o=t[0]*t[3],a=t[1]*t[1],s=t[2]*t[2],c=t[3]*t[3],l=t[1]*t[2],f=t[1]*t[3],u=t[2]*t[3],d=a+s+c;let h=1/(r+d);const g=(r-d)*h;h*=2,e[0]=a*h+g,e[3]=(l+o)*h,e[6]=(f-i)*h,e[1]=(l-o)*h,e[4]=s*h+g,e[7]=(u+n)*h,e[2]=(f+i)*h,e[5]=(u-n)*h,e[8]=c*h+g}function _p(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!`${t}`.includes("e"))return+`${Math.round(`${t}e+${e}`)}e-${e}`;const r=`${t}`.split("e");let n="";return+r[1]+e>0&&(n="+"),+`${Math.round(`${+r[0]}e${n}${+r[1]+e}`)}e-${e}`}function k5(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return e[0]=_p(t[0],r),e[1]=_p(t[1],r),e[2]=_p(t[2],r),e}function vh(t,e,r,n){let i,o,a,s,c,l,f,u,d,h,g,p,v,x,m,y;const w=pn(e),C=pn(e),S=(_,E,D)=>{x=_[E],v=_[D],_[E]=x-p*(v+x*h),_[D]=v+p*(x-v*h)};for(_7(e,n),c=0;c3&&Math.abs(r[c])+x===Math.abs(r[c])&&Math.abs(r[s])+x===Math.abs(r[s]))t[c*e+s]=0;else if(Math.abs(t[c*e+s])>f){for(v=r[s]-r[c],Math.abs(v)+x===Math.abs(v)?d=t[c*e+s]/v:(u=.5*v/t[c*e+s],d=1/(Math.abs(u)+Math.sqrt(1+u*u)),u<0&&(d=-d)),m=1/Math.sqrt(1+d*d),p=d*m,h=p/(1+m),v=d*t[c*e+s],C[c]-=v,C[s]+=v,r[c]-=v,r[s]+=v,t[c*e+s]=0,o=0;o<=c-1;o++)S(t,o*e+c,o*e+s);for(o=c+1;o<=s-1;o++)S(t,c*e+o,o*e+s);for(o=s+1;o=IT)return sl("vtkMath::Jacobi: Error extracting eigenfunctions"),0;for(o=0;o=y||Math.abs(r[i]-y)>1)+(e&1);for(l=0,i=0;i=0&&l++;if(lh?g:h,i=p>i?p:i,r[d]=1,i!==0&&(r[d]/=i)}const o=Math.abs(e[0])*r[0],a=Math.abs(e[3])*r[1],s=Math.abs(e[6])*r[2];n[0]=0,i=o,a>=i&&(i=a,n[0]=1),s>=i&&(n[0]=2),n[0]!==0&&(wf(e,3,n[0],0),r[n[0]]=r[0]);const c=Math.abs(e[4])*r[1],l=Math.abs(e[7])*r[2];n[1]=1,i=c,l>=i&&(n[1]=2,wf(e,3,1,2)),n[2]=2;let f=0;if(qm(e)<0){f=1;for(let d=0;d<9;d++)e[d]=-e[d]}const u=pn(4);if(D7(e,u),E7(u,e),f)for(let d=0;d<9;d++)e[d]=-e[d];n[1]!==1&&wf(e,3,n[1],1),n[0]!==0&&wf(e,3,n[0],0)}function I7(t,e,r){let n,i,o,a,s,c;const l=[...t];if(vh(l,3,e,r),e[0]===e[1]&&e[0]===e[2]){T7(r);return}for(_u(r,r),n=0;n<3;n++)if(e[(n+1)%3]===e[(n+2)%3]){for(c=Math.abs(r[n*3]),a=0,i=1;i<3;i++)c<(s=Math.abs(r[n*3+i]))&&(c=s,a=i);a!==n&&(s=e[a],e[a]=e[n],e[n]=s,zf(r,3,n,a)),r[a*3+a]<0&&(r[a*3]=-r[a*3],r[a*3+1]=-r[a*3+1],r[a*3+2]=-r[a*3+2]),i=(a+1)%3,o=(a+2)%3,r[i*3]=0,r[i*3+1]=0,r[i*3+2]=0,r[i*3+i]=1;const f=ia([r[a*3],r[a*3+1],r[a*3+2]],[r[i*3],r[i*3+1],r[i*3+2]],[]);cl(f);const u=ia(f,[r[a*3],r[a*3+1],r[a*3+2]],[]);for(let d=0;d<3;d++)r[o*3+d]=f[d],r[i*3+d]=u[d];_u(r,r);return}for(c=Math.abs(r[0]),a=0,n=1;n<3;n++)c<(s=Math.abs(r[n*3]))&&(c=s,a=n);if(a!==0){const f=e[a];e[a]=e[0],e[0]=f,zf(r,3,a,0)}if(Math.abs(r[4])a&&(a=f);if(a===0)return sl("Unable to factor linear system"),0;u[n]=1/a}for(i=0;i=a&&(a=l,s=n)}if(i!==s){for(o=0;o=0)for(o=a;o<=i-1;o++)c-=t[i*n+o]*r[o];else c!==0&&(a=i);r[i]=c}for(i=n-1;i>=0;i--){for(c=r[i],o=i+1;o3&&arguments[3]!==void 0?arguments[3]:null,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;const o=n||pn(r),a=i||pn(r);if(cw(t,o,r)===0)return null;for(let s=0;sn&&(n=Math.abs(t[i*e+o]));for(let i=0;i6&&arguments[6]!==void 0?arguments[6]:!0;if(taw&&(c=0,s[d]=0);if(c&&i===1)return sl("Detected homogeneous system (Y=0), calling SolveHomogeneousLeastSquares()"),V5(t,e,r,o);if(c)g=1;else for(d=0;d1&&arguments[1]!==void 0?arguments[1]:[0,.5,1];switch(t.length){case 3:return e[0]=parseInt(t[0],16)*17/255,e[1]=parseInt(t[1],16)*17/255,e[2]=parseInt(t[2],16)*17/255,e;case 4:return e[0]=parseInt(t[1],16)*17/255,e[1]=parseInt(t[2],16)*17/255,e[2]=parseInt(t[3],16)*17/255,e;case 6:return e[0]=parseInt(t.substr(0,2),16)/255,e[1]=parseInt(t.substr(2,2),16)/255,e[2]=parseInt(t.substr(4,2),16)/255,e;case 7:return e[0]=parseInt(t.substr(1,2),16)/255,e[1]=parseInt(t.substr(3,2),16)/255,e[2]=parseInt(t.substr(5,2),16)/255,e;case 9:return e[0]=parseInt(t.substr(1,2),16)/255,e[1]=parseInt(t.substr(3,2),16)/255,e[2]=parseInt(t.substr(5,2),16)/255,e[3]=parseInt(t.substr(7,2),16)/255,e;default:return e}}function Tf(t,e){let r,n;const[i,o,a]=t,s=1/3,c=1/6,l=2/3;let f=i,u=i;o>f?f=o:of?f=a:a0?n=(f-u)/f:n=0,n>0?(i===f?r=c*(o-a)/(f-u):o===f?r=s+c*(a-i)/(f-u):r=l+c*(i-o)/(f-u),r<0&&(r+=1)):r=0,e[0]=r,e[1]=n,e[2]=d}function Rc(t,e){const[r,n,i]=t,o=1/3,a=1/6,s=2/3,c=5/6;let l,f,u;r>a&&r<=o?(f=1,l=(o-r)/a,u=0):r>o&&r<=.5?(f=1,u=(r-o)/a,l=0):r>.5&&r<=s?(u=1,f=(s-r)/a,l=0):r>s&&r<=c?(u=1,l=(r-s)/a,f=0):r>c&&r<=1?(l=1,u=(1-r)/a,f=0):(l=1,f=r/a,u=0),l=n*l+(1-n),f=n*f+(1-n),u=n*u+(1-n),l*=i,f*=i,u*=i,e[0]=l,e[1]=f,e[2]=u}function R7(t,e){const[r,n,i]=t;let o=(r+16)/116,a=n/500+o,s=o-i/200;o**3>.008856?o**=3:o=(o-16/116)/7.787,a**3>.008856?a**=3:a=(a-16/116)/7.787,s**3>.008856?s**=3:s=(s-16/116)/7.787;const c=.9505,l=1,f=1.089;e[0]=c*a,e[1]=l*o,e[2]=f*s}function L7(t,e){const[r,n,i]=t,o=.9505,a=1,s=1.089;let c=r/o,l=n/a,f=i/s;c>.008856?c**=1/3:c=7.787*c+16/116,l>.008856?l**=1/3:l=7.787*l+16/116,f>.008856?f**=1/3:f=7.787*f+16/116,e[0]=116*l-16,e[1]=500*(c-l),e[2]=200*(l-f)}function N7(t,e){const[r,n,i]=t;let o=r*3.2406+n*-1.5372+i*-.4986,a=r*-.9689+n*1.8758+i*.0415,s=r*.0557+n*-.204+i*1.057;o>.0031308?o=1.055*o**(1/2.4)-.055:o*=12.92,a>.0031308?a=1.055*a**(1/2.4)-.055:a*=12.92,s>.0031308?s=1.055*s**(1/2.4)-.055:s*=12.92;let c=o;c1&&(o/=c,a/=c,s/=c),o<0&&(o=0),a<0&&(a=0),s<0&&(s=0),e[0]=o,e[1]=a,e[2]=s}function P7(t,e){let[r,n,i]=t;r>.04045?r=((r+.055)/1.055)**2.4:r/=12.92,n>.04045?n=((n+.055)/1.055)**2.4:n/=12.92,i>.04045?i=((i+.055)/1.055)**2.4:i/=12.92,e[0]=r*.4124+n*.3576+i*.1805,e[1]=r*.2126+n*.7152+i*.0722,e[2]=r*.0193+n*.1192+i*.9505}function Uc(t,e){const r=[0,0,0];P7(t,r),L7(r,e)}function D1(t,e){const r=[0,0,0];R7(t,r),N7(r,e)}function y0(t){return t[0]=1,t[1]=-1,t[2]=1,t[3]=-1,t[4]=1,t[5]=-1,t}function Ep(t){return!(t[1]-t[0]<0)}function gz(t,e,r){return r[0]=Math.min(t[0],e[0]),r[1]=Math.max(t[0],e[0]),r[2]=Math.min(t[1],e[1]),r[3]=Math.max(t[1],e[1]),r[4]=Math.min(t[2],e[2]),r[5]=Math.max(t[2],e[2]),r}function Do(t,e,r){return tr?r:t}function F5(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[0,0,0];return n[0]=Do(t[0],e[0],r[0]),n[1]=Do(t[1],e[1],r[1]),n[2]=Do(t[2],e[2],r[2]),n}function pz(t,e){let r=0;return e[0]!==e[1]&&(te[1]?r=e[1]:r=t,r=(r-e[0])/(e[1]-e[0])),r}const mz=ph("GetScalarTypeFittingRange"),vz=ph("GetAdjustedScalarRange");function yz(t,e){if(!t||!e)return 0;for(let r=0;r<6;r+=2)if(t[r]e[r+1]||t[r+1]e[r+1])return 0;return 1}function xz(t,e,r){if(!t||!e)return 0;for(let n=0;n<6;n+=2)if(t[n]+r[n/2]e[n+1]||t[n+1]+r[n/2]e[n+1])return 0;return 1}function wz(t,e,r){if(!t||!e||!r)return 0;for(let n=0;n<3;n++)if(t[n]+r[n]e[2*n+1])return 0;return 1}function Cz(t,e,r,n){const i=pn(3),o=pn(3),a=pn(3),s=pn(3),c=pn(3),l=pn(3);for(let w=0;w<3;++w)i[w]=t[w]-e[w],o[w]=e[w]-r[w],a[w]=r[w]-t[w],s[w]=-i[w],c[w]=-o[w],l[w]=-a[w];const f=Is(s),u=Is(c),d=Is(a),h=pn(3);ia(i,o,h);const g=Is(h),p=f*u*d/(2*g),v=2*g*g,x=u*u*wt(i,l)/v,m=d*d*wt(s,o)/v,y=f*f*wt(a,c)/v;for(let w=0;w<3;++w)n[w]=x*t[w]+m*e[w]+y*r[w];return p}const Sz=1/0,Tz=-1/0,A7=t=>!Number.isFinite(t),{isFinite:_z,isNaN:U5}=Number,b1=U5;function qs(){return[].concat([Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE])}function Ez(t){let e=-1,r=-1;for(let n=0;ne&&(r=n,e=i)}return r}function k7(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;const r=new Array(e),n=new Array(e);for(let o=0;o0;o--){let a=-1/0,s=0,c=0;for(let l=0;l<=o;++l){const f=r[l];for(let u=0;u<=o;++u){const d=n[u],h=Math.abs(t[f+e*d]);h>a&&(a=h,s=l,c=u)}}[r[o],r[s]]=[r[s],r[o]],[n[o],n[c]]=[n[c],n[o]]}const i=new Array(e*e).fill(0);for(let o=0;o15?e.toString(16):`0${e.toString(16)}`}function Dz(t){return`${arguments.length>1&&arguments[1]!==void 0?arguments[1]:"#"}${t.map(V7).join("")}`}function ag(t){return Math.round(t*255)}function bz(t){return t.length===3?`rgb(${t.map(ag).join(", ")})`:`rgba(${ag(t[0]||0)}, ${ag(t[1]||0)}, ${ag(t[2]||0)}, ${t[3]||0})`}var nt={Pi:MW,radiansFromDegrees:Vn,degreesFromRadians:_1,round:Cf,floor:sw,ceil:RW,ceilLog2:VW,min:LW,max:NW,arrayMin:PW,arrayMax:AW,arrayRange:kW,isPowerOfTwo:Sf,nearestPowerOfTwo:Qi,factorial:FW,binomial:UW,beginCombination:BW,nextCombination:GW,randomSeed:WW,getSeed:zW,random:$W,gaussian:jW,add:E1,subtract:Fa,multiplyScalar:y7,multiplyScalar2D:x7,multiplyAccumulate:N5,multiplyAccumulate2D:HW,dot:wt,outer:KW,cross:ia,norm:Is,normalize:cl,perpendiculars:qW,projectVector:XW,projectVector2D:YW,distance2BetweenPoints:jo,angleBetweenVectors:JW,gaussianAmplitude:ZW,gaussianWeight:QW,dot2D:P5,outer2D:ez,norm2D:w7,normalize2D:C7,determinant2x2:Fn,LUFactor3x3:tz,LUSolve3x3:nz,linearSolve3x3:rz,multiply3x3_vect3:Tp,multiply3x3_mat3:A5,multiplyMatrix:iz,transpose3x3:_u,invert3x3:oz,identity3x3:T7,identity:_7,isIdentity:az,isIdentity3x3:sz,determinant3x3:qm,quaternionToMatrix3x3:E7,areEquals:S7,areMatricesEqual:mh,roundNumber:_p,roundVector:k5,matrix3x3ToQuaternion:D7,multiplyQuaternion:cz,orthogonalize3x3:b7,diagonalize3x3:I7,singularValueDecomposition3x3:lz,solveLinearSystem:O7,invertMatrix:M7,luFactorLinearSystem:cw,luSolveLinearSystem:lw,estimateMatrixCondition:uz,jacobi:fz,jacobiN:vh,solveHomogeneousLeastSquares:V5,solveLeastSquares:dz,hex2float:hz,rgb2hsv:Tf,hsv2rgb:Rc,lab2xyz:R7,xyz2lab:L7,xyz2rgb:N7,rgb2xyz:P7,rgb2lab:Uc,lab2rgb:D1,uninitializeBounds:y0,areBoundsInitialized:Ep,computeBoundsFromPoints:gz,clampValue:Do,clampVector:F5,clampAndNormalizeValue:pz,getScalarTypeFittingRange:mz,getAdjustedScalarRange:vz,extentIsWithinOtherExtent:yz,boundsIsWithinOtherBounds:xz,pointIsWithinBounds:wz,solve3PointCircle:Cz,inf:Sz,negInf:Tz,isInf:A7,isNan:U5,isNaN:U5,isFinite:_z,createUninitializedBounds:qs,getMajorAxisIndex:Ez,getSparseOrthogonalMatrix:k7,floatToHex2:V7,floatRGB2HexCode:Dz,float2CssRGBA:bz};const{vtkErrorMacro:Iz}=Br,{DefaultDataType:Oz}=c7,Mz=1e-6;function B5(t,e,r){const n=t.length;let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,a,s;for(s=e;so&&(o=a);return{min:i,max:o}}function Rz(){let t=Number.MAX_VALUE,e=-Number.MAX_VALUE,r=0,n=0;return{add(i){t>i&&(t=i),e1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;if(e<0&&r>1){const i=t.length/r,o=new Float64Array(i);for(let a=0,s=0;a1&&arguments[1]!==void 0?arguments[1]:0;const r=t||[];for(;r.length<=e;)r.push(null);return r}function uw(t){return Object.prototype.toString.call(t).slice(8,-1)}function Lz(t){const e=t.getNumberOfComponents();let r=0;const n=new Array(e);for(let i=0;ir&&(r=o)}return r}const Nz={computeRange:F7,createRangeHelper:Rz,fastComputeRange:B5,getDataType:uw,getMaxNorm:Lz};function Pz(t,e){e.classHierarchy.push("vtkDataArray");function r(n){if(n<0)return!1;const i=t.getNumberOfComponents(),o=e.values.length/(i>0?i:1);if(n===o)return!0;if(n>o){const a=e.values;return e.values=m0(e.dataType,(n+o)*i),e.values.set(a),!0}return e.size>n*i&&(e.size=n*i,t.dataChange()),!0}t.dataChange=()=>{e.ranges=null,t.modified()},t.resize=n=>{r(n);const i=n*t.getNumberOfComponents();return e.size!==i?(e.size=i,t.dataChange(),!0):!1},t.initialize=()=>{t.resize(0)},t.getElementComponentSize=()=>e.values.BYTES_PER_ELEMENT,t.getComponent=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.values[n*e.numberOfComponents+i]},t.setComponent=(n,i,o)=>{o!==e.values[n*e.numberOfComponents+i]&&(e.values[n*e.numberOfComponents+i]=o,t.dataChange())},t.getValue=n=>{const i=n/e.numberOfComponents,o=n%e.numberOfComponents;return t.getComponent(i,o)},t.setValue=(n,i)=>{const o=n/e.numberOfComponents,a=n%e.numberOfComponents;t.setComponent(o,a,i)},t.getData=()=>e.size===e.values.length?e.values:e.values.subarray(0,e.size),t.getRange=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,i=n;i<0&&(i=e.numberOfComponents===1?0:e.numberOfComponents);let o=null;return e.ranges||(e.ranges=OT(e.ranges,e.numberOfComponents)),o=e.ranges[i],o?(e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple):(o=F7(t.getData(),n,e.numberOfComponents),e.ranges[i]=o,e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple)},t.setRange=(n,i)=>{e.ranges||(e.ranges=OT(e.ranges,e.numberOfComponents));const o={min:n.min,max:n.max};return e.ranges[i]=o,e.rangeTuple[0]=o.min,e.rangeTuple[1]=o.max,e.rangeTuple},t.setTuple=(n,i)=>{const o=n*e.numberOfComponents;for(let a=0;a{let o=n*e.numberOfComponents;const a=Math.min(i.length,e.size-o);for(let s=0;s(e.size<=n*e.numberOfComponents&&(e.size=(n+1)*e.numberOfComponents,r(n+1)),t.setTuple(n,i),n),t.insertTuples=(n,i)=>{const o=n+i.length/e.numberOfComponents;return e.size{const i=e.size/e.numberOfComponents;return t.insertTuple(i,n)},t.insertNextTuples=n=>{const i=e.size/e.numberOfComponents;return t.insertTuples(i,n)},t.findTuple=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mz;for(let o=0;oi){a=!1;break}if(a)return o/e.numberOfComponents}return-1},t.getTuple=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const o=e.numberOfComponents||1,a=n*o;switch(o){case 4:i[3]=e.values[a+3];case 3:i[2]=e.values[a+2];case 2:i[1]=e.values[a+1];case 1:i[0]=e.values[a];break;default:for(let s=o-1;s>=0;--s)i[s]=e.values[a+s]}return i},t.getTuples=(n,i)=>{const o=(n??0)*e.numberOfComponents,a=(i??t.getNumberOfTuples())*e.numberOfComponents,s=t.getData().subarray(o,a);return s.length>0?s:null},t.getTupleLocation=function(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:1)*e.numberOfComponents},t.getNumberOfComponents=()=>e.numberOfComponents,t.getNumberOfValues=()=>e.size,t.getNumberOfTuples=()=>e.size/e.numberOfComponents,t.getDataType=()=>e.dataType,t.newClone=()=>B7({empty:!0,name:e.name,dataType:e.dataType,numberOfComponents:e.numberOfComponents}),t.getName=()=>(e.name||(t.modified(),e.name=`vtkDataArray${t.getMTime()}`),e.name),t.setData=(n,i)=>{e.values=n,e.size=n.length,e.dataType=uw(n),i&&(e.numberOfComponents=i),e.size%e.numberOfComponents!==0&&(e.numberOfComponents=1),t.dataChange()},t.getState=()=>{if(e.deleted)return null;const n={...e,vtkClass:t.getClassName()};n.values=Array.from(n.values),delete n.buffer,Object.keys(n).forEach(o=>{n[o]||delete n[o]});const i={};return Object.keys(n).sort().forEach(o=>{i[o]=n[o]}),i.mtime&&delete i.mtime,i},t.deepCopy=n=>{const i=t.getDataType(),o=e.values;t.shallowCopy(n),(o==null?void 0:o.length)>=n.getNumberOfValues()&&i===n.getDataType()?(o.set(n.getData()),e.values=o,t.dataChange()):t.setData(n.getData().slice())},t.interpolateTuple=(n,i,o,a,s,c)=>{const l=e.numberOfComponents||1;(l!==i.getNumberOfComponents()||l!==a.getNumberOfComponents())&&Iz("numberOfComponents must match");const f=i.getTuple(o),u=a.getTuple(s),d=[];switch(d.length=l,l){case 4:d[3]=f[3]+(u[3]-f[3])*c;case 3:d[2]=f[2]+(u[2]-f[2])*c;case 2:d[1]=f[1]+(u[1]-f[1])*c;case 1:d[0]=f[0]+(u[0]-f[0])*c;break;default:for(let h=0;h2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,Az,r),!e.empty&&!e.values&&!e.size)throw new TypeError("Cannot create vtkDataArray object without: size > 0, values");if(e.values?Array.isArray(e.values)&&(e.values=Hm(e.dataType,e.values)):e.values=m0(e.dataType,e.size),e.values&&(e.size=e.size??e.values.length,e.dataType=uw(e.values)),un(t,e),dh(t,e,["name","numberOfComponents"]),e.size%e.numberOfComponents!==0)throw new RangeError("model.size is not a multiple of model.numberOfComponents");Pz(t,e)}const B7=Bt(U7,"vtkDataArray");var tt={newInstance:B7,extend:U7,...Nz,...c7};const{vtkErrorMacro:kz}=W,Vz=["Build","Render"];function Fz(t,e){e.classHierarchy.push("vtkViewNode"),t.build=n=>{},t.render=n=>{},t.traverse=n=>{const i=n.getTraverseOperation(),o=t[i];if(o){o(n);return}t.apply(n,!0);for(let a=0;a{const o=t[n.getOperation()];o&&o(i,n)},t.getViewNodeFor=n=>{if(e.renderable===n)return t;for(let i=0;ie._parent?e._parent.isA(n)?e._parent:e._parent.getFirstAncestorOfType(n):null,t.getLastAncestorOfType=n=>{if(!e._parent)return null;const i=e._parent.getLastAncestorOfType(n);return i||(e._parent.isA(n)?e._parent:null)},t.addMissingNode=n=>{if(!n)return;const i=e._renderableChildMap.get(n);if(i!==void 0)return i.setVisited(!0),i;const o=t.createViewNode(n);if(o)return o.setParent(t),o.setVisited(!0),e._renderableChildMap.set(n,o),e.children.push(o),o},t.addMissingNodes=n=>{if(!(!n||!n.length))for(let i=0;i{if(!(!n||!n.length))for(let i=0;i{const i=e.children.findIndex(a=>a===n);if(i<0)return!1;const o=n.getRenderable();return o&&e._renderableChildMap.delete(o),n.delete(),e.children.splice(i,1),!0},t.prepareNodes=()=>{for(let n=0;n{e.visited=n},t.removeUnusedNodes=()=>{let n=0;for(let i=0;i{if(!e.myFactory)return kz("Cannot create view nodes without my own factory"),null;const i=e.myFactory.createNode(n);return i&&i.setRenderable(n),i};const r=t.delete;t.delete=()=>{for(let n=0;n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Uz,r),W.obj(t,e),W.event(t,e,"event"),e._renderableChildMap=new Map,W.get(t,e,["visited"]),W.setGet(t,e,["_parent","renderable","myFactory"]),W.getArray(t,e,["children"]),W.moveToProtected(t,e,["parent"]),Fz(t,e)}const Bz=W.newInstance(G7,"vtkViewNode");var tn={newInstance:Bz,extend:G7,PASS_TYPES:Vz};function Gz(t,e){e.overrides||(e.overrides={}),e.classHierarchy.push("vtkViewNodeFactory"),t.createNode=r=>{if(r.isDeleted())return null;let n=0,i=r.getClassName(n++),o=!1;const a=Object.keys(e.overrides);for(;i&&!o;)a.indexOf(i)!==-1?o=!0:i=r.getClassName(n++);if(!o)return null;const s=e.overrides[i]();return s.setMyFactory(t),s}}const Wz={};function W7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Wz,r),W.obj(t,e),Gz(t,e)}const zz=W.newInstance(W7,"vtkViewNodeFactory");var fw={newInstance:zz,extend:W7};const z7=Object.create(null);function ir(t,e){z7[t]=e}function $z(t,e){e.classHierarchy.push("vtkOpenGLViewNodeFactory")}const jz={};function $7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jz,r),e.overrides=z7,fw.extend(t,e,r),$z(t,e)}const Hz=W.newInstance($7,"vtkOpenGLViewNodeFactory");var Kz={newInstance:Hz,extend:$7};const{Wrap:Ea,Filter:Rr}=d7,{VtkDataTypes:Wt}=tt,{vtkDebugMacro:Tv,vtkErrorMacro:Al,vtkWarningMacro:MT}=Br,{toHalf:qz}=Mc;function Xz(t,e){e.classHierarchy.push("vtkOpenGLTexture"),t.render=function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;if(c?e._openGLRenderWindow=c:(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow")),e.context=e._openGLRenderWindow.getContext(),e.renderable.getInterpolate()?(e.generateMipmap?t.setMinificationFilter(Rr.LINEAR_MIPMAP_LINEAR):t.setMinificationFilter(Rr.LINEAR),t.setMagnificationFilter(Rr.LINEAR)):(t.setMinificationFilter(Rr.NEAREST),t.setMagnificationFilter(Rr.NEAREST)),e.renderable.getRepeat()&&(t.setWrapR(Ea.REPEAT),t.setWrapS(Ea.REPEAT),t.setWrapT(Ea.REPEAT)),e.renderable.getInputData()&&e.renderable.setImage(null),!e.handle||e.renderable.getMTime()>e.textureBuildTime.getMTime()){if(e.renderable.getImage()!==null&&(e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Rr.LINEAR_MIPMAP_LINEAR)),e.renderable.getImage()&&e.renderable.getImageLoaded()&&(t.create2DFromImage(e.renderable.getImage()),t.activate(),t.sendParameters(),e.textureBuildTime.modified())),e.renderable.getCanvas()!==null){e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Rr.LINEAR_MIPMAP_LINEAR));const f=e.renderable.getCanvas();t.create2DFromRaw(f.width,f.height,4,Wt.UNSIGNED_CHAR,f,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}if(e.renderable.getJsImageData()!==null){const f=e.renderable.getJsImageData();e.renderable.getInterpolate()&&(e.generateMipmap=!0,t.setMinificationFilter(Rr.LINEAR_MIPMAP_LINEAR)),t.create2DFromRaw(f.width,f.height,4,Wt.UNSIGNED_CHAR,f.data,!0),t.activate(),t.sendParameters(),e.textureBuildTime.modified()}const l=e.renderable.getInputData(0);if(l&&l.getPointData().getScalars()){const f=l.getExtent(),u=l.getPointData().getScalars(),d=[];for(let h=0;h{t.deactivate(),e.context&&e.handle&&e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.components=0,e.width=0,e.height=0,e.depth=0,t.resetFormatAndType()},t.createTexture=()=>{e.handle||(e.handle=e.context.createTexture(),e.target&&(e.context.bindTexture(e.target,e.handle),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.bindTexture(e.target,null)))},t.getTextureUnit=()=>e._openGLRenderWindow?e._openGLRenderWindow.getTextureUnitForTexture(t):-1,t.activate=()=>{e._openGLRenderWindow.activateTexture(t),t.bind()},t.deactivate=()=>{e._openGLRenderWindow&&e._openGLRenderWindow.deactivateTexture(t)},t.releaseGraphicsResources=c=>{c&&e.handle&&(c.activateTexture(t),c.deactivateTexture(t),e.context.deleteTexture(e.handle),e.handle=0,e.numberOfDimensions=0,e.target=0,e.internalFormat=0,e.format=0,e.openGLDataType=0,e.components=0,e.width=0,e.height=0,e.depth=0,e.allocatedGPUMemoryInBytes=0),e.shaderProgram&&(e.shaderProgram.releaseGraphicsResources(c),e.shaderProgram=null)},t.bind=()=>{e.context.bindTexture(e.target,e.handle),e.autoParameters&&t.getMTime()>e.sendParametersTime.getMTime()&&t.sendParameters()},t.isBound=()=>{let c=!1;if(e.context&&e.handle){let l=0;switch(e.target){case e.context.TEXTURE_2D:l=e.context.TEXTURE_BINDING_2D;break;default:MT("impossible case");break}c=e.context.getIntegerv(l)===e.handle}return c},t.sendParameters=()=>{e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_S,t.getOpenGLWrapMode(e.wrapS)),e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_T,t.getOpenGLWrapMode(e.wrapT)),e._openGLRenderWindow.getWebgl2()&&e.context.texParameteri(e.target,e.context.TEXTURE_WRAP_R,t.getOpenGLWrapMode(e.wrapR)),e.context.texParameteri(e.target,e.context.TEXTURE_MIN_FILTER,t.getOpenGLFilterMode(e.minificationFilter)),e.context.texParameteri(e.target,e.context.TEXTURE_MAG_FILTER,t.getOpenGLFilterMode(e.magnificationFilter)),e._openGLRenderWindow.getWebgl2()&&(e.context.texParameteri(e.target,e.context.TEXTURE_BASE_LEVEL,e.baseLevel),e.context.texParameteri(e.target,e.context.TEXTURE_MAX_LEVEL,e.maxLevel)),e.sendParametersTime.modified()},t.getInternalFormat=(c,l)=>(e._forceInternalFormat||(e.internalFormat=t.getDefaultInternalFormat(c,l)),e.internalFormat||Tv(`Unable to find suitable internal format for T=${c} NC= ${l}`),[e.context.R32F,e.context.RG32F,e.context.RGB32F,e.context.RGBA32F].includes(e.internalFormat)&&!e.context.getExtension("OES_texture_float_linear")&&MT("Failed to load OES_texture_float_linear. Texture filtering is not available for *32F internal formats."),e.internalFormat),t.getDefaultInternalFormat=(c,l)=>{let f=0;return f=e._openGLRenderWindow.getDefaultTextureInternalFormat(c,l,e.oglNorm16Ext,t.useHalfFloat()),f||(f||(Tv("Unsupported internal texture type!"),Tv(`Unable to find suitable internal format for T=${c} NC= ${l}`)),f)},t.useHalfFloat=()=>e.enableHalfFloat&&e.canUseHalfFloat,t.setInternalFormat=c=>{e._forceInternalFormat=!0,c!==e.internalFormat&&(e.internalFormat=c,t.modified())},t.getFormat=(c,l)=>(e.format=t.getDefaultFormat(c,l),e.format),t.getDefaultFormat=(c,l)=>{if(e._openGLRenderWindow.getWebgl2())switch(l){case 1:return e.context.RED;case 2:return e.context.RG;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}else switch(l){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:return e.context.RGBA;default:return e.context.RGB}},t.resetFormatAndType=()=>{e.format=0,e.internalFormat=0,e._forceInternalFormat=!1,e.openGLDataType=0},t.getDefaultDataType=c=>{const l=t.useHalfFloat();if(e._openGLRenderWindow.getWebgl2())switch(c){case Wt.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case(e.oglNorm16Ext&&!l&&Wt.SHORT):return e.context.SHORT;case(e.oglNorm16Ext&&!l&&Wt.UNSIGNED_SHORT):return e.context.UNSIGNED_SHORT;case(l&&Wt.SHORT):return e.context.HALF_FLOAT;case(l&&Wt.UNSIGNED_SHORT):return e.context.HALF_FLOAT;case Wt.FLOAT:case Wt.VOID:default:return e.context.FLOAT}switch(c){case Wt.UNSIGNED_CHAR:return e.context.UNSIGNED_BYTE;case Wt.FLOAT:case Wt.VOID:default:if(e.context.getExtension("OES_texture_float")&&e.context.getExtension("OES_texture_float_linear"))return e.context.FLOAT;{const f=e.context.getExtension("OES_texture_half_float");if(f&&e.context.getExtension("OES_texture_half_float_linear"))return f.HALF_FLOAT_OES}return e.context.UNSIGNED_BYTE}},t.getOpenGLDataType=function(c){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return(!e.openGLDataType||l)&&(e.openGLDataType=t.getDefaultDataType(c)),e.openGLDataType},t.getShiftAndScale=()=>{let c=0,l=1;switch(e.openGLDataType){case e.context.BYTE:l=127.5,c=l-128;break;case e.context.UNSIGNED_BYTE:l=255,c=0;break;case e.context.SHORT:l=32767.5,c=l-32768;break;case e.context.UNSIGNED_SHORT:l=65536,c=0;break;case e.context.INT:l=21474836475e-1,c=l-2147483648;break;case e.context.UNSIGNED_INT:l=4294967295,c=0;break;case e.context.FLOAT:}return{shift:c,scale:l}},t.getOpenGLFilterMode=c=>{switch(c){case Rr.NEAREST:return e.context.NEAREST;case Rr.LINEAR:return e.context.LINEAR;case Rr.NEAREST_MIPMAP_NEAREST:return e.context.NEAREST_MIPMAP_NEAREST;case Rr.NEAREST_MIPMAP_LINEAR:return e.context.NEAREST_MIPMAP_LINEAR;case Rr.LINEAR_MIPMAP_NEAREST:return e.context.LINEAR_MIPMAP_NEAREST;case Rr.LINEAR_MIPMAP_LINEAR:return e.context.LINEAR_MIPMAP_LINEAR;default:return e.context.NEAREST}},t.getOpenGLWrapMode=c=>{switch(c){case Ea.CLAMP_TO_EDGE:return e.context.CLAMP_TO_EDGE;case Ea.REPEAT:return e.context.REPEAT;case Ea.MIRRORED_REPEAT:return e.context.MIRRORED_REPEAT;default:return e.context.CLAMP_TO_EDGE}},t.updateArrayDataTypeForGL=function(c,l){let f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const u=[];let d=e.width*e.height*e.components;if(f&&(d*=e.depth),c!==Wt.FLOAT&&e.openGLDataType===e.context.FLOAT)for(let g=0;gd?l[g].subarray(0,d):l[g];u.push(new Float32Array(p))}else u.push(null);if(c!==Wt.UNSIGNED_CHAR&&e.openGLDataType===e.context.UNSIGNED_BYTE)for(let g=0;gd?l[g].subarray(0,d):l[g];u.push(new Uint8Array(p))}else u.push(null);let h=!1;if(e._openGLRenderWindow.getWebgl2())h=e.openGLDataType===e.context.HALF_FLOAT;else{const g=e.context.getExtension("OES_texture_half_float");h=g&&e.openGLDataType===g.HALF_FLOAT_OES}if(h)for(let g=0;g=u&&(D=u-1);const b=_-E,I=1-b;E=E*f*d,D=D*f*d;for(let R=0;R=f&&(G=f-1);const P=L-A;A*=d,G*=d;for(let N=0;N5&&arguments[5]!==void 0?arguments[5]:!1;if(t.getOpenGLDataType(u,!0),t.getInternalFormat(u,f),t.getFormat(u,f),!e.internalFormat||!e.format||!e.openGLDataType)return Al("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=f,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind();const g=[d],p=t.updateArrayDataTypeForGL(u,g),v=r(p);return e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,h),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),n(u)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),v[0]!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,v[0])):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,v[0]),e.generateMipmap&&e.context.generateMipmap(e.target),h&&e.context.pixelStorei(e.context.UNPACK_FLIP_Y_WEBGL,!1),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*f*e._openGLRenderWindow.getDefaultTextureByteSize(u,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0},t.createCubeFromRaw=(c,l,f,u,d)=>{if(t.getOpenGLDataType(u),t.getInternalFormat(u,f),t.getFormat(u,f),!e.internalFormat||!e.format||!e.openGLDataType)return Al("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_CUBE_MAP,e.components=f,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),e.maxLevel=d.length/6-1,t.createTexture(),t.bind();const h=t.updateArrayDataTypeForGL(u,d),g=r(h),p=[];let v=e.width,x=e.height;for(let m=0;m=1&&C>=1;){let S=null;y<=e.maxLevel&&(S=p[6*y+m]),n(u)?S!=null&&e.context.texSubImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+m,y,0,0,w,C,e.format,e.openGLDataType,S):e.context.texImage2D(e.context.TEXTURE_CUBE_MAP_POSITIVE_X+m,y,e.internalFormat,w,C,0,e.format,e.openGLDataType,S),y++,w/=2,C/=2}}return e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*f*e._openGLRenderWindow.getDefaultTextureByteSize(u,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0},t.createDepthFromRaw=(c,l,f,u)=>(t.getOpenGLDataType(f),e.format=e.context.DEPTH_COMPONENT,e._openGLRenderWindow.getWebgl2()?f===Wt.FLOAT?e.internalFormat=e.context.DEPTH_COMPONENT32F:e.internalFormat=e.context.DEPTH_COMPONENT16:e.internalFormat=e.context.DEPTH_COMPONENT,!e.internalFormat||!e.format||!e.openGLDataType?(Al("Failed to determine texture parameters."),!1):(e.target=e.context.TEXTURE_2D,e.components=1,e.width=c,e.height=l,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1),n(f)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),u!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,u)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,u),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(f,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0)),t.create2DFromImage=c=>{if(t.getOpenGLDataType(Wt.UNSIGNED_CHAR),t.getInternalFormat(Wt.UNSIGNED_CHAR,4),t.getFormat(Wt.UNSIGNED_CHAR,4),!e.internalFormat||!e.format||!e.openGLDataType)return Al("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=4,e.depth=1,e.numberOfDimensions=2,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.context.pixelStorei(e.context.UNPACK_ALIGNMENT,1);const l=!e._openGLRenderWindow.getWebgl2()&&(!Sf(c.width)||!Sf(c.height)),f=document.createElement("canvas");f.width=l?Qi(c.width):c.width,f.height=l?Qi(c.height):c.height,e.width=f.width,e.height=f.height;const u=f.getContext("2d");u.translate(0,f.height),u.scale(1,-1),u.drawImage(c,0,0,c.width,c.height,0,0,f.width,f.height);const d=f;return n(Wt.UNSIGNED_CHAR)?(e.context.texStorage2D(e.target,1,e.internalFormat,e.width,e.height),d!=null&&e.context.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.openGLDataType,d)):e.context.texImage2D(e.target,0,e.internalFormat,e.width,e.height,0,e.format,e.openGLDataType,d),e.generateMipmap&&e.context.generateMipmap(e.target),e.allocatedGPUMemoryInBytes=e.width*e.height*e.depth*e.components*e._openGLRenderWindow.getDefaultTextureByteSize(Wt.UNSIGNED_CHAR,e.oglNorm16Ext,t.useHalfFloat()),t.deactivate(),!0};function i(c,l,f){const u=new Array(f),d=new Array(f);for(let h=0;h2048||d<-2048||d>2048)return!1}return!0}function a(c,l,f,u){t.getOpenGLDataType(c);let d=!1;if(e._openGLRenderWindow.getWebgl2())d=e.openGLDataType===e.context.HALF_FLOAT;else{const g=e.context.getExtension("OES_texture_half_float");d=g&&e.openGLDataType===g.HALF_FLOAT_OES}const h=d&&(o(l,f)||u);e.canUseHalfFloat=h}function s(c,l){const f=c.getNumberOfComponents(),u=c.getDataType(),d=c.getData(),h=new Array(f),g=new Array(f);for(let v=0;v5&&arguments[5]!==void 0?arguments[5]:!1;return t.create2DFilterableFromDataArray(c,l,tt.newInstance({numberOfComponents:f,dataType:u,values:d}),h)},t.create2DFilterableFromDataArray=function(c,l,f){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const{numComps:d,dataType:h,data:g}=s(f,u);t.create2DFromRaw(c,l,d,h,g)},t.updateVolumeInfoForGL=(c,l)=>{var d,h;let f=!1;const u=t.useHalfFloat();(!((d=e.volumeInfo)!=null&&d.scale)||!((h=e.volumeInfo)!=null&&h.offset))&&(e.volumeInfo={scale:new Array(l),offset:new Array(l)});for(let g=0;g{let g=d,p=h;if(!t.updateVolumeInfoForGL(g,u)&&p){const w=c*l*f,C=structuredClone(e.volumeInfo),S=new Float32Array(w*u);e.volumeInfo.offset=C.offset,e.volumeInfo.scale=C.scale;let T=0;const _=C.scale.map(E=>1/E);for(let E=0;E6&&arguments[6]!==void 0?arguments[6]:!1;return t.create3DFilterableFromDataArray(c,l,f,tt.newInstance({numberOfComponents:u,dataType:d,values:h}),g)},t.create3DFilterableFromDataArray=function(c,l,f,u){let d=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const{numComps:h,dataType:g,data:p,scaleOffsets:v}=s(u,d),x=[],m=[];for(let N=0;N{N[V]=$},S=Wt.UNSIGNED_CHAR;if(g===Wt.UNSIGNED_CHAR)for(let N=0;N{N[V]=($-H)/Y}):(S=Wt.UNSIGNED_CHAR,C=(N,V,$,H,Y)=>{N[V]=255*($-H)/Y});if(t.getOpenGLDataType(S),t.getInternalFormat(S,h),t.getFormat(S,h),!e.internalFormat||!e.format||!e.openGLDataType)return Al("Failed to determine texture parameters."),!1;e.target=e.context.TEXTURE_2D,e.components=h,e.depth=1,e.numberOfDimensions=2;let T=e.context.getParameter(e.context.MAX_TEXTURE_SIZE);T>4096&&(S===Wt.FLOAT||h>=3)&&(T=4096);let _=1,E=1;y>T*T&&(_=Math.ceil(Math.sqrt(y/(T*T))),E=_);let D=Math.sqrt(y)/_;D=Qi(D);const b=Math.floor(D*_/c),I=Math.ceil(f/b),R=Qi(l*I/E);e.width=D,e.height=R,e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),e.volumeInfo.xreps=b,e.volumeInfo.yreps=I,e.volumeInfo.xstride=_,e.volumeInfo.ystride=E,e.volumeInfo.offset=w.offset,e.volumeInfo.scale=w.scale;let M;const L=D*R*h;S===Wt.FLOAT?M=new Float32Array(L):M=new Uint8Array(L);let A=0;const G=Math.floor(c/_),P=Math.floor(l/E);for(let N=0;N{e._openGLRenderWindow!==c&&(t.releaseGraphicsResources(),e._openGLRenderWindow=c,e.context=null,c&&(e.context=e._openGLRenderWindow.getContext()))},t.getMaximumTextureSize=c=>c&&c.isCurrent()?c.getIntegerv(c.MAX_TEXTURE_SIZE):-1,t.enableUseHalfFloat=c=>{e.enableUseHalfFloat=c}}const Yz={_openGLRenderWindow:null,_forceInternalFormat:!1,context:null,handle:0,sendParametersTime:null,textureBuildTime:null,numberOfDimensions:0,target:0,format:0,openGLDataType:0,components:0,width:0,height:0,depth:0,autoParameters:!0,wrapS:Ea.CLAMP_TO_EDGE,wrapT:Ea.CLAMP_TO_EDGE,wrapR:Ea.CLAMP_TO_EDGE,minificationFilter:Rr.NEAREST,magnificationFilter:Rr.NEAREST,minLOD:-1e3,maxLOD:1e3,baseLevel:0,maxLevel:1e3,generateMipmap:!1,oglNorm16Ext:null,allocatedGPUMemoryInBytes:0,enableUseHalfFloat:!0,canUseHalfFloat:!1};function j7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Yz,r),tn.extend(t,e,r),e.sendParametersTime={},un(e.sendParametersTime,{mtime:0}),e.textureBuildTime={},un(e.textureBuildTime,{mtime:0}),dh(t,e,["format","openGLDataType"]),Jn(t,e,["keyMatrixTime","minificationFilter","magnificationFilter","wrapS","wrapT","wrapR","generateMipmap","oglNorm16Ext"]),gi(t,e,["width","height","volumeInfo","components","handle","target","allocatedGPUMemoryInBytes"]),hh(t,e,["openGLRenderWindow"]),Xz(t,e)}const H7=Bt(j7,"vtkOpenGLTexture");var yn={newInstance:H7,extend:j7,...d7};ir("vtkTexture",H7);function Jz(t,e){e.classHierarchy.push("vtkFramebuffer"),t.getBothMode=()=>e.context.FRAMEBUFFER,t.saveCurrentBindingsAndBuffers=r=>{const n=typeof r<"u"?r:t.getBothMode();t.saveCurrentBindings(n),t.saveCurrentBuffers(n)},t.saveCurrentBindings=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling saveCurrentBindings");return}const n=e.context;e.previousDrawBinding=n.getParameter(e.context.FRAMEBUFFER_BINDING),e.previousActiveFramebuffer=e._openGLRenderWindow.getActiveFramebuffer()},t.saveCurrentBuffers=r=>{},t.restorePreviousBindingsAndBuffers=r=>{const n=typeof r<"u"?r:t.getBothMode();t.restorePreviousBindings(n),t.restorePreviousBuffers(n)},t.restorePreviousBindings=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling restorePreviousBindings");return}const n=e.context;n.bindFramebuffer(n.FRAMEBUFFER,e.previousDrawBinding),e._openGLRenderWindow.setActiveFramebuffer(e.previousActiveFramebuffer)},t.restorePreviousBuffers=r=>{},t.bind=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;n===null&&(n=e.context.FRAMEBUFFER),e.context.bindFramebuffer(n,e.glFramebuffer);for(let i=0;i{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling create");return}e.glFramebuffer=e.context.createFramebuffer(),e.glFramebuffer.width=r,e.glFramebuffer.height=n},t.setColorBuffer=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const i=e.context;if(!i){Dt("you must set the OpenGLRenderWindow before calling setColorBuffer");return}let o=i.COLOR_ATTACHMENT0;if(n>0)if(e._openGLRenderWindow.getWebgl2())o+=n;else{Dt("Using multiple framebuffer attachments requires WebGL 2");return}e.colorBuffers[n]=r,i.framebufferTexture2D(i.FRAMEBUFFER,o,i.TEXTURE_2D,r.getHandle(),0)},t.removeColorBuffer=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const n=e.context;if(!n){Dt("you must set the OpenGLRenderWindow before calling removeColorBuffer");return}let i=n.COLOR_ATTACHMENT0;if(r>0)if(e._openGLRenderWindow.getWebgl2())i+=r;else{Dt("Using multiple framebuffer attachments requires WebGL 2");return}n.framebufferTexture2D(n.FRAMEBUFFER,i,n.TEXTURE_2D,null,0),e.colorBuffers=e.colorBuffers.splice(r,1)},t.setDepthBuffer=r=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling setDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const n=e.context;n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,r.getHandle(),0)}else Dt("Attaching depth buffer textures to fbo requires WebGL 2")},t.removeDepthBuffer=()=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling removeDepthBuffer");return}if(e._openGLRenderWindow.getWebgl2()){const r=e.context;r.framebufferTexture2D(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.TEXTURE_2D,null,0)}else Dt("Attaching depth buffer textures to framebuffers requires WebGL 2")},t.getGLFramebuffer=()=>e.glFramebuffer,t.setOpenGLRenderWindow=r=>{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))},t.releaseGraphicsResources=()=>{e.glFramebuffer&&e.context.deleteFramebuffer(e.glFramebuffer)},t.getSize=()=>e.glFramebuffer==null?null:[e.glFramebuffer.width,e.glFramebuffer.height],t.populateFramebuffer=()=>{if(!e.context){Dt("you must set the OpenGLRenderWindow before calling populateFrameBuffer");return}t.bind();const r=e.context,n=yn.newInstance();n.setOpenGLRenderWindow(e._openGLRenderWindow),n.setMinificationFilter(Je.LINEAR),n.setMagnificationFilter(Je.LINEAR),n.create2DFromRaw(e.glFramebuffer.width,e.glFramebuffer.height,4,vt.UNSIGNED_CHAR,null),t.setColorBuffer(n),e.depthTexture=r.createRenderbuffer(),r.bindRenderbuffer(r.RENDERBUFFER,e.depthTexture),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_COMPONENT16,e.glFramebuffer.width,e.glFramebuffer.height),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,e.depthTexture)},t.getColorTexture=()=>e.colorBuffers[0]}const Zz={glFramebuffer:null,colorBuffers:null,depthTexture:null,previousDrawBinding:0,previousReadBinding:0,previousDrawBuffer:0,previousReadBuffer:0,previousActiveFramebuffer:null};function K7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Zz,r),un(t,e),e.colorBuffers&&Dt("you cannot initialize colorBuffers through the constructor. You should call setColorBuffer() instead."),e.colorBuffers=[],v0(t,e,["colorBuffers"]),Jz(t,e)}const Qz=Bt(K7,"vtkFramebuffer");var Xm={newInstance:Qz,extend:K7};function e$(t,e){e.classHierarchy.push("vtkRenderPass"),t.getOperation=()=>e.currentOperation,t.setCurrentOperation=r=>{e.currentOperation=r,e.currentTraverseOperation=`traverse${W.capitalize(e.currentOperation)}`},t.getTraverseOperation=()=>e.currentTraverseOperation,t.traverse=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;e.deleted||(e._currentParent=n,e.preDelegateOperations.forEach(i=>{t.setCurrentOperation(i),r.traverse(t)}),e.delegates.forEach(i=>{i.traverse(r,t)}),e.postDelegateOperations.forEach(i=>{t.setCurrentOperation(i),r.traverse(t)}))}}const t$={delegates:[],currentOperation:null,preDelegateOperations:[],postDelegateOperations:[],currentParent:null};function q7(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,t$,r),W.obj(t,e),W.get(t,e,["currentOperation"]),W.setGet(t,e,["delegates","_currentParent","preDelegateOperations","postDelegateOperations"]),W.moveToProtected(t,e,["currentParent"]),e$(t,e)}const n$=W.newInstance(q7,"vtkRenderPass");var dw={newInstance:n$,extend:q7},At=1e-6,Hn=typeof Float32Array<"u"?Float32Array:Array,r$=Math.PI/180;function i$(t){return t*r$}function Xs(t,e){return Math.abs(t-e)<=At*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});function hw(){var t=new Hn(9);return Hn!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Ym(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t}function o$(t){var e=new Hn(9);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function a$(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function _f(t,e,r,n,i,o,a,s,c){var l=new Hn(9);return l[0]=t,l[1]=e,l[2]=r,l[3]=n,l[4]=i,l[5]=o,l[6]=a,l[7]=s,l[8]=c,l}function X7(t,e,r,n,i,o,a,s,c,l){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=o,t[5]=a,t[6]=s,t[7]=c,t[8]=l,t}function ao(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function gw(t,e){if(t===e){var r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function yh(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=f*a-s*l,d=-f*o+s*c,h=l*o-a*c,g=r*u+n*d+i*h;return g?(g=1/g,t[0]=u*g,t[1]=(-f*n+i*l)*g,t[2]=(s*n-i*a)*g,t[3]=d*g,t[4]=(f*r-i*c)*g,t[5]=(-s*r+i*o)*g,t[6]=h*g,t[7]=(-l*r+n*c)*g,t[8]=(a*r-n*o)*g,t):null}function s$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8];return t[0]=a*f-s*l,t[1]=i*l-n*f,t[2]=n*s-i*a,t[3]=s*c-o*f,t[4]=r*f-i*c,t[5]=i*o-r*s,t[6]=o*l-a*c,t[7]=n*c-r*l,t[8]=r*a-n*o,t}function Dc(t){var e=t[0],r=t[1],n=t[2],i=t[3],o=t[4],a=t[5],s=t[6],c=t[7],l=t[8];return e*(l*o-a*c)+r*(-l*i+a*s)+n*(c*i-o*s)}function Ku(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=r[0],h=r[1],g=r[2],p=r[3],v=r[4],x=r[5],m=r[6],y=r[7],w=r[8];return t[0]=d*n+h*a+g*l,t[1]=d*i+h*s+g*f,t[2]=d*o+h*c+g*u,t[3]=p*n+v*a+x*l,t[4]=p*i+v*s+x*f,t[5]=p*o+v*c+x*u,t[6]=m*n+y*a+w*l,t[7]=m*i+y*s+w*f,t[8]=m*o+y*c+w*u,t}function c$(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=r[0],h=r[1];return t[0]=n,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=d*n+h*a+l,t[7]=d*i+h*s+f,t[8]=d*o+h*c+u,t}function l$(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=Math.sin(r),h=Math.cos(r);return t[0]=h*n+d*a,t[1]=h*i+d*s,t[2]=h*o+d*c,t[3]=h*a-d*n,t[4]=h*s-d*i,t[5]=h*c-d*o,t[6]=l,t[7]=f,t[8]=u,t}function u$(t,e,r){var n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function f$(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t}function d$(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function h$(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t}function g$(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t}function p$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=r+r,s=n+n,c=i+i,l=r*a,f=n*a,u=n*s,d=i*a,h=i*s,g=i*c,p=o*a,v=o*s,x=o*c;return t[0]=1-u-g,t[3]=f-x,t[6]=d+v,t[1]=f+x,t[4]=1-l-g,t[7]=h-p,t[2]=d-v,t[5]=h+p,t[8]=1-l-u,t}function m$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15],m=r*s-n*a,y=r*c-i*a,w=r*l-o*a,C=n*c-i*s,S=n*l-o*s,T=i*l-o*c,_=f*p-u*g,E=f*v-d*g,D=f*x-h*g,b=u*v-d*p,I=u*x-h*p,R=d*x-h*v,M=m*R-y*I+w*b+C*D-S*E+T*_;return M?(M=1/M,t[0]=(s*R-c*I+l*b)*M,t[1]=(c*D-a*R-l*E)*M,t[2]=(a*I-s*D+l*_)*M,t[3]=(i*I-n*R-o*b)*M,t[4]=(r*R-i*D+o*E)*M,t[5]=(n*D-r*I-o*_)*M,t[6]=(p*T-v*S+x*C)*M,t[7]=(v*w-g*T-x*y)*M,t[8]=(g*S-p*w+x*m)*M,t):null}function v$(t,e,r){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t}function y$(t){return"mat3("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+")"}function x$(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])}function w$(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t}function Y7(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t}function C$(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t}function S$(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t}function T$(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]}function _$(t,e){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],l=t[7],f=t[8],u=e[0],d=e[1],h=e[2],g=e[3],p=e[4],v=e[5],x=e[6],m=e[7],y=e[8];return Math.abs(r-u)<=At*Math.max(1,Math.abs(r),Math.abs(u))&&Math.abs(n-d)<=At*Math.max(1,Math.abs(n),Math.abs(d))&&Math.abs(i-h)<=At*Math.max(1,Math.abs(i),Math.abs(h))&&Math.abs(o-g)<=At*Math.max(1,Math.abs(o),Math.abs(g))&&Math.abs(a-p)<=At*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(s-v)<=At*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(c-x)<=At*Math.max(1,Math.abs(c),Math.abs(x))&&Math.abs(l-m)<=At*Math.max(1,Math.abs(l),Math.abs(m))&&Math.abs(f-y)<=At*Math.max(1,Math.abs(f),Math.abs(y))}var E$=Ku,D$=Y7;const b$=Object.freeze(Object.defineProperty({__proto__:null,add:w$,adjoint:s$,clone:o$,copy:a$,create:hw,determinant:Dc,equals:_$,exactEquals:T$,frob:x$,fromMat2d:g$,fromMat4:Ym,fromQuat:p$,fromRotation:d$,fromScaling:h$,fromTranslation:f$,fromValues:_f,identity:ao,invert:yh,mul:E$,multiply:Ku,multiplyScalar:C$,multiplyScalarAndAdd:S$,normalFromMat4:m$,projection:v$,rotate:l$,scale:u$,set:X7,str:y$,sub:D$,subtract:Y7,translate:c$,transpose:gw},Symbol.toStringTag,{value:"Module"}));function lo(){var t=new Hn(16);return Hn!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function I$(t){var e=new Hn(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function _n(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function pw(t,e,r,n,i,o,a,s,c,l,f,u,d,h,g,p){var v=new Hn(16);return v[0]=t,v[1]=e,v[2]=r,v[3]=n,v[4]=i,v[5]=o,v[6]=a,v[7]=s,v[8]=c,v[9]=l,v[10]=f,v[11]=u,v[12]=d,v[13]=h,v[14]=g,v[15]=p,v}function O$(t,e,r,n,i,o,a,s,c,l,f,u,d,h,g,p,v){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=o,t[5]=a,t[6]=s,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=d,t[12]=h,t[13]=g,t[14]=p,t[15]=v,t}function qe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function St(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],o=e[6],a=e[7],s=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=o,t[11]=e[14],t[12]=i,t[13]=a,t[14]=s}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function $n(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15],m=r*s-n*a,y=r*c-i*a,w=r*l-o*a,C=n*c-i*s,S=n*l-o*s,T=i*l-o*c,_=f*p-u*g,E=f*v-d*g,D=f*x-h*g,b=u*v-d*p,I=u*x-h*p,R=d*x-h*v,M=m*R-y*I+w*b+C*D-S*E+T*_;return M?(M=1/M,t[0]=(s*R-c*I+l*b)*M,t[1]=(i*I-n*R-o*b)*M,t[2]=(p*T-v*S+x*C)*M,t[3]=(d*S-u*T-h*C)*M,t[4]=(c*D-a*R-l*E)*M,t[5]=(r*R-i*D+o*E)*M,t[6]=(v*w-g*T-x*y)*M,t[7]=(f*T-d*w+h*y)*M,t[8]=(a*I-s*D+l*_)*M,t[9]=(n*D-r*I-o*_)*M,t[10]=(g*S-p*w+x*m)*M,t[11]=(u*w-f*S-h*m)*M,t[12]=(s*E-a*b-c*_)*M,t[13]=(r*b-n*E+i*_)*M,t[14]=(p*y-g*C-v*m)*M,t[15]=(f*C-u*y+d*m)*M,t):null}function M$(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],u=e[9],d=e[10],h=e[11],g=e[12],p=e[13],v=e[14],x=e[15];return t[0]=s*(d*x-h*v)-u*(c*x-l*v)+p*(c*h-l*d),t[1]=-(n*(d*x-h*v)-u*(i*x-o*v)+p*(i*h-o*d)),t[2]=n*(c*x-l*v)-s*(i*x-o*v)+p*(i*l-o*c),t[3]=-(n*(c*h-l*d)-s*(i*h-o*d)+u*(i*l-o*c)),t[4]=-(a*(d*x-h*v)-f*(c*x-l*v)+g*(c*h-l*d)),t[5]=r*(d*x-h*v)-f*(i*x-o*v)+g*(i*h-o*d),t[6]=-(r*(c*x-l*v)-a*(i*x-o*v)+g*(i*l-o*c)),t[7]=r*(c*h-l*d)-a*(i*h-o*d)+f*(i*l-o*c),t[8]=a*(u*x-h*p)-f*(s*x-l*p)+g*(s*h-l*u),t[9]=-(r*(u*x-h*p)-f*(n*x-o*p)+g*(n*h-o*u)),t[10]=r*(s*x-l*p)-a*(n*x-o*p)+g*(n*l-o*s),t[11]=-(r*(s*h-l*u)-a*(n*h-o*u)+f*(n*l-o*s)),t[12]=-(a*(u*v-d*p)-f*(s*v-c*p)+g*(s*d-c*u)),t[13]=r*(u*v-d*p)-f*(n*v-i*p)+g*(n*d-i*u),t[14]=-(r*(s*v-c*p)-a*(n*v-i*p)+g*(n*c-i*s)),t[15]=r*(s*d-c*u)-a*(n*d-i*u)+f*(n*c-i*s),t}function R$(t){var e=t[0],r=t[1],n=t[2],i=t[3],o=t[4],a=t[5],s=t[6],c=t[7],l=t[8],f=t[9],u=t[10],d=t[11],h=t[12],g=t[13],p=t[14],v=t[15],x=e*a-r*o,m=e*s-n*o,y=e*c-i*o,w=r*s-n*a,C=r*c-i*a,S=n*c-i*s,T=l*g-f*h,_=l*p-u*h,E=l*v-d*h,D=f*p-u*g,b=f*v-d*g,I=u*v-d*p;return x*I-m*b+y*D+w*E-C*_+S*T}function bt(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],l=e[6],f=e[7],u=e[8],d=e[9],h=e[10],g=e[11],p=e[12],v=e[13],x=e[14],m=e[15],y=r[0],w=r[1],C=r[2],S=r[3];return t[0]=y*n+w*s+C*u+S*p,t[1]=y*i+w*c+C*d+S*v,t[2]=y*o+w*l+C*h+S*x,t[3]=y*a+w*f+C*g+S*m,y=r[4],w=r[5],C=r[6],S=r[7],t[4]=y*n+w*s+C*u+S*p,t[5]=y*i+w*c+C*d+S*v,t[6]=y*o+w*l+C*h+S*x,t[7]=y*a+w*f+C*g+S*m,y=r[8],w=r[9],C=r[10],S=r[11],t[8]=y*n+w*s+C*u+S*p,t[9]=y*i+w*c+C*d+S*v,t[10]=y*o+w*l+C*h+S*x,t[11]=y*a+w*f+C*g+S*m,y=r[12],w=r[13],C=r[14],S=r[15],t[12]=y*n+w*s+C*u+S*p,t[13]=y*i+w*c+C*d+S*v,t[14]=y*o+w*l+C*h+S*x,t[15]=y*a+w*f+C*g+S*m,t}function nn(t,e,r){var n=r[0],i=r[1],o=r[2],a,s,c,l,f,u,d,h,g,p,v,x;return e===t?(t[12]=e[0]*n+e[4]*i+e[8]*o+e[12],t[13]=e[1]*n+e[5]*i+e[9]*o+e[13],t[14]=e[2]*n+e[6]*i+e[10]*o+e[14],t[15]=e[3]*n+e[7]*i+e[11]*o+e[15]):(a=e[0],s=e[1],c=e[2],l=e[3],f=e[4],u=e[5],d=e[6],h=e[7],g=e[8],p=e[9],v=e[10],x=e[11],t[0]=a,t[1]=s,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=d,t[7]=h,t[8]=g,t[9]=p,t[10]=v,t[11]=x,t[12]=a*n+f*i+g*o+e[12],t[13]=s*n+u*i+p*o+e[13],t[14]=c*n+d*i+v*o+e[14],t[15]=l*n+h*i+x*o+e[15]),t}function Ha(t,e,r){var n=r[0],i=r[1],o=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Hr(t,e,r,n){var i=n[0],o=n[1],a=n[2],s=Math.hypot(i,o,a),c,l,f,u,d,h,g,p,v,x,m,y,w,C,S,T,_,E,D,b,I,R,M,L;return s0?(r[0]=(s*a+f*n+c*o-l*i)*2/u,r[1]=(c*a+f*i+l*n-s*o)*2/u,r[2]=(l*a+f*o+s*i-c*n)*2/u):(r[0]=(s*a+f*n+c*o-l*i)*2,r[1]=(c*a+f*i+l*n-s*o)*2,r[2]=(l*a+f*o+s*i-c*n)*2),J7(t,e,r),t}function k$(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Z7(t,e){var r=e[0],n=e[1],i=e[2],o=e[4],a=e[5],s=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.hypot(r,n,i),t[1]=Math.hypot(o,a,s),t[2]=Math.hypot(c,l,f),t}function G5(t,e){var r=new Hn(3);Z7(r,e);var n=1/r[0],i=1/r[1],o=1/r[2],a=e[0]*n,s=e[1]*i,c=e[2]*o,l=e[4]*n,f=e[5]*i,u=e[6]*o,d=e[8]*n,h=e[9]*i,g=e[10]*o,p=a+f+g,v=0;return p>0?(v=Math.sqrt(p+1)*2,t[3]=.25*v,t[0]=(u-h)/v,t[1]=(d-c)/v,t[2]=(s-l)/v):a>f&&a>g?(v=Math.sqrt(1+a-f-g)*2,t[3]=(u-h)/v,t[0]=.25*v,t[1]=(s+l)/v,t[2]=(d+c)/v):f>g?(v=Math.sqrt(1+f-a-g)*2,t[3]=(d-c)/v,t[0]=(s+l)/v,t[1]=.25*v,t[2]=(u+h)/v):(v=Math.sqrt(1+g-a-f)*2,t[3]=(s-l)/v,t[0]=(d+c)/v,t[1]=(u+h)/v,t[2]=.25*v),t}function Q7(t,e,r,n){var i=e[0],o=e[1],a=e[2],s=e[3],c=i+i,l=o+o,f=a+a,u=i*c,d=i*l,h=i*f,g=o*l,p=o*f,v=a*f,x=s*c,m=s*l,y=s*f,w=n[0],C=n[1],S=n[2];return t[0]=(1-(g+v))*w,t[1]=(d+y)*w,t[2]=(h-m)*w,t[3]=0,t[4]=(d-y)*C,t[5]=(1-(u+v))*C,t[6]=(p+x)*C,t[7]=0,t[8]=(h+m)*S,t[9]=(p-x)*S,t[10]=(1-(u+g))*S,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function V$(t,e,r,n,i){var o=e[0],a=e[1],s=e[2],c=e[3],l=o+o,f=a+a,u=s+s,d=o*l,h=o*f,g=o*u,p=a*f,v=a*u,x=s*u,m=c*l,y=c*f,w=c*u,C=n[0],S=n[1],T=n[2],_=i[0],E=i[1],D=i[2],b=(1-(p+x))*C,I=(h+w)*C,R=(g-y)*C,M=(h-w)*S,L=(1-(d+x))*S,A=(v+m)*S,G=(g+y)*T,P=(v-m)*T,N=(1-(d+p))*T;return t[0]=b,t[1]=I,t[2]=R,t[3]=0,t[4]=M,t[5]=L,t[6]=A,t[7]=0,t[8]=G,t[9]=P,t[10]=N,t[11]=0,t[12]=r[0]+_-(b*_+M*E+G*D),t[13]=r[1]+E-(I*_+L*E+P*D),t[14]=r[2]+D-(R*_+A*E+N*D),t[15]=1,t}function I1(t,e){var r=e[0],n=e[1],i=e[2],o=e[3],a=r+r,s=n+n,c=i+i,l=r*a,f=n*a,u=n*s,d=i*a,h=i*s,g=i*c,p=o*a,v=o*s,x=o*c;return t[0]=1-u-g,t[1]=f+x,t[2]=d-v,t[3]=0,t[4]=f-x,t[5]=1-l-g,t[6]=h+p,t[7]=0,t[8]=d+v,t[9]=h-p,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function F$(t,e,r,n,i,o,a){var s=1/(r-e),c=1/(i-n),l=1/(o-a);return t[0]=o*2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*s,t[9]=(i+n)*c,t[10]=(a+o)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=a*o*2*l,t[15]=0,t}function eb(t,e,r,n,i){var o=1/Math.tan(e/2),a;return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0?(a=1/(n-i),t[10]=(i+n)*a,t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t}var U$=eb;function B$(t,e,r,n,i){var o=1/Math.tan(e/2),a;return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0?(a=1/(n-i),t[10]=i*a,t[14]=i*n*a):(t[10]=-1,t[14]=-n),t}function G$(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),o=Math.tan(e.downDegrees*Math.PI/180),a=Math.tan(e.leftDegrees*Math.PI/180),s=Math.tan(e.rightDegrees*Math.PI/180),c=2/(a+s),l=2/(i+o);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((a-s)*c*.5),t[9]=(i-o)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function tb(t,e,r,n,i,o,a){var s=1/(e-r),c=1/(n-i),l=1/(o-a);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*c,t[14]=(a+o)*l,t[15]=1,t}var Cw=tb;function W$(t,e,r,n,i,o,a){var s=1/(e-r),c=1/(n-i),l=1/(o-a);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*c,t[14]=o*l,t[15]=1,t}function Sw(t,e,r,n){var i,o,a,s,c,l,f,u,d,h,g=e[0],p=e[1],v=e[2],x=n[0],m=n[1],y=n[2],w=r[0],C=r[1],S=r[2];return Math.abs(g-w)0&&(h=1/Math.sqrt(h),f*=h,u*=h,d*=h);var g=c*d-l*u,p=l*f-s*d,v=s*u-c*f;return h=g*g+p*p+v*v,h>0&&(h=1/Math.sqrt(h),g*=h,p*=h,v*=h),t[0]=g,t[1]=p,t[2]=v,t[3]=0,t[4]=u*v-d*p,t[5]=d*g-f*v,t[6]=f*p-u*g,t[7]=0,t[8]=f,t[9]=u,t[10]=d,t[11]=0,t[12]=i,t[13]=o,t[14]=a,t[15]=1,t}function $$(t){return"mat4("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+", "+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+", "+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+", "+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+")"}function j$(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])}function H$(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function nb(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function rb(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function K$(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function q$(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function X$(t,e){var r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],l=t[7],f=t[8],u=t[9],d=t[10],h=t[11],g=t[12],p=t[13],v=t[14],x=t[15],m=e[0],y=e[1],w=e[2],C=e[3],S=e[4],T=e[5],_=e[6],E=e[7],D=e[8],b=e[9],I=e[10],R=e[11],M=e[12],L=e[13],A=e[14],G=e[15];return Math.abs(r-m)<=At*Math.max(1,Math.abs(r),Math.abs(m))&&Math.abs(n-y)<=At*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-w)<=At*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-C)<=At*Math.max(1,Math.abs(o),Math.abs(C))&&Math.abs(a-S)<=At*Math.max(1,Math.abs(a),Math.abs(S))&&Math.abs(s-T)<=At*Math.max(1,Math.abs(s),Math.abs(T))&&Math.abs(c-_)<=At*Math.max(1,Math.abs(c),Math.abs(_))&&Math.abs(l-E)<=At*Math.max(1,Math.abs(l),Math.abs(E))&&Math.abs(f-D)<=At*Math.max(1,Math.abs(f),Math.abs(D))&&Math.abs(u-b)<=At*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(d-I)<=At*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(h-R)<=At*Math.max(1,Math.abs(h),Math.abs(R))&&Math.abs(g-M)<=At*Math.max(1,Math.abs(g),Math.abs(M))&&Math.abs(p-L)<=At*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(v-A)<=At*Math.max(1,Math.abs(v),Math.abs(A))&&Math.abs(x-G)<=At*Math.max(1,Math.abs(x),Math.abs(G))}var O1=bt,Y$=nb;const Od=Object.freeze(Object.defineProperty({__proto__:null,add:H$,adjoint:M$,clone:I$,copy:_n,create:lo,determinant:R$,equals:X$,exactEquals:q$,frob:j$,fromQuat:I1,fromQuat2:A$,fromRotation:ww,fromRotationTranslation:J7,fromRotationTranslationScale:Q7,fromRotationTranslationScaleOrigin:V$,fromScaling:xw,fromTranslation:Jm,fromValues:pw,fromXRotation:L$,fromYRotation:N$,fromZRotation:P$,frustum:F$,getRotation:G5,getScaling:Z7,getTranslation:k$,identity:qe,invert:$n,lookAt:Sw,mul:O1,multiply:bt,multiplyScalar:rb,multiplyScalarAndAdd:K$,ortho:Cw,orthoNO:tb,orthoZO:W$,perspective:U$,perspectiveFromFieldOfView:G$,perspectiveNO:eb,perspectiveZO:B$,rotate:Hr,rotateX:mw,rotateY:vw,rotateZ:yw,scale:Ha,set:O$,str:$$,sub:Y$,subtract:nb,targetTo:z$,translate:nn,transpose:St},Symbol.toStringTag,{value:"Module"}));function we(){var t=new Hn(3);return Hn!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Eu(t){var e=new Hn(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function ui(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function Ye(t,e,r){var n=new Hn(3);return n[0]=t,n[1]=e,n[2]=r,n}function Md(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function $t(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function xn(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function kt(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function J$(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function Z$(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Q$(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function lr(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Vt(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function Cr(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.hypot(r,n,i)}function ib(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}function qc(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function ob(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function on(t,e){var r=e[0],n=e[1],i=e[2],o=r*r+n*n+i*i;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}function je(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Kt(t,e,r){var n=e[0],i=e[1],o=e[2],a=r[0],s=r[1],c=r[2];return t[0]=i*c-o*s,t[1]=o*a-n*c,t[2]=n*s-i*a,t}function et(t,e,r){var n=e[0],i=e[1],o=e[2],a=r[3]*n+r[7]*i+r[11]*o+r[15];return a=a||1,t[0]=(r[0]*n+r[4]*i+r[8]*o+r[12])/a,t[1]=(r[1]*n+r[5]*i+r[9]*o+r[13])/a,t[2]=(r[2]*n+r[6]*i+r[10]*o+r[14])/a,t}function Dp(t,e,r){var n=e[0],i=e[1],o=e[2];return t[0]=n*r[0]+i*r[3]+o*r[6],t[1]=n*r[1]+i*r[4]+o*r[7],t[2]=n*r[2]+i*r[5]+o*r[8],t}function Tw(t,e){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2],c=Math.sqrt(r*r+n*n+i*i),l=Math.sqrt(o*o+a*a+s*s),f=c*l,u=f&&je(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function ej(t){return t[0]=0,t[1]=0,t[2]=0,t}function RT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function W5(t,e){var r=t[0],n=t[1],i=t[2],o=e[0],a=e[1],s=e[2];return Math.abs(r-o)<=At*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=At*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-s)<=At*Math.max(1,Math.abs(i),Math.abs(s))}var Qt=kt,tj=J$,LT=ib,Rd=ui;(function(){var t=we();return function(e,r,n,i,o,a){var s,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;s0&&(a=1/Math.sqrt(a)),t[0]=r*a,t[1]=n*a,t[2]=i*a,t[3]=o*a,t}function PT(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Os(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*o+r[12]*a,t[1]=r[1]*n+r[5]*i+r[9]*o+r[13]*a,t[2]=r[2]*n+r[6]*i+r[10]*o+r[14]*a,t[3]=r[3]*n+r[7]*i+r[11]*o+r[15]*a,t}(function(){var t=ab();return function(e,r,n,i,o,a){var s,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;sAt?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function AT(t,e,r){var n=e[0],i=e[1],o=e[2],a=e[3],s=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+a*s+i*l-o*c,t[1]=i*f+a*c+o*s-n*l,t[2]=o*f+a*l+n*c-i*s,t[3]=a*f-n*s-i*c-o*l,t}function Ip(t,e,r,n){var i=e[0],o=e[1],a=e[2],s=e[3],c=r[0],l=r[1],f=r[2],u=r[3],d,h,g,p,v;return h=i*c+o*l+a*f+s*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>At?(d=Math.acos(h),g=Math.sin(d),p=Math.sin((1-n)*d)/g,v=Math.sin(n*d)/g):(p=1-n,v=n),t[0]=p*i+v*c,t[1]=p*o+v*l,t[2]=p*a+v*f,t[3]=p*s+v*u,t}function ij(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function oj(t,e){var r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var o=(i+1)%3,a=(i+2)%3;n=Math.sqrt(e[i*3+i]-e[o*3+o]-e[a*3+a]+1),t[i]=.5*n,n=.5/n,t[3]=(e[o*3+a]-e[a*3+o])*n,t[o]=(e[o*3+i]+e[i*3+o])*n,t[a]=(e[a*3+i]+e[i*3+a])*n}return t}var kT=bp,sb=nj;(function(){var t=we(),e=Ye(1,0,0),r=Ye(0,1,0);return function(n,i,o){var a=je(i,o);return a<-.999999?(Kt(t,e,i),Rd(t)<1e-6&&Kt(t,r,i),on(t,t),_w(n,t,Math.PI),n):a>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Kt(t,i,o),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+a,sb(n,n))}})();(function(){var t=ll(),e=ll();return function(r,n,i,o,a,s){return Ip(t,n,a,s),Ip(e,i,o,s),Ip(r,t,e,2*s*(1-s)),r}})();(function(){var t=hw();return function(e,r,n,i){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],sb(e,oj(e,t))}})();function ot(){var t=new Hn(2);return Hn!=Float32Array&&(t[0]=0,t[1]=0),t}function sg(t){var e=new Hn(2);return e[0]=t[0],e[1]=t[1],e}function VT(t,e){var r=new Hn(2);return r[0]=t,r[1]=e,r}function eo(t,e,r){return t[0]=e,t[1]=r,t}function Lr(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function kn(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Da(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function aj(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function bn(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function z5(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Na(t,e){var r=e[0],n=e[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function Ew(t,e){return t[0]*e[0]+t[1]*e[1]}function sj(t,e){var r=t[0],n=t[1],i=e[0],o=e[1],a=Math.sqrt(r*r+n*n)*Math.sqrt(i*i+o*o),s=a&&(r*i+n*o)/a;return Math.acos(Math.min(Math.max(s,-1),1))}var Oo=kn,Dw=bn;(function(){var t=ot();return function(e,r,n,i,o,a){var s,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,s=n;sn,t.setType=s=>{n=s},t.getHandle=()=>i,t.isReady=()=>o===!1,t.generateBuffer=s=>{const c=r(s);return i===null&&(i=e.context.createBuffer(),n=s),r(n)===c},t.upload=(s,c)=>t.generateBuffer(c)?(e.context.bindBuffer(r(n),i),e.context.bufferData(r(n),s,e.context.STATIC_DRAW),e.allocatedGPUMemoryInBytes=s.length*s.BYTES_PER_ELEMENT,o=!1,!0):(a="Trying to upload array buffer to incompatible buffer.",!1),t.bind=()=>i?(e.context.bindBuffer(r(n),i),!0):!1,t.release=()=>i?(e.context.bindBuffer(r(n),null),!0):!1,t.releaseGraphicsResources=()=>{i!==null&&(e.context.bindBuffer(r(n),null),e.context.deleteBuffer(i),i=null,e.allocatedGPUMemoryInBytes=0)},t.setOpenGLRenderWindow=s=>{e._openGLRenderWindow!==s&&(t.releaseGraphicsResources(),e._openGLRenderWindow=s,e.context=null,s&&(e.context=e._openGLRenderWindow.getContext()))},t.getError=()=>a}const uj={objectType:Op.ARRAY_BUFFER,context:null,allocatedGPUMemoryInBytes:0};function lb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uj,r),W.obj(t,e),W.get(t,e,["_openGLRenderWindow","allocatedGPUMemoryInBytes"]),W.moveToProtected(t,e,["openGLRenderWindow"]),lj(t,e)}const fj=W.newInstance(lb);var Pa={newInstance:fj,extend:lb,...cj,...cb};const ub={FLAT:0,GOURAUD:1,PHONG:2},kr={POINTS:0,WIREFRAME:1,SURFACE:2},dj=ub;var fb={Shading:ub,Representation:kr,Interpolation:dj};const{vtkErrorMacro:FT}=W;function hj(t,e){const r=new Float64Array(3);ob(r,e);const n=new Float64Array(16);return Q7(n,ll(),t,r),n}function gj(t,e){return t===null||e===null?!1:!(RT(t,[0,0,0])&&RT(e,[1,1,1]))}function pj(t,e){e.classHierarchy.push("vtkOpenGLCellArrayBufferObject"),t.setType(Ua.ARRAY_BUFFER),t.createVBO=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;if(!r.getData()||!r.getData().length)return e.elementCount=0,0;e.blockSize=3,e.vertexOffset=0,e.normalOffset=0,e.tCoordOffset=0,e.tCoordComponents=0,e.colorComponents=0,e.colorOffset=0,e.customData=[];const s=o.points.getData();let c=null,l=null,f=null;const u=o.colors?o.colors.getNumberOfComponents():0,d=o.tcoords?o.tcoords.getNumberOfComponents():0;o.normals&&(e.normalOffset=4*e.blockSize,e.blockSize+=3,c=o.normals.getData()),o.customAttributes&&o.customAttributes.forEach(N=>{N&&(e.customData.push({data:N.getData(),offset:4*e.blockSize,components:N.getNumberOfComponents(),name:N.getName()}),e.blockSize+=N.getNumberOfComponents())}),o.tcoords&&(e.tCoordOffset=4*e.blockSize,e.tCoordComponents=d,e.blockSize+=d,l=o.tcoords.getData()),o.colors?(e.colorComponents=o.colors.getNumberOfComponents(),e.colorOffset=0,f=o.colors.getData(),e.colorBO||(e.colorBO=Pa.newInstance()),e.colorBO.setOpenGLRenderWindow(e._openGLRenderWindow)):e.colorBO=null,e.stride=4*e.blockSize;let h=0,g=0,p=0,v=0,x=0,m=0,y;const w={anythingToPoints(N,V,$,H){for(let Y=0;Y2)for(let Y=0;Y2){for(let Y=0;Y1?(N-1)*2:0},polysToWireframe(N,V){return N>2?N*2:0},stripsToWireframe(N,V){return N>2?N*4-6:0},polysToSurface(N,V){return N>2?(N-2)*3:0},stripsToSurface(N,V,$){return N>2?(N-2)*3:0}};let S=null,T=null;i===kr.POINTS||n==="verts"?(S=w.anythingToPoints,T=C.anythingToPoints):i===kr.WIREFRAME||n==="lines"?(S=w[`${n}ToWireframe`],T=C[`${n}ToWireframe`]):(S=w[`${n}ToSurface`],T=C[`${n}ToSurface`]);const _=r.getData(),E=_.length;let D=0;for(let N=0;N0&&(Math.abs(A)/L>1e6||Math.abs(Math.log10(L))>3||L===0&&A>1e6)){const N=new Float64Array(3),V=new Float64Array(3);for(let $=0;$<3;++$){const H=o.points.getRange($),Y=H[1]-H[0];N[$]=.5*(H[1]+H[0]),V[$]=Y>0?1/Y:1}t.setCoordShiftAndScale(N,V)}else e.coordShiftAndScaleEnabled===!0&&t.setCoordShiftAndScale(null,null);if(a)if(!a.points&&!a.cells)a.points=new Int32Array(D),a.cells=new Int32Array(D);else{const N=new Int32Array(D+a.points.length);N.set(a.points),a.points=N;const V=new Int32Array(D+a.cells.length);V.set(a.cells),a.cells=V}let P=o.vertexOffset;y=function(V,$){if(a&&(a.points[P]=V,a.cells[P]=m+o.cellOffset),++P,h=V*3,e.coordShiftAndScaleEnabled?(I[R++]=(s[h++]-e.coordShift[0])*e.coordScale[0],I[R++]=(s[h++]-e.coordShift[1])*e.coordScale[1],I[R++]=(s[h++]-e.coordShift[2])*e.coordScale[2]):(I[R++]=s[h++],I[R++]=s[h++],I[R++]=s[h++]),c!==null&&(o.haveCellNormals?g=(m+o.cellOffset)*3:g=V*3,I[R++]=c[g++],I[R++]=c[g++],I[R++]=c[g++]),e.customData.forEach(H=>{x=V*H.components;for(let Y=0;Y{if(r!==null&&(r.constructor!==Float64Array||r.length!==3)){FT("Wrong type for coordShift, expected vec3 or null");return}if(n!==null&&(n.constructor!==Float64Array||n.length!==3)){FT("Wrong type for coordScale, expected vec3 or null");return}(e.coordShift===null||r===null||!W5(r,e.coordShift))&&(e.coordShift=r),(e.coordScale===null||n===null||!W5(n,e.coordScale))&&(e.coordScale=n),e.coordShiftAndScaleEnabled=gj(e.coordShift,e.coordScale),e.coordShiftAndScaleEnabled?e.inverseShiftAndScaleMatrix=hj(e.coordShift,e.coordScale):e.inverseShiftAndScaleMatrix=null}}const mj={elementCount:0,stride:0,colorBOStride:0,vertexOffset:0,normalOffset:0,tCoordOffset:0,tCoordComponents:0,colorOffset:0,colorComponents:0,tcoordBO:null,customData:[],coordShift:null,coordScale:null,coordShiftAndScaleEnabled:!1,inverseShiftAndScaleMatrix:null};function db(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mj,r),Pa.extend(t,e,r),W.setGet(t,e,["colorBO","elementCount","stride","colorBOStride","vertexOffset","normalOffset","tCoordOffset","tCoordComponents","colorOffset","colorComponents","customData"]),W.get(t,e,["coordShift","coordScale","coordShiftAndScaleEnabled","inverseShiftAndScaleMatrix"]),pj(t,e)}const vj=W.newInstance(db);var yj={newInstance:vj,extend:db};const{vtkErrorMacro:xj}=W;function wj(t,e){e.classHierarchy.push("vtkShader"),t.compile=()=>{let r=e.context.VERTEX_SHADER;if(!e.source||!e.source.length||e.shaderType==="Unknown")return!1;switch(e.handle!==0&&(e.context.deleteShader(e.handle),e.handle=0),e.shaderType){case"Fragment":r=e.context.FRAGMENT_SHADER;break;case"Vertex":default:r=e.context.VERTEX_SHADER;break}if(e.handle=e.context.createShader(r),e.context.shaderSource(e.handle,e.source),e.context.compileShader(e.handle),!e.context.getShaderParameter(e.handle,e.context.COMPILE_STATUS)){const i=e.context.getShaderInfoLog(e.handle);return xj(`Error compiling shader '${e.source}': ${i}`),e.context.deleteShader(e.handle),e.handle=0,!1}return!0},t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(e.context.deleteShader(e.handle),e.handle=0,e.dirty=!0)}}const Cj={shaderType:"Unknown",source:"",error:"",handle:0,dirty:!1,context:null};function hb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Cj,r),W.obj(t,e),W.setGet(t,e,["shaderType","source","error","handle","context"]),wj(t,e)}const Sj=W.newInstance(hb,"vtkShader");var _v={newInstance:Sj,extend:hb};const{vtkErrorMacro:Uo}=W;function Tj(t,e,r,n){const i=typeof r=="string"?r:r.join(` +`),o=n===!1?e:new RegExp(e,"g"),a=t.replace(o,i);return{replace:a!==i,result:a}}function _j(t,e){e.classHierarchy.push("vtkShaderProgram"),t.compileShader=()=>e.vertexShader.compile()?e.fragmentShader.compile()?!t.attachShader(e.vertexShader)||!t.attachShader(e.fragmentShader)?(Uo(e.error),0):t.link()?(t.setCompiled(!0),1):(Uo(`Links failed: ${e.error}`),0):(Uo(e.fragmentShader.getSource().split(` `).map((r,n)=>`${n}: ${r}`).join(` -`)),Fo(e.fragmentShader.getError()),0):(Fo(e.vertexShader.getSource().split(` +`)),Uo(e.fragmentShader.getError()),0):(Uo(e.vertexShader.getSource().split(` `).map((r,n)=>`${n}: ${r}`).join(` -`)),Fo(e.vertexShader.getError()),0),t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(t.release(),e.vertexShaderHandle!==0&&(e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=0),e.fragmentShaderHandle!==0&&(e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=0),e.context.deleteProgram(e.handle),e.handle=0,t.setCompiled(!1))},t.bind=()=>!e.linked&&!t.link()?!1:(e.context.useProgram(e.handle),t.setBound(!0),!0),t.isBound=()=>!!e.bound,t.release=()=>{e.context.useProgram(null),t.setBound(!1)},t.setContext=r=>{e.vertexShader.setContext(r),e.fragmentShader.setContext(r),e.geometryShader.setContext(r)},t.link=()=>{if(e.linked)return!0;if(e.handle===0)return e.error="Program has not been initialized, and/or does not have shaders.",!1;if(e.uniformLocs={},e.context.linkProgram(e.handle),!e.context.getProgramParameter(e.handle,e.context.LINK_STATUS)){const n=e.context.getProgramInfoLog(e.handle);return Fo(`Error linking shader ${n}`),e.handle=0,!1}return t.setLinked(!0),e.attributeLocs={},!0},t.setUniformMatrix=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;const o=new Float32Array(n);return e.context.uniformMatrix4fv(i,!1,o),!0},t.setUniformMatrix3x3=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;const o=new Float32Array(n);return e.context.uniformMatrix3fv(i,!1,o),!0},t.setUniformf=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1f(i,n),!0)},t.setUniformfv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1fv(i,n),!0)},t.setUniformi=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1i(i,n),!0)},t.setUniformiv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1iv(i,n),!0)},t.setUniform2f=(r,n,i)=>{const o=t.findUniform(r);if(o===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(i===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2f(o,n,i),!0},t.setUniform2fv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform2fv(i,n),!0)},t.setUniform2i=(r,n,i)=>{const o=t.findUniform(r);if(o===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(i===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2i(o,n,i),!0},t.setUniform2iv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform2iv(i,n),!0)},t.setUniform3f=(r,n,i,o)=>{const a=t.findUniform(r);if(a===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(o===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(a,n,i,o),!0},t.setUniform3fArray=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(!Array.isArray(n)||n.length!==3)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(i,n[0],n[1],n[2]),!0},t.setUniform3fv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform3fv(i,n),!0)},t.setUniform3i=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform3iv(i,n),!0)},t.setUniform4f=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform4fv(i,n),!0)},t.setUniform4i=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform4iv(i,n),!0)},t.findUniform=r=>{if(!r||!e.linked)return-1;let n=e.uniformLocs[r];return n!==void 0?n:(n=e.context.getUniformLocation(e.handle,r),n===null?(e.error=`Uniform ${r} not found in current shader program.`,e.uniformLocs[r]=-1,-1):(e.uniformLocs[r]=n,n))},t.isUniformUsed=r=>{if(!r)return!1;let n=e.uniformLocs[r];return n!==void 0?n!==null:e.linked?(n=e.context.getUniformLocation(e.handle,r),e.uniformLocs[r]=n,n!==null):(Fo("attempt to find uniform when the shader program is not linked"),!1)},t.isAttributeUsed=r=>{if(!r)return!1;if(r in e.attributeLocs)return!0;if(!e.linked)return Fo("attempt to find uniform when the shader program is not linked"),!1;const n=e.context.getAttribLocation(e.handle,r);return n===-1?!1:(e.attributeLocs[r]=n,!0)},t.attachShader=r=>{if(r.getHandle()===0)return e.error="Shader object was not initialized, cannot attach it.",!1;if(r.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;if(e.handle===0){const n=e.context.createProgram();if(n===0)return e.error="Could not create shader program.",!1;e.handle=n,e.linked=!1}return r.getShaderType()==="Vertex"&&(e.vertexShaderHandle!==0&&e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=r.getHandle()),r.getShaderType()==="Fragment"&&(e.fragmentShaderHandle!==0&&e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=r.getHandle()),e.context.attachShader(e.handle,r.getHandle()),t.setLinked(!1),!0},t.detachShader=r=>{if(r.getHandle()===0)return e.error="shader object was not initialized, cannot attach it.",!1;if(r.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;switch(e.handle===0&&(e.error="This shader program has not been initialized yet."),r.getShaderType()){case"Vertex":return e.vertexShaderHandle!==r.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,r.getHandle()),e.vertexShaderHandle=0,e.linked=!1,!0);case"Fragment":return e.fragmentShaderHandle!==r.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,r.getHandle()),e.fragmentShaderHandle=0,e.linked=!1,!0);default:return!1}},t.setContext=r=>{e.context=r,e.vertexShader.setContext(r),e.fragmentShader.setContext(r),e.geometryShader.setContext(r)},t.setLastCameraMTime=r=>{e.lastCameraMTime=r}}const xj={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function lb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xj,r),e.attributesLocs={},e.uniformLocs={},e.vertexShader=Sv.newInstance(),e.vertexShader.setShaderType("Vertex"),e.fragmentShader=Sv.newInstance(),e.fragmentShader.setShaderType("Fragment"),e.geometryShader=Sv.newInstance(),e.geometryShader.setShaderType("Geometry"),W.obj(t,e),W.get(t,e,["lastCameraMTime"]),W.setGet(t,e,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),yj(t,e)}const wj=W.newInstance(lb,"vtkShaderProgram");var ce={newInstance:wj,extend:lb,substitute:vj};function Cj(t,e){e.classHierarchy.push("vtkOpenGLVertexArrayObject"),t.exposedMethod=()=>{},t.initialize=()=>{e.instancingExtension=null,e._openGLRenderWindow.getWebgl2()||(e.instancingExtension=e.context.getExtension("ANGLE_instanced_arrays")),!e.forceEmulation&&e._openGLRenderWindow&&e._openGLRenderWindow.getWebgl2()?(e.extension=null,e.supported=!0,e.handleVAO=e.context.createVertexArray()):(e.extension=e.context.getExtension("OES_vertex_array_object"),!e.forceEmulation&&e.extension?(e.supported=!0,e.handleVAO=e.extension.createVertexArrayOES()):e.supported=!1)},t.isReady=()=>e.handleVAO!==0||e.supported===!1,t.bind=()=>{if(t.isReady()||t.initialize(),t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(e.handleVAO):e.context.bindVertexArray(e.handleVAO);else if(t.isReady()){const r=e.context;for(let n=0;n0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(a.index+c,1):r.vertexAttribDivisor(a.index+c,1))}}}},t.release=()=>{if(t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(null):e.context.bindVertexArray(null);else if(t.isReady()){const r=e.context;for(let n=0;n0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(a.index+c,0):r.vertexAttribDivisor(a.index+c,0)),r.disableVertexAttribArray(a.index+c)}}}},t.shaderProgramChanged=()=>{t.release(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.handleProgram=0},t.releaseGraphicsResources=()=>{t.shaderProgramChanged(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.supported=!0,e.handleProgram=0},t.addAttributeArray=(r,n,i,o,a,s,c,l)=>t.addAttributeArrayWithDivisor(r,n,i,o,a,s,c,l,0,!1),t.addAttributeArrayWithDivisor=(r,n,i,o,a,s,c,l,f,u)=>{if(!r||!r.isBound()||n.getHandle()===0||n.getType()!==Fa.ARRAY_BUFFER||(e.handleProgram===0&&(e.handleProgram=r.getHandle()),t.isReady()||t.initialize(),!t.isReady()||e.handleProgram!==r.getHandle()))return!1;const d=e.context,h={};if(h.name=i,h.index=d.getAttribLocation(e.handleProgram,i),h.offset=o,h.stride=a,h.type=s,h.size=c,h.normalize=l,h.isMatrix=u,h.divisor=f,h.Index===-1)return!1;if(n.bind(),d.enableVertexAttribArray(h.index),d.vertexAttribPointer(h.index,h.size,h.type,h.normalize,h.stride,h.offset),f>0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(h.index,1):d.vertexAttribDivisor(h.index,1)),h.buffer=n.getHandle(),!e.supported){let g=!1;for(let p=0;p{const u=t.addAttributeArrayWithDivisor(r,n,i,o,a,s,c,l,f,!0);if(!u)return u;const d=e.context,h=d.getAttribLocation(e.handleProgram,i);for(let g=1;g0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(h+g,1):d.vertexAttribDivisor(h+g,1));return!0},t.removeAttributeArray=r=>{if(!t.isReady()||e.handleProgram===0)return!1;if(!e.supported)for(let n=0;n{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))}}const Sj={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function ub(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Sj,r),e.buffers=[],W.obj(t,e),W.get(t,e,["supported"]),W.setGet(t,e,["forceEmulation"]),Cj(t,e)}const Tj=W.newInstance(ub,"vtkOpenGLVertexArrayObject");var Ew={newInstance:Tj,extend:ub};const hs={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function _j(t,e){e.classHierarchy.push("vtkOpenGLHelper"),t.setOpenGLRenderWindow=r=>{e.context=r.getContext(),e.program.setContext(e.context),e.VAO.setOpenGLRenderWindow(r),e.CABO.setOpenGLRenderWindow(r)},t.releaseGraphicsResources=r=>{e.VAO.releaseGraphicsResources(),e.CABO.releaseGraphicsResources(),e.CABO.setElementCount(0)},t.drawArrays=(r,n,i,o)=>{if(e.CABO.getElementCount()){const a=t.getOpenGLMode(i),s=t.haveWideLines(r,n),c=e.context,l=c.getParameter(c.DEPTH_WRITEMASK);e.pointPicking&&c.depthMask(!1),a===c.LINES&&s?(t.updateShaders(r,n,o),c.drawArraysInstanced(a,0,e.CABO.getElementCount(),2*Math.ceil(n.getProperty().getLineWidth()))):(c.lineWidth(n.getProperty().getLineWidth()),t.updateShaders(r,n,o),c.drawArrays(a,0,e.CABO.getElementCount()),c.lineWidth(1));const u=(a===c.POINTS?1:0)||(a===c.LINES?2:3);return e.pointPicking&&c.depthMask(l),e.CABO.getElementCount()/u}return 0},t.getOpenGLMode=r=>{if(e.pointPicking)return e.context.POINTS;const n=e.primitiveType;return r===Vr.POINTS||n===hs.Points?e.context.POINTS:r===Vr.WIREFRAME||n===hs.Lines||n===hs.TrisEdges||n===hs.TriStripsEdges?e.context.LINES:e.context.TRIANGLES},t.haveWideLines=(r,n)=>n.getProperty().getLineWidth()>1?!(e.CABO.getOpenGLRenderWindow()&&e.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=n.getProperty().getLineWidth()):!1,t.getNeedToRebuildShaders=(r,n,i)=>!!(i.getNeedToRebuildShaders(t,r,n)||t.getProgram()===0||t.getShaderSourceTime().getMTime(){if(t.getNeedToRebuildShaders(r,n,i)){const o={Vertex:null,Fragment:null,Geometry:null};i.buildShaders(o,r,n);const a=e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);a!==t.getProgram()&&(t.setProgram(a),t.getVAO().releaseGraphicsResources()),t.getShaderSourceTime().modified()}else e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(t.getProgram());t.getVAO().bind(),i.setMapperShaderParameters(t,r,n),i.setPropertyShaderParameters(t,r,n),i.setCameraShaderParameters(t,r,n),i.setLightingShaderParameters(t,r,n),i.invokeShaderCallbacks(t,r,n)},t.setMapperShaderParameters=(r,n,i)=>{if(t.haveWideLines(r,n)){t.getProgram().setUniform2f("viewportSize",i.usize,i.vsize);const o=parseFloat(n.getProperty().getLineWidth()),a=o/2;t.getProgram().setUniformf("lineWidthStepSize",o/Math.ceil(o)),t.getProgram().setUniformf("halfLineWidth",a)}e.primitiveType===hs.Points||n.getProperty().getRepresentation()===Vr.POINTS?t.getProgram().setUniformf("pointSize",n.getProperty().getPointSize()):e.pointPicking&&t.getProgram().setUniformf("pointSize",t.getPointPickingPrimitiveSize())},t.replaceShaderPositionVC=(r,n,i)=>{let o=r.Vertex;o=ce.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,o=ce.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,t.getOpenGLMode(i.getProperty().getRepresentation())===e.context.LINES&&t.haveWideLines(n,i)&&(o=ce.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,o=ce.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),r.Vertex=o},t.getPointPickingPrimitiveSize=()=>e.primitiveType===hs.Points?2:e.primitiveType===hs.Lines?4:6,t.getAllocatedGPUMemoryInBytes=()=>t.getCABO().getAllocatedGPUMemoryInBytes()}const Ej={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function fb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ej,r),W.obj(t,e),e.shaderSourceTime={},W.obj(e.shaderSourceTime),e.attributeUpdateTime={},W.obj(e.attributeUpdateTime),W.setGet(t,e,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),e.program=ce.newInstance(),e.VAO=Ew.newInstance(),e.CABO=dj.newInstance(),_j(t,e)}const Dj=W.newInstance(fb);var ua={newInstance:Dj,extend:fb,primTypes:hs};const{Representation:Tf,Interpolation:_f}=ab;function kT(t){return()=>W.vtkErrorMacro(`vtkProperty::${t} - NOT IMPLEMENTED`)}function bj(t,e){e.classHierarchy.push("vtkProperty"),t.setColor=(r,n,i)=>{Array.isArray(r)?(e.color[0]!==r[0]||e.color[1]!==r[1]||e.color[2]!==r[2])&&(e.color[0]=r[0],e.color[1]=r[1],e.color[2]=r[2],t.modified()):(e.color[0]!==r||e.color[1]!==n||e.color[2]!==i)&&(e.color[0]=r,e.color[1]=n,e.color[2]=i,t.modified()),t.setDiffuseColor(e.color),t.setAmbientColor(e.color),t.setSpecularColor(e.color)},t.computeCompositeColor=kT("ComputeCompositeColor"),t.getColor=()=>{let r=0;e.ambient+e.diffuse+e.specular>0&&(r=1/(e.ambient+e.diffuse+e.specular));for(let n=0;n<3;n++)e.color[n]=r*(e.ambient*e.ambientColor[n]+e.diffuse*e.diffuseColor[n]+e.specular*e.specularColor[n]);return[].concat(e.color)},t.setSpecularPower=r=>{const n=1/Math.max(1,r);(e.roughness!==n||e.specularPower!==r)&&(e.specularPower=r,e.roughness=n,t.modified())},t.addShaderVariable=kT("AddShaderVariable"),t.setInterpolationToFlat=()=>t.setInterpolation(_f.FLAT),t.setInterpolationToGouraud=()=>t.setInterpolation(_f.GOURAUD),t.setInterpolationToPhong=()=>t.setInterpolation(_f.PHONG),t.getInterpolationAsString=()=>W.enumToString(_f,e.interpolation),t.setRepresentationToWireframe=()=>t.setRepresentation(Tf.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(Tf.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(Tf.POINTS),t.getRepresentationAsString=()=>W.enumToString(Tf,e.representation)}const Ij={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:_f.GOURAUD,representation:Tf.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function db(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ij,r),W.obj(t,e),W.setGet(t,e,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),W.setGetArray(t,e,["ambientColor","specularColor","diffuseColor","edgeColor"],3),bj(t,e)}const Oj=W.newInstance(db,"vtkProperty");var m0={newInstance:Oj,extend:db,...ab};const{Representation:Mj}=m0,{vtkErrorMacro:VT}=W;function Rj(t){const e=ce.substitute(t.Fragment,"//VTK::RenderPassFragmentShader::Impl",` +`)),Uo(e.vertexShader.getError()),0),t.cleanup=()=>{e.shaderType==="Unknown"||e.handle===0||(t.release(),e.vertexShaderHandle!==0&&(e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=0),e.fragmentShaderHandle!==0&&(e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=0),e.context.deleteProgram(e.handle),e.handle=0,t.setCompiled(!1))},t.bind=()=>!e.linked&&!t.link()?!1:(e.context.useProgram(e.handle),t.setBound(!0),!0),t.isBound=()=>!!e.bound,t.release=()=>{e.context.useProgram(null),t.setBound(!1)},t.setContext=r=>{e.vertexShader.setContext(r),e.fragmentShader.setContext(r),e.geometryShader.setContext(r)},t.link=()=>{if(e.linked)return!0;if(e.handle===0)return e.error="Program has not been initialized, and/or does not have shaders.",!1;if(e.uniformLocs={},e.context.linkProgram(e.handle),!e.context.getProgramParameter(e.handle,e.context.LINK_STATUS)){const n=e.context.getProgramInfoLog(e.handle);return Uo(`Error linking shader ${n}`),e.handle=0,!1}return t.setLinked(!0),e.attributeLocs={},!0},t.setUniformMatrix=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;const o=new Float32Array(n);return e.context.uniformMatrix4fv(i,!1,o),!0},t.setUniformMatrix3x3=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;const o=new Float32Array(n);return e.context.uniformMatrix3fv(i,!1,o),!0},t.setUniformf=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1f(i,n),!0)},t.setUniformfv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1fv(i,n),!0)},t.setUniformi=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1i(i,n),!0)},t.setUniformiv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform1iv(i,n),!0)},t.setUniform2f=(r,n,i)=>{const o=t.findUniform(r);if(o===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(i===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2f(o,n,i),!0},t.setUniform2fv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform2fv(i,n),!0)},t.setUniform2i=(r,n,i)=>{const o=t.findUniform(r);if(o===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(i===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform2i(o,n,i),!0},t.setUniform2iv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform2iv(i,n),!0)},t.setUniform3f=(r,n,i,o)=>{const a=t.findUniform(r);if(a===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(o===void 0)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(a,n,i,o),!0},t.setUniform3fArray=(r,n)=>{const i=t.findUniform(r);if(i===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;if(!Array.isArray(n)||n.length!==3)throw new RangeError("Invalid number of values for array");return e.context.uniform3f(i,n[0],n[1],n[2]),!0},t.setUniform3fv=(r,n)=>{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform3fv(i,n),!0)},t.setUniform3i=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform3iv(i,n),!0)},t.setUniform4f=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform4fv(i,n),!0)},t.setUniform4i=function(r){const n=t.findUniform(r);if(n===-1)return e.error=`Could not set uniform ${r} . No such uniform.`,!1;for(var i=arguments.length,o=new Array(i>1?i-1:0),a=1;a{const i=t.findUniform(r);return i===-1?(e.error=`Could not set uniform ${r} . No such uniform.`,!1):(e.context.uniform4iv(i,n),!0)},t.findUniform=r=>{if(!r||!e.linked)return-1;let n=e.uniformLocs[r];return n!==void 0?n:(n=e.context.getUniformLocation(e.handle,r),n===null?(e.error=`Uniform ${r} not found in current shader program.`,e.uniformLocs[r]=-1,-1):(e.uniformLocs[r]=n,n))},t.isUniformUsed=r=>{if(!r)return!1;let n=e.uniformLocs[r];return n!==void 0?n!==null:e.linked?(n=e.context.getUniformLocation(e.handle,r),e.uniformLocs[r]=n,n!==null):(Uo("attempt to find uniform when the shader program is not linked"),!1)},t.isAttributeUsed=r=>{if(!r)return!1;if(r in e.attributeLocs)return!0;if(!e.linked)return Uo("attempt to find uniform when the shader program is not linked"),!1;const n=e.context.getAttribLocation(e.handle,r);return n===-1?!1:(e.attributeLocs[r]=n,!0)},t.attachShader=r=>{if(r.getHandle()===0)return e.error="Shader object was not initialized, cannot attach it.",!1;if(r.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;if(e.handle===0){const n=e.context.createProgram();if(n===0)return e.error="Could not create shader program.",!1;e.handle=n,e.linked=!1}return r.getShaderType()==="Vertex"&&(e.vertexShaderHandle!==0&&e.context.detachShader(e.handle,e.vertexShaderHandle),e.vertexShaderHandle=r.getHandle()),r.getShaderType()==="Fragment"&&(e.fragmentShaderHandle!==0&&e.context.detachShader(e.handle,e.fragmentShaderHandle),e.fragmentShaderHandle=r.getHandle()),e.context.attachShader(e.handle,r.getHandle()),t.setLinked(!1),!0},t.detachShader=r=>{if(r.getHandle()===0)return e.error="shader object was not initialized, cannot attach it.",!1;if(r.getShaderType()==="Unknown")return e.error="Shader object is of type Unknown and cannot be used.",!1;switch(e.handle===0&&(e.error="This shader program has not been initialized yet."),r.getShaderType()){case"Vertex":return e.vertexShaderHandle!==r.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,r.getHandle()),e.vertexShaderHandle=0,e.linked=!1,!0);case"Fragment":return e.fragmentShaderHandle!==r.getHandle()?(e.error="The supplied shader was not attached to this program.",!1):(e.context.detachShader(e.handle,r.getHandle()),e.fragmentShaderHandle=0,e.linked=!1,!0);default:return!1}},t.setContext=r=>{e.context=r,e.vertexShader.setContext(r),e.fragmentShader.setContext(r),e.geometryShader.setContext(r)},t.setLastCameraMTime=r=>{e.lastCameraMTime=r}}const Ej={vertexShaderHandle:0,fragmentShaderHandle:0,geometryShaderHandle:0,vertexShader:null,fragmentShader:null,geometryShader:null,linked:!1,bound:!1,compiled:!1,error:"",handle:0,numberOfOutputs:0,attributesLocs:null,uniformLocs:null,md5Hash:0,context:null,lastCameraMTime:null};function gb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ej,r),e.attributesLocs={},e.uniformLocs={},e.vertexShader=_v.newInstance(),e.vertexShader.setShaderType("Vertex"),e.fragmentShader=_v.newInstance(),e.fragmentShader.setShaderType("Fragment"),e.geometryShader=_v.newInstance(),e.geometryShader.setShaderType("Geometry"),W.obj(t,e),W.get(t,e,["lastCameraMTime"]),W.setGet(t,e,["error","handle","compiled","bound","md5Hash","vertexShader","fragmentShader","geometryShader","linked"]),_j(t,e)}const Dj=W.newInstance(gb,"vtkShaderProgram");var ce={newInstance:Dj,extend:gb,substitute:Tj};function bj(t,e){e.classHierarchy.push("vtkOpenGLVertexArrayObject"),t.exposedMethod=()=>{},t.initialize=()=>{e.instancingExtension=null,e._openGLRenderWindow.getWebgl2()||(e.instancingExtension=e.context.getExtension("ANGLE_instanced_arrays")),!e.forceEmulation&&e._openGLRenderWindow&&e._openGLRenderWindow.getWebgl2()?(e.extension=null,e.supported=!0,e.handleVAO=e.context.createVertexArray()):(e.extension=e.context.getExtension("OES_vertex_array_object"),!e.forceEmulation&&e.extension?(e.supported=!0,e.handleVAO=e.extension.createVertexArrayOES()):e.supported=!1)},t.isReady=()=>e.handleVAO!==0||e.supported===!1,t.bind=()=>{if(t.isReady()||t.initialize(),t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(e.handleVAO):e.context.bindVertexArray(e.handleVAO);else if(t.isReady()){const r=e.context;for(let n=0;n0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(a.index+c,1):r.vertexAttribDivisor(a.index+c,1))}}}},t.release=()=>{if(t.isReady()&&e.supported)e.extension?e.extension.bindVertexArrayOES(null):e.context.bindVertexArray(null);else if(t.isReady()){const r=e.context;for(let n=0;n0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(a.index+c,0):r.vertexAttribDivisor(a.index+c,0)),r.disableVertexAttribArray(a.index+c)}}}},t.shaderProgramChanged=()=>{t.release(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.handleProgram=0},t.releaseGraphicsResources=()=>{t.shaderProgramChanged(),e.handleVAO&&(e.extension?e.extension.deleteVertexArrayOES(e.handleVAO):e.context.deleteVertexArray(e.handleVAO)),e.handleVAO=0,e.supported=!0,e.handleProgram=0},t.addAttributeArray=(r,n,i,o,a,s,c,l)=>t.addAttributeArrayWithDivisor(r,n,i,o,a,s,c,l,0,!1),t.addAttributeArrayWithDivisor=(r,n,i,o,a,s,c,l,f,u)=>{if(!r||!r.isBound()||n.getHandle()===0||n.getType()!==Ua.ARRAY_BUFFER||(e.handleProgram===0&&(e.handleProgram=r.getHandle()),t.isReady()||t.initialize(),!t.isReady()||e.handleProgram!==r.getHandle()))return!1;const d=e.context,h={};if(h.name=i,h.index=d.getAttribLocation(e.handleProgram,i),h.offset=o,h.stride=a,h.type=s,h.size=c,h.normalize=l,h.isMatrix=u,h.divisor=f,h.Index===-1)return!1;if(n.bind(),d.enableVertexAttribArray(h.index),d.vertexAttribPointer(h.index,h.size,h.type,h.normalize,h.stride,h.offset),f>0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(h.index,1):d.vertexAttribDivisor(h.index,1)),h.buffer=n.getHandle(),!e.supported){let g=!1;for(let p=0;p{const u=t.addAttributeArrayWithDivisor(r,n,i,o,a,s,c,l,f,!0);if(!u)return u;const d=e.context,h=d.getAttribLocation(e.handleProgram,i);for(let g=1;g0&&(e.instancingExtension?e.instancingExtension.vertexAttribDivisorANGLE(h+g,1):d.vertexAttribDivisor(h+g,1));return!0},t.removeAttributeArray=r=>{if(!t.isReady()||e.handleProgram===0)return!1;if(!e.supported)for(let n=0;n{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))}}const Ij={forceEmulation:!1,handleVAO:0,handleProgram:0,supported:!0,buffers:null,context:null};function pb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ij,r),e.buffers=[],W.obj(t,e),W.get(t,e,["supported"]),W.setGet(t,e,["forceEmulation"]),bj(t,e)}const Oj=W.newInstance(pb,"vtkOpenGLVertexArrayObject");var bw={newInstance:Oj,extend:pb};const gs={Start:0,Points:0,Lines:1,Tris:2,TriStrips:3,TrisEdges:4,TriStripsEdges:5,End:6};function Mj(t,e){e.classHierarchy.push("vtkOpenGLHelper"),t.setOpenGLRenderWindow=r=>{e.context=r.getContext(),e.program.setContext(e.context),e.VAO.setOpenGLRenderWindow(r),e.CABO.setOpenGLRenderWindow(r)},t.releaseGraphicsResources=r=>{e.VAO.releaseGraphicsResources(),e.CABO.releaseGraphicsResources(),e.CABO.setElementCount(0)},t.drawArrays=(r,n,i,o)=>{if(e.CABO.getElementCount()){const a=t.getOpenGLMode(i),s=t.haveWideLines(r,n),c=e.context,l=c.getParameter(c.DEPTH_WRITEMASK);e.pointPicking&&c.depthMask(!1),a===c.LINES&&s?(t.updateShaders(r,n,o),c.drawArraysInstanced(a,0,e.CABO.getElementCount(),2*Math.ceil(n.getProperty().getLineWidth()))):(c.lineWidth(n.getProperty().getLineWidth()),t.updateShaders(r,n,o),c.drawArrays(a,0,e.CABO.getElementCount()),c.lineWidth(1));const u=(a===c.POINTS?1:0)||(a===c.LINES?2:3);return e.pointPicking&&c.depthMask(l),e.CABO.getElementCount()/u}return 0},t.getOpenGLMode=r=>{if(e.pointPicking)return e.context.POINTS;const n=e.primitiveType;return r===kr.POINTS||n===gs.Points?e.context.POINTS:r===kr.WIREFRAME||n===gs.Lines||n===gs.TrisEdges||n===gs.TriStripsEdges?e.context.LINES:e.context.TRIANGLES},t.haveWideLines=(r,n)=>n.getProperty().getLineWidth()>1?!(e.CABO.getOpenGLRenderWindow()&&e.CABO.getOpenGLRenderWindow().getHardwareMaximumLineWidth()>=n.getProperty().getLineWidth()):!1,t.getNeedToRebuildShaders=(r,n,i)=>!!(i.getNeedToRebuildShaders(t,r,n)||t.getProgram()===0||t.getShaderSourceTime().getMTime(){if(t.getNeedToRebuildShaders(r,n,i)){const o={Vertex:null,Fragment:null,Geometry:null};i.buildShaders(o,r,n);const a=e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgramArray(o.Vertex,o.Fragment,o.Geometry);a!==t.getProgram()&&(t.setProgram(a),t.getVAO().releaseGraphicsResources()),t.getShaderSourceTime().modified()}else e.CABO.getOpenGLRenderWindow().getShaderCache().readyShaderProgram(t.getProgram());t.getVAO().bind(),i.setMapperShaderParameters(t,r,n),i.setPropertyShaderParameters(t,r,n),i.setCameraShaderParameters(t,r,n),i.setLightingShaderParameters(t,r,n),i.invokeShaderCallbacks(t,r,n)},t.setMapperShaderParameters=(r,n,i)=>{if(t.haveWideLines(r,n)){t.getProgram().setUniform2f("viewportSize",i.usize,i.vsize);const o=parseFloat(n.getProperty().getLineWidth()),a=o/2;t.getProgram().setUniformf("lineWidthStepSize",o/Math.ceil(o)),t.getProgram().setUniformf("halfLineWidth",a)}e.primitiveType===gs.Points||n.getProperty().getRepresentation()===kr.POINTS?t.getProgram().setUniformf("pointSize",n.getProperty().getPointSize()):e.pointPicking&&t.getProgram().setUniformf("pointSize",t.getPointPickingPrimitiveSize())},t.replaceShaderPositionVC=(r,n,i)=>{let o=r.Vertex;o=ce.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform float pointSize;"]).result,o=ce.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," gl_PointSize = pointSize;"],!1).result,t.getOpenGLMode(i.getProperty().getRepresentation())===e.context.LINES&&t.haveWideLines(n,i)&&(o=ce.substitute(o,"//VTK::PositionVC::Dec",["//VTK::PositionVC::Dec","uniform vec2 viewportSize;","uniform float lineWidthStepSize;","uniform float halfLineWidth;"]).result,o=ce.substitute(o,"//VTK::PositionVC::Impl",["//VTK::PositionVC::Impl"," if (halfLineWidth > 0.0)"," {"," float offset = float(gl_InstanceID / 2) * lineWidthStepSize - halfLineWidth;"," vec4 tmpPos = gl_Position;"," vec3 tmpPos2 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * mod(float(gl_InstanceID), 2.0) * offset / viewportSize[0];"," tmpPos2.y = tmpPos2.y + 2.0 * mod(float(gl_InstanceID + 1), 2.0) * offset / viewportSize[1];"," gl_Position = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);"," }"]).result),r.Vertex=o},t.getPointPickingPrimitiveSize=()=>e.primitiveType===gs.Points?2:e.primitiveType===gs.Lines?4:6,t.getAllocatedGPUMemoryInBytes=()=>t.getCABO().getAllocatedGPUMemoryInBytes()}const Rj={context:null,program:null,shaderSourceTime:null,VAO:null,attributeUpdateTime:null,CABO:null,primitiveType:0,pointPicking:!1};function mb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Rj,r),W.obj(t,e),e.shaderSourceTime={},W.obj(e.shaderSourceTime),e.attributeUpdateTime={},W.obj(e.attributeUpdateTime),W.setGet(t,e,["program","shaderSourceTime","VAO","attributeUpdateTime","CABO","primitiveType","pointPicking"]),e.program=ce.newInstance(),e.VAO=bw.newInstance(),e.CABO=yj.newInstance(),Mj(t,e)}const Lj=W.newInstance(mb);var fa={newInstance:Lj,extend:mb,primTypes:gs};const{Representation:Ef,Interpolation:Df}=fb;function UT(t){return()=>W.vtkErrorMacro(`vtkProperty::${t} - NOT IMPLEMENTED`)}function Nj(t,e){e.classHierarchy.push("vtkProperty"),t.setColor=(r,n,i)=>{Array.isArray(r)?(e.color[0]!==r[0]||e.color[1]!==r[1]||e.color[2]!==r[2])&&(e.color[0]=r[0],e.color[1]=r[1],e.color[2]=r[2],t.modified()):(e.color[0]!==r||e.color[1]!==n||e.color[2]!==i)&&(e.color[0]=r,e.color[1]=n,e.color[2]=i,t.modified()),t.setDiffuseColor(e.color),t.setAmbientColor(e.color),t.setSpecularColor(e.color)},t.computeCompositeColor=UT("ComputeCompositeColor"),t.getColor=()=>{let r=0;e.ambient+e.diffuse+e.specular>0&&(r=1/(e.ambient+e.diffuse+e.specular));for(let n=0;n<3;n++)e.color[n]=r*(e.ambient*e.ambientColor[n]+e.diffuse*e.diffuseColor[n]+e.specular*e.specularColor[n]);return[].concat(e.color)},t.setSpecularPower=r=>{const n=1/Math.max(1,r);(e.roughness!==n||e.specularPower!==r)&&(e.specularPower=r,e.roughness=n,t.modified())},t.addShaderVariable=UT("AddShaderVariable"),t.setInterpolationToFlat=()=>t.setInterpolation(Df.FLAT),t.setInterpolationToGouraud=()=>t.setInterpolation(Df.GOURAUD),t.setInterpolationToPhong=()=>t.setInterpolation(Df.PHONG),t.getInterpolationAsString=()=>W.enumToString(Df,e.interpolation),t.setRepresentationToWireframe=()=>t.setRepresentation(Ef.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(Ef.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(Ef.POINTS),t.getRepresentationAsString=()=>W.enumToString(Ef,e.representation)}const Pj={color:[1,1,1],ambientColor:[1,1,1],diffuseColor:[1,1,1],specularColor:[1,1,1],edgeColor:[0,0,0],ambient:0,diffuse:1,metallic:0,roughness:.6,normalStrength:1,emission:1,baseIOR:1.45,specular:0,specularPower:1,opacity:1,interpolation:Df.GOURAUD,representation:Ef.SURFACE,edgeVisibility:!1,backfaceCulling:!1,frontfaceCulling:!1,pointSize:1,lineWidth:1,lighting:!0,shading:!1,materialName:null};function vb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Pj,r),W.obj(t,e),W.setGet(t,e,["lighting","interpolation","ambient","diffuse","metallic","roughness","normalStrength","emission","baseIOR","specular","specularPower","opacity","edgeVisibility","lineWidth","pointSize","backfaceCulling","frontfaceCulling","representation","diffuseTexture","metallicTexture","roughnessTexture","normalTexture","ambientOcclusionTexture","emissionTexture"]),W.setGetArray(t,e,["ambientColor","specularColor","diffuseColor","edgeColor"],3),Nj(t,e)}const Aj=W.newInstance(vb,"vtkProperty");var x0={newInstance:Aj,extend:vb,...fb};const{Representation:kj}=x0,{vtkErrorMacro:BT}=W;function Vj(t){const e=ce.substitute(t.Fragment,"//VTK::RenderPassFragmentShader::Impl",` float weight = gl_FragData[0].a * pow(max(1.1 - gl_FragCoord.z, 0.0), 2.0); gl_FragData[0] = vec4(gl_FragData[0].rgb*weight, gl_FragData[0].a); gl_FragData[1].r = weight; - `,!1);t.Fragment=e.result}const Lj=`//VTK::System::Dec + `,!1);t.Fragment=e.result}const Fj=`//VTK::System::Dec in vec2 tcoord; @@ -63,8 +63,8 @@ void main() float t2Color = texture(translucentRTexture, tcoord).r; gl_FragData[0] = vec4(t1Color.rgb/max(t2Color,0.01), 1.0 - t1Color.a); } -`;function Nj(t,e){e.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),t.createVertexBuffer=()=>{const r=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),i=new Uint16Array([4,0,1,3,2]),o=tt.newInstance({numberOfComponents:3,values:r});o.setName("points");const a=tt.newInstance({numberOfComponents:2,values:n});a.setName("tcoords");const s=tt.newInstance({numberOfComponents:1,values:i});e.tris.getCABO().createVBO(s,"polys",Mj.SURFACE,{points:o,tcoords:a,cellOffset:0}),e.VBOBuildTime.modified()},t.createFramebuffer=r=>{const n=r.getSize(),i=r.getContext();e.framebuffer=Km.newInstance(),e.framebuffer.setOpenGLRenderWindow(r),e.framebuffer.create(...n),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind(),e.translucentRGBATexture=yn.newInstance(),e.translucentRGBATexture.setInternalFormat(i.RGBA16F),e.translucentRGBATexture.setFormat(i.RGBA),e.translucentRGBATexture.setOpenGLDataType(i.HALF_FLOAT),e.translucentRGBATexture.setOpenGLRenderWindow(r),e.translucentRGBATexture.create2DFromRaw(n[0],n[1],4,"Float32Array",null),e.translucentRTexture=yn.newInstance(),e.translucentRTexture.setInternalFormat(i.R16F),e.translucentRTexture.setFormat(i.RED),e.translucentRTexture.setOpenGLDataType(i.HALF_FLOAT),e.translucentRTexture.setOpenGLRenderWindow(r),e.translucentRTexture.create2DFromRaw(n[0],n[1],1,"Float32Array",null),e.translucentZTexture=yn.newInstance(),e.translucentZTexture.setOpenGLRenderWindow(r),e.translucentZTexture.createDepthFromRaw(n[0],n[1],"Float32Array",null),e.framebuffer.setColorBuffer(e.translucentRGBATexture,0),e.framebuffer.setColorBuffer(e.translucentRTexture,1),e.framebuffer.setDepthBuffer(e.translucentZTexture)},t.createCopyShader=r=>{e.copyShader=r.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join(` -`),Lj,"")},t.createVBO=r=>{const n=r.getContext();e.tris.setOpenGLRenderWindow(r),t.createVertexBuffer();const i=e.copyShader;e.tris.getCABO().bind(),e.copyVAO.addAttributeArray(i,e.tris.getCABO(),"vertexDC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),n.FLOAT,3,n.FALSE)||VT("Error setting vertexDC in copy shader VAO."),e.copyVAO.addAttributeArray(i,e.tris.getCABO(),"tcoordTC",e.tris.getCABO().getTCoordOffset(),e.tris.getCABO().getStride(),n.FLOAT,2,n.FALSE)||VT("Error setting vertexDC in copy shader VAO.")},t.traverse=(r,n,i)=>{if(e.deleted)return;const o=r.getSize(),a=r.getContext();if(e._supported=!1,n.getSelector()||!a||!r.getWebgl2()||!a.getExtension("EXT_color_buffer_half_float")&&!a.getExtension("EXT_color_buffer_float")){t.setCurrentOperation("translucentPass"),n.traverse(t);return}if(e._supported=!0,e.framebuffer===null)t.createFramebuffer(r);else{const c=e.framebuffer.getSize();c===null||c[0]!==o[0]||c[1]!==o[1]?(e.framebuffer.releaseGraphicsResources(),e.translucentRGBATexture.releaseGraphicsResources(r),e.translucentRTexture.releaseGraphicsResources(r),e.translucentZTexture.releaseGraphicsResources(r),t.createFramebuffer(r)):(e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind())}a.drawBuffers([a.COLOR_ATTACHMENT0]),a.clearBufferfv(a.COLOR,0,[0,0,0,0]),a.clearBufferfv(a.DEPTH,0,[1]),a.colorMask(!1,!1,!1,!1),i.getOpaqueActorCount()>0&&(i.setCurrentOperation("opaqueZBufferPass"),n.traverse(i)),a.colorMask(!0,!0,!0,!0),a.drawBuffers([a.COLOR_ATTACHMENT0,a.COLOR_ATTACHMENT1]),a.viewport(0,0,o[0],o[1]),a.scissor(0,0,o[0],o[1]),a.clearBufferfv(a.COLOR,0,[0,0,0,1]),a.clearBufferfv(a.COLOR,1,[0,0,0,0]),a.enable(a.DEPTH_TEST),a.enable(a.BLEND),a.blendFuncSeparate(a.ONE,a.ONE,a.ZERO,a.ONE_MINUS_SRC_ALPHA),t.setCurrentOperation("translucentPass"),n.traverse(t),a.drawBuffers([a.NONE]),e.framebuffer.restorePreviousBindingsAndBuffers(),e.copyShader===null?t.createCopyShader(r):r.getShaderCache().readyShaderProgram(e.copyShader),e.copyVAO||(e.copyVAO=Ew.newInstance(),e.copyVAO.setOpenGLRenderWindow(r)),e.copyVAO.bind(),e.VBOBuildTime.getMTime()e._supported?Rj:null,t.releaseGraphicsResources=r=>{e.framebuffer&&(e.framebuffer.releaseGraphicsResources(r),e.framebuffer=null),e.translucentRGBATexture&&(e.translucentRGBATexture.releaseGraphicsResources(r),e.translucentRGBATexture=null),e.translucentRTexture&&(e.translucentRTexture.releaseGraphicsResources(r),e.translucentRTexture=null),e.translucentZTexture&&(e.translucentZTexture.releaseGraphicsResources(r),e.translucentZTexture=null),e.copyVAO&&(e.copyVAO.releaseGraphicsResources(r),e.copyVAO=null),e.copyShader&&(e.copyShader.releaseGraphicsResources(r),e.copyShader=null),e.tris&&(e.tris.releaseGraphicsResources(r),e.tris=null),t.modified()}}const Pj={framebuffer:null,copyShader:null,tris:null};function hb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Pj,r),uw.extend(t,e,r),e.VBOBuildTime={},W.obj(e.VBOBuildTime,{mtime:0}),e.tris=ua.newInstance(),W.get(t,e,["framebuffer"]),Nj(t,e)}const Aj=W.newInstance(hb,"vtkOpenGLOrderIndependentTranslucentPass");var kj={newInstance:Aj,extend:hb};function Vj(t,e){e.classHierarchy.push("vtkForwardPass"),t.traverse=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(e.deleted)return;e._currentParent=n,t.setCurrentOperation("buildPass"),r.traverse(t);const i=r.getRenderable().getNumberOfLayers(),o=r.getRenderable().getRenderersByReference();for(let a=0;a0||e.translucentActorCount>0)&&e.volumeCount>0||e.depthRequested){const f=r.getFramebufferSize();e.framebuffer===null&&(e.framebuffer=Km.newInstance()),e.framebuffer.setOpenGLRenderWindow(r),e.framebuffer.saveCurrentBindingsAndBuffers();const u=e.framebuffer.getSize();(u===null||u[0]!==f[0]||u[1]!==f[1])&&(e.framebuffer.create(f[0],f[1]),e.framebuffer.populateFramebuffer()),e.framebuffer.bind(),t.setCurrentOperation("zBufferPass"),l.traverse(t),e.framebuffer.restorePreviousBindingsAndBuffers(),e.depthRequested=!1}t.setCurrentOperation("cameraPass"),l.traverse(t),e.opaqueActorCount>0&&(t.setCurrentOperation("opaquePass"),l.traverse(t)),e.translucentActorCount>0&&(e.translucentPass||(e.translucentPass=kj.newInstance()),e.translucentPass.traverse(r,l,t)),e.volumeCount>0&&(t.setCurrentOperation("volumePass"),l.traverse(t)),e.overlayActorCount>0&&(t.setCurrentOperation("overlayPass"),l.traverse(t))}}},t.getZBufferTexture=()=>e.framebuffer?e.framebuffer.getColorTexture():null,t.requestDepth=()=>{e.depthRequested=!0},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.incrementVolumeCount=()=>e.volumeCount++,t.incrementOverlayActorCount=()=>e.overlayActorCount++}const Fj={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function gb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Fj,r),uw.extend(t,e,r),W.get(t,e,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),Vj(t,e)}const Uj=W.newInstance(gb,"vtkForwardPass");var Bj={newInstance:Uj,extend:gb};const ai={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var pb={PassTypes:ai};const{vtkErrorMacro:FT,vtkWarningMacro:Gj}=W;function Wj(t,e){e.classHierarchy.push("vtkFieldData");const r=t.getState;e.arrays&&(e.arrays=e.arrays.map(n=>({data:_o(n.data)}))),t.initialize=()=>{t.initializeFields(),t.copyAllOn(),t.clearFieldFlags()},t.initializeFields=()=>{e.arrays=[],e.copyFieldFlags={},t.modified()},t.copyStructure=n=>{t.initializeFields(),e.copyFieldFlags=n.getCopyFieldFlags().map(i=>i),e.arrays=n.arrays().map(i=>({array:i}))},t.getNumberOfArrays=()=>e.arrays.length,t.getNumberOfActiveArrays=()=>e.arrays.length,t.addArray=n=>{const i=n.getName(),{array:o,index:a}=t.getArrayWithIndex(i);return o!=null?(e.arrays[a]={data:n},a):(e.arrays=[].concat(e.arrays,{data:n}),e.arrays.length-1)},t.removeAllArrays=()=>{e.arrays=[]},t.removeArray=n=>{const i=e.arrays.findIndex(o=>o.data.getName()===n);return t.removeArrayByIndex(i)},t.removeArrayByIndex=n=>n!==-1&&ne.arrays.map(n=>n.data),t.getArray=n=>typeof n=="number"?t.getArrayByIndex(n):t.getArrayByName(n),t.getArrayByName=n=>e.arrays.reduce((i,o,a)=>o.data.getName()===n?o.data:i,null),t.getArrayWithIndex=n=>{const i=e.arrays.findIndex(o=>o.data.getName()===n);return{array:i!==-1?e.arrays[i].data:null,index:i}},t.getArrayByIndex=n=>n>=0&&nt.getArrayWithIndex(n).index>=0,t.getArrayName=n=>{const i=e.arrays[n];return i?i.data.getName():""},t.getCopyFieldFlags=()=>e.copyFieldFlags,t.getFlag=n=>e.copyFieldFlags[n],t.passData=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;n.getArrays().forEach(a=>{const s=t.getFlag(a.getName());if(s!==!1&&!(e.doCopyAllOff&&s!==!0)&&a){let c=t.getArrayByName(a.getName());if(c)if(a.getNumberOfComponents()===c.getNumberOfComponents())if(i>-1&&i-1?o:i;c.insertTuple(l,a.getTuple(i))}else c.insertTuples(0,a.getTuples());else FT("Unhandled case in passData");else if(i<0||i>a.getNumberOfTuples())t.addArray(a),n.getAttributes(a).forEach(l=>{t.setAttribute(a,l)});else{const l=a.getNumberOfComponents();let f=a.getNumberOfValues();const u=o>-1?o:i;f<=u*l&&(f=(u+1)*l),c=tt.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:l,values:W.newTypedArray(a.getDataType(),f),size:0}),c.insertTuple(u,a.getTuple(i)),t.addArray(c),n.getAttributes(a).forEach(d=>{t.setAttribute(c,d)})}}})},t.interpolateData=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5;n.getArrays().forEach(c=>{const l=t.getFlag(c.getName());if(l!==!1&&!(e.doCopyAllOff&&l!==!0)&&c){let f=t.getArrayByName(c.getName());if(f)if(c.getNumberOfComponents()===f.getNumberOfComponents())if(i>-1&&i-1?a:i;f.interpolateTuple(u,c,i,c,o,s),Gj("Unexpected case in interpolateData")}else f.insertTuples(c.getTuples());else FT("Unhandled case in interpolateData");else if(i<0||o<0||i>c.getNumberOfTuples())t.addArray(c),n.getAttributes(c).forEach(u=>{t.setAttribute(c,u)});else{const u=c.getNumberOfComponents();let d=c.getNumberOfValues();const h=a>-1?a:i;d<=h*u&&(d=(h+1)*u),f=tt.newInstance({name:c.getName(),dataType:c.getDataType(),numberOfComponents:u,values:W.newTypedArray(c.getDataType(),d),size:0}),f.interpolateTuple(h,c,i,c,o,s),t.addArray(f),n.getAttributes(c).forEach(g=>{t.setAttribute(f,g)})}}})},t.copyFieldOn=n=>{e.copyFieldFlags[n]=!0},t.copyFieldOff=n=>{e.copyFieldFlags[n]=!1},t.copyAllOn=()=>{(!e.doCopyAllOn||e.doCopyAllOff)&&(e.doCopyAllOn=!0,e.doCopyAllOff=!1,t.modified())},t.copyAllOff=()=>{(e.doCopyAllOn||!e.doCopyAllOff)&&(e.doCopyAllOn=!1,e.doCopyAllOff=!0,t.modified())},t.clearFieldFlags=()=>{e.copyFieldFlags={}},t.deepCopy=n=>{e.arrays=n.getArrays().map(i=>{const o=i.newClone();return o.deepCopy(i),{data:o}})},t.copyFlags=n=>n.getCopyFieldFlags().map(i=>i),t.reset=()=>e.arrays.forEach(n=>n.data.reset()),t.getMTime=()=>e.arrays.reduce((n,i)=>i.data.getMTime()>n?i.data.getMTime():n,e.mtime),t.getNumberOfComponents=()=>e.arrays.reduce((n,i)=>n+i.data.getNumberOfComponents(),0),t.getNumberOfTuples=()=>e.arrays.length>0?e.arrays[0].getNumberOfTuples():0,t.getState=()=>{const n=r();return n&&(n.arrays=e.arrays.map(i=>({data:i.data.getState()}))),n}}const zj={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function mb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zj,r),W.obj(t,e),Wj(t,e)}const $j=W.newInstance(mb,"vtkFieldData");var jj={newInstance:$j,extend:mb};const Hj={SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},Kj={MAX:0,EXACT:1,NOLIMIT:2},qj={DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},Xj={DUPLICATEPOINT:1,HIDDENPOINT:2},Yj={COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},Jj="vtkGhostType",I1={DEFAULT:0,SINGLE:1,DOUBLE:2};var vb={AttributeCopyOperations:Yj,AttributeLimitTypes:Kj,AttributeTypes:Hj,CellGhostTypes:qj,DesiredOutputPrecision:I1,PointGhostTypes:Xj,ghostArrayName:Jj};const{AttributeTypes:as,AttributeCopyOperations:uc}=vb,{vtkWarningMacro:ag}=W;function Zj(t,e){const r=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function n(a){let s=r.find(c=>as[c.toUpperCase()]===a||typeof a!="number"&&c.toLowerCase()===a.toLowerCase());return typeof s>"u"&&(s=null),s}e.classHierarchy.push("vtkDataSetAttributes");const i={...t};t.checkNumberOfComponents=a=>!0,t.setAttribute=(a,s)=>{const c=n(s);if(a&&c.toUpperCase()==="PEDIGREEIDS"&&!a.isA("vtkDataArray"))return ag(`Cannot set attribute ${c}. The attribute must be a vtkDataArray.`),-1;if(a&&!t.checkNumberOfComponents(a,c))return ag(`Cannot set attribute ${c}. Incorrect number of components.`),-1;let l=e[`active${c}`];if(l>=0&&lr.filter(s=>t[`get${s}`]()===a),t.setActiveAttributeByName=(a,s)=>t.setActiveAttributeByIndex(t.getArrayWithIndex(a).index,s),t.setActiveAttributeByIndex=(a,s)=>{const c=n(s);if(a>=0&&a{const s=n(a);return t[`get${s}`]()},t.removeAllArrays=()=>{r.forEach(a=>{e[`active${a}`]=-1}),i.removeAllArrays()},t.removeArrayByIndex=a=>(a!==-1&&r.forEach(s=>{a===e[`active${s}`]?e[`active${s}`]=-1:a{const s=`active${a}`;t[`get${a}`]=()=>t.getArrayByIndex(e[s]),t[`set${a}`]=c=>t.setAttribute(c,a),t[`setActive${a}`]=c=>t.setActiveAttributeByIndex(t.getArrayWithIndex(c).index,a),t[`copy${a}Off`]=()=>{const c=a.toUpperCase();e.copyAttributeFlags[uc.PASSDATA][as[c]]=!1},t[`copy${a}On`]=()=>{const c=a.toUpperCase();e.copyAttributeFlags[uc.PASSDATA][as[c]]=!0}}),t.initializeAttributeCopyFlags=()=>{e.copyAttributeFlags=[],Object.keys(uc).filter(a=>a!=="ALLCOPY").forEach(a=>{e.copyAttributeFlags[uc[a]]=Object.keys(as).filter(s=>s!=="NUM_ATTRIBUTES").reduce((s,c)=>(s[as[c]]=!0,s),[])}),e.copyAttributeFlags[uc.COPYTUPLE][as.GLOBALIDS]=!1,e.copyAttributeFlags[uc.INTERPOLATE][as.GLOBALIDS]=!1,e.copyAttributeFlags[uc.COPYTUPLE][as.PEDIGREEIDS]=!1},t.initialize=W.chain(t.initialize,t.initializeAttributeCopyFlags),e.dataArrays&&Object.keys(e.dataArrays).length&&Object.keys(e.dataArrays).forEach(a=>{!e.dataArrays[a].ref&&e.dataArrays[a].type==="vtkDataArray"&&t.addArray(tt.newInstance(e.dataArrays[a]))});const o=t.shallowCopy;t.shallowCopy=(a,s)=>{o(a,s),e.arrays=a.getArrays().map(c=>{const l=c.newClone();return l.shallowCopy(c,s),{data:l}})},t.initializeAttributeCopyFlags()}const Qj={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function yb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qj,r),jj.extend(t,e,r),W.setGet(t,e,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),e.arrays||(e.arrays={}),Zj(t,e)}const eH=W.newInstance(yb,"vtkDataSetAttributes");var UT={newInstance:eH,extend:yb,...vb};const tH={UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},nH={FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7};var rH={FieldDataTypes:tH,FieldAssociations:nH};const G5=["pointData","cellData","fieldData"];function iH(t,e){e.classHierarchy.push("vtkDataSet"),G5.forEach(n=>{e[n]?e[n]=_o(e[n]):e[n]=UT.newInstance()});const r=t.shallowCopy;t.shallowCopy=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;r(n,i),G5.forEach(o=>{e[o]=UT.newInstance(),e[o].shallowCopy(n.getReferenceByName(o))})}}const oH={};function xb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oH,r),W.obj(t,e),W.setGet(t,e,G5),iH(t,e)}const aH=W.newInstance(xb,"vtkDataSet");var v0={newInstance:aH,extend:xb,...rH};const{FieldAssociations:sH}=v0;function cH(t,e){e.classHierarchy.push("vtkHardwareSelector"),t.getSourceDataAsync=async(r,n,i,o,a)=>{},t.selectAsync=async(r,n,i,o,a)=>{const s=await t.getSourceDataAsync(r,n,i,o,a);return s?s.generateSelection(n,i,o,a):[]}}const lH={fieldAssociation:sH.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function wb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lH,r),W.obj(t,e),W.setGet(t,e,["fieldAssociation","captureZValues"]),cH(t,e)}const uH=W.newInstance(wb,"vtkHardwareSelector");var fH={newInstance:uH,extend:wb};const dH={GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},hH={CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5};var gH={SelectionContent:dH,SelectionField:hH};function pH(t,e){e.classHierarchy.push("vtkSelectionNode"),t.getBounds=()=>e.points.getBounds()}const mH={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Cb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mH,r),W.obj(t,e),e.properties={},W.setGet(t,e,["contentType","fieldType","properties","selectionList"]),pH(t,e)}const vH=W.newInstance(Cb,"vtkSelectionNode");var Sb={newInstance:vH,extend:Cb,...gH};const{PassTypes:Zn}=pb,{SelectionContent:yH,SelectionField:BT}=Sb,{FieldAssociations:Wf}=v0,{vtkErrorMacro:Tb}=W,Ss=1;function _b(t){return`${t.propID} ${t.compositeID}`}function Eb(t,e,r,n){if(!r)return 0;const i=(e*(n[2]-n[0]+1)+t)*4;return r[i+3]}function ba(t,e,r,n){if(!r)return 0;const i=(e*(n[2]-n[0]+1)+t)*4,o=r[i],a=r[i+1];return(r[i+2]*256+a)*256+o}function Db(t,e){let r=e;return r<<=24,r|=t,r}function xH(t,e,r,n){{if(n[0]=e[0],n[1]=e[1],e[0]t.area[2]||e[1]t.area[3])return null;const i=[e[0]-t.area[0],e[1]-t.area[1]],o=ba(i[0],i[1],t.pixBuffer[Zn.ACTOR_PASS],t.area);if(o<=0||o-Ss>=t.props.length)return null;const a={};a.valid=!0,a.propID=o-Ss,a.prop=t.props[a.propID];let s=ba(i[0],i[1],t.pixBuffer[Zn.COMPOSITE_INDEX_PASS],t.area);if((s<0||s>16777215)&&(s=0),a.compositeID=s-Ss,t.captureZValues){const f=(i[1]*(t.area[2]-t.area[0]+1)+i[0])*4;a.zValue=(256*t.zBuffer[f]+t.zBuffer[f+1])/65535,a.displayPosition=e}if(t.pixBuffer[Zn.ID_LOW24]&&Eb(i[0],i[1],t.pixBuffer[Zn.ID_LOW24],t.area)===0)return a;const c=ba(i[0],i[1],t.pixBuffer[Zn.ID_LOW24],t.area),l=ba(i[0],i[1],t.pixBuffer[Zn.ID_HIGH24],t.area);return a.attributeID=Db(c,l),a}}function bb(t,e,r,n,i){const o=[];let a=0;return e.forEach((s,c)=>{const l=Sb.newInstance();switch(l.setContentType(yH.INDICES),t){case Wf.FIELD_ASSOCIATION_CELLS:l.setFieldType(BT.CELL);break;case Wf.FIELD_ASSOCIATION_POINTS:l.setFieldType(BT.POINT);break;default:Tb("Unknown field association")}l.getProperties().propID=s.info.propID,l.getProperties().prop=s.info.prop,l.getProperties().compositeID=s.info.compositeID,l.getProperties().attributeID=s.info.attributeID,l.getProperties().pixelCount=s.pixelCount,r&&(l.getProperties().displayPosition=[s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue],l.getProperties().worldPosition=i.displayToWorld(s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue,n)),l.setSelectionList(s.attributeIDs),o[a]=l,a++}),o}function wH(t,e,r,n,i){const o=Math.floor(e),a=Math.floor(r),s=Math.floor(n),c=Math.floor(i),l=new Map,f=[0,0];for(let u=a;u<=c;u++)for(let d=o;d<=s;d++){const g=xH(t,[d,u],0,f);if(g&&g.valid){const p=_b(g);if(!l.has(p))l.set(p,{info:g,pixelCount:1,attributeIDs:[g.attributeID]});else{const v=l.get(p);v.pixelCount++,t.captureZValues&&g.zValue{e.rawPixBuffer=[],e.pixBuffer=[],e.zBuffer=null},t.beginSelection=()=>{e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e.maxAttributeId=0;const n=e._openGLRenderWindow.getSize();if(!e.framebuffer)e.framebuffer=Km.newInstance(),e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.create(n[0],n[1]),e.framebuffer.populateFramebuffer();else{e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers();const i=e.framebuffer.getSize();!i||i[0]!==n[0]||i[1]!==n[1]?(e.framebuffer.create(n[0],n[1]),e.framebuffer.populateFramebuffer()):e.framebuffer.bind()}if(e._openGLRenderer.clear(),e._openGLRenderer.setSelector(t),e.hitProps={},e.propPixels={},e.props=[],t.releasePixBuffers(),e.fieldAssociation===Wf.FIELD_ASSOCIATION_POINTS){const i=e._openGLRenderWindow.getContext(),o=i.isEnabled(i.BLEND);i.disable(i.BLEND),e._openGLRenderWindow.traverseAllPasses(),o&&i.enable(i.BLEND)}},t.endSelection=()=>{e.hitProps={},e._openGLRenderer.setSelector(null),e.framebuffer.restorePreviousBindingsAndBuffers()},t.preCapturePass=()=>{const n=e._openGLRenderWindow.getContext();e.originalBlending=n.isEnabled(n.BLEND),n.disable(n.BLEND)},t.postCapturePass=()=>{const n=e._openGLRenderWindow.getContext();e.originalBlending&&n.enable(n.BLEND)},t.select=()=>{let n=null;return t.captureBuffers()&&(n=t.generateSelection(e.area[0],e.area[1],e.area[2],e.area[3]),t.releasePixBuffers()),n},t.getSourceDataAsync=async(n,i,o,a,s)=>{if(e._renderer=n,i===void 0){const l=e._openGLRenderWindow.getSize();t.setArea(0,0,l[0]-1,l[1]-1)}else t.setArea(i,o,a,s);if(!t.captureBuffers())return!1;const c={area:[...e.area],pixBuffer:[...e.pixBuffer],captureZValues:e.captureZValues,zBuffer:e.zBuffer,props:[...e.props],fieldAssociation:e.fieldAssociation,renderer:n,openGLRenderWindow:e._openGLRenderWindow};return c.generateSelection=function(){for(var l=arguments.length,f=new Array(l),u=0;u{if(!e._renderer||!e._openGLRenderWindow)return Tb("Renderer and view must be set before calling Select."),!1;e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e._openGLRenderWindow.getRenderable().preRender(),t.invokeEvent({type:"StartEvent"}),e.originalBackground=e._renderer.getBackgroundByReference(),e._renderer.setBackground(0,0,0,0);const n=e._openGLRenderWindow.getRenderPasses();t.beginSelection();const i=[];for(e.currentPass=Zn.MIN_KNOWN_PASS;e.currentPass<=Zn.MAX_KNOWN_PASS;e.currentPass++)t.passRequired(e.currentPass)&&(t.preCapturePass(e.currentPass),e.captureZValues&&e.currentPass===Zn.ACTOR_PASS&&typeof n[0].requestDepth=="function"&&typeof n[0].getFramebuffer=="function"&&n[0].requestDepth(),e._openGLRenderWindow.traverseAllPasses(),t.postCapturePass(e.currentPass),t.savePixelBuffer(e.currentPass),i.push(e.currentPass));return i.forEach(o=>{e.currentPass=o,t.processPixelBuffers()}),e.currentPass=Zn.MAX_KNOWN_PASS,t.endSelection(),e._renderer.setBackground(e.originalBackground),t.invokeEvent({type:"EndEvent"}),!0},t.processPixelBuffers=()=>{e.props.forEach((n,i)=>{t.isPropHit(i)&&n.processSelectorPixelBuffers(t,e.propPixels[i])})},t.passRequired=n=>{if(n===Zn.ID_HIGH24){if(e.fieldAssociation===Wf.FIELD_ASSOCIATION_POINTS)return e.maximumPointId>16777215;if(e.fieldAssociation===Wf.FIELD_ASSOCIATION_CELLS)return e.maximumCellId>16777215}return!0},t.savePixelBuffer=n=>{if(e.pixBuffer[n]=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),!e.rawPixBuffer[n]){const i=(e.area[2]-e.area[0]+1)*(e.area[3]-e.area[1]+1)*4;e.rawPixBuffer[n]=new Uint8Array(i),e.rawPixBuffer[n].set(e.pixBuffer[n])}if(n===Zn.ACTOR_PASS){if(e.captureZValues){const i=e._openGLRenderWindow.getRenderPasses();if(typeof i[0].requestDepth=="function"&&typeof i[0].getFramebuffer=="function"){const o=i[0].getFramebuffer();o.saveCurrentBindingsAndBuffers(),o.bind(),e.zBuffer=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),o.restorePreviousBindingsAndBuffers()}}t.buildPropHitList(e.rawPixBuffer[n])}},t.buildPropHitList=n=>{let i=0;for(let o=0;o<=e.area[3]-e.area[1];o++)for(let a=0;a<=e.area[2]-e.area[0];a++){let s=ba(a,o,n,e.area);s>0&&(s--,s in e.hitProps||(e.hitProps[s]=!0,e.propPixels[s]=[]),e.propPixels[s].push(i*4)),++i}},t.renderProp=n=>{e.currentPass===Zn.ACTOR_PASS&&(t.setPropColorValueFromInt(e.props.length+Ss),e.props.push(n))},t.renderCompositeIndex=n=>{e.currentPass===Zn.COMPOSITE_INDEX_PASS&&t.setPropColorValueFromInt(n+Ss)},t.renderAttributeId=n=>{n<0||(e.maxAttributeId=n>e.maxAttributeId?n:e.maxAttributeId)},t.passTypeToString=n=>W.enumToString(Zn,n),t.isPropHit=n=>!!e.hitProps[n],t.setPropColorValueFromInt=n=>{e.propColorValue[0]=n%256/255,e.propColorValue[1]=Math.floor(n/256)%256/255,e.propColorValue[2]=Math.floor(n/65536)%256/255},t.getPixelInformation=(n,i,o)=>{const a=i<0?0:i;if(a===0){if(o[0]=n[0],o[1]=n[1],n[0]e.area[2]||n[1]e.area[3])return null;const f=[n[0]-e.area[0],n[1]-e.area[1]],u=ba(f[0],f[1],e.pixBuffer[Zn.ACTOR_PASS],e.area);if(u<=0||u-Ss>=e.props.length)return null;const d={};d.valid=!0,d.propID=u-Ss,d.prop=e.props[d.propID];let h=ba(f[0],f[1],e.pixBuffer[Zn.COMPOSITE_INDEX_PASS],e.area);if((h<0||h>16777215)&&(h=0),d.compositeID=h-Ss,e.captureZValues){const v=(f[1]*(e.area[2]-e.area[0]+1)+f[0])*4;d.zValue=(256*e.zBuffer[v]+e.zBuffer[v+1])/65535,d.displayPosition=n}if(e.pixBuffer[Zn.ID_LOW24]&&Eb(f[0],f[1],e.pixBuffer[Zn.ID_LOW24],e.area)===0)return d;const g=ba(f[0],f[1],e.pixBuffer[Zn.ID_LOW24],e.area),p=ba(f[0],f[1],e.pixBuffer[Zn.ID_HIGH24],e.area);return d.attributeID=Db(g,p),d}const s=[n[0],n[1]],c=[0,0];let l=t.getPixelInformation(n,0,o);if(l&&l.valid)return l;for(let f=1;ff?s[1]-f:0;u<=s[1]+f;++u)if(c[1]=u,s[0]>=f&&(c[0]=s[0]-f,l=t.getPixelInformation(c,0,o),l&&l.valid)||(c[0]=s[0]+f,l=t.getPixelInformation(c,0,o),l&&l.valid))return l;for(let u=s[0]>=f?s[0]-(f-1):0;u<=s[0]+(f-1);++u)if(c[0]=u,s[1]>=f&&(c[1]=s[1]-f,l=t.getPixelInformation(c,0,o),l&&l.valid)||(c[1]=s[1]+f,l=t.getPixelInformation(c,0,o),l&&l.valid))return l}return o[0]=n[0],o[1]=n[1],null},t.generateSelection=(n,i,o,a)=>{const s=Math.floor(n),c=Math.floor(i),l=Math.floor(o),f=Math.floor(a),u=new Map,d=[0,0];for(let h=c;h<=f;h++)for(let g=s;g<=l;g++){const p=[g,h],v=t.getPixelInformation(p,0,d);if(v&&v.valid){const x=_b(v);if(!u.has(x))u.set(x,{info:v,pixelCount:1,attributeIDs:[v.attributeID]});else{const m=u.get(x);m.pixelCount++,e.captureZValues&&v.zValuee.rawPixBuffer[n],t.getPixelBuffer=n=>e.pixBuffer[n],t.attach=(n,i)=>{e._openGLRenderWindow=n,e._renderer=i};const r=t.setArea;t.setArea=function(){return r(...arguments)?(e.area[0]=Math.floor(e.area[0]),e.area[1]=Math.floor(e.area[1]),e.area[2]=Math.floor(e.area[2]),e.area[3]=Math.floor(e.area[3]),!0):!1}}const SH={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function Ib(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SH,r),fH.extend(t,e,r),e.propColorValue=[0,0,0],e.props=[],e.area||(e.area=[0,0,0,0]),W.setGetArray(t,e,["area"],4),W.setGet(t,e,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),W.setGetArray(t,e,["propColorValue"],3),W.moveToProtected(t,e,["renderer","openGLRenderWindow"]),W.event(t,e,"event"),CH(t,e)}const TH=W.newInstance(Ib,"vtkOpenGLHardwareSelector");var Dw={newInstance:TH,extend:Ib,...pb},Ob={exports:{}};(function(t,e){(function(r){t.exports=r()})(function(r){var n=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function i(x,m){var y=x[0],w=x[1],C=x[2],S=x[3];y+=(w&C|~w&S)+m[0]-680876936|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[1]-389564586|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[2]+606105819|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[3]-1044525330|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[4]-176418897|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[5]+1200080426|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[6]-1473231341|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[7]-45705983|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[8]+1770035416|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[9]-1958414417|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[10]-42063|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[11]-1990404162|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[12]+1804603682|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[13]-40341101|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[14]-1502002290|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[15]+1236535329|0,w=(w<<22|w>>>10)+C|0,y+=(w&S|C&~S)+m[1]-165796510|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[6]-1069501632|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[11]+643717713|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[0]-373897302|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[5]-701558691|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[10]+38016083|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[15]-660478335|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[4]-405537848|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[9]+568446438|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[14]-1019803690|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[3]-187363961|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[8]+1163531501|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[13]-1444681467|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[2]-51403784|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[7]+1735328473|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[12]-1926607734|0,w=(w<<20|w>>>12)+C|0,y+=(w^C^S)+m[5]-378558|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[8]-2022574463|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[11]+1839030562|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[14]-35309556|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[1]-1530992060|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[4]+1272893353|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[7]-155497632|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[10]-1094730640|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[13]+681279174|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[0]-358537222|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[3]-722521979|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[6]+76029189|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[9]-640364487|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[12]-421815835|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[15]+530742520|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[2]-995338651|0,w=(w<<23|w>>>9)+C|0,y+=(C^(w|~S))+m[0]-198630844|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[7]+1126891415|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[14]-1416354905|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[5]-57434055|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[12]+1700485571|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[3]-1894986606|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[10]-1051523|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[1]-2054922799|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[8]+1873313359|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[15]-30611744|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[6]-1560198380|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[13]+1309151649|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[4]-145523070|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[11]-1120210379|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[2]+718787259|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[9]-343485551|0,w=(w<<21|w>>>11)+C|0,x[0]=y+x[0]|0,x[1]=w+x[1]|0,x[2]=C+x[2]|0,x[3]=S+x[3]|0}function o(x){var m=[],y;for(y=0;y<64;y+=4)m[y>>2]=x.charCodeAt(y)+(x.charCodeAt(y+1)<<8)+(x.charCodeAt(y+2)<<16)+(x.charCodeAt(y+3)<<24);return m}function a(x){var m=[],y;for(y=0;y<64;y+=4)m[y>>2]=x[y]+(x[y+1]<<8)+(x[y+2]<<16)+(x[y+3]<<24);return m}function s(x){var m=x.length,y=[1732584193,-271733879,-1732584194,271733878],w,C,S,T,_,E;for(w=64;w<=m;w+=64)i(y,o(x.substring(w-64,w)));for(x=x.substring(w-64),C=x.length,S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],w=0;w>2]|=x.charCodeAt(w)<<(w%4<<3);if(S[w>>2]|=128<<(w%4<<3),w>55)for(i(y,S),w=0;w<16;w+=1)S[w]=0;return T=m*8,T=T.toString(16).match(/(.*?)(.{0,8})$/),_=parseInt(T[2],16),E=parseInt(T[1],16)||0,S[14]=_,S[15]=E,i(y,S),y}function c(x){var m=x.length,y=[1732584193,-271733879,-1732584194,271733878],w,C,S,T,_,E;for(w=64;w<=m;w+=64)i(y,a(x.subarray(w-64,w)));for(x=w-64>2]|=x[w]<<(w%4<<3);if(S[w>>2]|=128<<(w%4<<3),w>55)for(i(y,S),w=0;w<16;w+=1)S[w]=0;return T=m*8,T=T.toString(16).match(/(.*?)(.{0,8})$/),_=parseInt(T[2],16),E=parseInt(T[1],16)||0,S[14]=_,S[15]=E,i(y,S),y}function l(x){var m="",y;for(y=0;y<4;y+=1)m+=n[x>>y*8+4&15]+n[x>>y*8&15];return m}function f(x){var m;for(m=0;mS?new ArrayBuffer(0):(T=S-C,_=new ArrayBuffer(T),E=new Uint8Array(_),D=new Uint8Array(this,C,T),E.set(D),_)}}();function u(x){return/[\u0080-\uFFFF]/.test(x)&&(x=unescape(encodeURIComponent(x))),x}function d(x,m){var y=x.length,w=new ArrayBuffer(y),C=new Uint8Array(w),S;for(S=0;S>2]|=m.charCodeAt(w)<<(w%4<<3);return this._finish(C,y),S=f(this._hash),x&&(S=p(S)),this.reset(),S},v.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},v.prototype.setState=function(x){return this._buff=x.buff,this._length=x.length,this._hash=x.hash,this},v.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},v.prototype._finish=function(x,m){var y=m,w,C,S;if(x[y>>2]|=128<<(y%4<<3),y>55)for(i(this._hash,x),y=0;y<16;y+=1)x[y]=0;w=this._length*8,w=w.toString(16).match(/(.*?)(.{0,8})$/),C=parseInt(w[2],16),S=parseInt(w[1],16)||0,x[14]=C,x[15]=S,i(this._hash,x)},v.hash=function(x,m){return v.hashBinary(u(x),m)},v.hashBinary=function(x,m){var y=s(x),w=f(y);return m?p(w):w},v.ArrayBuffer=function(){this.reset()},v.ArrayBuffer.prototype.append=function(x){var m=g(this._buff.buffer,x),y=m.length,w;for(this._length+=x.byteLength,w=64;w<=y;w+=64)i(this._hash,a(m.subarray(w-64,w)));return this._buff=w-64>2]|=m[C]<<(C%4<<3);return this._finish(w,y),S=f(this._hash),x&&(S=p(S)),this.reset(),S},v.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.ArrayBuffer.prototype.getState=function(){var x=v.prototype.getState.call(this);return x.buff=h(x.buff),x},v.ArrayBuffer.prototype.setState=function(x){return x.buff=d(x.buff,!0),v.prototype.setState.call(this,x)},v.ArrayBuffer.prototype.destroy=v.prototype.destroy,v.ArrayBuffer.prototype._finish=v.prototype._finish,v.ArrayBuffer.hash=function(x,m){var y=c(new Uint8Array(x)),w=f(y);return m?p(w):w},v})})(Ob);var _H=Ob.exports;const EH=rh(_H),DH=["lastShaderProgramBound","context","_openGLRenderWindow"];function bH(t,e){e.classHierarchy.push("vtkShaderCache"),t.replaceShaderValues=(r,n,i)=>{let o=n;i.length>0&&(o=ce.substitute(o,"VSOut","GSOut").result);const a=e._openGLRenderWindow.getWebgl2();let s=` +`;function Uj(t,e){e.classHierarchy.push("vtkOpenGLOrderIndependentTranslucentPass"),t.createVertexBuffer=()=>{const r=new Float32Array([-1,-1,-1,1,-1,-1,-1,1,-1,1,1,-1]),n=new Float32Array([0,0,1,0,0,1,1,1]),i=new Uint16Array([4,0,1,3,2]),o=tt.newInstance({numberOfComponents:3,values:r});o.setName("points");const a=tt.newInstance({numberOfComponents:2,values:n});a.setName("tcoords");const s=tt.newInstance({numberOfComponents:1,values:i});e.tris.getCABO().createVBO(s,"polys",kj.SURFACE,{points:o,tcoords:a,cellOffset:0}),e.VBOBuildTime.modified()},t.createFramebuffer=r=>{const n=r.getSize(),i=r.getContext();e.framebuffer=Xm.newInstance(),e.framebuffer.setOpenGLRenderWindow(r),e.framebuffer.create(...n),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind(),e.translucentRGBATexture=yn.newInstance(),e.translucentRGBATexture.setInternalFormat(i.RGBA16F),e.translucentRGBATexture.setFormat(i.RGBA),e.translucentRGBATexture.setOpenGLDataType(i.HALF_FLOAT),e.translucentRGBATexture.setOpenGLRenderWindow(r),e.translucentRGBATexture.create2DFromRaw(n[0],n[1],4,"Float32Array",null),e.translucentRTexture=yn.newInstance(),e.translucentRTexture.setInternalFormat(i.R16F),e.translucentRTexture.setFormat(i.RED),e.translucentRTexture.setOpenGLDataType(i.HALF_FLOAT),e.translucentRTexture.setOpenGLRenderWindow(r),e.translucentRTexture.create2DFromRaw(n[0],n[1],1,"Float32Array",null),e.translucentZTexture=yn.newInstance(),e.translucentZTexture.setOpenGLRenderWindow(r),e.translucentZTexture.createDepthFromRaw(n[0],n[1],"Float32Array",null),e.framebuffer.setColorBuffer(e.translucentRGBATexture,0),e.framebuffer.setColorBuffer(e.translucentRTexture,1),e.framebuffer.setDepthBuffer(e.translucentZTexture)},t.createCopyShader=r=>{e.copyShader=r.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","attribute vec2 tcoordTC;","varying vec2 tcoord;","void main() { tcoord = tcoordTC; gl_Position = vertexDC; }"].join(` +`),Fj,"")},t.createVBO=r=>{const n=r.getContext();e.tris.setOpenGLRenderWindow(r),t.createVertexBuffer();const i=e.copyShader;e.tris.getCABO().bind(),e.copyVAO.addAttributeArray(i,e.tris.getCABO(),"vertexDC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),n.FLOAT,3,n.FALSE)||BT("Error setting vertexDC in copy shader VAO."),e.copyVAO.addAttributeArray(i,e.tris.getCABO(),"tcoordTC",e.tris.getCABO().getTCoordOffset(),e.tris.getCABO().getStride(),n.FLOAT,2,n.FALSE)||BT("Error setting vertexDC in copy shader VAO.")},t.traverse=(r,n,i)=>{if(e.deleted)return;const o=r.getSize(),a=r.getContext();if(e._supported=!1,n.getSelector()||!a||!r.getWebgl2()||!a.getExtension("EXT_color_buffer_half_float")&&!a.getExtension("EXT_color_buffer_float")){t.setCurrentOperation("translucentPass"),n.traverse(t);return}if(e._supported=!0,e.framebuffer===null)t.createFramebuffer(r);else{const c=e.framebuffer.getSize();c===null||c[0]!==o[0]||c[1]!==o[1]?(e.framebuffer.releaseGraphicsResources(),e.translucentRGBATexture.releaseGraphicsResources(r),e.translucentRTexture.releaseGraphicsResources(r),e.translucentZTexture.releaseGraphicsResources(r),t.createFramebuffer(r)):(e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.bind())}a.drawBuffers([a.COLOR_ATTACHMENT0]),a.clearBufferfv(a.COLOR,0,[0,0,0,0]),a.clearBufferfv(a.DEPTH,0,[1]),a.colorMask(!1,!1,!1,!1),i.getOpaqueActorCount()>0&&(i.setCurrentOperation("opaqueZBufferPass"),n.traverse(i)),a.colorMask(!0,!0,!0,!0),a.drawBuffers([a.COLOR_ATTACHMENT0,a.COLOR_ATTACHMENT1]),a.viewport(0,0,o[0],o[1]),a.scissor(0,0,o[0],o[1]),a.clearBufferfv(a.COLOR,0,[0,0,0,1]),a.clearBufferfv(a.COLOR,1,[0,0,0,0]),a.enable(a.DEPTH_TEST),a.enable(a.BLEND),a.blendFuncSeparate(a.ONE,a.ONE,a.ZERO,a.ONE_MINUS_SRC_ALPHA),t.setCurrentOperation("translucentPass"),n.traverse(t),a.drawBuffers([a.NONE]),e.framebuffer.restorePreviousBindingsAndBuffers(),e.copyShader===null?t.createCopyShader(r):r.getShaderCache().readyShaderProgram(e.copyShader),e.copyVAO||(e.copyVAO=bw.newInstance(),e.copyVAO.setOpenGLRenderWindow(r)),e.copyVAO.bind(),e.VBOBuildTime.getMTime()e._supported?Vj:null,t.releaseGraphicsResources=r=>{e.framebuffer&&(e.framebuffer.releaseGraphicsResources(r),e.framebuffer=null),e.translucentRGBATexture&&(e.translucentRGBATexture.releaseGraphicsResources(r),e.translucentRGBATexture=null),e.translucentRTexture&&(e.translucentRTexture.releaseGraphicsResources(r),e.translucentRTexture=null),e.translucentZTexture&&(e.translucentZTexture.releaseGraphicsResources(r),e.translucentZTexture=null),e.copyVAO&&(e.copyVAO.releaseGraphicsResources(r),e.copyVAO=null),e.copyShader&&(e.copyShader.releaseGraphicsResources(r),e.copyShader=null),e.tris&&(e.tris.releaseGraphicsResources(r),e.tris=null),t.modified()}}const Bj={framebuffer:null,copyShader:null,tris:null};function yb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Bj,r),dw.extend(t,e,r),e.VBOBuildTime={},W.obj(e.VBOBuildTime,{mtime:0}),e.tris=fa.newInstance(),W.get(t,e,["framebuffer"]),Uj(t,e)}const Gj=W.newInstance(yb,"vtkOpenGLOrderIndependentTranslucentPass");var Wj={newInstance:Gj,extend:yb};function zj(t,e){e.classHierarchy.push("vtkForwardPass"),t.traverse=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(e.deleted)return;e._currentParent=n,t.setCurrentOperation("buildPass"),r.traverse(t);const i=r.getRenderable().getNumberOfLayers(),o=r.getRenderable().getRenderersByReference();for(let a=0;a0||e.translucentActorCount>0)&&e.volumeCount>0||e.depthRequested){const f=r.getFramebufferSize();e.framebuffer===null&&(e.framebuffer=Xm.newInstance()),e.framebuffer.setOpenGLRenderWindow(r),e.framebuffer.saveCurrentBindingsAndBuffers();const u=e.framebuffer.getSize();(u===null||u[0]!==f[0]||u[1]!==f[1])&&(e.framebuffer.create(f[0],f[1]),e.framebuffer.populateFramebuffer()),e.framebuffer.bind(),t.setCurrentOperation("zBufferPass"),l.traverse(t),e.framebuffer.restorePreviousBindingsAndBuffers(),e.depthRequested=!1}t.setCurrentOperation("cameraPass"),l.traverse(t),e.opaqueActorCount>0&&(t.setCurrentOperation("opaquePass"),l.traverse(t)),e.translucentActorCount>0&&(e.translucentPass||(e.translucentPass=Wj.newInstance()),e.translucentPass.traverse(r,l,t)),e.volumeCount>0&&(t.setCurrentOperation("volumePass"),l.traverse(t)),e.overlayActorCount>0&&(t.setCurrentOperation("overlayPass"),l.traverse(t))}}},t.getZBufferTexture=()=>e.framebuffer?e.framebuffer.getColorTexture():null,t.requestDepth=()=>{e.depthRequested=!0},t.incrementOpaqueActorCount=()=>e.opaqueActorCount++,t.incrementTranslucentActorCount=()=>e.translucentActorCount++,t.incrementVolumeCount=()=>e.volumeCount++,t.incrementOverlayActorCount=()=>e.overlayActorCount++}const $j={opaqueActorCount:0,translucentActorCount:0,volumeCount:0,overlayActorCount:0,framebuffer:null,depthRequested:!1};function xb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$j,r),dw.extend(t,e,r),W.get(t,e,["framebuffer","opaqueActorCount","translucentActorCount","volumeCount"]),zj(t,e)}const jj=W.newInstance(xb,"vtkForwardPass");var Hj={newInstance:jj,extend:xb};const ai={MIN_KNOWN_PASS:0,ACTOR_PASS:0,COMPOSITE_INDEX_PASS:1,ID_LOW24:2,ID_HIGH24:3,MAX_KNOWN_PASS:3};var wb={PassTypes:ai};const{vtkErrorMacro:GT,vtkWarningMacro:Kj}=W;function qj(t,e){e.classHierarchy.push("vtkFieldData");const r=t.getState;e.arrays&&(e.arrays=e.arrays.map(n=>({data:Eo(n.data)}))),t.initialize=()=>{t.initializeFields(),t.copyAllOn(),t.clearFieldFlags()},t.initializeFields=()=>{e.arrays=[],e.copyFieldFlags={},t.modified()},t.copyStructure=n=>{t.initializeFields(),e.copyFieldFlags=n.getCopyFieldFlags().map(i=>i),e.arrays=n.arrays().map(i=>({array:i}))},t.getNumberOfArrays=()=>e.arrays.length,t.getNumberOfActiveArrays=()=>e.arrays.length,t.addArray=n=>{const i=n.getName(),{array:o,index:a}=t.getArrayWithIndex(i);return o!=null?(e.arrays[a]={data:n},a):(e.arrays=[].concat(e.arrays,{data:n}),e.arrays.length-1)},t.removeAllArrays=()=>{e.arrays=[]},t.removeArray=n=>{const i=e.arrays.findIndex(o=>o.data.getName()===n);return t.removeArrayByIndex(i)},t.removeArrayByIndex=n=>n!==-1&&ne.arrays.map(n=>n.data),t.getArray=n=>typeof n=="number"?t.getArrayByIndex(n):t.getArrayByName(n),t.getArrayByName=n=>e.arrays.reduce((i,o,a)=>o.data.getName()===n?o.data:i,null),t.getArrayWithIndex=n=>{const i=e.arrays.findIndex(o=>o.data.getName()===n);return{array:i!==-1?e.arrays[i].data:null,index:i}},t.getArrayByIndex=n=>n>=0&&nt.getArrayWithIndex(n).index>=0,t.getArrayName=n=>{const i=e.arrays[n];return i?i.data.getName():""},t.getCopyFieldFlags=()=>e.copyFieldFlags,t.getFlag=n=>e.copyFieldFlags[n],t.passData=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;n.getArrays().forEach(a=>{const s=t.getFlag(a.getName());if(s!==!1&&!(e.doCopyAllOff&&s!==!0)&&a){let c=t.getArrayByName(a.getName());if(c)if(a.getNumberOfComponents()===c.getNumberOfComponents())if(i>-1&&i-1?o:i;c.insertTuple(l,a.getTuple(i))}else c.insertTuples(0,a.getTuples());else GT("Unhandled case in passData");else if(i<0||i>a.getNumberOfTuples())t.addArray(a),n.getAttributes(a).forEach(l=>{t.setAttribute(a,l)});else{const l=a.getNumberOfComponents();let f=a.getNumberOfValues();const u=o>-1?o:i;f<=u*l&&(f=(u+1)*l),c=tt.newInstance({name:a.getName(),dataType:a.getDataType(),numberOfComponents:l,values:W.newTypedArray(a.getDataType(),f),size:0}),c.insertTuple(u,a.getTuple(i)),t.addArray(c),n.getAttributes(a).forEach(d=>{t.setAttribute(c,d)})}}})},t.interpolateData=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5;n.getArrays().forEach(c=>{const l=t.getFlag(c.getName());if(l!==!1&&!(e.doCopyAllOff&&l!==!0)&&c){let f=t.getArrayByName(c.getName());if(f)if(c.getNumberOfComponents()===f.getNumberOfComponents())if(i>-1&&i-1?a:i;f.interpolateTuple(u,c,i,c,o,s),Kj("Unexpected case in interpolateData")}else f.insertTuples(c.getTuples());else GT("Unhandled case in interpolateData");else if(i<0||o<0||i>c.getNumberOfTuples())t.addArray(c),n.getAttributes(c).forEach(u=>{t.setAttribute(c,u)});else{const u=c.getNumberOfComponents();let d=c.getNumberOfValues();const h=a>-1?a:i;d<=h*u&&(d=(h+1)*u),f=tt.newInstance({name:c.getName(),dataType:c.getDataType(),numberOfComponents:u,values:W.newTypedArray(c.getDataType(),d),size:0}),f.interpolateTuple(h,c,i,c,o,s),t.addArray(f),n.getAttributes(c).forEach(g=>{t.setAttribute(f,g)})}}})},t.copyFieldOn=n=>{e.copyFieldFlags[n]=!0},t.copyFieldOff=n=>{e.copyFieldFlags[n]=!1},t.copyAllOn=()=>{(!e.doCopyAllOn||e.doCopyAllOff)&&(e.doCopyAllOn=!0,e.doCopyAllOff=!1,t.modified())},t.copyAllOff=()=>{(e.doCopyAllOn||!e.doCopyAllOff)&&(e.doCopyAllOn=!1,e.doCopyAllOff=!0,t.modified())},t.clearFieldFlags=()=>{e.copyFieldFlags={}},t.deepCopy=n=>{e.arrays=n.getArrays().map(i=>{const o=i.newClone();return o.deepCopy(i),{data:o}})},t.copyFlags=n=>n.getCopyFieldFlags().map(i=>i),t.reset=()=>e.arrays.forEach(n=>n.data.reset()),t.getMTime=()=>e.arrays.reduce((n,i)=>i.data.getMTime()>n?i.data.getMTime():n,e.mtime),t.getNumberOfComponents=()=>e.arrays.reduce((n,i)=>n+i.data.getNumberOfComponents(),0),t.getNumberOfTuples=()=>e.arrays.length>0?e.arrays[0].getNumberOfTuples():0,t.getState=()=>{const n=r();return n&&(n.arrays=e.arrays.map(i=>({data:i.data.getState()}))),n}}const Xj={arrays:[],copyFieldFlags:[],doCopyAllOn:!0,doCopyAllOff:!1};function Cb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Xj,r),W.obj(t,e),qj(t,e)}const Yj=W.newInstance(Cb,"vtkFieldData");var Jj={newInstance:Yj,extend:Cb};const Zj={SCALARS:0,VECTORS:1,NORMALS:2,TCOORDS:3,TENSORS:4,GLOBALIDS:5,PEDIGREEIDS:6,EDGEFLAG:7,NUM_ATTRIBUTES:8},Qj={MAX:0,EXACT:1,NOLIMIT:2},eH={DUPLICATECELL:1,HIGHCONNECTIVITYCELL:2,LOWCONNECTIVITYCELL:4,REFINEDCELL:8,EXTERIORCELL:16,HIDDENCELL:32},tH={DUPLICATEPOINT:1,HIDDENPOINT:2},nH={COPYTUPLE:0,INTERPOLATE:1,PASSDATA:2,ALLCOPY:3},rH="vtkGhostType",M1={DEFAULT:0,SINGLE:1,DOUBLE:2};var Sb={AttributeCopyOperations:nH,AttributeLimitTypes:Qj,AttributeTypes:Zj,CellGhostTypes:eH,DesiredOutputPrecision:M1,PointGhostTypes:tH,ghostArrayName:rH};const{AttributeTypes:ss,AttributeCopyOperations:fc}=Sb,{vtkWarningMacro:cg}=W;function iH(t,e){const r=["Scalars","Vectors","Normals","TCoords","Tensors","GlobalIds","PedigreeIds"];function n(a){let s=r.find(c=>ss[c.toUpperCase()]===a||typeof a!="number"&&c.toLowerCase()===a.toLowerCase());return typeof s>"u"&&(s=null),s}e.classHierarchy.push("vtkDataSetAttributes");const i={...t};t.checkNumberOfComponents=a=>!0,t.setAttribute=(a,s)=>{const c=n(s);if(a&&c.toUpperCase()==="PEDIGREEIDS"&&!a.isA("vtkDataArray"))return cg(`Cannot set attribute ${c}. The attribute must be a vtkDataArray.`),-1;if(a&&!t.checkNumberOfComponents(a,c))return cg(`Cannot set attribute ${c}. Incorrect number of components.`),-1;let l=e[`active${c}`];if(l>=0&&lr.filter(s=>t[`get${s}`]()===a),t.setActiveAttributeByName=(a,s)=>t.setActiveAttributeByIndex(t.getArrayWithIndex(a).index,s),t.setActiveAttributeByIndex=(a,s)=>{const c=n(s);if(a>=0&&a{const s=n(a);return t[`get${s}`]()},t.removeAllArrays=()=>{r.forEach(a=>{e[`active${a}`]=-1}),i.removeAllArrays()},t.removeArrayByIndex=a=>(a!==-1&&r.forEach(s=>{a===e[`active${s}`]?e[`active${s}`]=-1:a{const s=`active${a}`;t[`get${a}`]=()=>t.getArrayByIndex(e[s]),t[`set${a}`]=c=>t.setAttribute(c,a),t[`setActive${a}`]=c=>t.setActiveAttributeByIndex(t.getArrayWithIndex(c).index,a),t[`copy${a}Off`]=()=>{const c=a.toUpperCase();e.copyAttributeFlags[fc.PASSDATA][ss[c]]=!1},t[`copy${a}On`]=()=>{const c=a.toUpperCase();e.copyAttributeFlags[fc.PASSDATA][ss[c]]=!0}}),t.initializeAttributeCopyFlags=()=>{e.copyAttributeFlags=[],Object.keys(fc).filter(a=>a!=="ALLCOPY").forEach(a=>{e.copyAttributeFlags[fc[a]]=Object.keys(ss).filter(s=>s!=="NUM_ATTRIBUTES").reduce((s,c)=>(s[ss[c]]=!0,s),[])}),e.copyAttributeFlags[fc.COPYTUPLE][ss.GLOBALIDS]=!1,e.copyAttributeFlags[fc.INTERPOLATE][ss.GLOBALIDS]=!1,e.copyAttributeFlags[fc.COPYTUPLE][ss.PEDIGREEIDS]=!1},t.initialize=W.chain(t.initialize,t.initializeAttributeCopyFlags),e.dataArrays&&Object.keys(e.dataArrays).length&&Object.keys(e.dataArrays).forEach(a=>{!e.dataArrays[a].ref&&e.dataArrays[a].type==="vtkDataArray"&&t.addArray(tt.newInstance(e.dataArrays[a]))});const o=t.shallowCopy;t.shallowCopy=(a,s)=>{o(a,s),e.arrays=a.getArrays().map(c=>{const l=c.newClone();return l.shallowCopy(c,s),{data:l}})},t.initializeAttributeCopyFlags()}const oH={activeScalars:-1,activeVectors:-1,activeTensors:-1,activeNormals:-1,activeTCoords:-1,activeGlobalIds:-1,activePedigreeIds:-1};function Tb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oH,r),Jj.extend(t,e,r),W.setGet(t,e,["activeScalars","activeNormals","activeTCoords","activeVectors","activeTensors","activeGlobalIds","activePedigreeIds"]),e.arrays||(e.arrays={}),iH(t,e)}const aH=W.newInstance(Tb,"vtkDataSetAttributes");var WT={newInstance:aH,extend:Tb,...Sb};const sH={UNIFORM:0,DATA_OBJECT_FIELD:0,COORDINATE:1,POINT_DATA:1,POINT:2,POINT_FIELD_DATA:2,CELL:3,CELL_FIELD_DATA:3,VERTEX:4,VERTEX_FIELD_DATA:4,EDGE:5,EDGE_FIELD_DATA:5,ROW:6,ROW_DATA:6},cH={FIELD_ASSOCIATION_POINTS:0,FIELD_ASSOCIATION_CELLS:1,FIELD_ASSOCIATION_NONE:2,FIELD_ASSOCIATION_POINTS_THEN_CELLS:3,FIELD_ASSOCIATION_VERTICES:4,FIELD_ASSOCIATION_EDGES:5,FIELD_ASSOCIATION_ROWS:6,NUMBER_OF_ASSOCIATIONS:7};var lH={FieldDataTypes:sH,FieldAssociations:cH};const $5=["pointData","cellData","fieldData"];function uH(t,e){e.classHierarchy.push("vtkDataSet"),$5.forEach(n=>{e[n]?e[n]=Eo(e[n]):e[n]=WT.newInstance()});const r=t.shallowCopy;t.shallowCopy=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;r(n,i),$5.forEach(o=>{e[o]=WT.newInstance(),e[o].shallowCopy(n.getReferenceByName(o))})}}const fH={};function _b(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,fH,r),W.obj(t,e),W.setGet(t,e,$5),uH(t,e)}const dH=W.newInstance(_b,"vtkDataSet");var w0={newInstance:dH,extend:_b,...lH};const{FieldAssociations:hH}=w0;function gH(t,e){e.classHierarchy.push("vtkHardwareSelector"),t.getSourceDataAsync=async(r,n,i,o,a)=>{},t.selectAsync=async(r,n,i,o,a)=>{const s=await t.getSourceDataAsync(r,n,i,o,a);return s?s.generateSelection(n,i,o,a):[]}}const pH={fieldAssociation:hH.FIELD_ASSOCIATION_CELLS,captureZValues:!1};function Eb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pH,r),W.obj(t,e),W.setGet(t,e,["fieldAssociation","captureZValues"]),gH(t,e)}const mH=W.newInstance(Eb,"vtkHardwareSelector");var vH={newInstance:mH,extend:Eb};const yH={GLOBALIDS:0,PEDIGREEIDS:1,VALUES:2,INDICES:3,FRUSTUM:4,LOCATIONS:5,THRESHOLDS:6,BLOCKS:7,QUERY:8},xH={CELL:0,POINT:1,FIELD:2,VERTEX:3,EDGE:4,ROW:5};var wH={SelectionContent:yH,SelectionField:xH};function CH(t,e){e.classHierarchy.push("vtkSelectionNode"),t.getBounds=()=>e.points.getBounds()}const SH={contentType:-1,fieldType:-1,properties:null,selectionList:[]};function Db(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SH,r),W.obj(t,e),e.properties={},W.setGet(t,e,["contentType","fieldType","properties","selectionList"]),CH(t,e)}const TH=W.newInstance(Db,"vtkSelectionNode");var bb={newInstance:TH,extend:Db,...wH};const{PassTypes:Zn}=wb,{SelectionContent:_H,SelectionField:zT}=bb,{FieldAssociations:$f}=w0,{vtkErrorMacro:Ib}=W,Ts=1;function Ob(t){return`${t.propID} ${t.compositeID}`}function Mb(t,e,r,n){if(!r)return 0;const i=(e*(n[2]-n[0]+1)+t)*4;return r[i+3]}function Ia(t,e,r,n){if(!r)return 0;const i=(e*(n[2]-n[0]+1)+t)*4,o=r[i],a=r[i+1];return(r[i+2]*256+a)*256+o}function Rb(t,e){let r=e;return r<<=24,r|=t,r}function EH(t,e,r,n){{if(n[0]=e[0],n[1]=e[1],e[0]t.area[2]||e[1]t.area[3])return null;const i=[e[0]-t.area[0],e[1]-t.area[1]],o=Ia(i[0],i[1],t.pixBuffer[Zn.ACTOR_PASS],t.area);if(o<=0||o-Ts>=t.props.length)return null;const a={};a.valid=!0,a.propID=o-Ts,a.prop=t.props[a.propID];let s=Ia(i[0],i[1],t.pixBuffer[Zn.COMPOSITE_INDEX_PASS],t.area);if((s<0||s>16777215)&&(s=0),a.compositeID=s-Ts,t.captureZValues){const f=(i[1]*(t.area[2]-t.area[0]+1)+i[0])*4;a.zValue=(256*t.zBuffer[f]+t.zBuffer[f+1])/65535,a.displayPosition=e}if(t.pixBuffer[Zn.ID_LOW24]&&Mb(i[0],i[1],t.pixBuffer[Zn.ID_LOW24],t.area)===0)return a;const c=Ia(i[0],i[1],t.pixBuffer[Zn.ID_LOW24],t.area),l=Ia(i[0],i[1],t.pixBuffer[Zn.ID_HIGH24],t.area);return a.attributeID=Rb(c,l),a}}function Lb(t,e,r,n,i){const o=[];let a=0;return e.forEach((s,c)=>{const l=bb.newInstance();switch(l.setContentType(_H.INDICES),t){case $f.FIELD_ASSOCIATION_CELLS:l.setFieldType(zT.CELL);break;case $f.FIELD_ASSOCIATION_POINTS:l.setFieldType(zT.POINT);break;default:Ib("Unknown field association")}l.getProperties().propID=s.info.propID,l.getProperties().prop=s.info.prop,l.getProperties().compositeID=s.info.compositeID,l.getProperties().attributeID=s.info.attributeID,l.getProperties().pixelCount=s.pixelCount,r&&(l.getProperties().displayPosition=[s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue],l.getProperties().worldPosition=i.displayToWorld(s.info.displayPosition[0],s.info.displayPosition[1],s.info.zValue,n)),l.setSelectionList(s.attributeIDs),o[a]=l,a++}),o}function DH(t,e,r,n,i){const o=Math.floor(e),a=Math.floor(r),s=Math.floor(n),c=Math.floor(i),l=new Map,f=[0,0];for(let u=a;u<=c;u++)for(let d=o;d<=s;d++){const g=EH(t,[d,u],0,f);if(g&&g.valid){const p=Ob(g);if(!l.has(p))l.set(p,{info:g,pixelCount:1,attributeIDs:[g.attributeID]});else{const v=l.get(p);v.pixelCount++,t.captureZValues&&g.zValue{e.rawPixBuffer=[],e.pixBuffer=[],e.zBuffer=null},t.beginSelection=()=>{e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e.maxAttributeId=0;const n=e._openGLRenderWindow.getSize();if(!e.framebuffer)e.framebuffer=Xm.newInstance(),e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.create(n[0],n[1]),e.framebuffer.populateFramebuffer();else{e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.saveCurrentBindingsAndBuffers();const i=e.framebuffer.getSize();!i||i[0]!==n[0]||i[1]!==n[1]?(e.framebuffer.create(n[0],n[1]),e.framebuffer.populateFramebuffer()):e.framebuffer.bind()}if(e._openGLRenderer.clear(),e._openGLRenderer.setSelector(t),e.hitProps={},e.propPixels={},e.props=[],t.releasePixBuffers(),e.fieldAssociation===$f.FIELD_ASSOCIATION_POINTS){const i=e._openGLRenderWindow.getContext(),o=i.isEnabled(i.BLEND);i.disable(i.BLEND),e._openGLRenderWindow.traverseAllPasses(),o&&i.enable(i.BLEND)}},t.endSelection=()=>{e.hitProps={},e._openGLRenderer.setSelector(null),e.framebuffer.restorePreviousBindingsAndBuffers()},t.preCapturePass=()=>{const n=e._openGLRenderWindow.getContext();e.originalBlending=n.isEnabled(n.BLEND),n.disable(n.BLEND)},t.postCapturePass=()=>{const n=e._openGLRenderWindow.getContext();e.originalBlending&&n.enable(n.BLEND)},t.select=()=>{let n=null;return t.captureBuffers()&&(n=t.generateSelection(e.area[0],e.area[1],e.area[2],e.area[3]),t.releasePixBuffers()),n},t.getSourceDataAsync=async(n,i,o,a,s)=>{if(e._renderer=n,i===void 0){const l=e._openGLRenderWindow.getSize();t.setArea(0,0,l[0]-1,l[1]-1)}else t.setArea(i,o,a,s);if(!t.captureBuffers())return!1;const c={area:[...e.area],pixBuffer:[...e.pixBuffer],captureZValues:e.captureZValues,zBuffer:e.zBuffer,props:[...e.props],fieldAssociation:e.fieldAssociation,renderer:n,openGLRenderWindow:e._openGLRenderWindow};return c.generateSelection=function(){for(var l=arguments.length,f=new Array(l),u=0;u{if(!e._renderer||!e._openGLRenderWindow)return Ib("Renderer and view must be set before calling Select."),!1;e._openGLRenderer=e._openGLRenderWindow.getViewNodeFor(e._renderer),e._openGLRenderWindow.getRenderable().preRender(),t.invokeEvent({type:"StartEvent"}),e.originalBackground=e._renderer.getBackgroundByReference(),e._renderer.setBackground(0,0,0,0);const n=e._openGLRenderWindow.getRenderPasses();t.beginSelection();const i=[];for(e.currentPass=Zn.MIN_KNOWN_PASS;e.currentPass<=Zn.MAX_KNOWN_PASS;e.currentPass++)t.passRequired(e.currentPass)&&(t.preCapturePass(e.currentPass),e.captureZValues&&e.currentPass===Zn.ACTOR_PASS&&typeof n[0].requestDepth=="function"&&typeof n[0].getFramebuffer=="function"&&n[0].requestDepth(),e._openGLRenderWindow.traverseAllPasses(),t.postCapturePass(e.currentPass),t.savePixelBuffer(e.currentPass),i.push(e.currentPass));return i.forEach(o=>{e.currentPass=o,t.processPixelBuffers()}),e.currentPass=Zn.MAX_KNOWN_PASS,t.endSelection(),e._renderer.setBackground(e.originalBackground),t.invokeEvent({type:"EndEvent"}),!0},t.processPixelBuffers=()=>{e.props.forEach((n,i)=>{t.isPropHit(i)&&n.processSelectorPixelBuffers(t,e.propPixels[i])})},t.passRequired=n=>{if(n===Zn.ID_HIGH24){if(e.fieldAssociation===$f.FIELD_ASSOCIATION_POINTS)return e.maximumPointId>16777215;if(e.fieldAssociation===$f.FIELD_ASSOCIATION_CELLS)return e.maximumCellId>16777215}return!0},t.savePixelBuffer=n=>{if(e.pixBuffer[n]=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),!e.rawPixBuffer[n]){const i=(e.area[2]-e.area[0]+1)*(e.area[3]-e.area[1]+1)*4;e.rawPixBuffer[n]=new Uint8Array(i),e.rawPixBuffer[n].set(e.pixBuffer[n])}if(n===Zn.ACTOR_PASS){if(e.captureZValues){const i=e._openGLRenderWindow.getRenderPasses();if(typeof i[0].requestDepth=="function"&&typeof i[0].getFramebuffer=="function"){const o=i[0].getFramebuffer();o.saveCurrentBindingsAndBuffers(),o.bind(),e.zBuffer=e._openGLRenderWindow.getPixelData(e.area[0],e.area[1],e.area[2],e.area[3]),o.restorePreviousBindingsAndBuffers()}}t.buildPropHitList(e.rawPixBuffer[n])}},t.buildPropHitList=n=>{let i=0;for(let o=0;o<=e.area[3]-e.area[1];o++)for(let a=0;a<=e.area[2]-e.area[0];a++){let s=Ia(a,o,n,e.area);s>0&&(s--,s in e.hitProps||(e.hitProps[s]=!0,e.propPixels[s]=[]),e.propPixels[s].push(i*4)),++i}},t.renderProp=n=>{e.currentPass===Zn.ACTOR_PASS&&(t.setPropColorValueFromInt(e.props.length+Ts),e.props.push(n))},t.renderCompositeIndex=n=>{e.currentPass===Zn.COMPOSITE_INDEX_PASS&&t.setPropColorValueFromInt(n+Ts)},t.renderAttributeId=n=>{n<0||(e.maxAttributeId=n>e.maxAttributeId?n:e.maxAttributeId)},t.passTypeToString=n=>W.enumToString(Zn,n),t.isPropHit=n=>!!e.hitProps[n],t.setPropColorValueFromInt=n=>{e.propColorValue[0]=n%256/255,e.propColorValue[1]=Math.floor(n/256)%256/255,e.propColorValue[2]=Math.floor(n/65536)%256/255},t.getPixelInformation=(n,i,o)=>{const a=i<0?0:i;if(a===0){if(o[0]=n[0],o[1]=n[1],n[0]e.area[2]||n[1]e.area[3])return null;const f=[n[0]-e.area[0],n[1]-e.area[1]],u=Ia(f[0],f[1],e.pixBuffer[Zn.ACTOR_PASS],e.area);if(u<=0||u-Ts>=e.props.length)return null;const d={};d.valid=!0,d.propID=u-Ts,d.prop=e.props[d.propID];let h=Ia(f[0],f[1],e.pixBuffer[Zn.COMPOSITE_INDEX_PASS],e.area);if((h<0||h>16777215)&&(h=0),d.compositeID=h-Ts,e.captureZValues){const v=(f[1]*(e.area[2]-e.area[0]+1)+f[0])*4;d.zValue=(256*e.zBuffer[v]+e.zBuffer[v+1])/65535,d.displayPosition=n}if(e.pixBuffer[Zn.ID_LOW24]&&Mb(f[0],f[1],e.pixBuffer[Zn.ID_LOW24],e.area)===0)return d;const g=Ia(f[0],f[1],e.pixBuffer[Zn.ID_LOW24],e.area),p=Ia(f[0],f[1],e.pixBuffer[Zn.ID_HIGH24],e.area);return d.attributeID=Rb(g,p),d}const s=[n[0],n[1]],c=[0,0];let l=t.getPixelInformation(n,0,o);if(l&&l.valid)return l;for(let f=1;ff?s[1]-f:0;u<=s[1]+f;++u)if(c[1]=u,s[0]>=f&&(c[0]=s[0]-f,l=t.getPixelInformation(c,0,o),l&&l.valid)||(c[0]=s[0]+f,l=t.getPixelInformation(c,0,o),l&&l.valid))return l;for(let u=s[0]>=f?s[0]-(f-1):0;u<=s[0]+(f-1);++u)if(c[0]=u,s[1]>=f&&(c[1]=s[1]-f,l=t.getPixelInformation(c,0,o),l&&l.valid)||(c[1]=s[1]+f,l=t.getPixelInformation(c,0,o),l&&l.valid))return l}return o[0]=n[0],o[1]=n[1],null},t.generateSelection=(n,i,o,a)=>{const s=Math.floor(n),c=Math.floor(i),l=Math.floor(o),f=Math.floor(a),u=new Map,d=[0,0];for(let h=c;h<=f;h++)for(let g=s;g<=l;g++){const p=[g,h],v=t.getPixelInformation(p,0,d);if(v&&v.valid){const x=Ob(v);if(!u.has(x))u.set(x,{info:v,pixelCount:1,attributeIDs:[v.attributeID]});else{const m=u.get(x);m.pixelCount++,e.captureZValues&&v.zValuee.rawPixBuffer[n],t.getPixelBuffer=n=>e.pixBuffer[n],t.attach=(n,i)=>{e._openGLRenderWindow=n,e._renderer=i};const r=t.setArea;t.setArea=function(){return r(...arguments)?(e.area[0]=Math.floor(e.area[0]),e.area[1]=Math.floor(e.area[1]),e.area[2]=Math.floor(e.area[2]),e.area[3]=Math.floor(e.area[3]),!0):!1}}const IH={area:void 0,currentPass:-1,propColorValue:null,props:null,maximumPointId:0,maximumCellId:0,idOffset:1};function Nb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IH,r),vH.extend(t,e,r),e.propColorValue=[0,0,0],e.props=[],e.area||(e.area=[0,0,0,0]),W.setGetArray(t,e,["area"],4),W.setGet(t,e,["_renderer","currentPass","_openGLRenderWindow","maximumPointId","maximumCellId"]),W.setGetArray(t,e,["propColorValue"],3),W.moveToProtected(t,e,["renderer","openGLRenderWindow"]),W.event(t,e,"event"),bH(t,e)}const OH=W.newInstance(Nb,"vtkOpenGLHardwareSelector");var Iw={newInstance:OH,extend:Nb,...wb},Pb={exports:{}};(function(t,e){(function(r){t.exports=r()})(function(r){var n=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];function i(x,m){var y=x[0],w=x[1],C=x[2],S=x[3];y+=(w&C|~w&S)+m[0]-680876936|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[1]-389564586|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[2]+606105819|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[3]-1044525330|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[4]-176418897|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[5]+1200080426|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[6]-1473231341|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[7]-45705983|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[8]+1770035416|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[9]-1958414417|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[10]-42063|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[11]-1990404162|0,w=(w<<22|w>>>10)+C|0,y+=(w&C|~w&S)+m[12]+1804603682|0,y=(y<<7|y>>>25)+w|0,S+=(y&w|~y&C)+m[13]-40341101|0,S=(S<<12|S>>>20)+y|0,C+=(S&y|~S&w)+m[14]-1502002290|0,C=(C<<17|C>>>15)+S|0,w+=(C&S|~C&y)+m[15]+1236535329|0,w=(w<<22|w>>>10)+C|0,y+=(w&S|C&~S)+m[1]-165796510|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[6]-1069501632|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[11]+643717713|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[0]-373897302|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[5]-701558691|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[10]+38016083|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[15]-660478335|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[4]-405537848|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[9]+568446438|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[14]-1019803690|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[3]-187363961|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[8]+1163531501|0,w=(w<<20|w>>>12)+C|0,y+=(w&S|C&~S)+m[13]-1444681467|0,y=(y<<5|y>>>27)+w|0,S+=(y&C|w&~C)+m[2]-51403784|0,S=(S<<9|S>>>23)+y|0,C+=(S&w|y&~w)+m[7]+1735328473|0,C=(C<<14|C>>>18)+S|0,w+=(C&y|S&~y)+m[12]-1926607734|0,w=(w<<20|w>>>12)+C|0,y+=(w^C^S)+m[5]-378558|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[8]-2022574463|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[11]+1839030562|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[14]-35309556|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[1]-1530992060|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[4]+1272893353|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[7]-155497632|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[10]-1094730640|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[13]+681279174|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[0]-358537222|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[3]-722521979|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[6]+76029189|0,w=(w<<23|w>>>9)+C|0,y+=(w^C^S)+m[9]-640364487|0,y=(y<<4|y>>>28)+w|0,S+=(y^w^C)+m[12]-421815835|0,S=(S<<11|S>>>21)+y|0,C+=(S^y^w)+m[15]+530742520|0,C=(C<<16|C>>>16)+S|0,w+=(C^S^y)+m[2]-995338651|0,w=(w<<23|w>>>9)+C|0,y+=(C^(w|~S))+m[0]-198630844|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[7]+1126891415|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[14]-1416354905|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[5]-57434055|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[12]+1700485571|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[3]-1894986606|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[10]-1051523|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[1]-2054922799|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[8]+1873313359|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[15]-30611744|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[6]-1560198380|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[13]+1309151649|0,w=(w<<21|w>>>11)+C|0,y+=(C^(w|~S))+m[4]-145523070|0,y=(y<<6|y>>>26)+w|0,S+=(w^(y|~C))+m[11]-1120210379|0,S=(S<<10|S>>>22)+y|0,C+=(y^(S|~w))+m[2]+718787259|0,C=(C<<15|C>>>17)+S|0,w+=(S^(C|~y))+m[9]-343485551|0,w=(w<<21|w>>>11)+C|0,x[0]=y+x[0]|0,x[1]=w+x[1]|0,x[2]=C+x[2]|0,x[3]=S+x[3]|0}function o(x){var m=[],y;for(y=0;y<64;y+=4)m[y>>2]=x.charCodeAt(y)+(x.charCodeAt(y+1)<<8)+(x.charCodeAt(y+2)<<16)+(x.charCodeAt(y+3)<<24);return m}function a(x){var m=[],y;for(y=0;y<64;y+=4)m[y>>2]=x[y]+(x[y+1]<<8)+(x[y+2]<<16)+(x[y+3]<<24);return m}function s(x){var m=x.length,y=[1732584193,-271733879,-1732584194,271733878],w,C,S,T,_,E;for(w=64;w<=m;w+=64)i(y,o(x.substring(w-64,w)));for(x=x.substring(w-64),C=x.length,S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],w=0;w>2]|=x.charCodeAt(w)<<(w%4<<3);if(S[w>>2]|=128<<(w%4<<3),w>55)for(i(y,S),w=0;w<16;w+=1)S[w]=0;return T=m*8,T=T.toString(16).match(/(.*?)(.{0,8})$/),_=parseInt(T[2],16),E=parseInt(T[1],16)||0,S[14]=_,S[15]=E,i(y,S),y}function c(x){var m=x.length,y=[1732584193,-271733879,-1732584194,271733878],w,C,S,T,_,E;for(w=64;w<=m;w+=64)i(y,a(x.subarray(w-64,w)));for(x=w-64>2]|=x[w]<<(w%4<<3);if(S[w>>2]|=128<<(w%4<<3),w>55)for(i(y,S),w=0;w<16;w+=1)S[w]=0;return T=m*8,T=T.toString(16).match(/(.*?)(.{0,8})$/),_=parseInt(T[2],16),E=parseInt(T[1],16)||0,S[14]=_,S[15]=E,i(y,S),y}function l(x){var m="",y;for(y=0;y<4;y+=1)m+=n[x>>y*8+4&15]+n[x>>y*8&15];return m}function f(x){var m;for(m=0;mS?new ArrayBuffer(0):(T=S-C,_=new ArrayBuffer(T),E=new Uint8Array(_),D=new Uint8Array(this,C,T),E.set(D),_)}}();function u(x){return/[\u0080-\uFFFF]/.test(x)&&(x=unescape(encodeURIComponent(x))),x}function d(x,m){var y=x.length,w=new ArrayBuffer(y),C=new Uint8Array(w),S;for(S=0;S>2]|=m.charCodeAt(w)<<(w%4<<3);return this._finish(C,y),S=f(this._hash),x&&(S=p(S)),this.reset(),S},v.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},v.prototype.setState=function(x){return this._buff=x.buff,this._length=x.length,this._hash=x.hash,this},v.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},v.prototype._finish=function(x,m){var y=m,w,C,S;if(x[y>>2]|=128<<(y%4<<3),y>55)for(i(this._hash,x),y=0;y<16;y+=1)x[y]=0;w=this._length*8,w=w.toString(16).match(/(.*?)(.{0,8})$/),C=parseInt(w[2],16),S=parseInt(w[1],16)||0,x[14]=C,x[15]=S,i(this._hash,x)},v.hash=function(x,m){return v.hashBinary(u(x),m)},v.hashBinary=function(x,m){var y=s(x),w=f(y);return m?p(w):w},v.ArrayBuffer=function(){this.reset()},v.ArrayBuffer.prototype.append=function(x){var m=g(this._buff.buffer,x),y=m.length,w;for(this._length+=x.byteLength,w=64;w<=y;w+=64)i(this._hash,a(m.subarray(w-64,w)));return this._buff=w-64>2]|=m[C]<<(C%4<<3);return this._finish(w,y),S=f(this._hash),x&&(S=p(S)),this.reset(),S},v.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},v.ArrayBuffer.prototype.getState=function(){var x=v.prototype.getState.call(this);return x.buff=h(x.buff),x},v.ArrayBuffer.prototype.setState=function(x){return x.buff=d(x.buff,!0),v.prototype.setState.call(this,x)},v.ArrayBuffer.prototype.destroy=v.prototype.destroy,v.ArrayBuffer.prototype._finish=v.prototype._finish,v.ArrayBuffer.hash=function(x,m){var y=c(new Uint8Array(x)),w=f(y);return m?p(w):w},v})})(Pb);var MH=Pb.exports;const RH=oh(MH),LH=["lastShaderProgramBound","context","_openGLRenderWindow"];function NH(t,e){e.classHierarchy.push("vtkShaderCache"),t.replaceShaderValues=(r,n,i)=>{let o=n;i.length>0&&(o=ce.substitute(o,"VSOut","GSOut").result);const a=e._openGLRenderWindow.getWebgl2();let s=` `,c=`#version 100 `;a?c=`#version 300 es #define attribute in @@ -79,7 +79,7 @@ void main() `,a?"":`#extension GL_OES_standard_derivatives : enable `,s,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;let l=ce.substitute(r,"//VTK::System::Dec",[`${c} `,"#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","precision highp int;","#else","precision mediump float;","precision mediump int;","#endif"]).result;if(a){l=ce.substitute(l,"varying","out").result,o=ce.substitute(o,"varying","in").result;let u="",d=0;for(;o.includes(`gl_FragData[${d}]`);)o=ce.substitute(o,`gl_FragData\\[${d}\\]`,`fragOutput${d}`).result,u+=`layout(location = ${d}) out vec4 fragOutput${d}; -`,d++;o=ce.substitute(o,"//VTK::Output::Dec",u).result}const f=ce.substitute(i,"//VTK::System::Dec",c).result;return{VSSource:l,FSSource:o,GSSource:f}},t.readyShaderProgramArray=(r,n,i)=>{const o=t.replaceShaderValues(r,n,i),a=t.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return t.readyShaderProgram(a)},t.readyShaderProgram=r=>!r||!r.getCompiled()&&!r.compileShader()||!t.bindShaderProgram(r)?null:r,t.getShaderProgram=(r,n,i)=>{const o=`${r}${n}${i}`,a=EH.hash(o);if(!(a in e.shaderPrograms)){const s=ce.newInstance();return s.setContext(e.context),s.getVertexShader().setSource(r),s.getFragmentShader().setSource(n),i&&s.getGeometryShader().setSource(i),s.setMd5Hash(a),e.shaderPrograms[a]=s,s}return e.shaderPrograms[a]},t.releaseGraphicsResources=r=>{t.releaseCurrentShaderProgram(),Object.keys(e.shaderPrograms).map(n=>e.shaderPrograms[n]).forEach(n=>n.cleanup()),e.shaderPrograms={}},t.releaseCurrentShaderProgram=()=>{e.lastShaderProgramBound&&(e.lastShaderProgramBound.cleanup(),e.lastShaderProgramBound=null)},t.bindShaderProgram=r=>(e.lastShaderProgramBound===r||(e.lastShaderProgramBound&&e.lastShaderProgramBound.release(),r.bind(),e.lastShaderProgramBound=r),1)}const IH={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Mb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IH,r),e.shaderPrograms={},W.obj(t,e),W.setGet(t,e,DH),W.moveToProtected(t,e,["openGLRenderWindow"]),bH(t,e)}const OH=W.newInstance(Mb,"vtkShaderCache");var MH={newInstance:OH,extend:Mb};const{vtkErrorMacro:RH}=W;function LH(t,e){e.classHierarchy.push("vtkOpenGLTextureUnitManager"),t.deleteTable=()=>{for(let r=0;r{if(e.context!==r){if(e.context!==0&&t.deleteTable(),e.context=r,e.context){e.numberOfTextureUnits=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS);for(let n=0;n{for(let r=0;rt.isAllocated(r)?-1:(e.textureUnits[r]=!0,r),t.isAllocated=r=>e.textureUnits[r],t.free=r=>{e.textureUnits[r]=!1},t.freeAll=()=>{for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,NH,r),W.obj(t,e),e.textureUnits=[],W.get(t,e,["numberOfTextureUnits"]),W.setGet(t,e,["context"]),LH(t,e)}const PH=W.newInstance(Rb,"vtkOpenGLTextureUnitManager");var AH={newInstance:PH,extend:Rb};function kH(t,e){e.classHierarchy.push("vtkRenderWindowViewNode"),t.getViewNodeFactory=()=>null,t.getAspectRatio=()=>e.size[0]/e.size[1],t.getAspectRatioForRenderer=r=>{const n=r.getViewportByReference();return e.size[0]*(n[2]-n[0])/((n[3]-n[1])*e.size[1])},t.isInViewport=(r,n,i)=>{const o=i.getViewportByReference(),a=t.getFramebufferSize();return o[0]*a[0]<=r&&o[2]*a[0]>=r&&o[1]*a[1]<=n&&o[3]*a[1]>=n},t.getViewportSize=r=>{const n=r.getViewportByReference(),i=t.getFramebufferSize();return[(n[2]-n[0])*i[0],(n[3]-n[1])*i[1]]},t.getViewportCenter=r=>{const n=t.getViewportSize(r);return[n[0]*.5,n[1]*.5]},t.displayToNormalizedDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r/o[0],n/o[1],i]},t.normalizedDisplayToDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r*o[0],n*o[1],i]},t.worldToView=(r,n,i,o)=>o.worldToView(r,n,i),t.viewToWorld=(r,n,i,o)=>o.viewToWorld(r,n,i),t.worldToDisplay=(r,n,i,o)=>{const a=o.worldToView(r,n,i),s=t.getViewportSize(o),c=o.viewToProjection(a[0],a[1],a[2],s[0]/s[1]),l=o.projectionToNormalizedDisplay(c[0],c[1],c[2]);return t.normalizedDisplayToDisplay(l[0],l[1],l[2])},t.displayToWorld=(r,n,i,o)=>{const a=t.displayToNormalizedDisplay(r,n,i),s=o.normalizedDisplayToProjection(a[0],a[1],a[2]),c=t.getViewportSize(o),l=o.projectionToView(s[0],s[1],s[2],c[0]/c[1]);return o.viewToWorld(l[0],l[1],l[2])},t.normalizedDisplayToViewport=(r,n,i,o)=>{let a=o.getViewportByReference();a=t.normalizedDisplayToDisplay(a[0],a[1],0);const s=t.normalizedDisplayToDisplay(r,n,i);return[s[0]-a[0]-.5,s[1]-a[1]-.5,i]},t.viewportToNormalizedViewport=(r,n,i,o)=>{const a=t.getViewportSize(o);return a&&a[0]!==0&&a[1]!==0?[r/(a[0]-1),n/(a[1]-1),i]:[r,n,i]},t.normalizedViewportToViewport=(r,n,i,o)=>{const a=t.getViewportSize(o);return[r*(a[0]-1),n*(a[1]-1),i]},t.displayToLocalDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r,o[1]-n-1,i]},t.viewportToNormalizedDisplay=(r,n,i,o)=>{let a=o.getViewportByReference();a=t.normalizedDisplayToDisplay(a[0],a[1],0);const s=r+a[0]+.5,c=n+a[1]+.5;return t.displayToNormalizedDisplay(s,c,i)},t.getComputedDevicePixelRatio=()=>e.size[0]/t.getContainerSize()[0],t.getContainerSize=()=>{W.vtkErrorMacro("not implemented")},t.getPixelData=(r,n,i,o)=>{W.vtkErrorMacro("not implemented")},t.createSelector=()=>{W.vtkErrorMacro("not implemented")}}const VH={size:void 0,selector:void 0};function Lb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VH,r),e.size||(e.size=[300,300]),W.getArray(t,e,["size"],2),W.get(t,e,["selector"]),nn.extend(t,e,r),kH(t,e)}const FH=W.newInstance(Lb,"vtkRenderWindowViewNode");var UH={newInstance:FH,extend:Lb};const BH="__getUnderlyingContext";function GH(){const t=new Map,e={apply(i,o,a){return t.has(a[0])?t.get(a[0]):i.apply(o,a)}};function r(i){return{apply(o,a,s){return t.set(i,s[0]),o.apply(a,s)}}}const n=Object.create(null);return n.getParameter=(i,o,a,s)=>new Proxy(s.bind(i),e),n.depthMask=(i,o,a,s)=>new Proxy(s.bind(i),r(i.DEPTH_WRITEMASK)),{get(i,o,a){if(o===BH)return()=>i;let s=Reflect.get(i,o,i);s instanceof Function&&(s=s.bind(i));const c=n[o];return c?c(i,o,a,s):s}}}const{vtkDebugMacro:GT,vtkErrorMacro:WT}=W,WH={position:"absolute",top:0,left:0,width:"100%",height:"100%"},zH=["activateTexture","deactivateTexture","disableCullFace","enableCullFace","get3DContext","getActiveFramebuffer","getContext","getDefaultTextureByteSize","getDefaultTextureInternalFormat","getDefaultToWebgl2","getGLInformations","getGraphicsMemoryInfo","getGraphicsResourceForObject","getHardwareMaximumLineWidth","getPixelData","getShaderCache","getTextureUnitForTexture","getTextureUnitManager","getWebgl2","makeCurrent","releaseGraphicsResources","registerGraphicsResourceUser","unregisterGraphicsResourceUser","restoreContext","setActiveFramebuffer","setContext","setDefaultToWebgl2","setGraphicsResourceForObject"];function ni(t,e,r){const n=t.createFramebuffer(),i=t.createTexture();t.bindTexture(t.TEXTURE_2D,i),t.texImage2D(t.TEXTURE_2D,0,e,2,2,0,e,r,null),t.bindFramebuffer(t.FRAMEBUFFER,n),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0);const o=t.checkFramebufferStatus(t.FRAMEBUFFER);return t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindTexture(t.TEXTURE_2D,null),o===t.FRAMEBUFFER_COMPLETE}let O1=0;const Ym=[];function $H(){O1++,Ym.forEach(t=>t(O1))}function jH(){O1--,Ym.forEach(t=>t(O1))}function HH(t){Ym.push(t)}function KH(t){return Ym.pop()}function zT(t){t.preventDefault()}function qH(t,e){e.classHierarchy.push("vtkOpenGLRenderWindow");let r;function n(){return r||(r=GH()),r}t.getViewNodeFactory=()=>e.myFactory,e.canvas.addEventListener("webglcontextlost",zT,!1),e.canvas.addEventListener("webglcontextrestored",t.restoreContext,!1);const i=[0,0];function o(){e.renderable&&(e.size[0]!==i[0]||e.size[1]!==i[1])&&(i[0]=e.size[0],i[1]=e.size[1],e.canvas.setAttribute("width",e.size[0]),e.canvas.setAttribute("height",e.size[1])),e.viewStream&&e.viewStream.setSize(e.size[0],e.size[1]),e.canvas.style.display=e.useOffScreen?"none":"block",e.el&&(e.el.style.cursor=e.cursorVisibility?e.cursor:"none"),e.containerSize=null}t.onModified(o),t.buildPass=u=>{if(u){if(!e.renderable)return;t.prepareNodes(),t.addMissingNodes(e.renderable.getRenderersByReference()),t.addMissingNodes(e.renderable.getChildRenderWindowsByReference()),t.removeUnusedNodes(),t.initialize(),e.children.forEach(d=>{var h;(h=d.setOpenGLRenderWindow)==null||h.call(d,t)})}},t.initialize=()=>{if(!e.initialized){if(e.rootOpenGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.rootOpenGLRenderWindow)e.context2D=t.get2DContext();else{e.context=t.get3DContext(),t.resizeFromChildRenderWindows(),e.context&&$H(),e.textureUnitManager=AH.newInstance(),e.textureUnitManager.setContext(e.context),e.shaderCache.setContext(e.context);const u=e.context;u.blendFuncSeparate(u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA,u.ONE,u.ONE_MINUS_SRC_ALPHA),u.depthFunc(u.LEQUAL),u.enable(u.BLEND)}e.initialized=!0}},t.makeCurrent=()=>{e.context.makeCurrent()},t.setContainer=u=>{e.el&&e.el!==u&&(e.canvas.parentNode!==e.el&&WT("Error: canvas parent node does not match container"),e.el.removeChild(e.canvas),e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)),e.el!==u&&(e.el=u,e.el&&(e.el.appendChild(e.canvas),e.useBackgroundImage&&e.el.appendChild(e.bgImage)),t.modified())},t.getContainer=()=>e.el,t.getContainerSize=()=>{if(!e.containerSize&&e.el){const{width:u,height:d}=e.el.getBoundingClientRect();e.containerSize=[u,d]}return e.containerSize||e.size},t.getFramebufferSize=()=>{var d;return((d=e.activeFramebuffer)==null?void 0:d.getSize())||e.size},t.getPixelData=(u,d,h,g)=>{const p=new Uint8Array((h-u+1)*(g-d+1)*4);return e.context.readPixels(u,d,h-u+1,g-d+1,e.context.RGBA,e.context.UNSIGNED_BYTE,p),p},t.get3DContext=function(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},d=null;const h=typeof WebGL2RenderingContext<"u";return e.webgl2=!1,e.defaultToWebgl2&&h&&(d=e.canvas.getContext("webgl2",u),d&&(e.webgl2=!0,GT("using webgl2"))),d||(GT("using webgl1"),d=e.canvas.getContext("webgl",u)||e.canvas.getContext("experimental-webgl",u)),new Proxy(d,n())},t.get2DContext=function(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.canvas.getContext("2d",u)},t.restoreContext=()=>{const u=uw.newInstance();u.setCurrentOperation("Release"),u.traverse(t,null)},t.activateTexture=u=>{const d=e._textureResourceIds.get(u);if(d!==void 0){e.context.activeTexture(e.context.TEXTURE0+d);return}const h=t.getTextureUnitManager().allocate();if(h<0){WT("Hardware does not support the number of textures defined.");return}e._textureResourceIds.set(u,h),e.context.activeTexture(e.context.TEXTURE0+h)},t.deactivateTexture=u=>{const d=e._textureResourceIds.get(u);d!==void 0&&(t.getTextureUnitManager().free(d),e._textureResourceIds.delete(u))},t.getTextureUnitForTexture=u=>{const d=e._textureResourceIds.get(u);return d!==void 0?d:-1},t.getDefaultTextureByteSize=function(u){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(e.webgl2)switch(u){case yt.CHAR:case yt.SIGNED_CHAR:case yt.UNSIGNED_CHAR:return 1;case d:case h:case yt.UNSIGNED_SHORT:case yt.SHORT:case yt.VOID:return 2;default:return 4}return 1},t.getDefaultTextureInternalFormat=function(u,d){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e.webgl2)switch(u){case yt.UNSIGNED_CHAR:switch(d){case 1:return e.context.R8;case 2:return e.context.RG8;case 3:return e.context.RGB8;case 4:default:return e.context.RGBA8}case(h&&!g&&yt.UNSIGNED_SHORT):switch(d){case 1:return h.R16_EXT;case 2:return h.RG16_EXT;case 3:return h.RGB16_EXT;case 4:default:return h.RGBA16_EXT}case(h&&!g&&yt.SHORT):switch(d){case 1:return h.R16_SNORM_EXT;case 2:return h.RG16_SNORM_EXT;case 3:return h.RGB16_SNORM_EXT;case 4:default:return h.RGBA16_SNORM_EXT}case yt.UNSIGNED_SHORT:case yt.SHORT:case yt.FLOAT:default:switch(d){case 1:return g?e.context.R16F:e.context.R32F;case 2:return g?e.context.RG16F:e.context.RG32F;case 3:return g?e.context.RGB16F:e.context.RGB32F;case 4:default:return g?e.context.RGBA16F:e.context.RGBA32F}}switch(d){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:default:return e.context.RGBA}},t.setBackgroundImage=u=>{e.bgImage.src=u.src},t.setUseBackgroundImage=u=>{e.useBackgroundImage=u,e.useBackgroundImage&&!e.el.contains(e.bgImage)?e.el.appendChild(e.bgImage):!e.useBackgroundImage&&e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)};function a(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.imageFormat;const d=document.createElement("canvas"),h=d.getContext("2d");d.width=e.canvas.width,d.height=e.canvas.height,h.drawImage(e.canvas,0,0);const g=e.canvas.getBoundingClientRect();e.renderable.getRenderers().forEach(m=>{m.getViewProps().forEach(w=>{if(w.getContainer){const S=w.getContainer().getElementsByTagName("canvas");for(let T=0;T0&&arguments[0]!==void 0?arguments[0]:"image/png",{resetCamera:d=!1,size:h=null,scale:g=1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.deleted)return null;e.imageFormat=u;const p=e.notifyStartCaptureImage;return e.notifyStartCaptureImage=!0,e._screenshot={size:h||g!==1?h||e.size.map(v=>v*g):null},new Promise((v,x)=>{const m=t.onImageReady(y=>{if(e._screenshot.size===null)e.notifyStartCaptureImage=p,m.unsubscribe(),e._screenshot.placeHolder&&(e.size=e._screenshot.originalSize,t.modified(),e._screenshot.cameras&&e._screenshot.cameras.forEach(w=>{let{restoreParamsFn:C,arg:S}=w;return C(S)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),v(y);else{const w=document.createElement("img");if(w.style=WH,w.src=y,e._screenshot.placeHolder=e.el.appendChild(w),e.canvas.style.display="none",e._screenshot.originalSize=e.size,e.size=e._screenshot.size,e._screenshot.size=null,t.modified(),d){const C=d!==!0;e._screenshot.cameras=e.renderable.getRenderers().map(S=>{const T=S.getActiveCamera(),_=T.get("focalPoint","position","parallelScale");return{resetCameraArgs:C?{renderer:S}:void 0,resetCameraFn:C?d:S.resetCamera,restoreParamsFn:T.set,arg:JSON.parse(JSON.stringify(_))}}),e._screenshot.cameras.forEach(S=>{let{resetCameraFn:T,resetCameraArgs:_}=S;return T(_)})}t.traverseAllPasses()}})})};let s;t.getHardwareMaximumLineWidth=()=>{if(s!=null)return s;const u=t.get3DContext(),d=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);return s=d[1],d[1]},t.getGLInformations=()=>{if(e._glInformation)return e._glInformation;const u=t.get3DContext(),d=u.getExtension("OES_texture_float"),h=u.getExtension("OES_texture_half_float"),g=u.getExtension("WEBGL_debug_renderer_info"),p=u.getExtension("WEBGL_draw_buffers"),v=u.getExtension("EXT_texture_filter_anisotropic")||u.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),x=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",u.getParameter(u.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",u.getParameter(u.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",u.getParameter(u.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",v&&u.getParameter(v.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",u.getParameter(u.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",u.getParameter(u.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",u.getParameter(u.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",u.getParameter(u.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",u.getParameter(u.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",u.getParameter(u.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",u.getParameter(u.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",u.getParameter(u.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",u.getParameter(u.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",u.getParameter(u.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",u.getParameter(u.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",u.getParameter(u.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",u.getParameter(u.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[d&&ni(u,u.RGBA,u.UNSIGNED_BYTE)?"RGBA":"",d&&ni(u,u.RGB,u.UNSIGNED_BYTE)?"RGB":"",d&&ni(u,u.LUMINANCE,u.UNSIGNED_BYTE)?"LUMINANCE":"",d&&ni(u,u.ALPHA,u.UNSIGNED_BYTE)?"ALPHA":"",d&&ni(u,u.LUMINANCE_ALPHA,u.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[h&&ni(u,u.RGBA,h.HALF_FLOAT_OES)?"RGBA":"",h&&ni(u,u.RGB,h.HALF_FLOAT_OES)?"RGB":"",h&&ni(u,u.LUMINANCE,h.HALF_FLOAT_OES)?"LUMINANCE":"",h&&ni(u,u.ALPHA,h.HALF_FLOAT_OES)?"ALPHA":"",h&&ni(u,u.LUMINANCE_ALPHA,h.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[d&&ni(u,u.RGBA,u.FLOAT)?"RGBA":"",d&&ni(u,u.RGB,u.FLOAT)?"RGB":"",d&&ni(u,u.LUMINANCE,u.FLOAT)?"LUMINANCE":"",d&&ni(u,u.ALPHA,u.FLOAT)?"ALPHA":"",d&&ni(u,u.LUMINANCE_ALPHA,u.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",p?u.getParameter(p.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",u.getSupportedExtensions().join("
")],["WebGL Renderer","RENDERER",u.getParameter(u.RENDERER)],["WebGL Vendor","VENDOR",u.getParameter(u.VENDOR)],["WebGL Version","VERSION",u.getParameter(u.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",u.getParameter(u.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",g&&u.getParameter(g.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",g&&u.getParameter(g.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",e.webgl2?2:1]],m={};for(;x.length;){const[y,w,C]=x.pop();w&&(m[w]={label:y,value:C})}return e._glInformation=m,m},t.traverseAllPasses=()=>{var d;if(e.renderPasses)for(let h=0;h{const u=e.rootOpenGLRenderWindow;if(!u||!e.context2D||e.children.some(g=>{var p;return!!((p=g.getSelector)!=null&&p.call(g))}))return;const d=u.getCanvas(),h=e.canvas;e.context2D.drawImage(d,0,d.height-h.height,h.width,h.height,0,0,h.width,h.height)},t.resizeFromChildRenderWindows=()=>{var d;const u=e.renderable.getChildRenderWindowsByReference();if(u.length>0){const h=[0,0];for(let g=0;gh[0]?p[0]:h[0],h[1]=p[1]>h[1]?p[1]:h[1])}t.setSize(...h)}},t.disableCullFace=()=>{e.cullFaceEnabled&&(e.context.disable(e.context.CULL_FACE),e.cullFaceEnabled=!1)},t.enableCullFace=()=>{e.cullFaceEnabled||(e.context.enable(e.context.CULL_FACE),e.cullFaceEnabled=!0)},t.setViewStream=u=>{if(e.viewStream===u)return!1;if(e.subscription&&(e.subscription.unsubscribe(),e.subscription=null),e.viewStream=u,e.viewStream){const d=e.renderable.getRenderers()[0];d.getBackgroundByReference()[3]=0,t.setUseBackgroundImage(!0),e.subscription=e.viewStream.onImageReady(h=>t.setBackgroundImage(h.image)),e.viewStream.setSize(e.size[0],e.size[1]),e.viewStream.invalidateCache(),e.viewStream.render(),t.modified()}return!0},t.createSelector=()=>{const u=Dw.newInstance();return u.setOpenGLRenderWindow(t),u};function c(){e.canvas.removeEventListener("webglcontextlost",zT),e.canvas.removeEventListener("webglcontextrestored",t.restoreContext)}t.delete=W.chain(()=>{e.context&&jH(),t.setContainer(),t.setViewStream()},c,t.delete),t.setActiveFramebuffer=u=>{e.activeFramebuffer=u};const l=t.setSize;t.setSize=(u,d)=>{const h=l(u,d);return h&&t.invokeWindowResizeEvent({width:u,height:d}),h},t.registerGraphicsResourceUser=(u,d)=>{e._graphicsResources.has(u)||t.setGraphicsResourceForObject(u,null,null);const h=e._graphicsResources.get(u);h==null||h.users.add(d)},t.unregisterGraphicsResourceUser=(u,d)=>{var g;const h=e._graphicsResources.get(u);h&&(h.users.delete(d),h.users.size||((g=h.oglObject)==null||g.releaseGraphicsResources(t),e._graphicsResources.delete(u)))},t.getGraphicsResourceForObject=u=>e._graphicsResources.get(u),t.setGraphicsResourceForObject=(u,d,h)=>{var p;if(!u)return;const g=e._graphicsResources.get(u);(p=g==null?void 0:g.oglObject)==null||p.releaseGraphicsResources(t),e._graphicsResources.set(u,{coreObject:u,oglObject:d,hash:h,users:(g==null?void 0:g.users)??new Set})},t.getGraphicsMemoryInfo=()=>{let u=0;return e._graphicsResources.forEach(d=>{let{oglObject:h}=d;u+=h.getAllocatedGPUMemoryInBytes()}),u},t.releaseGraphicsResources=()=>{e.shaderCache!==null&&e.shaderCache.releaseGraphicsResources(t),e._graphicsResources.forEach(u=>{let{oglObject:d}=u;d.releaseGraphicsResources(t)}),e._graphicsResources.clear(),e.textureUnitManager!==null&&e.textureUnitManager.freeAll(),e.renderable.getRenderersByReference().forEach(u=>{const d=t.getViewNodeFor(u);d==null||d.releaseGraphicsResources()})};const f={...t};zH.forEach(u=>{t[u]=function(){return e.rootOpenGLRenderWindow?e.rootOpenGLRenderWindow[u](...arguments):f[u](...arguments)}})}const XH={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};function Nb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,XH,r),UH.extend(t,e,r),e.canvas||(e.canvas=document.createElement("canvas"),e.canvas.style.width="100%"),e.selector||(e.selector=Dw.newInstance(),e.selector.setOpenGLRenderWindow(t)),e.bgImage=new Image,e.bgImage.style.position="absolute",e.bgImage.style.left="0",e.bgImage.style.top="0",e.bgImage.style.width="100%",e.bgImage.style.height="100%",e.bgImage.style.zIndex="-1",e._textureResourceIds=new Map,e._graphicsResources=new Map,e._glInformation=null,e.myFactory=Gz.newInstance(),e.shaderCache=MH.newInstance(),e.shaderCache.setOpenGLRenderWindow(t),e.renderPasses[0]=Bj.newInstance(),W.get(t,e,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer","rootOpenGLRenderWindow"]),W.setGet(t,e,["initialized","context","context2D","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),W.setGetArray(t,e,["size"],2),W.event(t,e,"imageReady"),W.event(t,e,"windowResizeEvent"),qH(t,e)}const bw=W.newInstance(Nb,"vtkOpenGLRenderWindow");i7("WebGL",bw);var YH={newInstance:bw,extend:Nb,pushMonitorGLContextCount:HH,popMonitorGLContextCount:KH};ir("vtkRenderWindow",bw);function JH(t,e){e.classHierarchy.push("vtkOpenGLActor"),t.buildPass=r=>{if(r){e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let n=0;n{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseOpaqueZBufferPass=r=>t.traverseOpaquePass(r),t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let r=0;r{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.zBufferPass=(r,n)=>t.opaquePass(r,n),t.opaqueZBufferPass=(r,n)=>t.opaquePass(r,n),t.opaquePass=(r,n)=>{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(e._openGLRenderer.getSelector()&&e.renderable.getNestedPickable()),t.activateTextures();else if(e.activeTextures)for(let i=0;i(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),En(e.keyMatrices.mcwc,e.renderable.getMatrix()),St(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.renderable.getIsIdentity()?oo(e.keyMatrices.normalMatrix):(qm(e.keyMatrices.normalMatrix,e.keyMatrices.mcwc),mh(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),dw(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),e.keyMatrixTime.modified()),e.keyMatrices)}const ZH={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function Pb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZH,r),nn.extend(t,e,r),e.keyMatrixTime={},fn(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:oo(new Float64Array(9)),mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),gi(t,e,["activeTextures"]),JH(t,e)}const Ab=Bt(Pb);var QH={newInstance:Ab,extend:Pb};ir("vtkActor",Ab);function eK(t,e){e.classHierarchy.push("vtkOpenGLActor2D"),t.buildPass=r=>{if(r){if(!e.renderable)return;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let n=0;n{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementOverlayActorCount()}},t.traverseOpaquePass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseOverlayPass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let r=0;r{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tK,r),nn.extend(t,e,r),Jn(t,e,["context"]),gi(t,e,["activeTextures"]),eK(t,e)}const Vb=Bt(kb);var nK={newInstance:Vb,extend:kb};ir("vtkActor2D",Vb);function rK(t,e){e.classHierarchy.push("vtkOpenGLCamera"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext())},t.opaquePass=r=>{if(r){const n=e._openGLRenderer.getTiledSizeAndOrigin();e.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),e.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},t.translucentPass=t.opaquePass,t.zBufferPass=t.opaquePass,t.opaqueZBufferPass=t.opaquePass,t.volumePass=t.opaquePass,t.getKeyMatrices=r=>{if(r!==e.lastRenderer||e._openGLRenderWindow.getMTime()>e.keyMatrixTime.getMTime()||t.getMTime()>e.keyMatrixTime.getMTime()||r.getMTime()>e.keyMatrixTime.getMTime()||e.renderable.getMTime()>e.keyMatrixTime.getMTime()){En(e.keyMatrices.wcvc,e.renderable.getViewMatrix()),qm(e.keyMatrices.normalMatrix,e.keyMatrices.wcvc),mh(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.wcvc,e.keyMatrices.wcvc);const n=e._openGLRenderer.getAspectRatio();En(e.keyMatrices.vcpc,e.renderable.getProjectionMatrix(n,-1,1)),St(e.keyMatrices.vcpc,e.keyMatrices.vcpc),bt(e.keyMatrices.wcpc,e.keyMatrices.vcpc,e.keyMatrices.wcvc),e.keyMatrixTime.modified(),e.lastRenderer=r}return e.keyMatrices}}const iK={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function Fb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iK,r),nn.extend(t,e,r),e.keyMatrixTime={},fn(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Jn(t,e,["context","keyMatrixTime"]),rK(t,e)}const Ub=Bt(Fb);var oK={newInstance:Ub,extend:Fb};ir("vtkCamera",Ub);function aK(t,e){e.classHierarchy.push("vtkAbstractMapper"),t.update=()=>{t.getInputData()},t.addClippingPlane=r=>r.isA("vtkPlane")?e.clippingPlanes.includes(r)?!1:(e.clippingPlanes.push(r),t.modified(),!0):!1,t.getNumberOfClippingPlanes=()=>e.clippingPlanes.length,t.removeAllClippingPlanes=()=>e.clippingPlanes.length===0?!1:(e.clippingPlanes.length=0,t.modified(),!0),t.removeClippingPlane=r=>{const n=e.clippingPlanes.indexOf(r);return n===-1?!1:(e.clippingPlanes.splice(n,1),t.modified(),!0)},t.getClippingPlanes=()=>e.clippingPlanes,t.setClippingPlanes=r=>{if(r)if(!Array.isArray(r))t.addClippingPlane(r);else{const n=r.length;for(let i=0;i{const o=e.clippingPlanes,a=r;if(o){const s=o.length;if(n>=0&&n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sK,r),W.obj(t,e),W.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),aK(t,e)}var Bb={extend:cK};function lK(t,e){e.classHierarchy.push("vtkImplicitFunction"),t.functionValue=r=>{if(!e.transform)return t.evaluateFunction(r);const n=[];return e.transform.transformPoint(r,n),t.evaluateFunction(n)},t.evaluateFunction=r=>{W.vtkErrorMacro("not implemented")}}const uK={};function Gb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uK,r),W.obj(t,e),W.setGet(t,e,["transform"]),lK(t,e)}const fK=W.newInstance(Gb,"vtkImplicitFunction");var dK={newInstance:fK,extend:Gb};const W5=1e-6,Wb="coincide",zb="disjoint";function hK(t,e,r){return t[0]*(r[0]-e[0])+t[1]*(r[1]-e[1])+t[2]*(r[2]-e[2])}function $b(t,e,r){const n=r[0]*(t[0]-e[0])+r[1]*(t[1]-e[1])+r[2]*(t[2]-e[2]);return Math.abs(n)}function jb(t,e,r,n){const i=[];Va(t,e,i);const o=wt(r,i);n[0]=t[0]-o*r[0],n[1]=t[1]-o*r[1],n[2]=t[2]-o*r[2]}function Hb(t,e,r){const n=wt(t,e);let i=wt(e,e);return i===0&&(i=1),r[0]=t[0]-n*e[0]/i,r[1]=t[1]-n*e[1]/i,r[2]=t[2]-n*e[2]/i,r}function Kb(t,e,r,n){const i=[];Va(t,e,i);const o=wt(r,i),a=wt(r,r);a!==0?(n[0]=t[0]-o*r[0]/a,n[1]=t[1]-o*r[1]/a,n[2]=t[2]-o*r[2]/a):(n[0]=t[0],n[1]=t[1],n[2]=t[2])}function qb(t,e,r,n){const i={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],a=[];Va(e,t,o),Va(r,t,a);const s=wt(n,a),c=wt(n,o);let l,f;return c<0?l=-c:l=c,s<0?f=-s*W5:f=s*W5,l<=f||(i.t=s/c,i.x[0]=t[0]+i.t*o[0],i.x[1]=t[1]+i.t*o[1],i.x[2]=t[2]+i.t*o[2],i.intersection=!0,i.betweenPoints=i.t>=0&&i.t<=1),i}function Xb(t,e,r,n){const i={intersection:!1,l0:[],l1:[],error:null},o=[];ra(e,n,o);const a=o.map(u=>Math.abs(u));if(a[0]+a[1]+a[2]a[1]&&a[0]>a[2]?s="x":a[1]>a[2]?s="y":s="z";const c=[],l=-wt(e,t),f=-wt(n,r);switch(s){case"x":c[0]=0,c[1]=(f*e[2]-l*n[2])/o[0],c[2]=(l*n[1]-f*e[1])/o[0];break;case"y":c[0]=(l*n[2]-f*e[2])/o[1],c[1]=0,c[2]=(f*e[0]-l*n[0])/o[1];break;case"z":c[0]=(f*e[1]-l*n[1])/o[2],c[1]=(l*n[0]-f*e[0])/o[2],c[2]=0;break}return i.l0=c,T1(c,o,i.l1),i.intersection=!0,i}const gK={evaluate:hK,distanceToPlane:$b,projectPoint:jb,projectVector:Hb,generalizedProjectPoint:Kb,intersectWithLine:qb,intersectWithPlane:Xb,DISJOINT:zb,COINCIDE:Wb};function pK(t,e){e.classHierarchy.push("vtkPlane"),t.distanceToPlane=r=>$b(r,e.origin,e.normal),t.projectPoint=(r,n)=>{jb(r,e.origin,e.normal,n)},t.projectVector=(r,n)=>Hb(r,e.normal,n),t.push=r=>{if(r!==0)for(let n=0;n<3;n++)e.origin[n]+=r*e.normal[n]},t.generalizedProjectPoint=(r,n)=>{Kb(r,e.origin,e.normal,n)},t.evaluateFunction=(r,n,i)=>Array.isArray(r)?e.normal[0]*(r[0]-e.origin[0])+e.normal[1]*(r[1]-e.origin[1])+e.normal[2]*(r[2]-e.origin[2]):e.normal[0]*(r-e.origin[0])+e.normal[1]*(n-e.origin[1])+e.normal[2]*(i-e.origin[2]),t.evaluateGradient=r=>[e.normal[0],e.normal[1],e.normal[2]],t.intersectWithLine=(r,n)=>qb(r,n,e.origin,e.normal),t.intersectWithPlane=(r,n)=>Xb(r,n,e.origin,e.normal)}const mK={normal:[0,0,1],origin:[0,0,0]};function Yb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mK,r),dK.extend(t,e,r),W.setGetArray(t,e,["normal","origin"],3),pK(t,e)}const vK=W.newInstance(Yb,"vtkPlane");var Yr={newInstance:vK,extend:Yb,...gK};const Jm=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function Jb(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]}function Ha(t){return(t==null?void 0:t.length)>=6&&t[0]<=t[1]&&t[2]<=t[3]&&t[4]<=t[5]}function Iw(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Ow(t){return Iw(t,Jm)}function M1(t,e,r,n){const[i,o,a,s,c,l]=t;return t[0]=ie?o:e,t[2]=ar?s:r,t[4]=cn?l:n,t}function Mw(t,e){if(e.length===0)return t;if(Array.isArray(e[0]))for(let r=0;ro?e:o,t[2]=r,t[3]=r>s?r:s,t[4]=n,t[5]=n>l?n:l,i!==e||a!==r||c!==n}function eI(t,e,r,n){const[i,o,a,s,c,l]=t;return t[0]=e=0?(t[0]*=e,t[1]*=e):(t[0]=e*t[1],t[1]=e*t[0]),r>=0?(t[2]*=r,t[3]*=r):(t[2]=r*t[3],t[3]=r*t[2]),n>=0?(t[4]*=n,t[5]*=n):(t[4]=n*t[5],t[5]=n*t[4]),!0):!1}function Lw(t){return[.5*(t[0]+t[1]),.5*(t[2]+t[3]),.5*(t[4]+t[5])]}function yK(t,e,r,n){if(!Ha(t))return!1;const i=Lw(t);return t[0]-=i[0],t[1]-=i[0],t[2]-=i[1],t[3]-=i[1],t[4]-=i[2],t[5]-=i[2],Rw(t,e,r,n),t[0]+=i[0],t[1]+=i[0],t[2]+=i[1],t[3]+=i[1],t[4]+=i[2],t[5]+=i[2],!0}function zf(t,e){return t[e*2+1]-t[e*2]}function Zm(t){return[zf(t,0),zf(t,1),zf(t,2)]}function nI(t){return t.slice(0,2)}function rI(t){return t.slice(2,4)}function iI(t){return t.slice(4,6)}function oI(t){const e=Zm(t);return e[0]>e[1]?e[0]>e[2]?e[0]:e[2]:e[1]>e[2]?e[1]:e[2]}function aI(t){if(Ha(t)){const e=Zm(t);return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}return null}function Nw(t){return[t[0],t[2],t[4]]}function Pw(t){return[t[1],t[3],t[5]]}function sg(t,e){return t<=0&&e>=0||t>=0&&e<=0}function Aw(t,e){let r=0;for(let n=0;n<2;n++)for(let i=2;i<4;i++)for(let o=4;o<6;o++)e[r++]=[t[n],t[i],t[o]];return e}function sI(t,e,r){return e[0]=t[0],e[1]=t[2],e[2]=t[4],r[0]=t[1],r[1]=t[3],r[2]=t[5],e}function cI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];const n=Aw(t,[]);for(let i=0;i1&&arguments[1]!==void 0?arguments[1]:[];return e[0]=.5*(t[1]-t[0]),e[1]=.5*(t[3]-t[2]),e[2]=.5*(t[5]-t[4]),e}function uI(t,e,r,n){const i=[].concat(Jm),o=t.getData();for(let a=0;at[2*h+1]?(a[h]=f,l[h]=t[2*h+1],o=!1):a[h]=d;if(o)return n[0]=e[0],n[1]=e[1],n[2]=e[2],i[0]=0,1;for(let h=0;h<3;h++)a[h]!==d&&r[h]!==0?c[h]=(l[h]-e[h])/r[h]:c[h]=-1;for(let h=0;h<3;h++)c[s]1||c[s]<0)return 0;i[0]=c[s];for(let h=0;h<3;h++)if(s!==h){if(n[h]=e[h]+c[s]*r[h],n[h]t[2*h+1])return 0}else n[h]=l[h];return 1}function dI(t,e,r){const n=[];let i=0,o=1,a=1;for(let s=4;s<=5;++s){n[2]=t[s];for(let c=2;c<=3;++c){n[1]=t[c];for(let l=0;l<=1;++l)if(n[0]=t[l],i=Yr.evaluate(r,e,n),a&&(o=i>=0?1:-1,a=0),i===0||o>0&&i<0||o<0&&i>0)return 1}}return 0}function hI(t,e){if(!(Ha(t)&&Ha(e)))return!1;const r=[0,0,0,0,0,0];let n;for(let i=0;i<3;i++)if(n=!1,e[i*2]>=t[i*2]&&e[i*2]<=t[i*2+1]?(n=!0,r[i*2]=e[i*2]):t[i*2]>=e[i*2]&&t[i*2]<=e[i*2+1]&&(n=!0,r[i*2]=t[i*2]),e[i*2+1]>=t[i*2]&&e[i*2+1]<=t[i*2+1]?(n=!0,r[i*2+1]=e[2*i+1]):t[i*2+1]>=e[i*2]&&t[i*2+1]<=e[i*2+1]&&(n=!0,r[i*2+1]=t[i*2+1]),!n)return!1;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],!0}function R1(t,e){if(!(Ha(t)&&Ha(e)))return!1;for(let r=0;r<3;r++)if(!(e[r*2]>=t[r*2]&&e[r*2]<=t[r*2+1])&&!(t[r*2]>=e[r*2]&&t[r*2]<=e[r*2+1])&&!(e[r*2+1]>=t[r*2]&&e[r*2+1]<=t[r*2+1])&&!(t[r*2+1]>=e[r*2]&&t[r*2+1]<=e[r*2+1]))return!1;return!0}function L1(t,e,r,n){return!(et[1]||rt[3]||nt[5])}function xK(t,e){return!(!R1(t,e)||!L1(t,...Nw(e))||!L1(t,...Pw(e)))}function gI(t,e,r){const n=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],i=[0,0,0,0,0,0,0,0];let o=0;for(let u=0;u<2;u++)for(let d=2;d<4;d++)for(let h=4;h<6;h++){const g=[t[u],t[d],t[h]];i[o++]=Yr.evaluate(r,e,g)}let a=2;for(;a--&&!(sg(i[n[a][0]],i[n[a][4]])&&sg(i[n[a][1]],i[n[a][5]])&&sg(i[n[a][2]],i[n[a][6]])&&sg(i[n[a][3]],i[n[a][7]])););if(a<0)return!1;const s=Math.sign(r[a]),c=Math.abs((t[a*2+1]-t[a*2])*r[a]);let l=s>0?1:0;for(let u=0;u<4;u++){if(c===0)continue;const d=Math.abs(i[n[a][u]])/c;s>0&&dl&&(l=d)}const f=(1-l)*t[a*2]+l*t[a*2+1];return s>0?t[a*2]=f:t[a*2+1]=f,!0}class wK{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(Jm))}getBounds(){return this.bounds}equals(e){return Jb(this.bounds,e)}isValid(){return Ha(this.bounds)}setBounds(e){return Iw(this.bounds,e)}reset(){return Ow(this.bounds)}addPoint(){for(var e=arguments.length,r=new Array(e),n=0;n1&&arguments[1]!==void 0?arguments[1]:[];return cI(this.bounds,e,r)}computeScale3(e){return lI(this.bounds,e)}cutWithPlane(e,r){return gI(this.bounds,e,r)}intersectBox(e,r,n,i){return fI(this.bounds,e,r,n,i)}intersectPlane(e,r){return dI(this.bounds,e,r)}intersect(e){return hI(this.bounds,e)}intersects(e){return R1(this.bounds,e)}containsPoint(e,r,n){return L1(this.bounds,e,r,n)}contains(e){return R1(this.bounds,e)}}function CK(t){const e=t&&t.bounds;return new wK(e)}const SK={equals:Jb,isValid:Ha,setBounds:Iw,reset:Ow,addPoint:M1,addPoints:Mw,addBounds:Zb,setMinPoint:Qb,setMaxPoint:eI,inflate:tI,scale:Rw,scaleAboutCenter:yK,getCenter:Lw,getLength:zf,getLengths:Zm,getMaxLength:oI,getDiagonalLength:aI,getMinPoint:Nw,getMaxPoint:Pw,getXRange:nI,getYRange:rI,getZRange:iI,getCorners:Aw,computeCornerPoints:sI,computeLocalBounds:uI,transformBounds:cI,computeScale3:lI,cutWithPlane:gI,intersectBox:fI,intersectPlane:dI,intersect:hI,intersects:R1,containsPoint:L1,contains:xK,INIT_BOUNDS:Jm};var Xt={newInstance:CK,...SK};function TK(t,e){t.getBounds=()=>(W.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),Ks()),t.getCenter=()=>{var n;const r=t.getBounds();return e.center=Xt.isValid(r)?Xt.getCenter(r):null,(n=e.center)==null?void 0:n.slice()},t.getLength=()=>{const r=t.getBounds();return Xt.getDiagonalLength(r)}}const _K=t=>({bounds:[...Xt.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function EK(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_K(r)),Bb.extend(t,e,r),W.setGet(t,e,["viewSpecificProperties"]),TK(t,e)}var kw={extend:EK};const po={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var pI={StructuredType:po};const{StructuredType:pa}=pI;function DK(t){let e=0;for(let r=0;r<3;++r)t[r*2]t[1]||t[2]>t[3]||t[4]>t[5]?pa.EMPTY:e===3?pa.XYZ_GRID:e===2?t[0]===t[1]?pa.YZ_PLANE:t[2]===t[3]?pa.XZ_PLANE:pa.XY_PLANE:e===1?t[0]s!==o[c]);return a&&(e.extent=o.slice(),e.dataDescription=bK.getDataDescriptionFromExtent(e.extent),t.modified()),a},t.setDimensions=function(){let r,n,i;if(e.deleted){fc("instance deleted - cannot call any method");return}if(arguments.length===1){const o=arguments.length<=0?void 0:arguments[0];r=o[0],n=o[1],i=o[2]}else if(arguments.length===3)r=arguments.length<=0?void 0:arguments[0],n=arguments.length<=1?void 0:arguments[1],i=arguments.length<=2?void 0:arguments[2];else{fc("Bad dimension specification");return}t.setExtent(0,r-1,0,n-1,0,i-1)},t.getDimensions=()=>[e.extent[1]-e.extent[0]+1,e.extent[3]-e.extent[2]+1,e.extent[5]-e.extent[4]+1],t.getNumberOfCells=()=>{const r=t.getDimensions();let n=1;for(let i=0;i<3;i++){if(r[i]===0)return 0;r[i]>1&&(n*=r[i]-1)}return n},t.getNumberOfPoints=()=>{const r=t.getDimensions();return r[0]*r[1]*r[2]},t.getPoint=r=>{const n=t.getDimensions();if(n[0]===0||n[1]===0||n[2]===0)return fc("Requesting a point from an empty image."),null;const i=new Float64Array(3);switch(e.dataDescription){case po.EMPTY:return null;case po.SINGLE_POINT:break;case po.X_LINE:i[0]=r;break;case po.Y_LINE:i[1]=r;break;case po.Z_LINE:i[2]=r;break;case po.XY_PLANE:i[0]=r%n[0],i[1]=r/n[0];break;case po.YZ_PLANE:i[1]=r%n[1],i[2]=r/n[1];break;case po.XZ_PLANE:i[0]=r%n[0],i[2]=r/n[0];break;case po.XYZ_GRID:i[0]=r%n[0],i[1]=r/n[0]%n[1],i[2]=r/(n[0]*n[1]);break;default:fc("Invalid dataDescription");break}const o=[0,0,0];return t.indexToWorld(i,o),o},t.getBounds=()=>t.extentToBounds(t.getSpatialExtent()),t.extentToBounds=r=>Xt.transformBounds(r,e.indexToWorld),t.getSpatialExtent=()=>Xt.inflate([...e.extent],.5),t.computeTransforms=()=>{Xm(e.indexToWorld,e.origin),e.indexToWorld[0]=e.direction[0],e.indexToWorld[1]=e.direction[1],e.indexToWorld[2]=e.direction[2],e.indexToWorld[4]=e.direction[3],e.indexToWorld[5]=e.direction[4],e.indexToWorld[6]=e.direction[5],e.indexToWorld[8]=e.direction[6],e.indexToWorld[9]=e.direction[7],e.indexToWorld[10]=e.direction[8],ja(e.indexToWorld,e.indexToWorld,e.spacing),$n(e.worldToIndex,e.indexToWorld)},t.indexToWorld=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return et(n,r,e.indexToWorld),n},t.indexToWorldVec3=t.indexToWorld,t.worldToIndex=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return et(n,r,e.worldToIndex),n},t.worldToIndexVec3=t.worldToIndex,t.indexToWorldBounds=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Xt.transformBounds(r,e.indexToWorld,n)},t.worldToIndexBounds=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Xt.transformBounds(r,e.worldToIndex,n)},t.onModified(t.computeTransforms),t.computeTransforms(),t.getCenter=()=>Xt.getCenter(t.getBounds()),t.computeHistogram=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const i=[0,0,0,0,0,0];t.worldToIndexBounds(r,i);const o=[0,0,0],a=[0,0,0];Xt.computeCornerPoints(i,o,a),N5(o,o),N5(a,a);const s=t.getDimensions();A5(o,[0,0,0],[s[0]-1,s[1]-1,s[2]-1],o),A5(a,[0,0,0],[s[0]-1,s[1]-1,s[2]-1],a);const c=s[0],l=s[0]*s[1],f=t.getPointData().getScalars().getData();let u=-1/0,d=1/0,h=0,g=0,p=0;for(let y=o[2];y<=a[2];y++)for(let w=o[1];w<=a[1];w++){let C=o[0]+w*c+y*l;for(let S=o[0];S<=a[0];S++){if(!n||n([S,w,y],i)){const T=f[C];T>u&&(u=T),T0?g/p:0,x=p?Math.abs(h/p-v*v):0,m=Math.sqrt(x);return{minimum:d,maximum:u,average:v,variance:x,sigma:m,count:p}},t.computeIncrements=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const i=[];let o=n;for(let a=0;a<3;++a)i[a]=o,o*=r[a*2+1]-r[a*2]+1;return i},t.computeOffsetIndex=r=>{let[n,i,o]=r;const a=t.getExtent(),s=t.getPointData().getScalars().getNumberOfComponents(),c=t.computeIncrements(a,s);return Math.floor((Math.round(n)-a[0])*c[0]+(Math.round(i)-a[2])*c[1]+(Math.round(o)-a[4])*c[2])},t.getOffsetIndexFromWorld=r=>{const n=t.getExtent(),i=t.worldToIndex(r);for(let o=0;o<3;++o)if(i[o]n[o*2+1])return fc(`GetScalarPointer: Pixel ${i} is not in memory. Current extent = ${n}`),NaN;return t.computeOffsetIndex(i)},t.getScalarValueFromWorld=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const i=t.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=i)return fc(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${i}`),NaN;const o=t.getOffsetIndexFromWorld(r);return Number.isNaN(o)?o:t.getPointData().getScalars().getComponent(o,n)}}const OK={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:po.EMPTY};function mI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,OK,r),v0.extend(t,e,r),e.direction?Array.isArray(e.direction)&&(e.direction=new Float64Array(e.direction.slice(0,9))):e.direction=oo(new Float64Array(9)),e.indexToWorld=new Float64Array(16),e.worldToIndex=new Float64Array(16),W.get(t,e,["indexToWorld","worldToIndex"]),W.setGetArray(t,e,["origin","spacing"],3),W.setGetArray(t,e,["direction"],9),W.getArray(t,e,["extent"],6),IK(t,e)}const MK=W.newInstance(mI,"vtkImageData");var y0={newInstance:MK,extend:mI};const RK={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},z5={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var Vw={VectorMode:RK,ScalarMappingTarget:z5};const LK={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},NK={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},PK={BY_ID:0,BY_NAME:1};var Qm={ColorMode:LK,GetArray:PK,ScalarMode:NK};const{ScalarMappingTarget:$T,VectorMode:Bo}=Vw,{VtkDataTypes:ss}=tt,{ColorMode:cg}=Qm,{vtkErrorMacro:jT}=W;function AK(t){return t}function HT(t){return Math.floor(t*255+.5)}function kK(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(Bo.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(Bo.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(Bo.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(r,n)=>{if(!(r&&!n||!r&&n)){if(r&&n&&r.length!==n.length){jT("Values and annotations do not have the same number of tuples so ignoring");return}if(e.annotationArray=[],n&&r){const i=n.length;for(let o=0;o{let i=t.checkForAnnotatedValue(r),o=!1;return i>=0?e.annotationArray[i].annotation!==n&&(e.annotationArray[i].annotation=n,o=!0):(e.annotationArray.push({value:r,annotation:n}),i=e.annotationArray.length-1,o=!0),o&&(t.updateAnnotatedValueMap(),t.modified()),i},t.getNumberOfAnnotatedValues=()=>e.annotationArray.length,t.getAnnotatedValue=r=>r<0||r>=e.annotationArray.length?null:e.annotationArray[r].value,t.getAnnotation=r=>e.annotationArray[r]===void 0?null:e.annotationArray[r].annotation,t.getAnnotatedValueIndex=r=>e.annotationArray.length?t.checkForAnnotatedValue(r):-1,t.removeAnnotation=r=>{const n=t.checkForAnnotatedValue(r),i=n>=0;return i&&(e.annotationArray.splice(n,1),t.updateAnnotatedValueMap(),t.modified()),i},t.resetAnnotations=()=>{e.annotationArray=[],e.annotatedValueMap=[],t.modified()},t.getAnnotationColor=(r,n)=>{if(e.indexedLookup){const i=t.getAnnotatedValueIndex(r);t.getIndexedColor(i,n)}else t.getColor(parseFloat(r),n),n[3]=1},t.checkForAnnotatedValue=r=>t.getAnnotatedValueIndexInternal(r),t.getAnnotatedValueIndexInternal=r=>{if(e.annotatedValueMap[r]!==void 0){const n=e.annotationArray.length;return e.annotatedValueMap[r]%n}return-1},t.getIndexedColor=(r,n)=>{n[0]=0,n[1]=0,n[2]=0,n[3]=0},t.updateAnnotatedValueMap=()=>{e.annotatedValueMap=[];const r=e.annotationArray.length;for(let n=0;n{const o=r.getNumberOfComponents();let a=null;if(n===cg.DEFAULT&&(r.getDataType()===ss.UNSIGNED_CHAR||r.getDataType()===ss.UNSIGNED_CHAR_CLAMPED)||n===cg.DIRECT_SCALARS&&r)a=t.convertToRGBA(r,o,r.getNumberOfTuples());else{const s={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:ss.UNSIGNED_CHAR},c=W.newTypedArray(s.dataType,4*r.getNumberOfTuples());s.values=c,s.size=c.length,a=tt.newInstance(s);let l=i;l<0&&o>1?t.mapVectorsThroughTable(r,a,$T.RGBA,-1,-1):(l<0&&(l=0),l>=o&&(l=o-1),t.mapScalarsThroughTable(r,a,$T.RGBA,l))}return a},t.mapVectorsToMagnitude=(r,n,i)=>{const o=r.getNumberOfTuples(),a=r.getNumberOfComponents(),s=n.getData(),c=r.getData();for(let l=0;l{let s=t.getVectorMode(),c=a,l=o;const f=r.getNumberOfComponents();s===Bo.COMPONENT?(l===-1&&(l=t.getVectorComponent()),l<0&&(l=0),l>=f&&(l=f-1)):(c===-1&&(c=t.getVectorSize()),c<=0?(l=0,c=f):(l<0&&(l=0),l>=f&&(l=f-1),l+c>f&&(c=f-l)),s===Bo.MAGNITUDE&&(f===1||c===1)&&(s=Bo.COMPONENT));let u=0;switch(l>0&&(u=l),s){case Bo.COMPONENT:{t.mapScalarsThroughTable(r,n,i,u);break}case Bo.RGBCOLORS:break;case Bo.MAGNITUDE:default:{const d=tt.newInstance({numberOfComponents:1,values:new Float32Array(r.getNumberOfTuples())});t.mapVectorsToMagnitude(r,d,c),t.mapScalarsThroughTable(d,n,i,0);break}}},t.luminanceToRGBA=(r,n,i,o)=>{const a=o(i),s=n.getData(),c=r.getData(),l=s.length,f=0,u=1;let d=0;for(let h=f;h{const a=n.getData(),s=r.getData(),c=a.length,l=0,f=2;let u=0;for(let d=l;d{const a=HT(i),s=n.getData(),c=r.getData(),l=s.length,f=0,u=3;let d=0;for(let h=f;h{const a=n.getData(),s=r.getData(),c=a.length,l=0,f=4;let u=0;for(let d=l;d{let{alpha:o}=e;if(n===4&&o>=1&&r.getDataType()===ss.UNSIGNED_CHAR)return r;const a=tt.newInstance({numberOfComponents:4,empty:!0,size:4*i,dataType:ss.UNSIGNED_CHAR});if(i<=0)return a;o=o>0?o:0,o=o<1?o:1;let s=AK;switch((r.getDataType()===ss.FLOAT||r.getDataType()===ss.DOUBLE)&&(s=HT),n){case 1:t.luminanceToRGBA(a,r,o,s);break;case 2:t.luminanceAlphaToRGBA(a,r,s);break;case 3:t.rGBToRGBA(a,r,o,s);break;case 4:t.rGBAToRGBA(a,r,o,s);break;default:return jT("Cannot convert colors"),null}return a},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>256*256*256,t.setRange=(r,n)=>t.setMappingRange(r,n),t.getRange=()=>t.getMappingRange(),t.areScalarsOpaque=(r,n,i)=>{if(!r)return t.isOpaque();const o=r.getNumberOfComponents();return n===cg.DEFAULT&&r.getDataType()===ss.UNSIGNED_CHAR||n===cg.DIRECT_SCALARS?o===3||o===1?e.alpha>=1:r.getRange(o-1)[0]===255:!0}}const VK={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Bo.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function vI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VK,r),W.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],W.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),W.setArray(t,e,["mappingRange"],2),W.getArray(t,e,["mappingRange"]),kK(t,e)}const FK=W.newInstance(vI,"vtkScalarsToColors");var e2={newInstance:FK,extend:vI,...Vw};const{vtkErrorMacro:KT}=W,qT=0,XT=1,Tv=2;function UK(t,e){e.classHierarchy.push("vtkLookupTable"),t.isOpaque=()=>{if(e.opaqueFlagBuildTime.getMTime()!1,t.getNumberOfAvailableColors=()=>e.table.length/4-3,t.linearIndexLookup=(r,n)=>{let i=0;const o=Number(r);return on.range[1]?i=n.maxIndex+XT+1.5:(i=(o+n.shift)*n.scale,i=i{let o=0;E1(r)?o=Math.floor(i.maxIndex+1.5+Tv):o=t.linearIndexLookup(r,i);const a=4*o;return n.slice(a,a+4)},t.indexedLookupFunction=(r,n,i)=>{let o=t.getAnnotatedValueIndexInternal(r);o===-1&&(o=e.numberOfColors+Tv);const a=4*o;return[n[a],n[a+1],n[a+2],n[a+3]]},t.lookupShiftAndScale=(r,n)=>{n.shift=-r[0],n.scale=Number.MAX_VALUE,r[1]>r[0]&&(n.scale=(n.maxIndex+1)/(r[1]-r[0]))},t.mapScalarsThroughTable=(r,n,i,o)=>{let a=t.linearLookup;e.indexedLookup&&(a=t.indexedLookupFunction);const s=t.getMappingRange(),c={maxIndex:t.getNumberOfColors()-1,range:s,shift:0,scale:0};t.lookupShiftAndScale(s,c);const l=t.getAlpha(),f=r.getNumberOfTuples(),u=r.getNumberOfComponents(),d=n.getData(),h=r.getData();if(l>=1){if(i===z5.RGBA)for(let g=0;g{let r=0,n=0,i=0,o=0;const a=e.numberOfColors-1;a&&(r=(e.hueRange[1]-e.hueRange[0])/a,n=(e.saturationRange[1]-e.saturationRange[0])/a,i=(e.valueRange[1]-e.valueRange[0])/a,o=(e.alphaRange[1]-e.alphaRange[0])/a),e.table.length=4*a+16;const s=[],c=[];for(let l=0;l<=a;l++)s[0]=e.hueRange[0]+l*r,s[1]=e.saturationRange[0]+l*n,s[2]=e.valueRange[0]+l*i,Mc(s,c),c[3]=e.alphaRange[0]+l*o,e.table[l*4]=c[0]*255+.5,e.table[l*4+1]=c[1]*255+.5,e.table[l*4+2]=c[2]*255+.5,e.table[l*4+3]=c[3]*255+.5;t.buildSpecialColors(),e.buildTime.modified()},t.setTable=r=>{if(Array.isArray(r)){const i=r[0].length;e.numberOfColors=r.length;const o=4-i;let a=0;for(let s=0;s{const{numberOfColors:r}=e,n=e.table;let i=(r+qT)*4;e.useBelowRangeColor||r===0?(n[i]=e.belowRangeColor[0]*255+.5,n[i+1]=e.belowRangeColor[1]*255+.5,n[i+2]=e.belowRangeColor[2]*255+.5,n[i+3]=e.belowRangeColor[3]*255+.5):(n[i]=n[0],n[i+1]=n[1],n[i+2]=n[2],n[i+3]=n[3]),i=(r+XT)*4,e.useAboveRangeColor||r===0?(n[i]=e.aboveRangeColor[0]*255+.5,n[i+1]=e.aboveRangeColor[1]*255+.5,n[i+2]=e.aboveRangeColor[2]*255+.5,n[i+3]=e.aboveRangeColor[3]*255+.5):(n[i]=n[4*(r-1)+0],n[i+1]=n[4*(r-1)+1],n[i+2]=n[4*(r-1)+2],n[i+3]=n[4*(r-1)+3]),i=(r+Tv)*4,n[i]=e.nanColor[0]*255+.5,n[i+1]=e.nanColor[1]*255+.5,n[i+2]=e.nanColor[2]*255+.5,n[i+3]=e.nanColor[3]*255+.5},t.build=()=>{(e.table.length<1||t.getMTime()>e.buildTime.getMTime()&&e.insertTime.getMTime()<=e.buildTime.getMTime())&&t.forceBuild()},e.table.length>0&&(t.buildSpecialColors(),e.insertTime.modified())}const BK={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function yI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BK,r),e2.extend(t,e,r),e.table||(e.table=[]),e.buildTime={},W.obj(e.buildTime),e.opaqueFlagBuildTime={},W.obj(e.opaqueFlagBuildTime,{mtime:0}),e.insertTime={},W.obj(e.insertTime,{mtime:0}),W.get(t,e,["buildTime"]),W.setGet(t,e,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),W.setArray(t,e,["alphaRange","hueRange","saturationRange","valueRange"],2),W.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),W.getArray(t,e,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),UK(t,e)}const GK=W.newInstance(yI,"vtkLookupTable");var N1={newInstance:GK,extend:yI};const Ao={Off:0,PolygonOffset:1};let $5=Ao.PolygonOffset,P1=Ao.Off;const WK=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function zK(){return $5}function $K(t){const e=$5===t;return $5=t,e}function jK(){return P1}function t2(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const e=P1===t;return P1=t,e}function HK(){return t2(Ao.Off)}function KK(){return t2(Ao.Off)}function qK(){return t2(Ao.PolygonOffset)}function XK(){return WK[P1]}var j5={Resolve:Ao,getResolveCoincidentTopologyAsString:XK,getResolveCoincidentTopologyPolygonOffsetFaces:zK,getResolveCoincidentTopology:jK,setResolveCoincidentTopology:t2,setResolveCoincidentTopologyPolygonOffsetFaces:$K,setResolveCoincidentTopologyToDefault:HK,setResolveCoincidentTopologyToOff:KK,setResolveCoincidentTopologyToPolygonOffset:qK};function xI(t,e,r){r.forEach(n=>{t[`get${n.method}`]=()=>e[n.key],t[`set${n.method}`]=W.objectSetterMap.object(t,e,{name:n.key,params:["factor","offset"]})})}const Fw=["Polygon","Line","Point"],YK={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Rc={};xI(Rc,YK,Fw.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function JK(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),W.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(j5).forEach(r=>{t[r]=j5[r]}),Object.keys(Rc).forEach(r=>{t[r]=Rc[r]}),xI(t,e.topologyOffset,Fw.map(r=>({key:r,method:`RelativeCoincidentTopology${r}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const r=Rc.getResolveCoincidentTopologyPolygonOffsetParameters(),n=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const r=Rc.getResolveCoincidentTopologyLineOffsetParameters(),n=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const r=Rc.getResolveCoincidentTopologyPointOffsetParameters(),n=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}}}var n2={implementCoincidentTopologyMethods:JK,staticOffsetAPI:Rc,otherStaticMethods:j5,CATEGORIES:Fw,Resolve:Ao};const{FieldAssociations:YT}=v0,{staticOffsetAPI:ZK,otherStaticMethods:QK}=n2,{ColorMode:lg,ScalarMode:dc,GetArray:_v}=Qm,{VectorMode:eq}=Vw,{VtkDataTypes:tq}=tt;function X0(t){return()=>W.vtkErrorMacro(`vtkMapper::${t} - NOT IMPLEMENTED`)}function nq(t,e){const r=t[1]%2===0?1:-1;if(t[0]+=r,t[0]>=e[0]||t[0]<0){const n=t[2]%2===0?1:-1;t[0]-=r,t[1]+=n,(t[1]>=e[1]||t[1]<0)&&(t[1]-=n,t[2]++)}}function rq(t,e){return t[0]+e[0]*(t[1]+e[1]*t[2])}function JT(t,e,r){const n=Math.floor(e),i=n%(2*r[0]);let o,a;i=y,C=i[2]<=1?2:3,S=tt.newInstance({numberOfComponents:C,values:new Float32Array(m*C)}),T=S.getData(),_=[0,0,0];JT(_,n+2,i);let E=0,D=0;const b=[.5,.5,.5];for(let R=0;Rn&&(L=n+1),JT(b,L,i)}else{b[1]=.49;const L=(M-h)*g;L>1e3?b[0]=1e3:L<-1e3?b[0]=-1e3:b[0]=L}for(let L=0;L{const r=t.getInputData();return r?(e.static||t.update(),e.bounds=r.getBounds()):e.bounds=Ks(),e.bounds},t.setForceCompileOnly=r=>{e.forceCompileOnly=r},t.setSelectionWebGLIdsToVTKIds=r=>{e.selectionWebGLIdsToVTKIds=r},t.createDefaultLookupTable=()=>{e.lookupTable=N1.newInstance()},t.getColorModeAsString=()=>W.enumToString(lg,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>W.enumToString(dc,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(r,n,i,o,a)=>{if(!r||!e.scalarVisibility)return{scalars:null,cellFlag:!1};let s=null,c=!1;if(n===dc.DEFAULT)s=r.getPointData().getScalars(),s||(s=r.getCellData().getScalars(),c=!0);else if(n===dc.USE_POINT_DATA)s=r.getPointData().getScalars();else if(n===dc.USE_CELL_DATA)s=r.getCellData().getScalars(),c=!0;else if(n===dc.USE_POINT_FIELD_DATA){const l=r.getPointData();i===_v.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===dc.USE_CELL_FIELD_DATA){const l=r.getCellData();c=!0,i===_v.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===dc.USE_FIELD_DATA){const l=r.getFieldData();i===_v.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}return{scalars:s,cellFlag:c}},t.mapScalars=(r,n)=>{const{scalars:i,cellFlag:o}=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName);if(e.areScalarsMappedFromCells=o,!i){e.colorCoordinates=null,e.colorTextureMap=null,e.colorMapColors=null;return}const a=`${t.getMTime()}${i.getMTime()}${n}`;if(e.colorBuildString!==a){if(e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]),t.canUseTextureMapForColoring(i,o))e.mapScalarsToTexture(i,o,n);else{e.colorCoordinates=null,e.colorTextureMap=null;const s=t.getLookupTable();s&&(s.build(),e.colorMapColors=s.mapScalars(i,e.colorMode,e.fieldDataTupleId))}e.colorBuildString=`${t.getMTime()}${i.getMTime()}${n}`}},e.mapScalarsToTexture=(r,n,i)=>{const o=e.lookupTable.getRange(),a=e.lookupTable.usingLogScale();a&&N1.getLogRange(o,o);const s=e.lookupTable.getAlpha();if(e.colorMapColors=null,e.colorTextureMap==null||t.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getAlpha()!==i){e.lookupTable.setAlpha(i),e.colorTextureMap=null,e.lookupTable.build();const l=e.lookupTable.getNumberOfAvailableColors(),f=2048,u=f**3-3,h=4096-2,g=2,p=n?u:h;e.numberOfColorsInRange=Math.min(Math.max(l,g),p);const v=e.numberOfColorsInRange+3,x=e.numberOfColorsInRange+2,m=n?[Math.min(Math.ceil(v/f**0),f),Math.min(Math.ceil(v/f**1),f),Math.min(Math.ceil(v/f**2),f)]:[x,2,1],y=m[0]*m[1]*m[2],w=new Float64Array(y);w.fill(NaN);const C=e.numberOfColorsInRange,S=C+2,T=[0,0,0],_=o[0],E=o[1]-o[0];for(let I=0;I1?-1:e.lookupTable.getVectorComponent();e.colorCoordinates=iq(r,c,o,e.numberOfColorsInRange,e.colorTextureMap.getDimensions(),a,n)},t.getIsOpaque=()=>{const r=t.getInputData(),i=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!e.scalarVisibility||i==null)return!0;const o=t.getLookupTable();return o?(o.build(),o.areScalarsOpaque(i,e.colorMode,-1)):!0},t.canUseTextureMapForColoring=(r,n)=>n&&e.colorMode!==lg.DIRECT_SCALARS?!0:!(!e.interpolateScalarsBeforeMapping||e.lookupTable&&e.lookupTable.getIndexedLookup()||!r||e.colorMode===lg.DEFAULT&&r.getDataType()===tq.UNSIGNED_CHAR||e.colorMode===lg.DIRECT_SCALARS),t.clearColorArrays=()=>{e.colorMapColors=null,e.colorCoordinates=null,e.colorTextureMap=null},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let r=e.mtime;if(e.lookupTable!==null){const n=e.lookupTable.getMTime();r=n>r?n:r}return r},t.getPrimitiveCount=()=>{const r=t.getInputData();return{points:r.getPoints().getNumberOfValues()/3,verts:r.getVerts().getNumberOfValues()-r.getVerts().getNumberOfCells(),lines:r.getLines().getNumberOfValues()-2*r.getLines().getNumberOfCells(),triangles:r.getPolys().getNumberOfValues()-3*r.getPolys().getNumberOfCells()}},t.acquireInvertibleLookupTable=X0("AcquireInvertibleLookupTable"),t.valueToColor=X0("ValueToColor"),t.colorToValue=X0("ColorToValue"),t.useInvertibleColorFor=X0("UseInvertibleColorFor"),t.clearInvertibleColor=X0("ClearInvertibleColor"),t.processSelectorPixelBuffers=(r,n)=>{if(!r||!e.selectionWebGLIdsToVTKIds||!e.populateSelectionSettings)return;const i=r.getRawPixelBuffer(ai.ID_LOW24),o=r.getRawPixelBuffer(ai.ID_HIGH24),a=r.getCurrentPass(),s=r.getFieldAssociation();let c=null;s===YT.FIELD_ASSOCIATION_POINTS?c=e.selectionWebGLIdsToVTKIds.points:s===YT.FIELD_ASSOCIATION_CELLS&&(c=e.selectionWebGLIdsToVTKIds.cells),c&&n.forEach(l=>{if(a===ai.ID_LOW24){let f=0;o&&(f+=o[l],f*=256),f+=i[l+2],f*=256,f+=i[l+1],f*=256,f+=i[l];const u=c[f],d=r.getPixelBuffer(ai.ID_LOW24);d[l]=u&255,d[l+1]=(u&65280)>>8,d[l+2]=(u&16711680)>>16}else if(a===ai.ID_HIGH24&&o){let f=0;f+=o[l],f*=256,f+=i[l+2],f*=256,f+=i[l+1],f*=256,f+=i[l];const u=c[f],d=r.getPixelBuffer(ai.ID_HIGH24);d[l]=(u&4278190080)>>24}})}}const aq={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function wI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aq,r),kw.extend(t,e,r),W.get(t,e,["areScalarsMappedFromCells","colorCoordinates","colorMapColors","colorTextureMap","numberOfColorsInRange","selectionWebGLIdsToVTKIds"]),W.setGet(t,e,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),W.setGetArray(t,e,["scalarRange"],2),n2.implementCoincidentTopologyMethods(t,e),oq(t,e)}const sq=W.newInstance(wI,"vtkMapper");var ia={newInstance:sq,extend:wI,...ZK,...QK,...Qm};const cq={DISPLAY:0,WORLD:1};var CI={CoordinateSystem:cq};const{CoordinateSystem:H5}=CI;function QT(t){return()=>W.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function lq(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let r=e.mtime;for(let n=0;nr&&(r=i)}return r},t.processSelectorPixelBuffers=(r,n)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=QT("pick"),t.hasKey=QT("hasKey"),t.getNestedVisibility=()=>e.visibility&&(!e._parentProp||e._parentProp.getNestedVisibility()),t.getNestedPickable=()=>e.pickable&&(!e._parentProp||e._parentProp.getNestedPickable()),t.getNestedDragable=()=>e.dragable&&(!e._parentProp||e._parentProp.getNestedDragable()),t.getRedrawMTime=()=>e.mtime,t.setEstimatedRenderTime=r=>{e.estimatedRenderTime=r,e.savedEstimatedRenderTime=r},t.restoreEstimatedRenderTime=()=>{e.estimatedRenderTime=e.savedEstimatedRenderTime},t.addEstimatedRenderTime=r=>{e.estimatedRenderTime+=r},t.setAllocatedRenderTime=r=>{e.allocatedRenderTime=r,e.savedEstimatedRenderTime=e.estimatedRenderTime,e.estimatedRenderTime=0},t.getSupportsSelection=()=>!1,t.getTextures=()=>e.textures,t.hasTexture=r=>e.textures.indexOf(r)!==-1,t.addTexture=r=>{r&&!t.hasTexture(r)&&(e.textures=e.textures.concat(r),t.modified())},t.removeTexture=r=>{const n=e.textures.filter(i=>i!==r);e.textures.length!==n.length&&(e.textures=n,t.modified())},t.removeAllTextures=()=>{e.textures=[],t.modified()},t.setCoordinateSystemToWorld=()=>t.setCoordinateSystem(H5.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(H5.DISPLAY)}const uq={allocatedRenderTime:10,coordinateSystem:H5.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function SI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uq,r),W.obj(t,e),W.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),W.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),W.moveToProtected(t,e,["parentProp"]),lq(t,e)}const fq=W.newInstance(SI,"vtkProp");var vh={newInstance:fq,extend:SI,...CI},Uw=`//VTK::System::Dec +`,d++;o=ce.substitute(o,"//VTK::Output::Dec",u).result}const f=ce.substitute(i,"//VTK::System::Dec",c).result;return{VSSource:l,FSSource:o,GSSource:f}},t.readyShaderProgramArray=(r,n,i)=>{const o=t.replaceShaderValues(r,n,i),a=t.getShaderProgram(o.VSSource,o.FSSource,o.GSSource);return t.readyShaderProgram(a)},t.readyShaderProgram=r=>!r||!r.getCompiled()&&!r.compileShader()||!t.bindShaderProgram(r)?null:r,t.getShaderProgram=(r,n,i)=>{const o=`${r}${n}${i}`,a=RH.hash(o);if(!(a in e.shaderPrograms)){const s=ce.newInstance();return s.setContext(e.context),s.getVertexShader().setSource(r),s.getFragmentShader().setSource(n),i&&s.getGeometryShader().setSource(i),s.setMd5Hash(a),e.shaderPrograms[a]=s,s}return e.shaderPrograms[a]},t.releaseGraphicsResources=r=>{t.releaseCurrentShaderProgram(),Object.keys(e.shaderPrograms).map(n=>e.shaderPrograms[n]).forEach(n=>n.cleanup()),e.shaderPrograms={}},t.releaseCurrentShaderProgram=()=>{e.lastShaderProgramBound&&(e.lastShaderProgramBound.cleanup(),e.lastShaderProgramBound=null)},t.bindShaderProgram=r=>(e.lastShaderProgramBound===r||(e.lastShaderProgramBound&&e.lastShaderProgramBound.release(),r.bind(),e.lastShaderProgramBound=r),1)}const PH={lastShaderProgramBound:null,shaderPrograms:null,context:null};function Ab(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,PH,r),e.shaderPrograms={},W.obj(t,e),W.setGet(t,e,LH),W.moveToProtected(t,e,["openGLRenderWindow"]),NH(t,e)}const AH=W.newInstance(Ab,"vtkShaderCache");var kH={newInstance:AH,extend:Ab};const{vtkErrorMacro:VH}=W;function FH(t,e){e.classHierarchy.push("vtkOpenGLTextureUnitManager"),t.deleteTable=()=>{for(let r=0;r{if(e.context!==r){if(e.context!==0&&t.deleteTable(),e.context=r,e.context){e.numberOfTextureUnits=r.getParameter(r.MAX_TEXTURE_IMAGE_UNITS);for(let n=0;n{for(let r=0;rt.isAllocated(r)?-1:(e.textureUnits[r]=!0,r),t.isAllocated=r=>e.textureUnits[r],t.free=r=>{e.textureUnits[r]=!1},t.freeAll=()=>{for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,UH,r),W.obj(t,e),e.textureUnits=[],W.get(t,e,["numberOfTextureUnits"]),W.setGet(t,e,["context"]),FH(t,e)}const BH=W.newInstance(kb,"vtkOpenGLTextureUnitManager");var GH={newInstance:BH,extend:kb};function WH(t,e){e.classHierarchy.push("vtkRenderWindowViewNode"),t.getViewNodeFactory=()=>null,t.getAspectRatio=()=>e.size[0]/e.size[1],t.getAspectRatioForRenderer=r=>{const n=r.getViewportByReference();return e.size[0]*(n[2]-n[0])/((n[3]-n[1])*e.size[1])},t.isInViewport=(r,n,i)=>{const o=i.getViewportByReference(),a=t.getFramebufferSize();return o[0]*a[0]<=r&&o[2]*a[0]>=r&&o[1]*a[1]<=n&&o[3]*a[1]>=n},t.getViewportSize=r=>{const n=r.getViewportByReference(),i=t.getFramebufferSize();return[(n[2]-n[0])*i[0],(n[3]-n[1])*i[1]]},t.getViewportCenter=r=>{const n=t.getViewportSize(r);return[n[0]*.5,n[1]*.5]},t.displayToNormalizedDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r/o[0],n/o[1],i]},t.normalizedDisplayToDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r*o[0],n*o[1],i]},t.worldToView=(r,n,i,o)=>o.worldToView(r,n,i),t.viewToWorld=(r,n,i,o)=>o.viewToWorld(r,n,i),t.worldToDisplay=(r,n,i,o)=>{const a=o.worldToView(r,n,i),s=t.getViewportSize(o),c=o.viewToProjection(a[0],a[1],a[2],s[0]/s[1]),l=o.projectionToNormalizedDisplay(c[0],c[1],c[2]);return t.normalizedDisplayToDisplay(l[0],l[1],l[2])},t.displayToWorld=(r,n,i,o)=>{const a=t.displayToNormalizedDisplay(r,n,i),s=o.normalizedDisplayToProjection(a[0],a[1],a[2]),c=t.getViewportSize(o),l=o.projectionToView(s[0],s[1],s[2],c[0]/c[1]);return o.viewToWorld(l[0],l[1],l[2])},t.normalizedDisplayToViewport=(r,n,i,o)=>{let a=o.getViewportByReference();a=t.normalizedDisplayToDisplay(a[0],a[1],0);const s=t.normalizedDisplayToDisplay(r,n,i);return[s[0]-a[0]-.5,s[1]-a[1]-.5,i]},t.viewportToNormalizedViewport=(r,n,i,o)=>{const a=t.getViewportSize(o);return a&&a[0]!==0&&a[1]!==0?[r/(a[0]-1),n/(a[1]-1),i]:[r,n,i]},t.normalizedViewportToViewport=(r,n,i,o)=>{const a=t.getViewportSize(o);return[r*(a[0]-1),n*(a[1]-1),i]},t.displayToLocalDisplay=(r,n,i)=>{const o=t.getFramebufferSize();return[r,o[1]-n-1,i]},t.viewportToNormalizedDisplay=(r,n,i,o)=>{let a=o.getViewportByReference();a=t.normalizedDisplayToDisplay(a[0],a[1],0);const s=r+a[0]+.5,c=n+a[1]+.5;return t.displayToNormalizedDisplay(s,c,i)},t.getComputedDevicePixelRatio=()=>e.size[0]/t.getContainerSize()[0],t.getContainerSize=()=>{W.vtkErrorMacro("not implemented")},t.getPixelData=(r,n,i,o)=>{W.vtkErrorMacro("not implemented")},t.createSelector=()=>{W.vtkErrorMacro("not implemented")}}const zH={size:void 0,selector:void 0};function Vb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zH,r),e.size||(e.size=[300,300]),W.getArray(t,e,["size"],2),W.get(t,e,["selector"]),tn.extend(t,e,r),WH(t,e)}const $H=W.newInstance(Vb,"vtkRenderWindowViewNode");var jH={newInstance:$H,extend:Vb};const HH="__getUnderlyingContext";function KH(){const t=new Map,e={apply(i,o,a){return t.has(a[0])?t.get(a[0]):i.apply(o,a)}};function r(i){return{apply(o,a,s){return t.set(i,s[0]),o.apply(a,s)}}}const n=Object.create(null);return n.getParameter=(i,o,a,s)=>new Proxy(s.bind(i),e),n.depthMask=(i,o,a,s)=>new Proxy(s.bind(i),r(i.DEPTH_WRITEMASK)),{get(i,o,a){if(o===HH)return()=>i;let s=Reflect.get(i,o,i);s instanceof Function&&(s=s.bind(i));const c=n[o];return c?c(i,o,a,s):s}}}const{vtkDebugMacro:$T,vtkErrorMacro:jT}=W,qH={position:"absolute",top:0,left:0,width:"100%",height:"100%"},XH=["activateTexture","deactivateTexture","disableCullFace","enableCullFace","get3DContext","getActiveFramebuffer","getContext","getDefaultTextureByteSize","getDefaultTextureInternalFormat","getDefaultToWebgl2","getGLInformations","getGraphicsMemoryInfo","getGraphicsResourceForObject","getHardwareMaximumLineWidth","getPixelData","getShaderCache","getTextureUnitForTexture","getTextureUnitManager","getWebgl2","makeCurrent","releaseGraphicsResources","registerGraphicsResourceUser","unregisterGraphicsResourceUser","restoreContext","setActiveFramebuffer","setContext","setDefaultToWebgl2","setGraphicsResourceForObject"];function ni(t,e,r){const n=t.createFramebuffer(),i=t.createTexture();t.bindTexture(t.TEXTURE_2D,i),t.texImage2D(t.TEXTURE_2D,0,e,2,2,0,e,r,null),t.bindFramebuffer(t.FRAMEBUFFER,n),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0);const o=t.checkFramebufferStatus(t.FRAMEBUFFER);return t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindTexture(t.TEXTURE_2D,null),o===t.FRAMEBUFFER_COMPLETE}let R1=0;const Zm=[];function YH(){R1++,Zm.forEach(t=>t(R1))}function JH(){R1--,Zm.forEach(t=>t(R1))}function ZH(t){Zm.push(t)}function QH(t){return Zm.pop()}function HT(t){t.preventDefault()}function eK(t,e){e.classHierarchy.push("vtkOpenGLRenderWindow");let r;function n(){return r||(r=KH()),r}t.getViewNodeFactory=()=>e.myFactory,e.canvas.addEventListener("webglcontextlost",HT,!1),e.canvas.addEventListener("webglcontextrestored",t.restoreContext,!1);const i=[0,0];function o(){e.renderable&&(e.size[0]!==i[0]||e.size[1]!==i[1])&&(i[0]=e.size[0],i[1]=e.size[1],e.canvas.setAttribute("width",e.size[0]),e.canvas.setAttribute("height",e.size[1])),e.viewStream&&e.viewStream.setSize(e.size[0],e.size[1]),e.canvas.style.display=e.useOffScreen?"none":"block",e.el&&(e.el.style.cursor=e.cursorVisibility?e.cursor:"none"),e.containerSize=null}t.onModified(o),t.buildPass=u=>{if(u){if(!e.renderable)return;t.prepareNodes(),t.addMissingNodes(e.renderable.getRenderersByReference()),t.addMissingNodes(e.renderable.getChildRenderWindowsByReference()),t.removeUnusedNodes(),t.initialize(),e.children.forEach(d=>{var h;(h=d.setOpenGLRenderWindow)==null||h.call(d,t)})}},t.initialize=()=>{if(!e.initialized){if(e.rootOpenGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.rootOpenGLRenderWindow)e.context2D=t.get2DContext();else{e.context=t.get3DContext(),t.resizeFromChildRenderWindows(),e.context&&YH(),e.textureUnitManager=GH.newInstance(),e.textureUnitManager.setContext(e.context),e.shaderCache.setContext(e.context);const u=e.context;u.blendFuncSeparate(u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA,u.ONE,u.ONE_MINUS_SRC_ALPHA),u.depthFunc(u.LEQUAL),u.enable(u.BLEND)}e.initialized=!0}},t.makeCurrent=()=>{e.context.makeCurrent()},t.setContainer=u=>{e.el&&e.el!==u&&(e.canvas.parentNode!==e.el&&jT("Error: canvas parent node does not match container"),e.el.removeChild(e.canvas),e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)),e.el!==u&&(e.el=u,e.el&&(e.el.appendChild(e.canvas),e.useBackgroundImage&&e.el.appendChild(e.bgImage)),t.modified())},t.getContainer=()=>e.el,t.getContainerSize=()=>{if(!e.containerSize&&e.el){const{width:u,height:d}=e.el.getBoundingClientRect();e.containerSize=[u,d]}return e.containerSize||e.size},t.getFramebufferSize=()=>{var d;return((d=e.activeFramebuffer)==null?void 0:d.getSize())||e.size},t.getPixelData=(u,d,h,g)=>{const p=new Uint8Array((h-u+1)*(g-d+1)*4);return e.context.readPixels(u,d,h-u+1,g-d+1,e.context.RGBA,e.context.UNSIGNED_BYTE,p),p},t.get3DContext=function(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{preserveDrawingBuffer:!1,depth:!0,alpha:!0,powerPreference:"high-performance"},d=null;const h=typeof WebGL2RenderingContext<"u";return e.webgl2=!1,e.defaultToWebgl2&&h&&(d=e.canvas.getContext("webgl2",u),d&&(e.webgl2=!0,$T("using webgl2"))),d||($T("using webgl1"),d=e.canvas.getContext("webgl",u)||e.canvas.getContext("experimental-webgl",u)),new Proxy(d,n())},t.get2DContext=function(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e.canvas.getContext("2d",u)},t.restoreContext=()=>{const u=dw.newInstance();u.setCurrentOperation("Release"),u.traverse(t,null)},t.activateTexture=u=>{const d=e._textureResourceIds.get(u);if(d!==void 0){e.context.activeTexture(e.context.TEXTURE0+d);return}const h=t.getTextureUnitManager().allocate();if(h<0){jT("Hardware does not support the number of textures defined.");return}e._textureResourceIds.set(u,h),e.context.activeTexture(e.context.TEXTURE0+h)},t.deactivateTexture=u=>{const d=e._textureResourceIds.get(u);d!==void 0&&(t.getTextureUnitManager().free(d),e._textureResourceIds.delete(u))},t.getTextureUnitForTexture=u=>{const d=e._textureResourceIds.get(u);return d!==void 0?d:-1},t.getDefaultTextureByteSize=function(u){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(e.webgl2)switch(u){case vt.CHAR:case vt.SIGNED_CHAR:case vt.UNSIGNED_CHAR:return 1;case d:case h:case vt.UNSIGNED_SHORT:case vt.SHORT:case vt.VOID:return 2;default:return 4}return 1},t.getDefaultTextureInternalFormat=function(u,d){let h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e.webgl2)switch(u){case vt.UNSIGNED_CHAR:switch(d){case 1:return e.context.R8;case 2:return e.context.RG8;case 3:return e.context.RGB8;case 4:default:return e.context.RGBA8}case(h&&!g&&vt.UNSIGNED_SHORT):switch(d){case 1:return h.R16_EXT;case 2:return h.RG16_EXT;case 3:return h.RGB16_EXT;case 4:default:return h.RGBA16_EXT}case(h&&!g&&vt.SHORT):switch(d){case 1:return h.R16_SNORM_EXT;case 2:return h.RG16_SNORM_EXT;case 3:return h.RGB16_SNORM_EXT;case 4:default:return h.RGBA16_SNORM_EXT}case vt.UNSIGNED_SHORT:case vt.SHORT:case vt.FLOAT:default:switch(d){case 1:return g?e.context.R16F:e.context.R32F;case 2:return g?e.context.RG16F:e.context.RG32F;case 3:return g?e.context.RGB16F:e.context.RGB32F;case 4:default:return g?e.context.RGBA16F:e.context.RGBA32F}}switch(d){case 1:return e.context.LUMINANCE;case 2:return e.context.LUMINANCE_ALPHA;case 3:return e.context.RGB;case 4:default:return e.context.RGBA}},t.setBackgroundImage=u=>{e.bgImage.src=u.src},t.setUseBackgroundImage=u=>{e.useBackgroundImage=u,e.useBackgroundImage&&!e.el.contains(e.bgImage)?e.el.appendChild(e.bgImage):!e.useBackgroundImage&&e.el.contains(e.bgImage)&&e.el.removeChild(e.bgImage)};function a(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.imageFormat;const d=document.createElement("canvas"),h=d.getContext("2d");d.width=e.canvas.width,d.height=e.canvas.height,h.drawImage(e.canvas,0,0);const g=e.canvas.getBoundingClientRect();e.renderable.getRenderers().forEach(m=>{m.getViewProps().forEach(w=>{if(w.getContainer){const S=w.getContainer().getElementsByTagName("canvas");for(let T=0;T0&&arguments[0]!==void 0?arguments[0]:"image/png",{resetCamera:d=!1,size:h=null,scale:g=1}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.deleted)return null;e.imageFormat=u;const p=e.notifyStartCaptureImage;return e.notifyStartCaptureImage=!0,e._screenshot={size:h||g!==1?h||e.size.map(v=>v*g):null},new Promise((v,x)=>{const m=t.onImageReady(y=>{if(e._screenshot.size===null)e.notifyStartCaptureImage=p,m.unsubscribe(),e._screenshot.placeHolder&&(e.size=e._screenshot.originalSize,t.modified(),e._screenshot.cameras&&e._screenshot.cameras.forEach(w=>{let{restoreParamsFn:C,arg:S}=w;return C(S)}),t.traverseAllPasses(),e.el.removeChild(e._screenshot.placeHolder),e._screenshot.placeHolder.remove(),e._screenshot=null),v(y);else{const w=document.createElement("img");if(w.style=qH,w.src=y,e._screenshot.placeHolder=e.el.appendChild(w),e.canvas.style.display="none",e._screenshot.originalSize=e.size,e.size=e._screenshot.size,e._screenshot.size=null,t.modified(),d){const C=d!==!0;e._screenshot.cameras=e.renderable.getRenderers().map(S=>{const T=S.getActiveCamera(),_=T.get("focalPoint","position","parallelScale");return{resetCameraArgs:C?{renderer:S}:void 0,resetCameraFn:C?d:S.resetCamera,restoreParamsFn:T.set,arg:JSON.parse(JSON.stringify(_))}}),e._screenshot.cameras.forEach(S=>{let{resetCameraFn:T,resetCameraArgs:_}=S;return T(_)})}t.traverseAllPasses()}})})};let s;t.getHardwareMaximumLineWidth=()=>{if(s!=null)return s;const u=t.get3DContext(),d=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);return s=d[1],d[1]},t.getGLInformations=()=>{if(e._glInformation)return e._glInformation;const u=t.get3DContext(),d=u.getExtension("OES_texture_float"),h=u.getExtension("OES_texture_half_float"),g=u.getExtension("WEBGL_debug_renderer_info"),p=u.getExtension("WEBGL_draw_buffers"),v=u.getExtension("EXT_texture_filter_anisotropic")||u.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),x=[["Max Vertex Attributes","MAX_VERTEX_ATTRIBS",u.getParameter(u.MAX_VERTEX_ATTRIBS)],["Max Varying Vectors","MAX_VARYING_VECTORS",u.getParameter(u.MAX_VARYING_VECTORS)],["Max Vertex Uniform Vectors","MAX_VERTEX_UNIFORM_VECTORS",u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS)],["Max Fragment Uniform Vectors","MAX_FRAGMENT_UNIFORM_VECTORS",u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS)],["Max Fragment Texture Image Units","MAX_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS)],["Max Vertex Texture Image Units","MAX_VERTEX_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS)],["Max Combined Texture Image Units","MAX_COMBINED_TEXTURE_IMAGE_UNITS",u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS)],["Max 2D Texture Size","MAX_TEXTURE_SIZE",u.getParameter(u.MAX_TEXTURE_SIZE)],["Max Cube Texture Size","MAX_CUBE_MAP_TEXTURE_SIZE",u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE)],["Max Texture Anisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT",v&&u.getParameter(v.MAX_TEXTURE_MAX_ANISOTROPY_EXT)],["Point Size Range","ALIASED_POINT_SIZE_RANGE",u.getParameter(u.ALIASED_POINT_SIZE_RANGE).join(" - ")],["Line Width Range","ALIASED_LINE_WIDTH_RANGE",u.getParameter(u.ALIASED_LINE_WIDTH_RANGE).join(" - ")],["Max Viewport Dimensions","MAX_VIEWPORT_DIMS",u.getParameter(u.MAX_VIEWPORT_DIMS).join(" - ")],["Max Renderbuffer Size","MAX_RENDERBUFFER_SIZE",u.getParameter(u.MAX_RENDERBUFFER_SIZE)],["Framebuffer Red Bits","RED_BITS",u.getParameter(u.RED_BITS)],["Framebuffer Green Bits","GREEN_BITS",u.getParameter(u.GREEN_BITS)],["Framebuffer Blue Bits","BLUE_BITS",u.getParameter(u.BLUE_BITS)],["Framebuffer Alpha Bits","ALPHA_BITS",u.getParameter(u.ALPHA_BITS)],["Framebuffer Depth Bits","DEPTH_BITS",u.getParameter(u.DEPTH_BITS)],["Framebuffer Stencil Bits","STENCIL_BITS",u.getParameter(u.STENCIL_BITS)],["Framebuffer Subpixel Bits","SUBPIXEL_BITS",u.getParameter(u.SUBPIXEL_BITS)],["MSAA Samples","SAMPLES",u.getParameter(u.SAMPLES)],["MSAA Sample Buffers","SAMPLE_BUFFERS",u.getParameter(u.SAMPLE_BUFFERS)],["Supported Formats for UByte Render Targets ","UNSIGNED_BYTE RENDER TARGET FORMATS",[d&&ni(u,u.RGBA,u.UNSIGNED_BYTE)?"RGBA":"",d&&ni(u,u.RGB,u.UNSIGNED_BYTE)?"RGB":"",d&&ni(u,u.LUMINANCE,u.UNSIGNED_BYTE)?"LUMINANCE":"",d&&ni(u,u.ALPHA,u.UNSIGNED_BYTE)?"ALPHA":"",d&&ni(u,u.LUMINANCE_ALPHA,u.UNSIGNED_BYTE)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Half Float Render Targets","HALF FLOAT RENDER TARGET FORMATS",[h&&ni(u,u.RGBA,h.HALF_FLOAT_OES)?"RGBA":"",h&&ni(u,u.RGB,h.HALF_FLOAT_OES)?"RGB":"",h&&ni(u,u.LUMINANCE,h.HALF_FLOAT_OES)?"LUMINANCE":"",h&&ni(u,u.ALPHA,h.HALF_FLOAT_OES)?"ALPHA":"",h&&ni(u,u.LUMINANCE_ALPHA,h.HALF_FLOAT_OES)?"LUMINANCE_ALPHA":""].join(" ")],["Supported Formats for Full Float Render Targets","FLOAT RENDER TARGET FORMATS",[d&&ni(u,u.RGBA,u.FLOAT)?"RGBA":"",d&&ni(u,u.RGB,u.FLOAT)?"RGB":"",d&&ni(u,u.LUMINANCE,u.FLOAT)?"LUMINANCE":"",d&&ni(u,u.ALPHA,u.FLOAT)?"ALPHA":"",d&&ni(u,u.LUMINANCE_ALPHA,u.FLOAT)?"LUMINANCE_ALPHA":""].join(" ")],["Max Multiple Render Targets Buffers","MAX_DRAW_BUFFERS_WEBGL",p?u.getParameter(p.MAX_DRAW_BUFFERS_WEBGL):0],["High Float Precision in Vertex Shader","HIGH_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Vertex Shader","MEDIUM_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Vertex Shader","LOW_FLOAT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_FLOAT).rangeMax,")"].join("")],["High Float Precision in Fragment Shader","HIGH_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT).rangeMax,")"].join("")],["Medium Float Precision in Fragment Shader","MEDIUM_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_FLOAT).rangeMax,")"].join("")],["Low Float Precision in Fragment Shader","LOW_FLOAT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_FLOAT).rangeMax,")"].join("")],["High Int Precision in Vertex Shader","HIGH_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Vertex Shader","MEDIUM_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Vertex Shader","LOW_INT VERTEX_SHADER",[u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).precision," (-2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.VERTEX_SHADER,u.LOW_INT).rangeMax,")"].join("")],["High Int Precision in Fragment Shader","HIGH_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT).rangeMax,")"].join("")],["Medium Int Precision in Fragment Shader","MEDIUM_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.MEDIUM_INT).rangeMax,")"].join("")],["Low Int Precision in Fragment Shader","LOW_INT FRAGMENT_SHADER",[u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).precision," (-2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).rangeMin," - 2",u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.LOW_INT).rangeMax,")"].join("")],["Supported Extensions","EXTENSIONS",u.getSupportedExtensions().join("
")],["WebGL Renderer","RENDERER",u.getParameter(u.RENDERER)],["WebGL Vendor","VENDOR",u.getParameter(u.VENDOR)],["WebGL Version","VERSION",u.getParameter(u.VERSION)],["Shading Language Version","SHADING_LANGUAGE_VERSION",u.getParameter(u.SHADING_LANGUAGE_VERSION)],["Unmasked Renderer","UNMASKED_RENDERER",g&&u.getParameter(g.UNMASKED_RENDERER_WEBGL)],["Unmasked Vendor","UNMASKED_VENDOR",g&&u.getParameter(g.UNMASKED_VENDOR_WEBGL)],["WebGL Version","WEBGL_VERSION",e.webgl2?2:1]],m={};for(;x.length;){const[y,w,C]=x.pop();w&&(m[w]={label:y,value:C})}return e._glInformation=m,m},t.traverseAllPasses=()=>{var d;if(e.renderPasses)for(let h=0;h{const u=e.rootOpenGLRenderWindow;if(!u||!e.context2D||e.children.some(g=>{var p;return!!((p=g.getSelector)!=null&&p.call(g))}))return;const d=u.getCanvas(),h=e.canvas;e.context2D.drawImage(d,0,d.height-h.height,h.width,h.height,0,0,h.width,h.height)},t.resizeFromChildRenderWindows=()=>{var d;const u=e.renderable.getChildRenderWindowsByReference();if(u.length>0){const h=[0,0];for(let g=0;gh[0]?p[0]:h[0],h[1]=p[1]>h[1]?p[1]:h[1])}t.setSize(...h)}},t.disableCullFace=()=>{e.cullFaceEnabled&&(e.context.disable(e.context.CULL_FACE),e.cullFaceEnabled=!1)},t.enableCullFace=()=>{e.cullFaceEnabled||(e.context.enable(e.context.CULL_FACE),e.cullFaceEnabled=!0)},t.setViewStream=u=>{if(e.viewStream===u)return!1;if(e.subscription&&(e.subscription.unsubscribe(),e.subscription=null),e.viewStream=u,e.viewStream){const d=e.renderable.getRenderers()[0];d.getBackgroundByReference()[3]=0,t.setUseBackgroundImage(!0),e.subscription=e.viewStream.onImageReady(h=>t.setBackgroundImage(h.image)),e.viewStream.setSize(e.size[0],e.size[1]),e.viewStream.invalidateCache(),e.viewStream.render(),t.modified()}return!0},t.createSelector=()=>{const u=Iw.newInstance();return u.setOpenGLRenderWindow(t),u};function c(){e.canvas.removeEventListener("webglcontextlost",HT),e.canvas.removeEventListener("webglcontextrestored",t.restoreContext)}t.delete=W.chain(()=>{e.context&&JH(),t.setContainer(),t.setViewStream()},c,t.delete),t.setActiveFramebuffer=u=>{e.activeFramebuffer=u};const l=t.setSize;t.setSize=(u,d)=>{const h=l(u,d);return h&&t.invokeWindowResizeEvent({width:u,height:d}),h},t.registerGraphicsResourceUser=(u,d)=>{e._graphicsResources.has(u)||t.setGraphicsResourceForObject(u,null,null);const h=e._graphicsResources.get(u);h==null||h.users.add(d)},t.unregisterGraphicsResourceUser=(u,d)=>{var g;const h=e._graphicsResources.get(u);h&&(h.users.delete(d),h.users.size||((g=h.oglObject)==null||g.releaseGraphicsResources(t),e._graphicsResources.delete(u)))},t.getGraphicsResourceForObject=u=>e._graphicsResources.get(u),t.setGraphicsResourceForObject=(u,d,h)=>{var p;if(!u)return;const g=e._graphicsResources.get(u);(p=g==null?void 0:g.oglObject)==null||p.releaseGraphicsResources(t),e._graphicsResources.set(u,{coreObject:u,oglObject:d,hash:h,users:(g==null?void 0:g.users)??new Set})},t.getGraphicsMemoryInfo=()=>{let u=0;return e._graphicsResources.forEach(d=>{let{oglObject:h}=d;u+=h.getAllocatedGPUMemoryInBytes()}),u},t.releaseGraphicsResources=()=>{e.shaderCache!==null&&e.shaderCache.releaseGraphicsResources(t),e._graphicsResources.forEach(u=>{let{oglObject:d}=u;d.releaseGraphicsResources(t)}),e._graphicsResources.clear(),e.textureUnitManager!==null&&e.textureUnitManager.freeAll(),e.renderable.getRenderersByReference().forEach(u=>{const d=t.getViewNodeFor(u);d==null||d.releaseGraphicsResources()})};const f={...t};XH.forEach(u=>{t[u]=function(){return e.rootOpenGLRenderWindow?e.rootOpenGLRenderWindow[u](...arguments):f[u](...arguments)}})}const tK={cullFaceEnabled:!1,shaderCache:null,initialized:!1,context:null,context2D:null,canvas:null,cursorVisibility:!0,cursor:"pointer",textureUnitManager:null,textureResourceIds:null,containerSize:null,renderPasses:[],notifyStartCaptureImage:!1,webgl2:!1,defaultToWebgl2:!0,activeFramebuffer:null,imageFormat:"image/png",useOffScreen:!1,useBackgroundImage:!1};function Fb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tK,r),jH.extend(t,e,r),e.canvas||(e.canvas=document.createElement("canvas"),e.canvas.style.width="100%"),e.selector||(e.selector=Iw.newInstance(),e.selector.setOpenGLRenderWindow(t)),e.bgImage=new Image,e.bgImage.style.position="absolute",e.bgImage.style.left="0",e.bgImage.style.top="0",e.bgImage.style.width="100%",e.bgImage.style.height="100%",e.bgImage.style.zIndex="-1",e._textureResourceIds=new Map,e._graphicsResources=new Map,e._glInformation=null,e.myFactory=Kz.newInstance(),e.shaderCache=kH.newInstance(),e.shaderCache.setOpenGLRenderWindow(t),e.renderPasses[0]=Hj.newInstance(),W.get(t,e,["shaderCache","textureUnitManager","webgl2","useBackgroundImage","activeFramebuffer","rootOpenGLRenderWindow"]),W.setGet(t,e,["initialized","context","context2D","canvas","renderPasses","notifyStartCaptureImage","defaultToWebgl2","cursor","useOffScreen"]),W.setGetArray(t,e,["size"],2),W.event(t,e,"imageReady"),W.event(t,e,"windowResizeEvent"),eK(t,e)}const Ow=W.newInstance(Fb,"vtkOpenGLRenderWindow");l7("WebGL",Ow);var nK={newInstance:Ow,extend:Fb,pushMonitorGLContextCount:ZH,popMonitorGLContextCount:QH};ir("vtkRenderWindow",Ow);function rK(t,e){e.classHierarchy.push("vtkOpenGLActor"),t.buildPass=r=>{if(r){e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let n=0;n{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseOpaqueZBufferPass=r=>t.traverseOpaquePass(r),t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let r=0;r{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.zBufferPass=(r,n)=>t.opaquePass(r,n),t.opaqueZBufferPass=(r,n)=>t.opaquePass(r,n),t.opaquePass=(r,n)=>{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(e._openGLRenderer.getSelector()&&e.renderable.getNestedPickable()),t.activateTextures();else if(e.activeTextures)for(let i=0;i(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),_n(e.keyMatrices.mcwc,e.renderable.getMatrix()),St(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.renderable.getIsIdentity()?ao(e.keyMatrices.normalMatrix):(Ym(e.keyMatrices.normalMatrix,e.keyMatrices.mcwc),yh(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),gw(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),e.keyMatrixTime.modified()),e.keyMatrices)}const iK={context:null,keyMatrixTime:null,keyMatrices:null,activeTextures:null};function Ub(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iK,r),tn.extend(t,e,r),e.keyMatrixTime={},un(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:ao(new Float64Array(9)),mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),gi(t,e,["activeTextures"]),rK(t,e)}const Bb=Bt(Ub);var oK={newInstance:Bb,extend:Ub};ir("vtkActor",Bb);function aK(t,e){e.classHierarchy.push("vtkOpenGLActor2D"),t.buildPass=r=>{if(r){if(!e.renderable)return;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNodes(e.renderable.getTextures()),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes(),e.ogltextures=null,e.activeTextures=null;for(let n=0;n{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementOverlayActorCount()}},t.traverseOpaquePass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.traverseOverlayPass=r=>{!e.oglmapper||!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable||(t.apply(r,!0),e.oglmapper.traverse(r),t.apply(r,!1))},t.activateTextures=()=>{if(e.ogltextures){e.activeTextures=[];for(let r=0;r{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(!1),t.activateTextures();else if(e.activeTextures)for(let i=0;i{if(r)e.context.depthMask(!0),t.activateTextures();else if(e.activeTextures)for(let i=0;i2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sK,r),tn.extend(t,e,r),Jn(t,e,["context"]),gi(t,e,["activeTextures"]),aK(t,e)}const Wb=Bt(Gb);var cK={newInstance:Wb,extend:Gb};ir("vtkActor2D",Wb);function lK(t,e){e.classHierarchy.push("vtkOpenGLCamera"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext())},t.opaquePass=r=>{if(r){const n=e._openGLRenderer.getTiledSizeAndOrigin();e.context.viewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize),e.context.scissor(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)}},t.translucentPass=t.opaquePass,t.zBufferPass=t.opaquePass,t.opaqueZBufferPass=t.opaquePass,t.volumePass=t.opaquePass,t.getKeyMatrices=r=>{if(r!==e.lastRenderer||e._openGLRenderWindow.getMTime()>e.keyMatrixTime.getMTime()||t.getMTime()>e.keyMatrixTime.getMTime()||r.getMTime()>e.keyMatrixTime.getMTime()||e.renderable.getMTime()>e.keyMatrixTime.getMTime()){_n(e.keyMatrices.wcvc,e.renderable.getViewMatrix()),Ym(e.keyMatrices.normalMatrix,e.keyMatrices.wcvc),yh(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.wcvc,e.keyMatrices.wcvc);const n=e._openGLRenderer.getAspectRatio();_n(e.keyMatrices.vcpc,e.renderable.getProjectionMatrix(n,-1,1)),St(e.keyMatrices.vcpc,e.keyMatrices.vcpc),bt(e.keyMatrices.wcpc,e.keyMatrices.vcpc,e.keyMatrices.wcvc),e.keyMatrixTime.modified(),e.lastRenderer=r}return e.keyMatrices}}const uK={context:null,lastRenderer:null,keyMatrixTime:null,keyMatrices:null};function zb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uK,r),tn.extend(t,e,r),e.keyMatrixTime={},un(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(9),vcpc:new Float64Array(16),wcvc:new Float64Array(16),wcpc:new Float64Array(16)},Jn(t,e,["context","keyMatrixTime"]),lK(t,e)}const $b=Bt(zb);var fK={newInstance:$b,extend:zb};ir("vtkCamera",$b);function dK(t,e){e.classHierarchy.push("vtkAbstractMapper"),t.update=()=>{t.getInputData()},t.addClippingPlane=r=>r.isA("vtkPlane")?e.clippingPlanes.includes(r)?!1:(e.clippingPlanes.push(r),t.modified(),!0):!1,t.getNumberOfClippingPlanes=()=>e.clippingPlanes.length,t.removeAllClippingPlanes=()=>e.clippingPlanes.length===0?!1:(e.clippingPlanes.length=0,t.modified(),!0),t.removeClippingPlane=r=>{const n=e.clippingPlanes.indexOf(r);return n===-1?!1:(e.clippingPlanes.splice(n,1),t.modified(),!0)},t.getClippingPlanes=()=>e.clippingPlanes,t.setClippingPlanes=r=>{if(r)if(!Array.isArray(r))t.addClippingPlane(r);else{const n=r.length;for(let i=0;i{const o=e.clippingPlanes,a=r;if(o){const s=o.length;if(n>=0&&n2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,hK,r),W.obj(t,e),W.algo(t,e,1,0),e.clippingPlanes||(e.clippingPlanes=[]),dK(t,e)}var jb={extend:gK};function pK(t,e){e.classHierarchy.push("vtkImplicitFunction"),t.functionValue=r=>{if(!e.transform)return t.evaluateFunction(r);const n=[];return e.transform.transformPoint(r,n),t.evaluateFunction(n)},t.evaluateFunction=r=>{W.vtkErrorMacro("not implemented")}}const mK={};function Hb(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mK,r),W.obj(t,e),W.setGet(t,e,["transform"]),pK(t,e)}const vK=W.newInstance(Hb,"vtkImplicitFunction");var yK={newInstance:vK,extend:Hb};const j5=1e-6,Kb="coincide",qb="disjoint";function xK(t,e,r){return t[0]*(r[0]-e[0])+t[1]*(r[1]-e[1])+t[2]*(r[2]-e[2])}function Xb(t,e,r){const n=r[0]*(t[0]-e[0])+r[1]*(t[1]-e[1])+r[2]*(t[2]-e[2]);return Math.abs(n)}function Yb(t,e,r,n){const i=[];Fa(t,e,i);const o=wt(r,i);n[0]=t[0]-o*r[0],n[1]=t[1]-o*r[1],n[2]=t[2]-o*r[2]}function Jb(t,e,r){const n=wt(t,e);let i=wt(e,e);return i===0&&(i=1),r[0]=t[0]-n*e[0]/i,r[1]=t[1]-n*e[1]/i,r[2]=t[2]-n*e[2]/i,r}function Zb(t,e,r,n){const i=[];Fa(t,e,i);const o=wt(r,i),a=wt(r,r);a!==0?(n[0]=t[0]-o*r[0]/a,n[1]=t[1]-o*r[1]/a,n[2]=t[2]-o*r[2]/a):(n[0]=t[0],n[1]=t[1],n[2]=t[2])}function Qb(t,e,r,n){const i={intersection:!1,betweenPoints:!1,t:Number.MAX_VALUE,x:[]},o=[],a=[];Fa(e,t,o),Fa(r,t,a);const s=wt(n,a),c=wt(n,o);let l,f;return c<0?l=-c:l=c,s<0?f=-s*j5:f=s*j5,l<=f||(i.t=s/c,i.x[0]=t[0]+i.t*o[0],i.x[1]=t[1]+i.t*o[1],i.x[2]=t[2]+i.t*o[2],i.intersection=!0,i.betweenPoints=i.t>=0&&i.t<=1),i}function eI(t,e,r,n){const i={intersection:!1,l0:[],l1:[],error:null},o=[];ia(e,n,o);const a=o.map(u=>Math.abs(u));if(a[0]+a[1]+a[2]a[1]&&a[0]>a[2]?s="x":a[1]>a[2]?s="y":s="z";const c=[],l=-wt(e,t),f=-wt(n,r);switch(s){case"x":c[0]=0,c[1]=(f*e[2]-l*n[2])/o[0],c[2]=(l*n[1]-f*e[1])/o[0];break;case"y":c[0]=(l*n[2]-f*e[2])/o[1],c[1]=0,c[2]=(f*e[0]-l*n[0])/o[1];break;case"z":c[0]=(f*e[1]-l*n[1])/o[2],c[1]=(l*n[0]-f*e[0])/o[2],c[2]=0;break}return i.l0=c,E1(c,o,i.l1),i.intersection=!0,i}const wK={evaluate:xK,distanceToPlane:Xb,projectPoint:Yb,projectVector:Jb,generalizedProjectPoint:Zb,intersectWithLine:Qb,intersectWithPlane:eI,DISJOINT:qb,COINCIDE:Kb};function CK(t,e){e.classHierarchy.push("vtkPlane"),t.distanceToPlane=r=>Xb(r,e.origin,e.normal),t.projectPoint=(r,n)=>{Yb(r,e.origin,e.normal,n)},t.projectVector=(r,n)=>Jb(r,e.normal,n),t.push=r=>{if(r!==0)for(let n=0;n<3;n++)e.origin[n]+=r*e.normal[n]},t.generalizedProjectPoint=(r,n)=>{Zb(r,e.origin,e.normal,n)},t.evaluateFunction=(r,n,i)=>Array.isArray(r)?e.normal[0]*(r[0]-e.origin[0])+e.normal[1]*(r[1]-e.origin[1])+e.normal[2]*(r[2]-e.origin[2]):e.normal[0]*(r-e.origin[0])+e.normal[1]*(n-e.origin[1])+e.normal[2]*(i-e.origin[2]),t.evaluateGradient=r=>[e.normal[0],e.normal[1],e.normal[2]],t.intersectWithLine=(r,n)=>Qb(r,n,e.origin,e.normal),t.intersectWithPlane=(r,n)=>eI(r,n,e.origin,e.normal)}const SK={normal:[0,0,1],origin:[0,0,0]};function tI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SK,r),yK.extend(t,e,r),W.setGetArray(t,e,["normal","origin"],3),CK(t,e)}const TK=W.newInstance(tI,"vtkPlane");var Xr={newInstance:TK,extend:tI,...wK};const Qm=[Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE];function nI(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]}function Ka(t){return(t==null?void 0:t.length)>=6&&t[0]<=t[1]&&t[2]<=t[3]&&t[4]<=t[5]}function Mw(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Rw(t){return Mw(t,Qm)}function L1(t,e,r,n){const[i,o,a,s,c,l]=t;return t[0]=ie?o:e,t[2]=ar?s:r,t[4]=cn?l:n,t}function Lw(t,e){if(e.length===0)return t;if(Array.isArray(e[0]))for(let r=0;ro?e:o,t[2]=r,t[3]=r>s?r:s,t[4]=n,t[5]=n>l?n:l,i!==e||a!==r||c!==n}function oI(t,e,r,n){const[i,o,a,s,c,l]=t;return t[0]=e=0?(t[0]*=e,t[1]*=e):(t[0]=e*t[1],t[1]=e*t[0]),r>=0?(t[2]*=r,t[3]*=r):(t[2]=r*t[3],t[3]=r*t[2]),n>=0?(t[4]*=n,t[5]*=n):(t[4]=n*t[5],t[5]=n*t[4]),!0):!1}function Pw(t){return[.5*(t[0]+t[1]),.5*(t[2]+t[3]),.5*(t[4]+t[5])]}function _K(t,e,r,n){if(!Ka(t))return!1;const i=Pw(t);return t[0]-=i[0],t[1]-=i[0],t[2]-=i[1],t[3]-=i[1],t[4]-=i[2],t[5]-=i[2],Nw(t,e,r,n),t[0]+=i[0],t[1]+=i[0],t[2]+=i[1],t[3]+=i[1],t[4]+=i[2],t[5]+=i[2],!0}function jf(t,e){return t[e*2+1]-t[e*2]}function e2(t){return[jf(t,0),jf(t,1),jf(t,2)]}function sI(t){return t.slice(0,2)}function cI(t){return t.slice(2,4)}function lI(t){return t.slice(4,6)}function uI(t){const e=e2(t);return e[0]>e[1]?e[0]>e[2]?e[0]:e[2]:e[1]>e[2]?e[1]:e[2]}function fI(t){if(Ka(t)){const e=e2(t);return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2])}return null}function Aw(t){return[t[0],t[2],t[4]]}function kw(t){return[t[1],t[3],t[5]]}function lg(t,e){return t<=0&&e>=0||t>=0&&e<=0}function Vw(t,e){let r=0;for(let n=0;n<2;n++)for(let i=2;i<4;i++)for(let o=4;o<6;o++)e[r++]=[t[n],t[i],t[o]];return e}function dI(t,e,r){return e[0]=t[0],e[1]=t[2],e[2]=t[4],r[0]=t[1],r[1]=t[3],r[2]=t[5],e}function hI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];const n=Vw(t,[]);for(let i=0;i1&&arguments[1]!==void 0?arguments[1]:[];return e[0]=.5*(t[1]-t[0]),e[1]=.5*(t[3]-t[2]),e[2]=.5*(t[5]-t[4]),e}function pI(t,e,r,n){const i=[].concat(Qm),o=t.getData();for(let a=0;at[2*h+1]?(a[h]=f,l[h]=t[2*h+1],o=!1):a[h]=d;if(o)return n[0]=e[0],n[1]=e[1],n[2]=e[2],i[0]=0,1;for(let h=0;h<3;h++)a[h]!==d&&r[h]!==0?c[h]=(l[h]-e[h])/r[h]:c[h]=-1;for(let h=0;h<3;h++)c[s]1||c[s]<0)return 0;i[0]=c[s];for(let h=0;h<3;h++)if(s!==h){if(n[h]=e[h]+c[s]*r[h],n[h]t[2*h+1])return 0}else n[h]=l[h];return 1}function vI(t,e,r){const n=[];let i=0,o=1,a=1;for(let s=4;s<=5;++s){n[2]=t[s];for(let c=2;c<=3;++c){n[1]=t[c];for(let l=0;l<=1;++l)if(n[0]=t[l],i=Xr.evaluate(r,e,n),a&&(o=i>=0?1:-1,a=0),i===0||o>0&&i<0||o<0&&i>0)return 1}}return 0}function yI(t,e){if(!(Ka(t)&&Ka(e)))return!1;const r=[0,0,0,0,0,0];let n;for(let i=0;i<3;i++)if(n=!1,e[i*2]>=t[i*2]&&e[i*2]<=t[i*2+1]?(n=!0,r[i*2]=e[i*2]):t[i*2]>=e[i*2]&&t[i*2]<=e[i*2+1]&&(n=!0,r[i*2]=t[i*2]),e[i*2+1]>=t[i*2]&&e[i*2+1]<=t[i*2+1]?(n=!0,r[i*2+1]=e[2*i+1]):t[i*2+1]>=e[i*2]&&t[i*2+1]<=e[i*2+1]&&(n=!0,r[i*2+1]=t[i*2+1]),!n)return!1;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],!0}function N1(t,e){if(!(Ka(t)&&Ka(e)))return!1;for(let r=0;r<3;r++)if(!(e[r*2]>=t[r*2]&&e[r*2]<=t[r*2+1])&&!(t[r*2]>=e[r*2]&&t[r*2]<=e[r*2+1])&&!(e[r*2+1]>=t[r*2]&&e[r*2+1]<=t[r*2+1])&&!(t[r*2+1]>=e[r*2]&&t[r*2+1]<=e[r*2+1]))return!1;return!0}function P1(t,e,r,n){return!(et[1]||rt[3]||nt[5])}function EK(t,e){return!(!N1(t,e)||!P1(t,...Aw(e))||!P1(t,...kw(e)))}function xI(t,e,r){const n=[[0,1,2,3,4,5,6,7],[0,1,4,5,2,3,6,7],[0,2,4,6,1,3,5,7]],i=[0,0,0,0,0,0,0,0];let o=0;for(let u=0;u<2;u++)for(let d=2;d<4;d++)for(let h=4;h<6;h++){const g=[t[u],t[d],t[h]];i[o++]=Xr.evaluate(r,e,g)}let a=2;for(;a--&&!(lg(i[n[a][0]],i[n[a][4]])&&lg(i[n[a][1]],i[n[a][5]])&&lg(i[n[a][2]],i[n[a][6]])&&lg(i[n[a][3]],i[n[a][7]])););if(a<0)return!1;const s=Math.sign(r[a]),c=Math.abs((t[a*2+1]-t[a*2])*r[a]);let l=s>0?1:0;for(let u=0;u<4;u++){if(c===0)continue;const d=Math.abs(i[n[a][u]])/c;s>0&&dl&&(l=d)}const f=(1-l)*t[a*2]+l*t[a*2+1];return s>0?t[a*2]=f:t[a*2+1]=f,!0}class DK{constructor(e){this.bounds=e,this.bounds||(this.bounds=new Float64Array(Qm))}getBounds(){return this.bounds}equals(e){return nI(this.bounds,e)}isValid(){return Ka(this.bounds)}setBounds(e){return Mw(this.bounds,e)}reset(){return Rw(this.bounds)}addPoint(){for(var e=arguments.length,r=new Array(e),n=0;n1&&arguments[1]!==void 0?arguments[1]:[];return hI(this.bounds,e,r)}computeScale3(e){return gI(this.bounds,e)}cutWithPlane(e,r){return xI(this.bounds,e,r)}intersectBox(e,r,n,i){return mI(this.bounds,e,r,n,i)}intersectPlane(e,r){return vI(this.bounds,e,r)}intersect(e){return yI(this.bounds,e)}intersects(e){return N1(this.bounds,e)}containsPoint(e,r,n){return P1(this.bounds,e,r,n)}contains(e){return N1(this.bounds,e)}}function bK(t){const e=t&&t.bounds;return new DK(e)}const IK={equals:nI,isValid:Ka,setBounds:Mw,reset:Rw,addPoint:L1,addPoints:Lw,addBounds:rI,setMinPoint:iI,setMaxPoint:oI,inflate:aI,scale:Nw,scaleAboutCenter:_K,getCenter:Pw,getLength:jf,getLengths:e2,getMaxLength:uI,getDiagonalLength:fI,getMinPoint:Aw,getMaxPoint:kw,getXRange:sI,getYRange:cI,getZRange:lI,getCorners:Vw,computeCornerPoints:dI,computeLocalBounds:pI,transformBounds:hI,computeScale3:gI,cutWithPlane:xI,intersectBox:mI,intersectPlane:vI,intersect:yI,intersects:N1,containsPoint:P1,contains:EK,INIT_BOUNDS:Qm};var qt={newInstance:bK,...IK};function OK(t,e){t.getBounds=()=>(W.vtkErrorMacro("vtkAbstractMapper3D.getBounds - NOT IMPLEMENTED"),qs()),t.getCenter=()=>{var n;const r=t.getBounds();return e.center=qt.isValid(r)?qt.getCenter(r):null,(n=e.center)==null?void 0:n.slice()},t.getLength=()=>{const r=t.getBounds();return qt.getDiagonalLength(r)}}const MK=t=>({bounds:[...qt.INIT_BOUNDS],center:[0,0,0],viewSpecificProperties:{},...t});function RK(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,MK(r)),jb.extend(t,e,r),W.setGet(t,e,["viewSpecificProperties"]),OK(t,e)}var Fw={extend:RK};const mo={UNCHANGED:0,SINGLE_POINT:1,X_LINE:2,Y_LINE:3,Z_LINE:4,XY_PLANE:5,YZ_PLANE:6,XZ_PLANE:7,XYZ_GRID:8,EMPTY:9};var wI={StructuredType:mo};const{StructuredType:ma}=wI;function LK(t){let e=0;for(let r=0;r<3;++r)t[r*2]t[1]||t[2]>t[3]||t[4]>t[5]?ma.EMPTY:e===3?ma.XYZ_GRID:e===2?t[0]===t[1]?ma.YZ_PLANE:t[2]===t[3]?ma.XZ_PLANE:ma.XY_PLANE:e===1?t[0]s!==o[c]);return a&&(e.extent=o.slice(),e.dataDescription=NK.getDataDescriptionFromExtent(e.extent),t.modified()),a},t.setDimensions=function(){let r,n,i;if(e.deleted){dc("instance deleted - cannot call any method");return}if(arguments.length===1){const o=arguments.length<=0?void 0:arguments[0];r=o[0],n=o[1],i=o[2]}else if(arguments.length===3)r=arguments.length<=0?void 0:arguments[0],n=arguments.length<=1?void 0:arguments[1],i=arguments.length<=2?void 0:arguments[2];else{dc("Bad dimension specification");return}t.setExtent(0,r-1,0,n-1,0,i-1)},t.getDimensions=()=>[e.extent[1]-e.extent[0]+1,e.extent[3]-e.extent[2]+1,e.extent[5]-e.extent[4]+1],t.getNumberOfCells=()=>{const r=t.getDimensions();let n=1;for(let i=0;i<3;i++){if(r[i]===0)return 0;r[i]>1&&(n*=r[i]-1)}return n},t.getNumberOfPoints=()=>{const r=t.getDimensions();return r[0]*r[1]*r[2]},t.getPoint=r=>{const n=t.getDimensions();if(n[0]===0||n[1]===0||n[2]===0)return dc("Requesting a point from an empty image."),null;const i=new Float64Array(3);switch(e.dataDescription){case mo.EMPTY:return null;case mo.SINGLE_POINT:break;case mo.X_LINE:i[0]=r;break;case mo.Y_LINE:i[1]=r;break;case mo.Z_LINE:i[2]=r;break;case mo.XY_PLANE:i[0]=r%n[0],i[1]=r/n[0];break;case mo.YZ_PLANE:i[1]=r%n[1],i[2]=r/n[1];break;case mo.XZ_PLANE:i[0]=r%n[0],i[2]=r/n[0];break;case mo.XYZ_GRID:i[0]=r%n[0],i[1]=r/n[0]%n[1],i[2]=r/(n[0]*n[1]);break;default:dc("Invalid dataDescription");break}const o=[0,0,0];return t.indexToWorld(i,o),o},t.getBounds=()=>t.extentToBounds(t.getSpatialExtent()),t.extentToBounds=r=>qt.transformBounds(r,e.indexToWorld),t.getSpatialExtent=()=>qt.inflate([...e.extent],.5),t.computeTransforms=()=>{Jm(e.indexToWorld,e.origin),e.indexToWorld[0]=e.direction[0],e.indexToWorld[1]=e.direction[1],e.indexToWorld[2]=e.direction[2],e.indexToWorld[4]=e.direction[3],e.indexToWorld[5]=e.direction[4],e.indexToWorld[6]=e.direction[5],e.indexToWorld[8]=e.direction[6],e.indexToWorld[9]=e.direction[7],e.indexToWorld[10]=e.direction[8],Ha(e.indexToWorld,e.indexToWorld,e.spacing),$n(e.worldToIndex,e.indexToWorld)},t.indexToWorld=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return et(n,r,e.indexToWorld),n},t.indexToWorldVec3=t.indexToWorld,t.worldToIndex=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return et(n,r,e.worldToIndex),n},t.worldToIndexVec3=t.worldToIndex,t.indexToWorldBounds=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return qt.transformBounds(r,e.indexToWorld,n)},t.worldToIndexBounds=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return qt.transformBounds(r,e.worldToIndex,n)},t.onModified(t.computeTransforms),t.computeTransforms(),t.getCenter=()=>qt.getCenter(t.getBounds()),t.computeHistogram=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const i=[0,0,0,0,0,0];t.worldToIndexBounds(r,i);const o=[0,0,0],a=[0,0,0];qt.computeCornerPoints(i,o,a),k5(o,o),k5(a,a);const s=t.getDimensions();F5(o,[0,0,0],[s[0]-1,s[1]-1,s[2]-1],o),F5(a,[0,0,0],[s[0]-1,s[1]-1,s[2]-1],a);const c=s[0],l=s[0]*s[1],f=t.getPointData().getScalars().getData();let u=-1/0,d=1/0,h=0,g=0,p=0;for(let y=o[2];y<=a[2];y++)for(let w=o[1];w<=a[1];w++){let C=o[0]+w*c+y*l;for(let S=o[0];S<=a[0];S++){if(!n||n([S,w,y],i)){const T=f[C];T>u&&(u=T),T0?g/p:0,x=p?Math.abs(h/p-v*v):0,m=Math.sqrt(x);return{minimum:d,maximum:u,average:v,variance:x,sigma:m,count:p}},t.computeIncrements=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const i=[];let o=n;for(let a=0;a<3;++a)i[a]=o,o*=r[a*2+1]-r[a*2]+1;return i},t.computeOffsetIndex=r=>{let[n,i,o]=r;const a=t.getExtent(),s=t.getPointData().getScalars().getNumberOfComponents(),c=t.computeIncrements(a,s);return Math.floor((Math.round(n)-a[0])*c[0]+(Math.round(i)-a[2])*c[1]+(Math.round(o)-a[4])*c[2])},t.getOffsetIndexFromWorld=r=>{const n=t.getExtent(),i=t.worldToIndex(r);for(let o=0;o<3;++o)if(i[o]n[o*2+1])return dc(`GetScalarPointer: Pixel ${i} is not in memory. Current extent = ${n}`),NaN;return t.computeOffsetIndex(i)},t.getScalarValueFromWorld=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const i=t.getPointData().getScalars().getNumberOfComponents();if(n<0||n>=i)return dc(`GetScalarPointer: Scalar Component ${n} is not within bounds. Current Scalar numberOfComponents: ${i}`),NaN;const o=t.getOffsetIndexFromWorld(r);return Number.isNaN(o)?o:t.getPointData().getScalars().getComponent(o,n)}}const AK={direction:null,indexToWorld:null,worldToIndex:null,spacing:[1,1,1],origin:[0,0,0],extent:[0,-1,0,-1,0,-1],dataDescription:mo.EMPTY};function CI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AK,r),w0.extend(t,e,r),e.direction?Array.isArray(e.direction)&&(e.direction=new Float64Array(e.direction.slice(0,9))):e.direction=ao(new Float64Array(9)),e.indexToWorld=new Float64Array(16),e.worldToIndex=new Float64Array(16),W.get(t,e,["indexToWorld","worldToIndex"]),W.setGetArray(t,e,["origin","spacing"],3),W.setGetArray(t,e,["direction"],9),W.getArray(t,e,["extent"],6),PK(t,e)}const kK=W.newInstance(CI,"vtkImageData");var C0={newInstance:kK,extend:CI};const VK={MAGNITUDE:0,COMPONENT:1,RGBCOLORS:2},H5={LUMINANCE:1,LUMINANCE_ALPHA:2,RGB:3,RGBA:4};var Uw={VectorMode:VK,ScalarMappingTarget:H5};const FK={DEFAULT:0,MAP_SCALARS:1,DIRECT_SCALARS:2},UK={DEFAULT:0,USE_POINT_DATA:1,USE_CELL_DATA:2,USE_POINT_FIELD_DATA:3,USE_CELL_FIELD_DATA:4,USE_FIELD_DATA:5},BK={BY_ID:0,BY_NAME:1};var t2={ColorMode:FK,GetArray:BK,ScalarMode:UK};const{ScalarMappingTarget:KT,VectorMode:Go}=Uw,{VtkDataTypes:cs}=tt,{ColorMode:ug}=t2,{vtkErrorMacro:qT}=W;function GK(t){return t}function XT(t){return Math.floor(t*255+.5)}function WK(t,e){e.classHierarchy.push("vtkScalarsToColors"),t.setVectorModeToMagnitude=()=>t.setVectorMode(Go.MAGNITUDE),t.setVectorModeToComponent=()=>t.setVectorMode(Go.COMPONENT),t.setVectorModeToRGBColors=()=>t.setVectorMode(Go.RGBCOLORS),t.build=()=>{},t.isOpaque=()=>!0,t.setAnnotations=(r,n)=>{if(!(r&&!n||!r&&n)){if(r&&n&&r.length!==n.length){qT("Values and annotations do not have the same number of tuples so ignoring");return}if(e.annotationArray=[],n&&r){const i=n.length;for(let o=0;o{let i=t.checkForAnnotatedValue(r),o=!1;return i>=0?e.annotationArray[i].annotation!==n&&(e.annotationArray[i].annotation=n,o=!0):(e.annotationArray.push({value:r,annotation:n}),i=e.annotationArray.length-1,o=!0),o&&(t.updateAnnotatedValueMap(),t.modified()),i},t.getNumberOfAnnotatedValues=()=>e.annotationArray.length,t.getAnnotatedValue=r=>r<0||r>=e.annotationArray.length?null:e.annotationArray[r].value,t.getAnnotation=r=>e.annotationArray[r]===void 0?null:e.annotationArray[r].annotation,t.getAnnotatedValueIndex=r=>e.annotationArray.length?t.checkForAnnotatedValue(r):-1,t.removeAnnotation=r=>{const n=t.checkForAnnotatedValue(r),i=n>=0;return i&&(e.annotationArray.splice(n,1),t.updateAnnotatedValueMap(),t.modified()),i},t.resetAnnotations=()=>{e.annotationArray=[],e.annotatedValueMap=[],t.modified()},t.getAnnotationColor=(r,n)=>{if(e.indexedLookup){const i=t.getAnnotatedValueIndex(r);t.getIndexedColor(i,n)}else t.getColor(parseFloat(r),n),n[3]=1},t.checkForAnnotatedValue=r=>t.getAnnotatedValueIndexInternal(r),t.getAnnotatedValueIndexInternal=r=>{if(e.annotatedValueMap[r]!==void 0){const n=e.annotationArray.length;return e.annotatedValueMap[r]%n}return-1},t.getIndexedColor=(r,n)=>{n[0]=0,n[1]=0,n[2]=0,n[3]=0},t.updateAnnotatedValueMap=()=>{e.annotatedValueMap=[];const r=e.annotationArray.length;for(let n=0;n{const o=r.getNumberOfComponents();let a=null;if(n===ug.DEFAULT&&(r.getDataType()===cs.UNSIGNED_CHAR||r.getDataType()===cs.UNSIGNED_CHAR_CLAMPED)||n===ug.DIRECT_SCALARS&&r)a=t.convertToRGBA(r,o,r.getNumberOfTuples());else{const s={type:"vtkDataArray",name:"temp",numberOfComponents:4,dataType:cs.UNSIGNED_CHAR},c=W.newTypedArray(s.dataType,4*r.getNumberOfTuples());s.values=c,s.size=c.length,a=tt.newInstance(s);let l=i;l<0&&o>1?t.mapVectorsThroughTable(r,a,KT.RGBA,-1,-1):(l<0&&(l=0),l>=o&&(l=o-1),t.mapScalarsThroughTable(r,a,KT.RGBA,l))}return a},t.mapVectorsToMagnitude=(r,n,i)=>{const o=r.getNumberOfTuples(),a=r.getNumberOfComponents(),s=n.getData(),c=r.getData();for(let l=0;l{let s=t.getVectorMode(),c=a,l=o;const f=r.getNumberOfComponents();s===Go.COMPONENT?(l===-1&&(l=t.getVectorComponent()),l<0&&(l=0),l>=f&&(l=f-1)):(c===-1&&(c=t.getVectorSize()),c<=0?(l=0,c=f):(l<0&&(l=0),l>=f&&(l=f-1),l+c>f&&(c=f-l)),s===Go.MAGNITUDE&&(f===1||c===1)&&(s=Go.COMPONENT));let u=0;switch(l>0&&(u=l),s){case Go.COMPONENT:{t.mapScalarsThroughTable(r,n,i,u);break}case Go.RGBCOLORS:break;case Go.MAGNITUDE:default:{const d=tt.newInstance({numberOfComponents:1,values:new Float32Array(r.getNumberOfTuples())});t.mapVectorsToMagnitude(r,d,c),t.mapScalarsThroughTable(d,n,i,0);break}}},t.luminanceToRGBA=(r,n,i,o)=>{const a=o(i),s=n.getData(),c=r.getData(),l=s.length,f=0,u=1;let d=0;for(let h=f;h{const a=n.getData(),s=r.getData(),c=a.length,l=0,f=2;let u=0;for(let d=l;d{const a=XT(i),s=n.getData(),c=r.getData(),l=s.length,f=0,u=3;let d=0;for(let h=f;h{const a=n.getData(),s=r.getData(),c=a.length,l=0,f=4;let u=0;for(let d=l;d{let{alpha:o}=e;if(n===4&&o>=1&&r.getDataType()===cs.UNSIGNED_CHAR)return r;const a=tt.newInstance({numberOfComponents:4,empty:!0,size:4*i,dataType:cs.UNSIGNED_CHAR});if(i<=0)return a;o=o>0?o:0,o=o<1?o:1;let s=GK;switch((r.getDataType()===cs.FLOAT||r.getDataType()===cs.DOUBLE)&&(s=XT),n){case 1:t.luminanceToRGBA(a,r,o,s);break;case 2:t.luminanceAlphaToRGBA(a,r,s);break;case 3:t.rGBToRGBA(a,r,o,s);break;case 4:t.rGBAToRGBA(a,r,o,s);break;default:return qT("Cannot convert colors"),null}return a},t.usingLogScale=()=>!1,t.getNumberOfAvailableColors=()=>256*256*256,t.setRange=(r,n)=>t.setMappingRange(r,n),t.getRange=()=>t.getMappingRange(),t.areScalarsOpaque=(r,n,i)=>{if(!r)return t.isOpaque();const o=r.getNumberOfComponents();return n===ug.DEFAULT&&r.getDataType()===cs.UNSIGNED_CHAR||n===ug.DIRECT_SCALARS?o===3||o===1?e.alpha>=1:r.getRange(o-1)[0]===255:!0}}const zK={alpha:1,vectorComponent:0,vectorSize:-1,vectorMode:Go.COMPONENT,mappingRange:null,annotationArray:null,annotatedValueMap:null,indexedLookup:!1};function SI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zK,r),W.obj(t,e),e.mappingRange=[0,255],e.annotationArray=[],e.annotatedValueMap=[],W.setGet(t,e,["vectorSize","vectorComponent","vectorMode","alpha","indexedLookup"]),W.setArray(t,e,["mappingRange"],2),W.getArray(t,e,["mappingRange"]),WK(t,e)}const $K=W.newInstance(SI,"vtkScalarsToColors");var n2={newInstance:$K,extend:SI,...Uw};const{vtkErrorMacro:YT}=W,JT=0,ZT=1,Ev=2;function jK(t,e){e.classHierarchy.push("vtkLookupTable"),t.isOpaque=()=>{if(e.opaqueFlagBuildTime.getMTime()!1,t.getNumberOfAvailableColors=()=>e.table.length/4-3,t.linearIndexLookup=(r,n)=>{let i=0;const o=Number(r);return on.range[1]?i=n.maxIndex+ZT+1.5:(i=(o+n.shift)*n.scale,i=i{let o=0;b1(r)?o=Math.floor(i.maxIndex+1.5+Ev):o=t.linearIndexLookup(r,i);const a=4*o;return n.slice(a,a+4)},t.indexedLookupFunction=(r,n,i)=>{let o=t.getAnnotatedValueIndexInternal(r);o===-1&&(o=e.numberOfColors+Ev);const a=4*o;return[n[a],n[a+1],n[a+2],n[a+3]]},t.lookupShiftAndScale=(r,n)=>{n.shift=-r[0],n.scale=Number.MAX_VALUE,r[1]>r[0]&&(n.scale=(n.maxIndex+1)/(r[1]-r[0]))},t.mapScalarsThroughTable=(r,n,i,o)=>{let a=t.linearLookup;e.indexedLookup&&(a=t.indexedLookupFunction);const s=t.getMappingRange(),c={maxIndex:t.getNumberOfColors()-1,range:s,shift:0,scale:0};t.lookupShiftAndScale(s,c);const l=t.getAlpha(),f=r.getNumberOfTuples(),u=r.getNumberOfComponents(),d=n.getData(),h=r.getData();if(l>=1){if(i===H5.RGBA)for(let g=0;g{let r=0,n=0,i=0,o=0;const a=e.numberOfColors-1;a&&(r=(e.hueRange[1]-e.hueRange[0])/a,n=(e.saturationRange[1]-e.saturationRange[0])/a,i=(e.valueRange[1]-e.valueRange[0])/a,o=(e.alphaRange[1]-e.alphaRange[0])/a),e.table.length=4*a+16;const s=[],c=[];for(let l=0;l<=a;l++)s[0]=e.hueRange[0]+l*r,s[1]=e.saturationRange[0]+l*n,s[2]=e.valueRange[0]+l*i,Rc(s,c),c[3]=e.alphaRange[0]+l*o,e.table[l*4]=c[0]*255+.5,e.table[l*4+1]=c[1]*255+.5,e.table[l*4+2]=c[2]*255+.5,e.table[l*4+3]=c[3]*255+.5;t.buildSpecialColors(),e.buildTime.modified()},t.setTable=r=>{if(Array.isArray(r)){const i=r[0].length;e.numberOfColors=r.length;const o=4-i;let a=0;for(let s=0;s{const{numberOfColors:r}=e,n=e.table;let i=(r+JT)*4;e.useBelowRangeColor||r===0?(n[i]=e.belowRangeColor[0]*255+.5,n[i+1]=e.belowRangeColor[1]*255+.5,n[i+2]=e.belowRangeColor[2]*255+.5,n[i+3]=e.belowRangeColor[3]*255+.5):(n[i]=n[0],n[i+1]=n[1],n[i+2]=n[2],n[i+3]=n[3]),i=(r+ZT)*4,e.useAboveRangeColor||r===0?(n[i]=e.aboveRangeColor[0]*255+.5,n[i+1]=e.aboveRangeColor[1]*255+.5,n[i+2]=e.aboveRangeColor[2]*255+.5,n[i+3]=e.aboveRangeColor[3]*255+.5):(n[i]=n[4*(r-1)+0],n[i+1]=n[4*(r-1)+1],n[i+2]=n[4*(r-1)+2],n[i+3]=n[4*(r-1)+3]),i=(r+Ev)*4,n[i]=e.nanColor[0]*255+.5,n[i+1]=e.nanColor[1]*255+.5,n[i+2]=e.nanColor[2]*255+.5,n[i+3]=e.nanColor[3]*255+.5},t.build=()=>{(e.table.length<1||t.getMTime()>e.buildTime.getMTime()&&e.insertTime.getMTime()<=e.buildTime.getMTime())&&t.forceBuild()},e.table.length>0&&(t.buildSpecialColors(),e.insertTime.modified())}const HK={numberOfColors:256,hueRange:[0,.66667],saturationRange:[1,1],valueRange:[1,1],alphaRange:[1,1],nanColor:[.5,0,0,1],belowRangeColor:[0,0,0,1],aboveRangeColor:[1,1,1,1],useAboveRangeColor:!1,useBelowRangeColor:!1,alpha:1};function TI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,HK,r),n2.extend(t,e,r),e.table||(e.table=[]),e.buildTime={},W.obj(e.buildTime),e.opaqueFlagBuildTime={},W.obj(e.opaqueFlagBuildTime,{mtime:0}),e.insertTime={},W.obj(e.insertTime,{mtime:0}),W.get(t,e,["buildTime"]),W.setGet(t,e,["numberOfColors","useAboveRangeColor","useBelowRangeColor"]),W.setArray(t,e,["alphaRange","hueRange","saturationRange","valueRange"],2),W.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),W.getArray(t,e,["hueRange","saturationRange","valueRange","alphaRange","nanColor","belowRangeColor","aboveRangeColor"]),jK(t,e)}const KK=W.newInstance(TI,"vtkLookupTable");var A1={newInstance:KK,extend:TI};const ko={Off:0,PolygonOffset:1};let K5=ko.PolygonOffset,k1=ko.Off;const qK=["VTK_RESOLVE_OFF","VTK_RESOLVE_POLYGON_OFFSET"];function XK(){return K5}function YK(t){const e=K5===t;return K5=t,e}function JK(){return k1}function r2(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;const e=k1===t;return k1=t,e}function ZK(){return r2(ko.Off)}function QK(){return r2(ko.Off)}function eq(){return r2(ko.PolygonOffset)}function tq(){return qK[k1]}var q5={Resolve:ko,getResolveCoincidentTopologyAsString:tq,getResolveCoincidentTopologyPolygonOffsetFaces:XK,getResolveCoincidentTopology:JK,setResolveCoincidentTopology:r2,setResolveCoincidentTopologyPolygonOffsetFaces:YK,setResolveCoincidentTopologyToDefault:ZK,setResolveCoincidentTopologyToOff:QK,setResolveCoincidentTopologyToPolygonOffset:eq};function _I(t,e,r){r.forEach(n=>{t[`get${n.method}`]=()=>e[n.key],t[`set${n.method}`]=W.objectSetterMap.object(t,e,{name:n.key,params:["factor","offset"]})})}const Bw=["Polygon","Line","Point"],nq={Polygon:{factor:2,offset:0},Line:{factor:1,offset:-1},Point:{factor:0,offset:-2}},Lc={};_I(Lc,nq,Bw.map(t=>({key:t,method:`ResolveCoincidentTopology${t}OffsetParameters`})));function rq(t,e){e.resolveCoincidentTopology===void 0&&(e.resolveCoincidentTopology=!1),W.setGet(t,e,["resolveCoincidentTopology"]),e.topologyOffset={Polygon:{factor:0,offset:0},Line:{factor:0,offset:0},Point:{factor:0,offset:0}},Object.keys(q5).forEach(r=>{t[r]=q5[r]}),Object.keys(Lc).forEach(r=>{t[r]=Lc[r]}),_I(t,e.topologyOffset,Bw.map(r=>({key:r,method:`RelativeCoincidentTopology${r}OffsetParameters`}))),t.getCoincidentTopologyPolygonOffsetParameters=()=>{const r=Lc.getResolveCoincidentTopologyPolygonOffsetParameters(),n=t.getRelativeCoincidentTopologyPolygonOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}},t.getCoincidentTopologyLineOffsetParameters=()=>{const r=Lc.getResolveCoincidentTopologyLineOffsetParameters(),n=t.getRelativeCoincidentTopologyLineOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}},t.getCoincidentTopologyPointOffsetParameter=()=>{const r=Lc.getResolveCoincidentTopologyPointOffsetParameters(),n=t.getRelativeCoincidentTopologyPointOffsetParameters();return{factor:r.factor+n.factor,offset:r.offset+n.offset}}}var i2={implementCoincidentTopologyMethods:rq,staticOffsetAPI:Lc,otherStaticMethods:q5,CATEGORIES:Bw,Resolve:ko};const{FieldAssociations:QT}=w0,{staticOffsetAPI:iq,otherStaticMethods:oq}=i2,{ColorMode:fg,ScalarMode:hc,GetArray:Dv}=t2,{VectorMode:aq}=Uw,{VtkDataTypes:sq}=tt;function J0(t){return()=>W.vtkErrorMacro(`vtkMapper::${t} - NOT IMPLEMENTED`)}function cq(t,e){const r=t[1]%2===0?1:-1;if(t[0]+=r,t[0]>=e[0]||t[0]<0){const n=t[2]%2===0?1:-1;t[0]-=r,t[1]+=n,(t[1]>=e[1]||t[1]<0)&&(t[1]-=n,t[2]++)}}function lq(t,e){return t[0]+e[0]*(t[1]+e[1]*t[2])}function e8(t,e,r){const n=Math.floor(e),i=n%(2*r[0]);let o,a;i=y,C=i[2]<=1?2:3,S=tt.newInstance({numberOfComponents:C,values:new Float32Array(m*C)}),T=S.getData(),_=[0,0,0];e8(_,n+2,i);let E=0,D=0;const b=[.5,.5,.5];for(let R=0;Rn&&(L=n+1),e8(b,L,i)}else{b[1]=.49;const L=(M-h)*g;L>1e3?b[0]=1e3:L<-1e3?b[0]=-1e3:b[0]=L}for(let L=0;L{const r=t.getInputData();return r?(e.static||t.update(),e.bounds=r.getBounds()):e.bounds=qs(),e.bounds},t.setForceCompileOnly=r=>{e.forceCompileOnly=r},t.setSelectionWebGLIdsToVTKIds=r=>{e.selectionWebGLIdsToVTKIds=r},t.createDefaultLookupTable=()=>{e.lookupTable=A1.newInstance()},t.getColorModeAsString=()=>W.enumToString(fg,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>W.enumToString(hc,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(r,n,i,o,a)=>{if(!r||!e.scalarVisibility)return{scalars:null,cellFlag:!1};let s=null,c=!1;if(n===hc.DEFAULT)s=r.getPointData().getScalars(),s||(s=r.getCellData().getScalars(),c=!0);else if(n===hc.USE_POINT_DATA)s=r.getPointData().getScalars();else if(n===hc.USE_CELL_DATA)s=r.getCellData().getScalars(),c=!0;else if(n===hc.USE_POINT_FIELD_DATA){const l=r.getPointData();i===Dv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===hc.USE_CELL_FIELD_DATA){const l=r.getCellData();c=!0,i===Dv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===hc.USE_FIELD_DATA){const l=r.getFieldData();i===Dv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}return{scalars:s,cellFlag:c}},t.mapScalars=(r,n)=>{const{scalars:i,cellFlag:o}=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName);if(e.areScalarsMappedFromCells=o,!i){e.colorCoordinates=null,e.colorTextureMap=null,e.colorMapColors=null;return}const a=`${t.getMTime()}${i.getMTime()}${n}`;if(e.colorBuildString!==a){if(e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]),t.canUseTextureMapForColoring(i,o))e.mapScalarsToTexture(i,o,n);else{e.colorCoordinates=null,e.colorTextureMap=null;const s=t.getLookupTable();s&&(s.build(),e.colorMapColors=s.mapScalars(i,e.colorMode,e.fieldDataTupleId))}e.colorBuildString=`${t.getMTime()}${i.getMTime()}${n}`}},e.mapScalarsToTexture=(r,n,i)=>{const o=e.lookupTable.getRange(),a=e.lookupTable.usingLogScale();a&&A1.getLogRange(o,o);const s=e.lookupTable.getAlpha();if(e.colorMapColors=null,e.colorTextureMap==null||t.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getMTime()>e.colorTextureMap.getMTime()||e.lookupTable.getAlpha()!==i){e.lookupTable.setAlpha(i),e.colorTextureMap=null,e.lookupTable.build();const l=e.lookupTable.getNumberOfAvailableColors(),f=2048,u=f**3-3,h=4096-2,g=2,p=n?u:h;e.numberOfColorsInRange=Math.min(Math.max(l,g),p);const v=e.numberOfColorsInRange+3,x=e.numberOfColorsInRange+2,m=n?[Math.min(Math.ceil(v/f**0),f),Math.min(Math.ceil(v/f**1),f),Math.min(Math.ceil(v/f**2),f)]:[x,2,1],y=m[0]*m[1]*m[2],w=new Float64Array(y);w.fill(NaN);const C=e.numberOfColorsInRange,S=C+2,T=[0,0,0],_=o[0],E=o[1]-o[0];for(let I=0;I1?-1:e.lookupTable.getVectorComponent();e.colorCoordinates=uq(r,c,o,e.numberOfColorsInRange,e.colorTextureMap.getDimensions(),a,n)},t.getIsOpaque=()=>{const r=t.getInputData(),i=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!e.scalarVisibility||i==null)return!0;const o=t.getLookupTable();return o?(o.build(),o.areScalarsOpaque(i,e.colorMode,-1)):!0},t.canUseTextureMapForColoring=(r,n)=>n&&e.colorMode!==fg.DIRECT_SCALARS?!0:!(!e.interpolateScalarsBeforeMapping||e.lookupTable&&e.lookupTable.getIndexedLookup()||!r||e.colorMode===fg.DEFAULT&&r.getDataType()===sq.UNSIGNED_CHAR||e.colorMode===fg.DIRECT_SCALARS),t.clearColorArrays=()=>{e.colorMapColors=null,e.colorCoordinates=null,e.colorTextureMap=null},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let r=e.mtime;if(e.lookupTable!==null){const n=e.lookupTable.getMTime();r=n>r?n:r}return r},t.getPrimitiveCount=()=>{const r=t.getInputData();return{points:r.getPoints().getNumberOfValues()/3,verts:r.getVerts().getNumberOfValues()-r.getVerts().getNumberOfCells(),lines:r.getLines().getNumberOfValues()-2*r.getLines().getNumberOfCells(),triangles:r.getPolys().getNumberOfValues()-3*r.getPolys().getNumberOfCells()}},t.acquireInvertibleLookupTable=J0("AcquireInvertibleLookupTable"),t.valueToColor=J0("ValueToColor"),t.colorToValue=J0("ColorToValue"),t.useInvertibleColorFor=J0("UseInvertibleColorFor"),t.clearInvertibleColor=J0("ClearInvertibleColor"),t.processSelectorPixelBuffers=(r,n)=>{if(!r||!e.selectionWebGLIdsToVTKIds||!e.populateSelectionSettings)return;const i=r.getRawPixelBuffer(ai.ID_LOW24),o=r.getRawPixelBuffer(ai.ID_HIGH24),a=r.getCurrentPass(),s=r.getFieldAssociation();let c=null;s===QT.FIELD_ASSOCIATION_POINTS?c=e.selectionWebGLIdsToVTKIds.points:s===QT.FIELD_ASSOCIATION_CELLS&&(c=e.selectionWebGLIdsToVTKIds.cells),c&&n.forEach(l=>{if(a===ai.ID_LOW24){let f=0;o&&(f+=o[l],f*=256),f+=i[l+2],f*=256,f+=i[l+1],f*=256,f+=i[l];const u=c[f],d=r.getPixelBuffer(ai.ID_LOW24);d[l]=u&255,d[l+1]=(u&65280)>>8,d[l+2]=(u&16711680)>>16}else if(a===ai.ID_HIGH24&&o){let f=0;f+=o[l],f*=256,f+=i[l+2],f*=256,f+=i[l+1],f*=256,f+=i[l];const u=c[f],d=r.getPixelBuffer(ai.ID_HIGH24);d[l]=(u&4278190080)>>24}})}}const dq={colorMapColors:null,areScalarsMappedFromCells:!1,static:!1,lookupTable:null,scalarVisibility:!0,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,fieldDataTupleId:-1,populateSelectionSettings:!0,selectionWebGLIdsToVTKIds:null,interpolateScalarsBeforeMapping:!1,colorCoordinates:null,colorTextureMap:null,numberOfColorsInRange:0,forceCompileOnly:0,useInvertibleColors:!1,invertibleScalars:null,customShaderAttributes:[]};function EI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dq,r),Fw.extend(t,e,r),W.get(t,e,["areScalarsMappedFromCells","colorCoordinates","colorMapColors","colorTextureMap","numberOfColorsInRange","selectionWebGLIdsToVTKIds"]),W.setGet(t,e,["colorByArrayName","arrayAccessMode","colorMode","fieldDataTupleId","interpolateScalarsBeforeMapping","lookupTable","populateSelectionSettings","renderTime","scalarMode","scalarVisibility","static","useLookupTableScalarRange","customShaderAttributes"]),W.setGetArray(t,e,["scalarRange"],2),i2.implementCoincidentTopologyMethods(t,e),fq(t,e)}const hq=W.newInstance(EI,"vtkMapper");var oa={newInstance:hq,extend:EI,...iq,...oq,...t2};const gq={DISPLAY:0,WORLD:1};var DI={CoordinateSystem:gq};const{CoordinateSystem:X5}=DI;function n8(t){return()=>W.vtkErrorMacro(`vtkProp::${t} - NOT IMPLEMENTED`)}function pq(t,e){e.classHierarchy.push("vtkProp"),t.getMTime=()=>{let r=e.mtime;for(let n=0;nr&&(r=i)}return r},t.processSelectorPixelBuffers=(r,n)=>{},t.getNestedProps=()=>null,t.getActors=()=>[],t.getActors2D=()=>[],t.getVolumes=()=>[],t.pick=n8("pick"),t.hasKey=n8("hasKey"),t.getNestedVisibility=()=>e.visibility&&(!e._parentProp||e._parentProp.getNestedVisibility()),t.getNestedPickable=()=>e.pickable&&(!e._parentProp||e._parentProp.getNestedPickable()),t.getNestedDragable=()=>e.dragable&&(!e._parentProp||e._parentProp.getNestedDragable()),t.getRedrawMTime=()=>e.mtime,t.setEstimatedRenderTime=r=>{e.estimatedRenderTime=r,e.savedEstimatedRenderTime=r},t.restoreEstimatedRenderTime=()=>{e.estimatedRenderTime=e.savedEstimatedRenderTime},t.addEstimatedRenderTime=r=>{e.estimatedRenderTime+=r},t.setAllocatedRenderTime=r=>{e.allocatedRenderTime=r,e.savedEstimatedRenderTime=e.estimatedRenderTime,e.estimatedRenderTime=0},t.getSupportsSelection=()=>!1,t.getTextures=()=>e.textures,t.hasTexture=r=>e.textures.indexOf(r)!==-1,t.addTexture=r=>{r&&!t.hasTexture(r)&&(e.textures=e.textures.concat(r),t.modified())},t.removeTexture=r=>{const n=e.textures.filter(i=>i!==r);e.textures.length!==n.length&&(e.textures=n,t.modified())},t.removeAllTextures=()=>{e.textures=[],t.modified()},t.setCoordinateSystemToWorld=()=>t.setCoordinateSystem(X5.WORLD),t.setCoordinateSystemToDisplay=()=>t.setCoordinateSystem(X5.DISPLAY)}const mq={allocatedRenderTime:10,coordinateSystem:X5.WORLD,dragable:!0,estimatedRenderTime:0,paths:null,pickable:!0,renderTimeMultiplier:1,savedEstimatedRenderTime:0,textures:[],useBounds:!0,visibility:!0};function bI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mq,r),W.obj(t,e),W.get(t,e,["estimatedRenderTime","allocatedRenderTime"]),W.setGet(t,e,["_parentProp","coordinateSystem","dragable","pickable","renderTimeMultiplier","useBounds","visibility"]),W.moveToProtected(t,e,["parentProp"]),pq(t,e)}const vq=W.newInstance(bI,"vtkProp");var xh={newInstance:vq,extend:bI,...DI},Gw=`//VTK::System::Dec /*========================================================================= @@ -143,7 +143,7 @@ void main() //VTK::Picking::Impl } -`,yh=`//VTK::System::Dec +`,wh=`//VTK::System::Dec /*========================================================================= @@ -250,19 +250,19 @@ void main() //VTK::RenderPassFragmentShader::Impl } -`;function dq(t,e){t.replaceShaderCoincidentOffset=(r,n,i)=>{const o=t.getCoincidentParameters(n,i);if(o&&(o.factor!==0||o.offset!==0)){let a=r.Fragment;a=ce.substitute(a,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,e.context.getExtension("EXT_frag_depth")&&(o.factor!==0?(a=ce.substitute(a,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),e._openGLRenderWindow.getWebgl2()&&(o.factor!==0?(a=ce.substitute(a,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),r.Fragment=a}}}function hq(t,e){t.applyShaderReplacements=(r,n,i)=>{let o=null;if(n&&(o=n.ShaderReplacements),o)for(let a=0;a{t.getReplacedShaderTemplate(r,n,i),e.lastRenderPassShaderReplacement=e.currentRenderPass?e.currentRenderPass.getShaderReplacement():null,e.lastRenderPassShaderReplacement&&e.lastRenderPassShaderReplacement(r);const o=e.renderable.getViewSpecificProperties().OpenGL;t.applyShaderReplacements(r,o,!0),t.replaceShaderValues(r,n,i),t.applyShaderReplacements(r,o)},t.getReplacedShaderTemplate=(r,n,i)=>{const o=e.renderable.getViewSpecificProperties().OpenGL;t.getShaderTemplate(r,n,i);let a=r.Vertex;if(o){const l=o.VertexShaderCode;l!==void 0&&l!==""&&(a=l)}r.Vertex=a;let s=r.Fragment;if(o){const l=o.FragmentShaderCode;l!==void 0&&l!==""&&(s=l)}r.Fragment=s;let c=r.Geometry;if(o){const l=o.GeometryShaderCode;l!==void 0&&(c=l)}r.Geometry=c}}var oa={implementReplaceShaderCoincidentOffset:dq,implementBuildShadersWithReplacements:hq};const{FieldAssociations:Ev}=v0,{primTypes:mr}=ua,{Representation:Nl,Shading:e8}=m0,{ScalarMode:ug}=ia,{Filter:t8,Wrap:n8}=yn,{vtkErrorMacro:hc}=Gr,gq={type:"StartEvent"},pq={type:"EndEvent"},{CoordinateSystem:mq}=vh;function vq(t){const e=t.getSelector();return e?e.getCurrentPass():ai.MIN_KNOWN_PASS-1}function yq(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper"),t.buildPass=n=>{n&&(e.currentRenderPass=null,e.openGLActor=t.getFirstAncestorOfType("vtkOpenGLActor"),e._openGLRenderer=e.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.translucentPass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.zBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=n=>t.zBufferPass(n),t.opaquePass=n=>{n&&t.render()},t.render=()=>{const n=e._openGLRenderWindow.getContext();if(e.context!==n){e.context=n;for(let a=mr.Start;a{n.Vertex=Uw,n.Fragment=yh,n.Geometry=""},t.replaceShaderColor=(n,i,o)=>{let a=n.Vertex,s=n.Geometry,c=n.Fragment;const l=e.lastBoundBO.getReferenceByName("lastLightComplexity");let f=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];l&&(f=f.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges&&(f=f.concat(["varying vec4 vertexColorVSOutput;"]),a=ce.substitute(a,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,s=ce.substitute(s,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges?c=ce.substitute(c,"//VTK::Color::Impl",u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result:(e.renderable.getAreScalarsMappedFromCells()||e.renderable.getInterpolateScalarsBeforeMapping())&&e.renderable.getColorCoordinates()&&!e.drawingEdges?c=ce.substitute(c,"//VTK::Color::Impl",u.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(o.getBackfaceProperty()&&!e.drawingEdges&&(f=f.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),l?(f=f.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),u=u.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):u=u.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),e.haveCellScalars&&!e.drawingEdges&&(f=f.concat(["uniform samplerBuffer texture1;"])),c=ce.substitute(c,"//VTK::Color::Impl",u).result),c=ce.substitute(c,"//VTK::Color::Dec",f).result,n.Vertex=a,n.Geometry=s,n.Fragment=c},t.replaceShaderLight=(n,i,o)=>{let a=n.Fragment;const s="",c=e.lastBoundBO.getReferenceByName("lastLightComplexity"),l=e.lastBoundBO.getReferenceByName("lastLightCount");let f=[];switch(c){case 0:a=ce.substitute(a,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:a=ce.substitute(a,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(let u=0;u{const o=t.getCoincidentParameters(n,i);if(o&&(o.factor!==0||o.offset!==0)){let a=r.Fragment;a=ce.substitute(a,"//VTK::Coincident::Dec",["uniform float cfactor;","uniform float coffset;"]).result,e.context.getExtension("EXT_frag_depth")&&(o.factor!==0?(a=ce.substitute(a,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepthEXT = gl_FragCoord.z + 0.000016*coffset;").result),e._openGLRenderWindow.getWebgl2()&&(o.factor!==0?(a=ce.substitute(a,"//VTK::UniformFlow::Impl",["float cscale = length(vec2(dFdx(gl_FragCoord.z),dFdy(gl_FragCoord.z)));","//VTK::UniformFlow::Impl"],!1).result,a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + cfactor*cscale + 0.000016*coffset;").result):a=ce.substitute(a,"//VTK::Depth::Impl","gl_FragDepth = gl_FragCoord.z + 0.000016*coffset;").result),r.Fragment=a}}}function xq(t,e){t.applyShaderReplacements=(r,n,i)=>{let o=null;if(n&&(o=n.ShaderReplacements),o)for(let a=0;a{t.getReplacedShaderTemplate(r,n,i),e.lastRenderPassShaderReplacement=e.currentRenderPass?e.currentRenderPass.getShaderReplacement():null,e.lastRenderPassShaderReplacement&&e.lastRenderPassShaderReplacement(r);const o=e.renderable.getViewSpecificProperties().OpenGL;t.applyShaderReplacements(r,o,!0),t.replaceShaderValues(r,n,i),t.applyShaderReplacements(r,o)},t.getReplacedShaderTemplate=(r,n,i)=>{const o=e.renderable.getViewSpecificProperties().OpenGL;t.getShaderTemplate(r,n,i);let a=r.Vertex;if(o){const l=o.VertexShaderCode;l!==void 0&&l!==""&&(a=l)}r.Vertex=a;let s=r.Fragment;if(o){const l=o.FragmentShaderCode;l!==void 0&&l!==""&&(s=l)}r.Fragment=s;let c=r.Geometry;if(o){const l=o.GeometryShaderCode;l!==void 0&&(c=l)}r.Geometry=c}}var aa={implementReplaceShaderCoincidentOffset:yq,implementBuildShadersWithReplacements:xq};const{FieldAssociations:bv}=w0,{primTypes:mr}=fa,{Representation:kl,Shading:r8}=x0,{ScalarMode:dg}=oa,{Filter:i8,Wrap:o8}=yn,{vtkErrorMacro:gc}=Br,wq={type:"StartEvent"},Cq={type:"EndEvent"},{CoordinateSystem:Sq}=xh;function Tq(t){const e=t.getSelector();return e?e.getCurrentPass():ai.MIN_KNOWN_PASS-1}function _q(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper"),t.buildPass=n=>{n&&(e.currentRenderPass=null,e.openGLActor=t.getFirstAncestorOfType("vtkOpenGLActor"),e._openGLRenderer=e.openGLActor.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.translucentPass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.zBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=n=>t.zBufferPass(n),t.opaquePass=n=>{n&&t.render()},t.render=()=>{const n=e._openGLRenderWindow.getContext();if(e.context!==n){e.context=n;for(let a=mr.Start;a{n.Vertex=Gw,n.Fragment=wh,n.Geometry=""},t.replaceShaderColor=(n,i,o)=>{let a=n.Vertex,s=n.Geometry,c=n.Fragment;const l=e.lastBoundBO.getReferenceByName("lastLightComplexity");let f=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity","uniform vec3 ambientColorUniform;","uniform vec3 diffuseColorUniform;"];l&&(f=f.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" ambientColor = ambientColorUniform;"," diffuseColor = diffuseColorUniform;"," opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges&&(f=f.concat(["varying vec4 vertexColorVSOutput;"]),a=ce.substitute(a,"//VTK::Color::Dec",["attribute vec4 scalarColor;","varying vec4 vertexColorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["vertexColorVSOutput = scalarColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,s=ce.substitute(s,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0&&!e.drawingEdges?c=ce.substitute(c,"//VTK::Color::Impl",u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])).result:(e.renderable.getAreScalarsMappedFromCells()||e.renderable.getInterpolateScalarsBeforeMapping())&&e.renderable.getColorCoordinates()&&!e.drawingEdges?c=ce.substitute(c,"//VTK::Color::Impl",u.concat([" vec4 texColor = texture2D(texture1, tcoordVCVSOutput.st);"," diffuseColor = texColor.rgb;"," ambientColor = texColor.rgb;"," opacity = opacity*texColor.a;"])).result:(o.getBackfaceProperty()&&!e.drawingEdges&&(f=f.concat(["uniform float opacityUniformBF; // the fragment opacity","uniform float ambientIntensityBF; // the material ambient","uniform float diffuseIntensityBF; // the material diffuse","uniform vec3 ambientColorUniformBF; // ambient material color","uniform vec3 diffuseColorUniformBF; // diffuse material color"]),l?(f=f.concat(["uniform float specularIntensityBF; // the material specular intensity","uniform vec3 specularColorUniformBF; // intensity weighted color","uniform float specularPowerUniformBF;"]),u=u.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," specularColor = specularIntensityBF * specularColorUniformBF;"," specularPower = specularPowerUniformBF;"," opacity = opacityUniformBF; }"])):u=u.concat(["if (gl_FrontFacing == false) {"," ambientColor = ambientIntensityBF * ambientColorUniformBF;"," diffuseColor = diffuseIntensityBF * diffuseColorUniformBF;"," opacity = opacityUniformBF; }"])),e.haveCellScalars&&!e.drawingEdges&&(f=f.concat(["uniform samplerBuffer texture1;"])),c=ce.substitute(c,"//VTK::Color::Impl",u).result),c=ce.substitute(c,"//VTK::Color::Dec",f).result,n.Vertex=a,n.Geometry=s,n.Fragment=c},t.replaceShaderLight=(n,i,o)=>{let a=n.Fragment;const s="",c=e.lastBoundBO.getReferenceByName("lastLightComplexity"),l=e.lastBoundBO.getReferenceByName("lastLightCount");let f=[];switch(c){case 0:a=ce.substitute(a,"//VTK::Light::Impl",[" gl_FragData[0] = vec4(ambientColor * ambient + diffuseColor * diffuse, opacity);"," //VTK::Light::Impl"],!1).result;break;case 1:a=ce.substitute(a,"//VTK::Light::Impl",[" float df = max(0.0, normalVCVSOutput.z);"," float sf = pow(df, specularPower);"," vec3 diffuseL = df * diffuseColor;"," vec3 specularL = sf * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"],!1).result;break;case 2:for(let u=0;u= cos(radians(lightConeAngle${u})))`," {",` attenuation = attenuation * pow(coneDot, lightExponent${u});`," }"," else"," {"," attenuation = 0.0;"," }"," }"," }"," df = max(0.0, attenuation*dot(normalVCVSOutput, -vertLightDirectionVC));",` diffuseL += ((df${s}) * lightColor${u});`," if (dot(normalVCVSOutput, vertLightDirectionVC) < 0.0)"," {",` float sf = sign(df)*attenuation*pow(max(1e-5, dot(reflect(lightDirectionVC${u}, normalVCVSOutput), normalize(-vertexVC.xyz))), - specularPower);`,` specularL += ((sf${s}) * lightColor${u});`," }"]);f=f.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=ce.substitute(a,"//VTK::Light::Impl",f,!1).result;break;default:hc("bad light complexity")}n.Fragment=a},t.replaceShaderNormal=(n,i,o)=>{if(e.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let s=n.Vertex,c=n.Geometry,l=n.Fragment;e.lastBoundBO.getCABO().getNormalOffset()?(s=ce.substitute(s,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,s=ce.substitute(s,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,c=ce.substitute(c,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,c=ce.substitute(c,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,l=ce.substitute(l,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.haveCellNormals?(l=ce.substitute(l,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.lastBoundBO.getOpenGLMode(o.getProperty().getRepresentation())===e.context.LINES?(l=ce.substitute(l,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(l=ce.substitute(l,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,l=ce.substitute(l,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),n.Vertex=s,n.Geometry=c,n.Fragment=l}},t.replaceShaderPositionVC=(n,i,o)=>{e.lastBoundBO.replaceShaderPositionVC(n,i,o);let a=n.Vertex,s=n.Geometry,c=n.Fragment;e.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=ce.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,c=ce.substitute(c,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),n.Vertex=a,n.Geometry=s,n.Fragment=c},t.replaceShaderTCoord=(n,i,o)=>{if(e.lastBoundBO.getCABO().getTCoordOffset()){let a=n.Vertex,s=n.Geometry,c=n.Fragment;if(e.drawingEdges)return;a=ce.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;const l=e.openGLActor.getActiveTextures();let f=2,u=2;if(l&&l.length>0&&(f=l[0].getComponents(),l[0].getTarget()===e.context.TEXTURE_CUBE_MAP&&(u=3)),e.renderable.getColorTextureMap()&&(f=e.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),u=2),u===2){if(a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,s=ce.substitute(s,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,c=ce.substitute(c,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,l&&l.length>=1)switch(f){case 1:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,s=ce.substitute(s,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,c=ce.substitute(c,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,f){case 1:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}n.Vertex=a,n.Geometry=s,n.Fragment=c}},t.replaceShaderClip=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){const c=e.renderable.getNumberOfClippingPlanes();a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${c}];`,`varying float clipDistancesVSOutput[${c}];`]).result,a=ce.substitute(a,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${c}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${c}];`]).result,s=ce.substitute(s,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${c}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getCoincidentParameters=(n,i)=>{let o={factor:0,offset:0};const a=i.getProperty();if(e.renderable.getResolveCoincidentTopology()==Ao.PolygonOffset||a.getEdgeVisibility()&&a.getRepresentation()===Nl.SURFACE){const c=e.lastBoundBO.getPrimitiveType();c===mr.Points||a.getRepresentation()===Nl.POINTS?o=e.renderable.getCoincidentTopologyPointOffsetParameter():c===mr.Lines||a.getRepresentation()===Nl.WIREFRAME?o=e.renderable.getCoincidentTopologyLineOffsetParameters():(c===mr.Tris||c===mr.TriStrips)&&(o=e.renderable.getCoincidentTopologyPolygonOffsetParameters()),(c===mr.TrisEdges||c===mr.TriStripsEdges)&&(o=e.renderable.getCoincidentTopologyPolygonOffsetParameters(),o.factor/=2,o.offset/=2)}const s=e._openGLRenderer.getSelector();return s&&s.getFieldAssociation()===Ev.FIELD_ASSOCIATION_POINTS&&(o.offset-=2),o},t.replaceShaderPicking=(n,i,o)=>{let a=n.Fragment,s=n.Vertex;if(a=ce.substitute(a,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,!!e._openGLRenderer.getSelector()){switch((e.lastSelectionState===ai.ID_LOW24||e.lastSelectionState===ai.ID_HIGH24)&&(s=ce.substitute(s,"//VTK::Picking::Dec",[`flat out int vertexIDVSOutput; + specularPower);`,` specularL += ((sf${s}) * lightColor${u});`," }"]);f=f.concat([" diffuseL = diffuseL * diffuseColor;"," specularL = specularL * specularColor;"," gl_FragData[0] = vec4(ambientColor * ambient + diffuseL * diffuse + specularL * specular, opacity);"," //VTK::Light::Impl"]),a=ce.substitute(a,"//VTK::Light::Impl",f,!1).result;break;default:gc("bad light complexity")}n.Fragment=a},t.replaceShaderNormal=(n,i,o)=>{if(e.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let s=n.Vertex,c=n.Geometry,l=n.Fragment;e.lastBoundBO.getCABO().getNormalOffset()?(s=ce.substitute(s,"//VTK::Normal::Dec",["attribute vec3 normalMC;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,s=ce.substitute(s,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * normalMC;"]).result,c=ce.substitute(c,"//VTK::Normal::Dec",["in vec3 normalVCVSOutput[];","out vec3 normalVCGSOutput;"]).result,c=ce.substitute(c,"//VTK::Normal::Impl",["normalVCGSOutput = normalVCVSOutput[i];"]).result,l=ce.substitute(l,"//VTK::Normal::Dec",["varying vec3 normalVCVSOutput;"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalVCVSOutput);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.haveCellNormals?(l=ce.substitute(l,"//VTK::Normal::Dec",["uniform mat3 normalMatrix;","uniform samplerBuffer textureN;"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput = normalize(normalMatrix *"," texelFetchBuffer(textureN, gl_PrimitiveID + PrimitiveIDOffset).xyz);"," if (gl_FrontFacing == false) { normalVCVSOutput = -normalVCVSOutput; }"]).result):e.lastBoundBO.getOpenGLMode(o.getProperty().getRepresentation())===e.context.LINES?(l=ce.substitute(l,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",["vec3 normalVCVSOutput;"," if (abs(fdx.x) > 0.0)"," { fdx = normalize(fdx); normalVCVSOutput = normalize(cross(vec3(fdx.y, -fdx.x, 0.0), fdx)); }"," else { fdy = normalize(fdy); normalVCVSOutput = normalize(cross(vec3(fdy.y, -fdy.x, 0.0), fdy));}"]).result):(l=ce.substitute(l,"//VTK::Normal::Dec",["uniform int cameraParallel;"]).result,l=ce.substitute(l,"//VTK::UniformFlow::Impl",[" vec3 fdx = dFdx(vertexVC.xyz);"," vec3 fdy = dFdy(vertexVC.xyz);"," //VTK::UniformFlow::Impl"]).result,l=ce.substitute(l,"//VTK::Normal::Impl",[" fdx = normalize(fdx);"," fdy = normalize(fdy);"," vec3 normalVCVSOutput = normalize(cross(fdx,fdy));"," if (cameraParallel == 1 && normalVCVSOutput.z < 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"," if (cameraParallel == 0 && dot(normalVCVSOutput,vertexVC.xyz) > 0.0) { normalVCVSOutput = -1.0*normalVCVSOutput; }"]).result),n.Vertex=s,n.Geometry=c,n.Fragment=l}},t.replaceShaderPositionVC=(n,i,o)=>{e.lastBoundBO.replaceShaderPositionVC(n,i,o);let a=n.Vertex,s=n.Geometry,c=n.Fragment;e.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=ce.substitute(a,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",["vertexVCVSOutput = MCVCMatrix * vertexMC;"," gl_Position = MCPCMatrix * vertexMC;"]).result,a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Dec",["in vec4 vertexVCVSOutput[];","out vec4 vertexVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Impl",["vertexVCGSOutput = vertexVCVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,c=ce.substitute(c,"//VTK::PositionVC::Impl",["vec4 vertexVC = vertexVCVSOutput;"]).result):(a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result),n.Vertex=a,n.Geometry=s,n.Fragment=c},t.replaceShaderTCoord=(n,i,o)=>{if(e.lastBoundBO.getCABO().getTCoordOffset()){let a=n.Vertex,s=n.Geometry,c=n.Fragment;if(e.drawingEdges)return;a=ce.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result;const l=e.openGLActor.getActiveTextures();let f=2,u=2;if(l&&l.length>0&&(f=l[0].getComponents(),l[0].getTarget()===e.context.TEXTURE_CUBE_MAP&&(u=3)),e.renderable.getColorTextureMap()&&(f=e.renderable.getColorTextureMap().getPointData().getScalars().getNumberOfComponents(),u=2),u===2){if(a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result,s=ce.substitute(s,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput[];","out vec2 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,c=ce.substitute(c,"//VTK::TCoord::Dec",["varying vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,l&&l.length>=1)switch(f){case 1:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}}else switch(a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec3 tcoordMC; varying vec3 tcoordVCVSOutput;").result,s=ce.substitute(s,"//VTK::TCoord::Dec",["in vec3 tcoordVCVSOutput[];","out vec3 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];").result,c=ce.substitute(c,"//VTK::TCoord::Dec",["varying vec3 tcoordVCVSOutput;","uniform samplerCube texture1;"]).result,f){case 1:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"]).result;break;case 2:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.r;"," diffuseColor = diffuseColor*tcolor.r;"," opacity = opacity * tcolor.g;"]).result;break;default:c=ce.substitute(c,"//VTK::TCoord::Impl",[" vec4 tcolor = textureCube(texture1, tcoordVCVSOutput);"," ambientColor = ambientColor*tcolor.rgb;"," diffuseColor = diffuseColor*tcolor.rgb;"," opacity = opacity * tcolor.a;"]).result}n.Vertex=a,n.Geometry=s,n.Fragment=c}},t.replaceShaderClip=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){const c=e.renderable.getNumberOfClippingPlanes();a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`uniform vec4 clipPlanes[${c}];`,`varying float clipDistancesVSOutput[${c}];`]).result,a=ce.substitute(a,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${c}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;",`varying float clipDistancesVSOutput[${c}];`]).result,s=ce.substitute(s,"//VTK::Clip::Impl",[`for (int planeNum = 0; planeNum < ${c}; planeNum++)`," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getCoincidentParameters=(n,i)=>{let o={factor:0,offset:0};const a=i.getProperty();if(e.renderable.getResolveCoincidentTopology()==ko.PolygonOffset||a.getEdgeVisibility()&&a.getRepresentation()===kl.SURFACE){const c=e.lastBoundBO.getPrimitiveType();c===mr.Points||a.getRepresentation()===kl.POINTS?o=e.renderable.getCoincidentTopologyPointOffsetParameter():c===mr.Lines||a.getRepresentation()===kl.WIREFRAME?o=e.renderable.getCoincidentTopologyLineOffsetParameters():(c===mr.Tris||c===mr.TriStrips)&&(o=e.renderable.getCoincidentTopologyPolygonOffsetParameters()),(c===mr.TrisEdges||c===mr.TriStripsEdges)&&(o=e.renderable.getCoincidentTopologyPolygonOffsetParameters(),o.factor/=2,o.offset/=2)}const s=e._openGLRenderer.getSelector();return s&&s.getFieldAssociation()===bv.FIELD_ASSOCIATION_POINTS&&(o.offset-=2),o},t.replaceShaderPicking=(n,i,o)=>{let a=n.Fragment,s=n.Vertex;if(a=ce.substitute(a,"//VTK::Picking::Dec",["uniform int picking;","//VTK::Picking::Dec"]).result,!!e._openGLRenderer.getSelector()){switch((e.lastSelectionState===ai.ID_LOW24||e.lastSelectionState===ai.ID_HIGH24)&&(s=ce.substitute(s,"//VTK::Picking::Dec",[`flat out int vertexIDVSOutput; `,`uniform int VertexIDOffset; `]).result,s=ce.substitute(s,"//VTK::Picking::Impl",` vertexIDVSOutput = gl_VertexID + VertexIDOffset; `).result,a=ce.substitute(a,"//VTK::Picking::Dec",`flat in int vertexIDVSOutput; -`).result,a=ce.substitute(a,"//VTK::Picking::Impl",[" int idx = vertexIDVSOutput;","//VTK::Picking::Impl"]).result),e.lastSelectionState){case ai.ID_LOW24:a=ce.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float(idx%256)/255.0, float((idx/256)%256)/255.0, float((idx/65536)%256)/255.0, 1.0);").result;break;case ai.ID_HIGH24:a=ce.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = vec4(float((idx/16777216)%256)/255.0, 0.0, 0.0, 1.0);").result;break;default:a=ce.substitute(a,"//VTK::Picking::Dec","uniform vec3 mapperIndex;").result,a=ce.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result}n.Fragment=a,n.Vertex=s}},t.replaceShaderValues=(n,i,o)=>{if(t.replaceShaderColor(n,i,o),t.replaceShaderNormal(n,i,o),t.replaceShaderLight(n,i,o),t.replaceShaderTCoord(n,i,o),t.replaceShaderPicking(n,i,o),t.replaceShaderClip(n,i,o),t.replaceShaderCoincidentOffset(n,i,o),t.replaceShaderPositionVC(n,i,o),e.haveSeenDepthRequest){let a=n.Fragment;a=ce.substitute(a,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,a=ce.substitute(a,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,n.Fragment=a}},t.getNeedToRebuildShaders=(n,i,o)=>{let a=0,s=0;const c=n.getPrimitiveType(),l=e.currentInput;let f=!1;const u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),h=o.getProperty().getInterpolation()===e8.FLAT,g=o.getProperty().getRepresentation(),p=n.getOpenGLMode(g,c);if((p===e.context.TRIANGLES||d&&!u||!h&&u||!h&&p===e.context.LINES)&&(f=!0),o.getProperty().getLighting()&&f){a=0;const y=i.getLightsByReference();for(let w=0;w0&&(s++,a===0&&(a=1)),a===1&&(s>1||C.getIntensity()!==1||!C.lightTypeIsHeadLight())&&(a=2),a<3&&C.getPositional()&&(a=3)}}let v=!1;const x=e.lastBoundBO.getReferenceByName("lastLightComplexity"),m=e.lastBoundBO.getReferenceByName("lastLightCount");return(x!==a||m!==s)&&(e.lastBoundBO.set({lastLightComplexity:a},!0),e.lastBoundBO.set({lastLightCount:s},!0),v=!0),(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(v=!0),e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||n.getShaderSourceTime().getMTime(){const a=e.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach(s=>{s.callback(s.userData,n,i,o)})},t.setMapperShaderParameters=(n,i,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),n.getProgram().isUniformUsed("VertexIDOffset")&&n.getProgram().setUniformi("VertexIDOffset",e.vertexIDOffset),n.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){const c=e.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||hc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&c>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||hc("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),e.renderable.getCustomShaderAttributes().forEach((l,f)=>{n.getProgram().isAttributeUsed(`${l}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${l}MC`,n.getCABO().getCustomData()[f].offset,n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getCustomData()[f].components,!1)||hc(`Error setting ${l}MC in shader VAO.`))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||hc("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),e.context.UNSIGNED_BYTE,4,!0)||hc("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(e.renderable.getNumberOfClippingPlanes()){const c=e.renderable.getNumberOfClippingPlanes(),l=[],u=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,d=u?En(e.tmpMat4,o.getMatrix()):o.getMatrix();u&&(St(d,d),bt(d,d,u),St(d,d));for(let h=0;h{const a=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(a<2)return;const s=n.getProgram();let c=0;const l=i.getLightsByReference();for(let d=0;d0){const p=h.getColorByReference(),v=h.getIntensity();e.lightColor[0]=p[0]*v,e.lightColor[1]=p[1]*v,e.lightColor[2]=p[2]*v;const x=h.getDirection(),m=i.getActiveCamera().getViewMatrix(),y=[...x];h.lightTypeIsSceneLight()&&(y[0]=m[0]*x[0]+m[1]*x[1]+m[2]*x[2],y[1]=m[4]*x[0]+m[5]*x[1]+m[6]*x[2],y[2]=m[8]*x[0]+m[9]*x[1]+m[10]*x[2],sl(y)),e.lightDirection[0]=y[0],e.lightDirection[1]=y[1],e.lightDirection[2]=y[2],sl(e.lightDirection),s.setUniform3fArray(`lightColor${c}`,e.lightColor),s.setUniform3fArray(`lightDirectionVC${c}`,e.lightDirection),c++}}if(a<3)return;const u=i.getActiveCamera().getViewMatrix();St(u,u),c=0;for(let d=0;d0){const p=h.getTransformedPosition(),v=new Float64Array(3);et(v,p,u),s.setUniform3fArray(`lightAttenuation${c}`,h.getAttenuationValuesByReference()),s.setUniformi(`lightPositional${c}`,h.getPositional()),s.setUniformf(`lightExponent${c}`,h.getExponent()),s.setUniformf(`lightConeAngle${c}`,h.getConeAngle()),s.setUniform3fArray(`lightPositionVC${c}`,[v[0],v[1],v[2]]),c++}}};function r(n,i,o){return i.identity(o),n.reduce((a,s,c)=>c===0?s?i.copy(a,s):i.identity(a):s?i.multiply(a,a,s):a,o)}t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=e.openGLCamera.getKeyMatrices(i),c=i.getActiveCamera(),l=e.openGLCamera.getKeyMatrixTime().getMTime(),f=a.getLastCameraMTime(),d=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,h=o.getIsIdentity(),g=h?{mcwc:null,normalMatrix:null}:e.openGLActor.getKeyMatrices();if(o.getCoordinateSystem()===mq.DISPLAY){const p=e._openGLRenderer.getTiledSizeAndOrigin();qe(e.tmpMat4),e.tmpMat4[0]=2/p.usize,e.tmpMat4[12]=-1,e.tmpMat4[5]=2/p.vsize,e.tmpMat4[13]=-1,bt(e.tmpMat4,e.tmpMat4,d),a.setUniformMatrix("MCPCMatrix",e.tmpMat4)}else a.setUniformMatrix("MCPCMatrix",r([s.wcpc,g.mcwc,d],bd,e.tmpMat4));a.isUniformUsed("MCVCMatrix")&&a.setUniformMatrix("MCVCMatrix",r([s.wcvc,g.mcwc,d],bd,e.tmpMat4)),a.isUniformUsed("normalMatrix")&&a.setUniformMatrix3x3("normalMatrix",r([s.normalMatrix,g.normalMatrix],C$,e.tmpMat3)),f!==l&&(a.isUniformUsed("cameraParallel")&&a.setUniformi("cameraParallel",c.getParallelProjection()),a.setLastCameraMTime(l)),h||a.setLastCameraMTime(0)},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram();let s=o.getProperty(),c=s.getOpacity(),l=e.drawingEdges?s.getEdgeColorByReference():s.getAmbientColorByReference(),f=e.drawingEdges?s.getEdgeColorByReference():s.getDiffuseColorByReference(),u=e.drawingEdges?1:s.getAmbient(),d=e.drawingEdges?0:s.getDiffuse(),h=e.drawingEdges?0:s.getSpecular();const g=s.getSpecularPower();a.setUniformf("opacityUniform",c),a.setUniform3fArray("ambientColorUniform",l),a.setUniform3fArray("diffuseColorUniform",f),a.setUniformf("ambient",u),a.setUniformf("diffuse",d);const p=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(p<1)return;let v=s.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",v),a.setUniformf("specularPowerUniform",g),a.setUniformf("specular",h),a.isUniformUsed("ambientIntensityBF")){if(s=o.getBackfaceProperty(),c=s.getOpacity(),l=s.getAmbientColor(),u=s.getAmbient(),f=s.getDiffuseColor(),d=s.getDiffuse(),v=s.getSpecularColor(),h=s.getSpecular(),a.setUniformf("ambientIntensityBF",u),a.setUniformf("diffuseIntensityBF",d),a.setUniformf("opacityUniformBF",c),a.setUniform3fArray("ambientColorUniformBF",l),a.setUniform3fArray("diffuseColorUniformBF",f),p<1)return;a.setUniformf("specularIntensityBF",h),a.setUniform3fArray("specularColorUniformBF",v),a.setUniformf("specularPowerUniformBF",g)}},t.updateMaximumPointCellIds=(n,i)=>{var s,c,l,f;const o=e._openGLRenderer.getSelector();if(!o)return;if((c=(s=e.selectionWebGLIdsToVTKIds)==null?void 0:s.points)!=null&&c.length){const u=e.selectionWebGLIdsToVTKIds.points.length;o.setMaximumPointId(u-1)}if((f=(l=e.selectionWebGLIdsToVTKIds)==null?void 0:l.cells)!=null&&f.length){const u=e.selectionWebGLIdsToVTKIds.cells.length;o.setMaximumCellId(u-1)}o.getFieldAssociation()===Ev.FIELD_ASSOCIATION_POINTS&&(e.pointPicking=!0)},t.renderPieceStart=(n,i)=>{e.primitiveIDOffset=0,e.vertexIDOffset=0;const o=vq(e._openGLRenderer);if(e.lastSelectionState!==o&&(e.selectionStateChanged.modified(),e.lastSelectionState=o),e._openGLRenderer.getSelector())switch(o){default:e._openGLRenderer.getSelector().renderProp(i)}t.updateBufferObjects(n,i),e.renderable.getColorTextureMap()&&e.internalColorTexture.activate(),e.lastBoundBO=null},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation(),a=i.getProperty().getEdgeVisibility()&&o===Nl.SURFACE,s=e._openGLRenderer.getSelector(),c=s&&s.getFieldAssociation()===Ev.FIELD_ASSOCIATION_POINTS&&(e.lastSelectionState===ai.ID_LOW24||e.lastSelectionState===ai.ID_HIGH24);for(let l=mr.Start;l=0))&&(e.lastBoundBO=e.primitives[l],e.primitiveIDOffset+=e.primitives[l].drawArrays(n,i,o,t),e.vertexIDOffset+=e.primitives[l].getCABO().getElementCount()))},t.renderPieceFinish=(n,i)=>{e.LastBoundBO&&e.LastBoundBO.getVAO().release(),e.renderable.getColorTextureMap()&&e.internalColorTexture.deactivate()},t.renderPiece=(n,i)=>{if(t.invokeEvent(gq),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(pq),!e.currentInput){hc("No input!");return}if(!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues())return;const o=e.context,a=i.getProperty().getBackfaceCulling(),s=i.getProperty().getFrontfaceCulling();!a&&!s?e._openGLRenderWindow.disableCullFace():s?(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.computeBounds=(n,i)=>{if(!t.getInput()){p0(e.bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i),t.updateMaximumPointCellIds()},t.getNeedToRebuildBufferObjects=(n,i)=>{const o=e.VBOBuildTime.getMTime();return o{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors();e.haveCellScalars=!1;const s=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(s===ug.USE_CELL_DATA||s===ug.USE_CELL_FIELD_DATA||s===ug.USE_FIELD_DATA||!o.getPointData().getScalars())&&s!==ug.USE_POINT_FIELD_DATA&&a&&(e.haveCellScalars=!0);let c=i.getProperty().getInterpolation()!==e8.FLAT?o.getPointData().getNormals():null;c===null&&o.getCellData().getNormals()&&(e.haveCellNormals=!0,c=o.getCellData().getNormals());const l=i.getProperty().getRepresentation();let f=o.getPointData().getTCoords();e.openGLActor.getActiveTextures()||(f=null);let u=!1;if(e.renderable.getColorCoordinates()){f=e.renderable.getColorCoordinates(),u=e.renderable.getAreScalarsMappedFromCells(),e.internalColorTexture||(e.internalColorTexture=yn.newInstance({resizable:!0}));const h=e.internalColorTexture;h.setMinificationFilter(t8.NEAREST),h.setMagnificationFilter(t8.NEAREST),h.setWrapS(n8.CLAMP_TO_EDGE),h.setWrapT(n8.CLAMP_TO_EDGE),h.setOpenGLRenderWindow(e._openGLRenderWindow);const g=e.renderable.getColorTextureMap(),p=g.getExtent(),v=g.getPointData().getScalars();h.create2DFromRaw(p[1]-p[0]+1,p[3]-p[2]+1,v.getNumberOfComponents(),v.getDataType(),v.getData()),h.activate(),h.sendParameters(),h.deactivate()}const d=`${o.getMTime()}A${l}B${o.getMTime()}C${c?c.getMTime():1}D${a?a.getMTime():1}E${i.getProperty().getEdgeVisibility()}F${f?f.getMTime():1}`;if(e.VBOBuildString!==d){const g={points:o.getPoints(),normals:c,tcoords:f,colors:a,cellOffset:0,vertexOffset:0,useTCoordsPerCell:u,haveCellScalars:e.haveCellScalars,haveCellNormals:e.haveCellNormals,customAttributes:e.renderable.getCustomShaderAttributes().map(x=>o.getPointData().getArrayByName(x))};e.renderable.getPopulateSelectionSettings()&&(e.selectionWebGLIdsToVTKIds={points:null,cells:null});const p=[{inRep:"verts",cells:o.getVerts()},{inRep:"lines",cells:o.getLines()},{inRep:"polys",cells:o.getPolys()},{inRep:"strips",cells:o.getStrips()},{inRep:"polys",cells:o.getPolys()},{inRep:"strips",cells:o.getStrips()}],v=i.getProperty().getEdgeVisibility()&&l===Nl.SURFACE;for(let x=mr.Start;x{let n=0;return e.primitives.forEach(i=>{n+=i.getAllocatedGPUMemoryInBytes()}),n}}const xq={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:ai.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function TI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xq,r),nn.extend(t,e,r),oa.implementReplaceShaderCoincidentOffset(t,e,r),oa.implementBuildShadersWithReplacements(t,e,r),e.primitives=[],e.primTypes=mr,e.tmpMat3=oo(new Float64Array(9)),e.tmpMat4=qe(new Float64Array(16));for(let n=mr.Start;n{if(t.invokeEvent(Sq),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(1),t.invokeEvent(Tq),!e.currentInput){Y0("No input!");return}if(!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues())return;const o=e.context;e._openGLRenderWindow.getWebgl2()?(e.hardwareSupport=!0,e.extension=null):e.extension||(e.extension=e.context.getExtension("ANGLE_instanced_arrays"),e.hardwareSupport=!!e.extension);const a=i.getProperty().getBackfaceCulling(),s=i.getProperty().getFrontfaceCulling();!a&&!s?e._openGLRenderWindow.disableCullFace():s?(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.multiply4x4WithOffset=(n,i,o,a)=>{const s=i[0],c=i[1],l=i[2],f=i[3],u=i[4],d=i[5],h=i[6],g=i[7],p=i[8],v=i[9],x=i[10],m=i[11],y=i[12],w=i[13],C=i[14],S=i[15];let T=o[a],_=o[a+1],E=o[a+2],D=o[a+3];n[0]=T*s+_*u+E*p+D*y,n[1]=T*c+_*d+E*v+D*w,n[2]=T*l+_*h+E*x+D*C,n[3]=T*f+_*g+E*m+D*S,T=o[a+4],_=o[a+5],E=o[a+6],D=o[a+7],n[4]=T*s+_*u+E*p+D*y,n[5]=T*c+_*d+E*v+D*w,n[6]=T*l+_*h+E*x+D*C,n[7]=T*f+_*g+E*m+D*S,T=o[a+8],_=o[a+9],E=o[a+10],D=o[a+11],n[8]=T*s+_*u+E*p+D*y,n[9]=T*c+_*d+E*v+D*w,n[10]=T*l+_*h+E*x+D*C,n[11]=T*f+_*g+E*m+D*S,T=o[a+12],_=o[a+13],E=o[a+14],D=o[a+15],n[12]=T*s+_*u+E*p+D*y,n[13]=T*c+_*d+E*v+D*w,n[14]=T*l+_*h+E*x+D*C,n[15]=T*f+_*g+E*m+D*S},t.replaceShaderNormal=(n,i,o)=>{if(e.hardwareSupport&&e.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let s=n.Vertex;e.lastBoundBO.getCABO().getNormalOffset()&&(s=ce.substitute(s,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,s=ce.substitute(s,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),n.Vertex=s}r.replaceShaderNormal(n,i,o)},t.replaceShaderColor=(n,i,o)=>{if(e.hardwareSupport&&e.renderable.getColorArray()){let a=n.Vertex,s=n.Geometry,c=n.Fragment;const l=e.lastBoundBO.getReferenceByName("lastLightComplexity");let f=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(f=f.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),e.drawingEdges||(f=f.concat(["varying vec4 vertexColorVSOutput;"]),a=ce.substitute(a,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,s=ce.substitute(s,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),c=ce.substitute(c,"//VTK::Color::Impl",u).result,c=ce.substitute(c,"//VTK::Color::Dec",f).result,n.Vertex=a,n.Geometry=s,n.Fragment=c}r.replaceShaderColor(n,i,o)},t.replaceShaderPositionVC=(n,i,o)=>{if(e.hardwareSupport){let a=n.Vertex;e.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=ce.substitute(a,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,a=ce.substitute(a,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(a=ce.substitute(a,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),n.Vertex=a}r.replaceShaderPositionVC(n,i,o)},t.replaceShaderPicking=(n,i,o)=>{if(e.hardwareSupport){let a=n.Fragment,s=n.Vertex;s=ce.substitute(s,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,s=ce.substitute(s,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,n.Vertex=s,a=ce.substitute(a,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,a=ce.substitute(a,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,n.Fragment=a}else r.replaceShaderPicking(n,i,o)},t.updateGlyphShaderParameters=(n,i,o,a,s,c,l,f)=>{const u=o.getProgram();if(n){const d=e.normalMatrix,h=c,g=l*9,p=e.tmpMat3,v=d[0],x=d[1],m=d[2],y=d[3],w=d[4],C=d[5],S=d[6],T=d[7],_=d[8],E=h[g],D=h[g+1],b=h[g+2],I=h[g+3],R=h[g+4],M=h[g+5],L=h[g+6],A=h[g+7],G=h[g+8];p[0]=E*v+D*y+b*S,p[1]=E*x+D*w+b*T,p[2]=E*m+D*C+b*_,p[3]=I*v+R*y+M*S,p[4]=I*x+R*w+M*T,p[5]=I*m+R*C+M*_,p[6]=L*v+A*y+G*S,p[7]=L*x+A*w+G*T,p[8]=L*m+A*C+G*_,u.setUniformMatrix3x3("normalMatrix",e.tmpMat3)}if(t.multiply4x4WithOffset(e.tmpMat4,e.mcpcMatrix,s,l*16),u.setUniformMatrix("MCPCMatrix",e.tmpMat4),i&&(t.multiply4x4WithOffset(e.tmpMat4,e.mcvcMatrix,s,l*16),u.setUniformMatrix("MCVCMatrix",e.tmpMat4)),a){const d=a.getData();e.tmpColor[0]=d[l*4]/255,e.tmpColor[1]=d[l*4+1]/255,e.tmpColor[2]=d[l*4+2]/255,u.setUniform3fArray("ambientColorUniform",e.tmpColor),u.setUniform3fArray("diffuseColorUniform",e.tmpColor)}f&&u.setUniform3fArray("mapperIndex",f.getPropColorValue())},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation(),a=e.context,s=i.getProperty().getEdgeVisibility()&&o===wq.SURFACE,c=e.openGLCamera.getKeyMatrices(n),l=e.openGLActor.getKeyMatrices();$u(e.normalMatrix,c.normalMatrix,l.normalMatrix),bt(e.mcpcMatrix,c.wcpc,l.mcwc),bt(e.mcvcMatrix,c.wcvc,l.mcwc);const f=e.renderable.getMatrixArray(),u=e.renderable.getNormalArray(),d=e.renderable.getColorArray(),h=f.length/16;let g=!1;e._openGLRenderer.getSelector()&&e._openGLRenderer.getSelector().getCurrentPass()===Cq.COMPOSITE_INDEX_PASS&&(g=!0);for(let p=e.primTypes.Start;p{if(n.getCABO().getElementCount()&&(e.glyphBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){n.getProgram().isAttributeUsed("gMatrix")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),e.matrixBuffer,"gMatrix",0,64,e.context.FLOAT,4,!1,1)||Y0("Error setting gMatrix in shader VAO."):n.getVAO().removeAttributeArray("gMatrix"),n.getProgram().isAttributeUsed("gNormal")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),e.normalBuffer,"gNormal",0,36,e.context.FLOAT,3,!1,1)||Y0("Error setting gNormal in shader VAO."):n.getVAO().removeAttributeArray("gNormal"),n.getProgram().isAttributeUsed("gColor")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),e.colorBuffer,"gColor",0,4,e.context.UNSIGNED_BYTE,4,!0,1,!1)||Y0("Error setting gColor in shader VAO."):n.getVAO().removeAttributeArray("gColor"),n.getProgram().isAttributeUsed("mapperIndexVS")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),e.pickBuffer,"mapperIndexVS",0,4,e.context.UNSIGNED_BYTE,4,!0,1,!1)||Y0("Error setting mapperIndexVS in shader VAO."):n.getVAO().removeAttributeArray("mapperIndexVS"),r.setMapperShaderParameters(n,i,o),n.getAttributeUpdateTime().modified();return}r.setMapperShaderParameters(n,i,o)},t.getNeedToRebuildBufferObjects=(n,i)=>(e.renderable.buildArrays(),e.VBOBuildTime.getMTime()!!(r.getNeedToRebuildShaders(n,i,o)||n.getShaderSourceTime().getMTime(){if(e.hardwareSupport){const o=e.renderable.getMatrixArray(),a=e.renderable.getNormalArray(),s=e.renderable.getColorArray();if(e.matrixBuffer||(e.matrixBuffer=Na.newInstance(),e.matrixBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.normalBuffer=Na.newInstance(),e.normalBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.colorBuffer=Na.newInstance(),e.colorBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.pickBuffer=Na.newInstance(),e.pickBuffer.setOpenGLRenderWindow(e._openGLRenderWindow)),e.renderable.getBuildTime().getMTime()>e.glyphBOBuildTime.getMTime()){e.matrixBuffer.upload(o,fg.ARRAY_BUFFER),e.normalBuffer.upload(a,fg.ARRAY_BUFFER),s?e.colorBuffer.upload(s.getData(),fg.ARRAY_BUFFER):e.colorBuffer.releaseGraphicsResources();const c=o.length/16,l=new Uint8Array(4*c);for(let f=0;f2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Eq,r),r2.extend(t,e,r),e.tmpMat3=oo(new Float64Array(9)),e.normalMatrix=oo(new Float64Array(9)),e.mcpcMatrix=qe(new Float64Array(16)),e.mcvcMatrix=qe(new Float64Array(16)),e.tmpColor=[],e.glyphBOBuildTime={},fn(e.glyphBOBuildTime,{mtime:0}),_q(t,e)}const DI=Bt(EI,"vtkOpenGLGlyph3DMapper");var Dq={newInstance:DI,extend:EI};ir("vtkGlyph3DMapper",DI);const bq={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5};var i2={SlicingMode:bq};const qc={NEAREST:0,LINEAR:1};var Iq={InterpolationType:qc};function aa(t,e,r){return t?`${t.getMTime()}-${e}-${r}`:"0"}function Bw(t,e){return`${t.getMTime()}A${e.getMTime()}`}const{vtkErrorMacro:Pl}=Gr,{SlicingMode:fo}=i2;function Oq(t){const e=t.split(` -`),r=[];for(let n=0;n0&&r.push(i)}return r}function Mq(t,e){e.classHierarchy.push("vtkOpenGLImageMapper");function r(n){e.openGLTexture.releaseGraphicsResources(n),[e._colorTransferFunc,e._pwFunc,e._labelOutlineThicknessArray].forEach(i=>n.unregisterGraphicsResourceUser(i,t))}t.buildPass=n=>{if(n){e.currentRenderPass=null,e.openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const i=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),i&&!i.isDeleted()&&i!==e._openGLRenderWindow&&r(i),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow);const o=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(o.getActiveCamera()),e.renderable.isA("vtkImageMapper")&&e.renderable.getSliceAtFocalPoint()&&e.renderable.setSliceFromCamera(o.getActiveCamera())}},t.translucentPass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.zBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=n=>t.zBufferPass(n),t.opaquePass=n=>{n&&t.render()},t.getCoincidentParameters=(n,i)=>e.renderable.getResolveCoincidentTopology()==Ao.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const n=e.openGLImageSlice.getRenderable(),i=e._openGLRenderer.getRenderable();t.renderPiece(i,n)},t.getShaderTemplate=(n,i,o)=>{n.Vertex=Uw,n.Fragment=yh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,a=ce.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;const c=e.openGLTexture.getComponents(),l=o.getProperty().getIndependentComponents();let f=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform sampler2D labelOutlineTexture1;","uniform float opacity;","uniform float outlineOpacity;"];if(l){for(let d=1;d{if(t.replaceShaderColor(n,i,o),t.replaceShaderNormal(n,i,o),t.replaceShaderLight(n,i,o),t.replaceShaderTCoord(n,i,o),t.replaceShaderPicking(n,i,o),t.replaceShaderClip(n,i,o),t.replaceShaderCoincidentOffset(n,i,o),t.replaceShaderPositionVC(n,i,o),e.haveSeenDepthRequest){let a=n.Fragment;a=ce.substitute(a,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,a=ce.substitute(a,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,n.Fragment=a}},t.getNeedToRebuildShaders=(n,i,o)=>{let a=0,s=0;const c=n.getPrimitiveType(),l=e.currentInput;let f=!1;const u=l.getPointData().getNormals(),d=l.getCellData().getNormals(),h=o.getProperty().getInterpolation()===r8.FLAT,g=o.getProperty().getRepresentation(),p=n.getOpenGLMode(g,c);if((p===e.context.TRIANGLES||d&&!u||!h&&u||!h&&p===e.context.LINES)&&(f=!0),o.getProperty().getLighting()&&f){a=0;const y=i.getLightsByReference();for(let w=0;w0&&(s++,a===0&&(a=1)),a===1&&(s>1||C.getIntensity()!==1||!C.lightTypeIsHeadLight())&&(a=2),a<3&&C.getPositional()&&(a=3)}}let v=!1;const x=e.lastBoundBO.getReferenceByName("lastLightComplexity"),m=e.lastBoundBO.getReferenceByName("lastLightCount");return(x!==a||m!==s)&&(e.lastBoundBO.set({lastLightComplexity:a},!0),e.lastBoundBO.set({lastLightCount:s},!0),v=!0),(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(v=!0),e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||n.getShaderSourceTime().getMTime(){const a=e.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach(s=>{s.callback(s.userData,n,i,o)})},t.setMapperShaderParameters=(n,i,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),n.getProgram().isUniformUsed("VertexIDOffset")&&n.getProgram().setUniformi("VertexIDOffset",e.vertexIDOffset),n.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){const c=e.lastBoundBO.getReferenceByName("lastLightComplexity");n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||gc("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("normalMC")&&n.getCABO().getNormalOffset()&&c>0?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"normalMC",n.getCABO().getNormalOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||gc("Error setting normalMC in shader VAO."):n.getVAO().removeAttributeArray("normalMC"),e.renderable.getCustomShaderAttributes().forEach((l,f)=>{n.getProgram().isAttributeUsed(`${l}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${l}MC`,n.getCABO().getCustomData()[f].offset,n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getCustomData()[f].components,!1)||gc(`Error setting ${l}MC in shader VAO.`))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||gc("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),n.getProgram().isAttributeUsed("scalarColor")&&n.getCABO().getColorComponents()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"scalarColor",n.getCABO().getColorOffset(),n.getCABO().getColorBOStride(),e.context.UNSIGNED_BYTE,4,!0)||gc("Error setting scalarColor in shader VAO."):n.getVAO().removeAttributeArray("scalarColor"),n.getAttributeUpdateTime().modified()}if(e.renderable.getNumberOfClippingPlanes()){const c=e.renderable.getNumberOfClippingPlanes(),l=[],u=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,d=u?_n(e.tmpMat4,o.getMatrix()):o.getMatrix();u&&(St(d,d),bt(d,d,u),St(d,d));for(let h=0;h{const a=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(a<2)return;const s=n.getProgram();let c=0;const l=i.getLightsByReference();for(let d=0;d0){const p=h.getColorByReference(),v=h.getIntensity();e.lightColor[0]=p[0]*v,e.lightColor[1]=p[1]*v,e.lightColor[2]=p[2]*v;const x=h.getDirection(),m=i.getActiveCamera().getViewMatrix(),y=[...x];h.lightTypeIsSceneLight()&&(y[0]=m[0]*x[0]+m[1]*x[1]+m[2]*x[2],y[1]=m[4]*x[0]+m[5]*x[1]+m[6]*x[2],y[2]=m[8]*x[0]+m[9]*x[1]+m[10]*x[2],cl(y)),e.lightDirection[0]=y[0],e.lightDirection[1]=y[1],e.lightDirection[2]=y[2],cl(e.lightDirection),s.setUniform3fArray(`lightColor${c}`,e.lightColor),s.setUniform3fArray(`lightDirectionVC${c}`,e.lightDirection),c++}}if(a<3)return;const u=i.getActiveCamera().getViewMatrix();St(u,u),c=0;for(let d=0;d0){const p=h.getTransformedPosition(),v=new Float64Array(3);et(v,p,u),s.setUniform3fArray(`lightAttenuation${c}`,h.getAttenuationValuesByReference()),s.setUniformi(`lightPositional${c}`,h.getPositional()),s.setUniformf(`lightExponent${c}`,h.getExponent()),s.setUniformf(`lightConeAngle${c}`,h.getConeAngle()),s.setUniform3fArray(`lightPositionVC${c}`,[v[0],v[1],v[2]]),c++}}};function r(n,i,o){return i.identity(o),n.reduce((a,s,c)=>c===0?s?i.copy(a,s):i.identity(a):s?i.multiply(a,a,s):a,o)}t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=e.openGLCamera.getKeyMatrices(i),c=i.getActiveCamera(),l=e.openGLCamera.getKeyMatrixTime().getMTime(),f=a.getLastCameraMTime(),d=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,h=o.getIsIdentity(),g=h?{mcwc:null,normalMatrix:null}:e.openGLActor.getKeyMatrices();if(o.getCoordinateSystem()===Sq.DISPLAY){const p=e._openGLRenderer.getTiledSizeAndOrigin();qe(e.tmpMat4),e.tmpMat4[0]=2/p.usize,e.tmpMat4[12]=-1,e.tmpMat4[5]=2/p.vsize,e.tmpMat4[13]=-1,bt(e.tmpMat4,e.tmpMat4,d),a.setUniformMatrix("MCPCMatrix",e.tmpMat4)}else a.setUniformMatrix("MCPCMatrix",r([s.wcpc,g.mcwc,d],Od,e.tmpMat4));a.isUniformUsed("MCVCMatrix")&&a.setUniformMatrix("MCVCMatrix",r([s.wcvc,g.mcwc,d],Od,e.tmpMat4)),a.isUniformUsed("normalMatrix")&&a.setUniformMatrix3x3("normalMatrix",r([s.normalMatrix,g.normalMatrix],b$,e.tmpMat3)),f!==l&&(a.isUniformUsed("cameraParallel")&&a.setUniformi("cameraParallel",c.getParallelProjection()),a.setLastCameraMTime(l)),h||a.setLastCameraMTime(0)},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram();let s=o.getProperty(),c=s.getOpacity(),l=e.drawingEdges?s.getEdgeColorByReference():s.getAmbientColorByReference(),f=e.drawingEdges?s.getEdgeColorByReference():s.getDiffuseColorByReference(),u=e.drawingEdges?1:s.getAmbient(),d=e.drawingEdges?0:s.getDiffuse(),h=e.drawingEdges?0:s.getSpecular();const g=s.getSpecularPower();a.setUniformf("opacityUniform",c),a.setUniform3fArray("ambientColorUniform",l),a.setUniform3fArray("diffuseColorUniform",f),a.setUniformf("ambient",u),a.setUniformf("diffuse",d);const p=e.lastBoundBO.getReferenceByName("lastLightComplexity");if(p<1)return;let v=s.getSpecularColorByReference();if(a.setUniform3fArray("specularColorUniform",v),a.setUniformf("specularPowerUniform",g),a.setUniformf("specular",h),a.isUniformUsed("ambientIntensityBF")){if(s=o.getBackfaceProperty(),c=s.getOpacity(),l=s.getAmbientColor(),u=s.getAmbient(),f=s.getDiffuseColor(),d=s.getDiffuse(),v=s.getSpecularColor(),h=s.getSpecular(),a.setUniformf("ambientIntensityBF",u),a.setUniformf("diffuseIntensityBF",d),a.setUniformf("opacityUniformBF",c),a.setUniform3fArray("ambientColorUniformBF",l),a.setUniform3fArray("diffuseColorUniformBF",f),p<1)return;a.setUniformf("specularIntensityBF",h),a.setUniform3fArray("specularColorUniformBF",v),a.setUniformf("specularPowerUniformBF",g)}},t.updateMaximumPointCellIds=(n,i)=>{var s,c,l,f;const o=e._openGLRenderer.getSelector();if(!o)return;if((c=(s=e.selectionWebGLIdsToVTKIds)==null?void 0:s.points)!=null&&c.length){const u=e.selectionWebGLIdsToVTKIds.points.length;o.setMaximumPointId(u-1)}if((f=(l=e.selectionWebGLIdsToVTKIds)==null?void 0:l.cells)!=null&&f.length){const u=e.selectionWebGLIdsToVTKIds.cells.length;o.setMaximumCellId(u-1)}o.getFieldAssociation()===bv.FIELD_ASSOCIATION_POINTS&&(e.pointPicking=!0)},t.renderPieceStart=(n,i)=>{e.primitiveIDOffset=0,e.vertexIDOffset=0;const o=Tq(e._openGLRenderer);if(e.lastSelectionState!==o&&(e.selectionStateChanged.modified(),e.lastSelectionState=o),e._openGLRenderer.getSelector())switch(o){default:e._openGLRenderer.getSelector().renderProp(i)}t.updateBufferObjects(n,i),e.renderable.getColorTextureMap()&&e.internalColorTexture.activate(),e.lastBoundBO=null},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation(),a=i.getProperty().getEdgeVisibility()&&o===kl.SURFACE,s=e._openGLRenderer.getSelector(),c=s&&s.getFieldAssociation()===bv.FIELD_ASSOCIATION_POINTS&&(e.lastSelectionState===ai.ID_LOW24||e.lastSelectionState===ai.ID_HIGH24);for(let l=mr.Start;l=0))&&(e.lastBoundBO=e.primitives[l],e.primitiveIDOffset+=e.primitives[l].drawArrays(n,i,o,t),e.vertexIDOffset+=e.primitives[l].getCABO().getElementCount()))},t.renderPieceFinish=(n,i)=>{e.LastBoundBO&&e.LastBoundBO.getVAO().release(),e.renderable.getColorTextureMap()&&e.internalColorTexture.deactivate()},t.renderPiece=(n,i)=>{if(t.invokeEvent(wq),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(Cq),!e.currentInput){gc("No input!");return}if(!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues())return;const o=e.context,a=i.getProperty().getBackfaceCulling(),s=i.getProperty().getFrontfaceCulling();!a&&!s?e._openGLRenderWindow.disableCullFace():s?(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.computeBounds=(n,i)=>{if(!t.getInput()){y0(e.bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i),t.updateMaximumPointCellIds()},t.getNeedToRebuildBufferObjects=(n,i)=>{const o=e.VBOBuildTime.getMTime();return o{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors();e.haveCellScalars=!1;const s=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(s===dg.USE_CELL_DATA||s===dg.USE_CELL_FIELD_DATA||s===dg.USE_FIELD_DATA||!o.getPointData().getScalars())&&s!==dg.USE_POINT_FIELD_DATA&&a&&(e.haveCellScalars=!0);let c=i.getProperty().getInterpolation()!==r8.FLAT?o.getPointData().getNormals():null;c===null&&o.getCellData().getNormals()&&(e.haveCellNormals=!0,c=o.getCellData().getNormals());const l=i.getProperty().getRepresentation();let f=o.getPointData().getTCoords();e.openGLActor.getActiveTextures()||(f=null);let u=!1;if(e.renderable.getColorCoordinates()){f=e.renderable.getColorCoordinates(),u=e.renderable.getAreScalarsMappedFromCells(),e.internalColorTexture||(e.internalColorTexture=yn.newInstance({resizable:!0}));const h=e.internalColorTexture;h.setMinificationFilter(i8.NEAREST),h.setMagnificationFilter(i8.NEAREST),h.setWrapS(o8.CLAMP_TO_EDGE),h.setWrapT(o8.CLAMP_TO_EDGE),h.setOpenGLRenderWindow(e._openGLRenderWindow);const g=e.renderable.getColorTextureMap(),p=g.getExtent(),v=g.getPointData().getScalars();h.create2DFromRaw(p[1]-p[0]+1,p[3]-p[2]+1,v.getNumberOfComponents(),v.getDataType(),v.getData()),h.activate(),h.sendParameters(),h.deactivate()}const d=`${o.getMTime()}A${l}B${o.getMTime()}C${c?c.getMTime():1}D${a?a.getMTime():1}E${i.getProperty().getEdgeVisibility()}F${f?f.getMTime():1}`;if(e.VBOBuildString!==d){const g={points:o.getPoints(),normals:c,tcoords:f,colors:a,cellOffset:0,vertexOffset:0,useTCoordsPerCell:u,haveCellScalars:e.haveCellScalars,haveCellNormals:e.haveCellNormals,customAttributes:e.renderable.getCustomShaderAttributes().map(x=>o.getPointData().getArrayByName(x))};e.renderable.getPopulateSelectionSettings()&&(e.selectionWebGLIdsToVTKIds={points:null,cells:null});const p=[{inRep:"verts",cells:o.getVerts()},{inRep:"lines",cells:o.getLines()},{inRep:"polys",cells:o.getPolys()},{inRep:"strips",cells:o.getStrips()},{inRep:"polys",cells:o.getPolys()},{inRep:"strips",cells:o.getStrips()}],v=i.getProperty().getEdgeVisibility()&&l===kl.SURFACE;for(let x=mr.Start;x{let n=0;return e.primitives.forEach(i=>{n+=i.getAllocatedGPUMemoryInBytes()}),n}}const Eq={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null,tmpMat4:null,ambientColor:[],diffuseColor:[],specularColor:[],lightColor:[],lightDirection:[],lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastSelectionState:ai.MIN_KNOWN_PASS-1,selectionStateChanged:null,selectionWebGLIdsToVTKIds:null,pointPicking:!1};function II(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Eq,r),tn.extend(t,e,r),aa.implementReplaceShaderCoincidentOffset(t,e,r),aa.implementBuildShadersWithReplacements(t,e,r),e.primitives=[],e.primTypes=mr,e.tmpMat3=ao(new Float64Array(9)),e.tmpMat4=qe(new Float64Array(16));for(let n=mr.Start;n{if(t.invokeEvent(Iq),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(1),t.invokeEvent(Oq),!e.currentInput){Z0("No input!");return}if(!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues())return;const o=e.context;e._openGLRenderWindow.getWebgl2()?(e.hardwareSupport=!0,e.extension=null):e.extension||(e.extension=e.context.getExtension("ANGLE_instanced_arrays"),e.hardwareSupport=!!e.extension);const a=i.getProperty().getBackfaceCulling(),s=i.getProperty().getFrontfaceCulling();!a&&!s?e._openGLRenderWindow.disableCullFace():s?(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.FRONT)):(e._openGLRenderWindow.enableCullFace(),o.cullFace(o.BACK)),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.multiply4x4WithOffset=(n,i,o,a)=>{const s=i[0],c=i[1],l=i[2],f=i[3],u=i[4],d=i[5],h=i[6],g=i[7],p=i[8],v=i[9],x=i[10],m=i[11],y=i[12],w=i[13],C=i[14],S=i[15];let T=o[a],_=o[a+1],E=o[a+2],D=o[a+3];n[0]=T*s+_*u+E*p+D*y,n[1]=T*c+_*d+E*v+D*w,n[2]=T*l+_*h+E*x+D*C,n[3]=T*f+_*g+E*m+D*S,T=o[a+4],_=o[a+5],E=o[a+6],D=o[a+7],n[4]=T*s+_*u+E*p+D*y,n[5]=T*c+_*d+E*v+D*w,n[6]=T*l+_*h+E*x+D*C,n[7]=T*f+_*g+E*m+D*S,T=o[a+8],_=o[a+9],E=o[a+10],D=o[a+11],n[8]=T*s+_*u+E*p+D*y,n[9]=T*c+_*d+E*v+D*w,n[10]=T*l+_*h+E*x+D*C,n[11]=T*f+_*g+E*m+D*S,T=o[a+12],_=o[a+13],E=o[a+14],D=o[a+15],n[12]=T*s+_*u+E*p+D*y,n[13]=T*c+_*d+E*v+D*w,n[14]=T*l+_*h+E*x+D*C,n[15]=T*f+_*g+E*m+D*S},t.replaceShaderNormal=(n,i,o)=>{if(e.hardwareSupport&&e.lastBoundBO.getReferenceByName("lastLightComplexity")>0){let s=n.Vertex;e.lastBoundBO.getCABO().getNormalOffset()&&(s=ce.substitute(s,"//VTK::Normal::Dec",["attribute vec3 normalMC;","attribute mat3 gNormal;","uniform mat3 normalMatrix;","varying vec3 normalVCVSOutput;"]).result,s=ce.substitute(s,"//VTK::Normal::Impl",["normalVCVSOutput = normalMatrix * gNormal * normalMC;"]).result),n.Vertex=s}r.replaceShaderNormal(n,i,o)},t.replaceShaderColor=(n,i,o)=>{if(e.hardwareSupport&&e.renderable.getColorArray()){let a=n.Vertex,s=n.Geometry,c=n.Fragment;const l=e.lastBoundBO.getReferenceByName("lastLightComplexity");let f=["uniform float ambient;","uniform float diffuse;","uniform float specular;","uniform float opacityUniform; // the fragment opacity"];l&&(f=f.concat(["uniform vec3 specularColorUniform;","uniform float specularPowerUniform;"]));let u=["vec3 ambientColor;"," vec3 diffuseColor;"," float opacity;"];l&&(u=u.concat([" vec3 specularColor;"," float specularPower;"])),u=u.concat([" opacity = opacityUniform;"]),l&&(u=u.concat([" specularColor = specularColorUniform;"," specularPower = specularPowerUniform;"])),e.drawingEdges||(f=f.concat(["varying vec4 vertexColorVSOutput;"]),a=ce.substitute(a,"//VTK::Color::Dec",["attribute vec4 gColor;","varying vec4 vertexColorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["vertexColorVSOutput = gColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",["in vec4 vertexColorVSOutput[];","out vec4 vertexColorGSOutput;"]).result,s=ce.substitute(s,"//VTK::Color::Impl",["vertexColorGSOutput = vertexColorVSOutput[i];"]).result,u=u.concat([" diffuseColor = vertexColorVSOutput.rgb;"," ambientColor = vertexColorVSOutput.rgb;"," opacity = opacity*vertexColorVSOutput.a;"])),c=ce.substitute(c,"//VTK::Color::Impl",u).result,c=ce.substitute(c,"//VTK::Color::Dec",f).result,n.Vertex=a,n.Geometry=s,n.Fragment=c}r.replaceShaderColor(n,i,o)},t.replaceShaderPositionVC=(n,i,o)=>{if(e.hardwareSupport){let a=n.Vertex;e.lastBoundBO.getReferenceByName("lastLightComplexity")>0?(a=ce.substitute(a,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;","vertexVCVSOutput = MCVCMatrix * gVertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result,a=ce.substitute(a,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result):(a=ce.substitute(a,"//VTK::Camera::Dec",["attribute mat4 gMatrix;","uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",["vec4 gVertexMC = gMatrix * vertexMC;"," gl_Position = MCPCMatrix * gVertexMC;"]).result),n.Vertex=a}r.replaceShaderPositionVC(n,i,o)},t.replaceShaderPicking=(n,i,o)=>{if(e.hardwareSupport){let a=n.Fragment,s=n.Vertex;s=ce.substitute(s,"//VTK::Picking::Dec",["attribute vec3 mapperIndexVS;","varying vec3 mapperIndexVSOutput;"]).result,s=ce.substitute(s,"//VTK::Picking::Impl"," mapperIndexVSOutput = mapperIndexVS;").result,n.Vertex=s,a=ce.substitute(a,"//VTK::Picking::Dec",["varying vec3 mapperIndexVSOutput;","uniform vec3 mapperIndex;","uniform int picking;"]).result,a=ce.substitute(a,"//VTK::Picking::Impl",[" vec4 pickColor = picking == 2 ? vec4(mapperIndexVSOutput,1.0) : vec4(mapperIndex,1.0);"," gl_FragData[0] = picking != 0 ? pickColor : gl_FragData[0];"]).result,n.Fragment=a}else r.replaceShaderPicking(n,i,o)},t.updateGlyphShaderParameters=(n,i,o,a,s,c,l,f)=>{const u=o.getProgram();if(n){const d=e.normalMatrix,h=c,g=l*9,p=e.tmpMat3,v=d[0],x=d[1],m=d[2],y=d[3],w=d[4],C=d[5],S=d[6],T=d[7],_=d[8],E=h[g],D=h[g+1],b=h[g+2],I=h[g+3],R=h[g+4],M=h[g+5],L=h[g+6],A=h[g+7],G=h[g+8];p[0]=E*v+D*y+b*S,p[1]=E*x+D*w+b*T,p[2]=E*m+D*C+b*_,p[3]=I*v+R*y+M*S,p[4]=I*x+R*w+M*T,p[5]=I*m+R*C+M*_,p[6]=L*v+A*y+G*S,p[7]=L*x+A*w+G*T,p[8]=L*m+A*C+G*_,u.setUniformMatrix3x3("normalMatrix",e.tmpMat3)}if(t.multiply4x4WithOffset(e.tmpMat4,e.mcpcMatrix,s,l*16),u.setUniformMatrix("MCPCMatrix",e.tmpMat4),i&&(t.multiply4x4WithOffset(e.tmpMat4,e.mcvcMatrix,s,l*16),u.setUniformMatrix("MCVCMatrix",e.tmpMat4)),a){const d=a.getData();e.tmpColor[0]=d[l*4]/255,e.tmpColor[1]=d[l*4+1]/255,e.tmpColor[2]=d[l*4+2]/255,u.setUniform3fArray("ambientColorUniform",e.tmpColor),u.setUniform3fArray("diffuseColorUniform",e.tmpColor)}f&&u.setUniform3fArray("mapperIndex",f.getPropColorValue())},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation(),a=e.context,s=i.getProperty().getEdgeVisibility()&&o===Dq.SURFACE,c=e.openGLCamera.getKeyMatrices(n),l=e.openGLActor.getKeyMatrices();Ku(e.normalMatrix,c.normalMatrix,l.normalMatrix),bt(e.mcpcMatrix,c.wcpc,l.mcwc),bt(e.mcvcMatrix,c.wcvc,l.mcwc);const f=e.renderable.getMatrixArray(),u=e.renderable.getNormalArray(),d=e.renderable.getColorArray(),h=f.length/16;let g=!1;e._openGLRenderer.getSelector()&&e._openGLRenderer.getSelector().getCurrentPass()===bq.COMPOSITE_INDEX_PASS&&(g=!0);for(let p=e.primTypes.Start;p{if(n.getCABO().getElementCount()&&(e.glyphBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){n.getProgram().isAttributeUsed("gMatrix")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),e.matrixBuffer,"gMatrix",0,64,e.context.FLOAT,4,!1,1)||Z0("Error setting gMatrix in shader VAO."):n.getVAO().removeAttributeArray("gMatrix"),n.getProgram().isAttributeUsed("gNormal")?n.getVAO().addAttributeMatrixWithDivisor(n.getProgram(),e.normalBuffer,"gNormal",0,36,e.context.FLOAT,3,!1,1)||Z0("Error setting gNormal in shader VAO."):n.getVAO().removeAttributeArray("gNormal"),n.getProgram().isAttributeUsed("gColor")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),e.colorBuffer,"gColor",0,4,e.context.UNSIGNED_BYTE,4,!0,1,!1)||Z0("Error setting gColor in shader VAO."):n.getVAO().removeAttributeArray("gColor"),n.getProgram().isAttributeUsed("mapperIndexVS")?n.getVAO().addAttributeArrayWithDivisor(n.getProgram(),e.pickBuffer,"mapperIndexVS",0,4,e.context.UNSIGNED_BYTE,4,!0,1,!1)||Z0("Error setting mapperIndexVS in shader VAO."):n.getVAO().removeAttributeArray("mapperIndexVS"),r.setMapperShaderParameters(n,i,o),n.getAttributeUpdateTime().modified();return}r.setMapperShaderParameters(n,i,o)},t.getNeedToRebuildBufferObjects=(n,i)=>(e.renderable.buildArrays(),e.VBOBuildTime.getMTime()!!(r.getNeedToRebuildShaders(n,i,o)||n.getShaderSourceTime().getMTime(){if(e.hardwareSupport){const o=e.renderable.getMatrixArray(),a=e.renderable.getNormalArray(),s=e.renderable.getColorArray();if(e.matrixBuffer||(e.matrixBuffer=Pa.newInstance(),e.matrixBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.normalBuffer=Pa.newInstance(),e.normalBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.colorBuffer=Pa.newInstance(),e.colorBuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.pickBuffer=Pa.newInstance(),e.pickBuffer.setOpenGLRenderWindow(e._openGLRenderWindow)),e.renderable.getBuildTime().getMTime()>e.glyphBOBuildTime.getMTime()){e.matrixBuffer.upload(o,hg.ARRAY_BUFFER),e.normalBuffer.upload(a,hg.ARRAY_BUFFER),s?e.colorBuffer.upload(s.getData(),hg.ARRAY_BUFFER):e.colorBuffer.releaseGraphicsResources();const c=o.length/16,l=new Uint8Array(4*c);for(let f=0;f2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Rq,r),o2.extend(t,e,r),e.tmpMat3=ao(new Float64Array(9)),e.normalMatrix=ao(new Float64Array(9)),e.mcpcMatrix=qe(new Float64Array(16)),e.mcvcMatrix=qe(new Float64Array(16)),e.tmpColor=[],e.glyphBOBuildTime={},un(e.glyphBOBuildTime,{mtime:0}),Mq(t,e)}const RI=Bt(MI,"vtkOpenGLGlyph3DMapper");var Lq={newInstance:RI,extend:MI};ir("vtkGlyph3DMapper",RI);const Nq={NONE:-1,I:0,J:1,K:2,X:3,Y:4,Z:5};var a2={SlicingMode:Nq};const Xc={NEAREST:0,LINEAR:1};var Pq={InterpolationType:Xc};function sa(t,e,r){return t?`${t.getMTime()}-${e}-${r}`:"0"}function Ww(t,e){return`${t.getMTime()}A${e.getMTime()}`}const{vtkErrorMacro:Vl}=Br,{SlicingMode:ho}=a2;function Aq(t){const e=t.split(` +`),r=[];for(let n=0;n0&&r.push(i)}return r}function kq(t,e){e.classHierarchy.push("vtkOpenGLImageMapper");function r(n){e.openGLTexture.releaseGraphicsResources(n),[e._colorTransferFunc,e._pwFunc,e._labelOutlineThicknessArray].forEach(i=>n.unregisterGraphicsResourceUser(i,t))}t.buildPass=n=>{if(n){e.currentRenderPass=null,e.openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const i=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),i&&!i.isDeleted()&&i!==e._openGLRenderWindow&&r(i),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow);const o=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(o.getActiveCamera()),e.renderable.isA("vtkImageMapper")&&e.renderable.getSliceAtFocalPoint()&&e.renderable.setSliceFromCamera(o.getActiveCamera())}},t.translucentPass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.zBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=n=>t.zBufferPass(n),t.opaquePass=n=>{n&&t.render()},t.getCoincidentParameters=(n,i)=>e.renderable.getResolveCoincidentTopology()==ko.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const n=e.openGLImageSlice.getRenderable(),i=e._openGLRenderer.getRenderable();t.renderPiece(i,n)},t.getShaderTemplate=(n,i,o)=>{n.Vertex=Gw,n.Fragment=wh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result,a=ce.substitute(a,"//VTK::TCoord::Impl","tcoordVCVSOutput = tcoordMC;").result,a=ce.substitute(a,"//VTK::TCoord::Dec","attribute vec2 tcoordMC; varying vec2 tcoordVCVSOutput;").result;const c=e.openGLTexture.getComponents(),l=o.getProperty().getIndependentComponents();let f=["varying vec2 tcoordVCVSOutput;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D texture1;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform sampler2D labelOutlineTexture1;","uniform float opacity;","uniform float outlineOpacity;"];if(l){for(let d=1;d{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){let c=e.renderable.getNumberOfClippingPlanes();c>6&&(Dt("OpenGL has a limit of 6 clipping planes"),c=6),a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=ce.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,s=ce.substitute(s,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getNeedToRebuildShaders=(n,i,o)=>{var l;const a=e.openGLTexture.getComponents(),s=o.getProperty().getIndependentComponents();let c=!1;return(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(c=!0),c||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||((l=n.getProgram())==null?void 0:l.getHandle())===0||e.lastTextureComponents!==a||e.lastIndependentComponents!==s?(e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=a,e.lastIndependentComponents=s,!0):!1},t.updateShaders=(n,i,o)=>{if(e.lastBoundBO=n,t.getNeedToRebuildShaders(n,i,o)){const a={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(a,i,o);const s=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);s!==n.getProgram()&&(n.setProgram(s),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),t.setMapperShaderParameters(n,i,o),t.setCameraShaderParameters(n,i,o),t.setPropertyShaderParameters(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Pl("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),e.context.FALSE)||Pl("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());const a=e.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",a);const s=e.openGLTexture.getComponents(),c=o.getProperty().getIndependentComponents();if(c)for(let g=0;g6&&(Dt("OpenGL has a limit of 6 clipping planes"),g=6);const v=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,x=v?En(e.imagematinv,o.getMatrix()):o.getMatrix();v&&(St(x,x),bt(x,x,v),St(x,x)),St(e.imagemat,e.currentInput.getIndexToWorld()),bt(e.imagematinv,x,e.imagemat);const m=[];for(let y=0;y{const a=n.getProgram(),s=e.openGLImageSlice.getKeyMatrices(),c=e.currentInput,l=c.getIndexToWorld();bt(e.imagemat,s.mcwc,l);const f=e.openGLCamera.getKeyMatrices(i);if(bt(e.imagemat,f.wcpc,e.imagemat),n.getCABO().getCoordShiftAndScaleEnabled()){const d=n.getCABO().getInverseShiftAndScaleMatrix();bt(e.imagemat,e.imagemat,d)}if(a.setUniformMatrix("MCPCMatrix",e.imagemat),o.getProperty().getUseLabelOutline()===!0){const d=c.getWorldToIndex(),h=c.getDimensions();a.setUniform3i("imageDimensions",h[0],h[1],1),a.setUniformMatrix("vWCtoIDX",d);const g=e.openGLCamera.getKeyMatrices(i);$n(e.projectionToWorld,g.wcpc),e.openGLCamera.getKeyMatrices(i),a.setUniformMatrix("PCWCMatrix",e.projectionToWorld);const p=t.getRenderTargetSize();a.setUniformf("vpWidth",p[0]),a.setUniformf("vpHeight",p[1]);const v=t.getRenderTargetOffset();a.setUniformf("vpOffsetX",v[0]/p[0]),a.setUniformf("vpOffsetY",v[1]/p[1])}},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram(),c=o.getProperty().getOpacity();a.setUniformf("opacity",c)},t.renderPieceStart=(n,i)=>{t.updateBufferObjects(n,i),e.lastBoundBO=null},t.renderPieceDraw=(n,i)=>{const o=e.context;e.openGLTexture.activate(),e.colorTexture.activate(),e.labelOutlineThicknessTexture.activate(),e.pwfTexture.activate(),e.tris.getCABO().getElementCount()&&(t.updateShaders(e.tris,n,i),o.drawArrays(o.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release()),e.openGLTexture.deactivate(),e.colorTexture.deactivate(),e.labelOutlineThicknessTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(n,i)=>{},t.renderPiece=(n,i)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getCurrentImage(),t.invokeEvent({type:"EndEvent"}),!e.currentInput){Pl("No input!");return}t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.computeBounds=(n,i)=>{if(!t.getInput()){p0(e.bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i)},t.getNeedToRebuildBufferObjects=(n,i)=>{var o,a,s,c;return e.VBOBuildTime.getMTime(){var I,R,M,L;const o=e.currentInput;if(!o)return;const a=o.getPointData()&&o.getPointData().getScalars();if(!a)return;const s=a.getDataType(),c=a.getNumberOfComponents(),l=i.getProperty(),f=l.getInterpolationType(),u=l.getIndependentComponents(),d=u?c:1,h=u?2*d:1,g=l.getRGBTransferFunction(),p=aa(g,u,d),v=e._openGLRenderWindow.getGraphicsResourceForObject(g);if(!((I=v==null?void 0:v.oglObject)!=null&&I.getHandle())||(v==null?void 0:v.hash)!==p){e.colorTexture=yn.newInstance({resizable:!0}),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const A=1024,G=A*h*3,P=new Uint8ClampedArray(G);if(f===qc.NEAREST?(e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST)):(e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR)),g){const N=new Float32Array(A*3);for(let V=0;V1?1:0;const V=[fo.X,fo.Y,fo.Z].includes(e.renderable.getSlicingMode())?T:_,$=o.getSpatialExtent(),j=a.getData();let Y=null;if(S===fo.I){Y=new j.constructor(A[2]*A[1]*c);let fe=0;for(let se=0;se{var c;const i=n.getProperty().getLabelOutlineThickness(),o=e._openGLRenderWindow.getGraphicsResourceForObject(i),a=`${i.join("-")}`;if(!((c=o==null?void 0:o.oglObject)!=null&&c.getHandle())||(o==null?void 0:o.hash)!==a){const d=new Uint8Array(1024);for(let h=0;h<1024;++h){const g=typeof i[h]<"u"?i[h]:i[0];d[h]=g}e.labelOutlineThicknessTexture=yn.newInstance({resizable:!1}),e.labelOutlineThicknessTexture.setOpenGLRenderWindow(e._openGLRenderWindow),e.labelOutlineThicknessTexture.resetFormatAndType(),e.labelOutlineThicknessTexture.setMinificationFilter(Je.NEAREST),e.labelOutlineThicknessTexture.setMagnificationFilter(Je.NEAREST),e.labelOutlineThicknessTexture.create2DFromRaw(1024,1,1,yt.UNSIGNED_CHAR,d),i&&(e._openGLRenderWindow.setGraphicsResourceForObject(i,e.labelOutlineThicknessTexture,a),i!==e._labelOutlineThicknessArray&&(e._openGLRenderWindow.registerGraphicsResourceUser(i,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._labelOutlineThicknessArray,t)),e._labelOutlineThicknessArray=i)}else e.labelOutlineThicknessTexture=o.oglObject},t.getRenderTargetSize=()=>{if(e._useSmallViewport)return[e._smallViewportWidth,e._smallViewportHeight];const{usize:n,vsize:i}=e._openGLRenderer.getTiledSizeAndOrigin();return[n,i]},t.getRenderTargetOffset=()=>{const{lowerLeftU:n,lowerLeftV:i}=e._openGLRenderer.getTiledSizeAndOrigin();return[n,i]},t.delete=dh(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const Rq={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,labelOutlineThicknessTexture:null,labelOutlineThicknessTextureString:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function bI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Rq,r),nn.extend(t,e,r),oa.implementReplaceShaderCoincidentOffset(t,e,r),oa.implementBuildShadersWithReplacements(t,e,r),e.tris=ua.newInstance(),e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.projectionToWorld=qe(new Float64Array(16)),e.idxToView=qe(new Float64Array(16)),e.idxNormalMatrix=oo(new Float64Array(9)),e.modelToView=qe(new Float64Array(16)),e.projectionToView=qe(new Float64Array(16)),Jn(t,e,[]),e.VBOBuildTime={},fn(e.VBOBuildTime),Mq(t,e)}const II=Bt(bI,"vtkOpenGLImageMapper");var Lq={newInstance:II,extend:bI};ir("vtkAbstractImageMapper",II);function Nq(t,e){e.classHierarchy.push("vtkOpenGLImageSlice"),t.buildPass=r=>{if(!(!e.renderable||!e.renderable.getVisibility())&&r){if(!e.renderable)return;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes()}},t.traverseZBufferPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseOpaqueZBufferPass=r=>t.traverseOpaquePass(r),t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.zBufferPass=(r,n)=>t.opaquePass(r,n),t.opaqueZBufferPass=(r,n)=>t.opaquePass(r,n),t.opaquePass=(r,n)=>{r&&e.context.depthMask(!0)},t.translucentPass=(r,n)=>{e.context.depthMask(!r)},t.getKeyMatrices=()=>(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(En(e.keyMatrices.mcwc,e.renderable.getMatrix()),St(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.keyMatrixTime.modified()),e.keyMatrices)}const Pq={context:null,keyMatrixTime:null,keyMatrices:null};function OI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Pq,r),nn.extend(t,e,r),e.keyMatrixTime={},fn(e.keyMatrixTime,{mtime:0}),e.keyMatrices={mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),Nq(t,e)}const MI=Bt(OI,"vtkOpenGLImageSlice");var Aq={newInstance:MI,extend:OI};ir("vtkImageSlice",MI);const{vtkDebugMacro:kq}=Gr;function Vq(t,e){e.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),t.opaquePass=(r,n)=>{e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow");const i=e._openGLRenderer.getAspectRatio(),o=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,a=e._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(e.renderable.getUseZValues()){const c=n.getZBufferTexture(),l=Math.floor(c.getWidth()),f=Math.floor(c.getHeight()),u=e._openGLRenderWindow.getContext();c.bind();const d=n.getFramebuffer();d?d.saveCurrentBindingsAndBuffers():kq("No framebuffer to save/restore");const h=u.createFramebuffer();u.bindFramebuffer(u.FRAMEBUFFER,h),u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_2D,c.getHandle(),0),u.checkFramebufferStatus(u.FRAMEBUFFER)===u.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(l*f*4),u.viewport(0,0,l,f),u.readPixels(0,0,l,f,u.RGBA,u.UNSIGNED_BYTE,s)),d&&d.restorePreviousBindingsAndBuffers(),u.deleteFramebuffer(h)}e.renderable.invokeCallback(e.renderable.getInputData(),o,i,a,s)},t.queryPass=(r,n)=>{r&&e.renderable.getUseZValues()&&n.requestDepth()}}const Fq={};function RI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Fq,r),nn.extend(t,e,r),Vq(t,e)}const LI=Bt(RI,"vtkOpenGLPixelSpaceCallbackMapper");var Uq={newInstance:LI,extend:RI};ir("vtkPixelSpaceCallbackMapper",LI);const{vtkDebugMacro:Bq}=Gr;function Gq(t,e){e.classHierarchy.push("vtkOpenGLRenderer"),t.buildPass=r=>{if(r){if(!e.renderable)return;t.updateLights(),t.prepareNodes(),t.addMissingNode(e.renderable.getActiveCamera()),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes()}},t.updateLights=()=>{let r=0;const n=e.renderable.getLightsByReference();for(let i=0;i0&&r++;return r||(Bq("No lights are on, creating one."),e.renderable.createLight()),r},t.zBufferPass=r=>{if(r){let n=0;const i=e.context;e.renderable.getTransparent()||(e.context.clearColor(1,0,0,1),n|=i.COLOR_BUFFER_BIT),e.renderable.getPreserveDepthBuffer()||(i.clearDepth(1),n|=i.DEPTH_BUFFER_BIT,e.context.depthMask(!0));const o=t.getTiledSizeAndOrigin();i.enable(i.SCISSOR_TEST),i.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),i.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),i.colorMask(!0,!0,!0,!0),n&&i.clear(n),i.enable(i.DEPTH_TEST)}},t.opaqueZBufferPass=r=>t.zBufferPass(r),t.cameraPass=r=>{r&&t.clear()},t.getAspectRatio=()=>{const r=e._parent.getSizeByReference(),n=e.renderable.getViewportByReference();return r[0]*(n[2]-n[0])/((n[3]-n[1])*r[1])},t.getTiledSizeAndOrigin=()=>{const r=e.renderable.getViewportByReference(),n=[0,0,1,1],i=r[0]-n[0],o=r[1]-n[1],a=e._parent.normalizedDisplayToDisplay(i,o),s=Math.round(a[0]),c=Math.round(a[1]),l=r[2]-n[0],f=r[3]-n[1],u=e._parent.normalizedDisplayToDisplay(l,f);let d=Math.round(u[0])-s,h=Math.round(u[1])-c;return d<0&&(d=0),h<0&&(h=0),{usize:d,vsize:h,lowerLeftU:s,lowerLeftV:c}},t.clear=()=>{let r=0;const n=e.context;if(!e.renderable.getTransparent()){const o=e.renderable.getBackgroundByReference();n.clearColor(o[0],o[1],o[2],o[3]),r|=n.COLOR_BUFFER_BIT}e.renderable.getPreserveDepthBuffer()||(n.clearDepth(1),r|=n.DEPTH_BUFFER_BIT,n.depthMask(!0)),n.colorMask(!0,!0,!0,!0);const i=t.getTiledSizeAndOrigin();n.enable(n.SCISSOR_TEST),n.scissor(i.lowerLeftU,i.lowerLeftV,i.usize,i.vsize),n.viewport(i.lowerLeftU,i.lowerLeftV,i.usize,i.vsize),r&&n.clear(r),n.enable(n.DEPTH_TEST)},t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources(),e.renderable&&e.renderable.getViewProps().forEach(r=>{r.modified()})},t.setOpenGLRenderWindow=r=>{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))}}const Wq={context:null,_openGLRenderWindow:null,selector:null};function NI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Wq,r),nn.extend(t,e,r),gi(t,e,["shaderCache"]),Jn(t,e,["selector"]),fh(t,e,["openGLRenderWindow"]),Gq(t,e)}const PI=Bt(NI,"vtkOpenGLRenderer");var zq={newInstance:PI,extend:NI};ir("vtkRenderer",PI);const{vtkErrorMacro:r8}=Gr;function $q(t,e){e.classHierarchy.push("vtkOpenGLSkybox"),t.buildPass=r=>{if(r){e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow),e.openGLTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const n=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(n.getActiveCamera())}},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},t.opaquePass=(r,n)=>{if(r&&!e._openGLRenderer.getSelector()){t.updateBufferObjects(),e.context.depthMask(!0),e._openGLRenderWindow.getShaderCache().readyShaderProgram(e.tris.getProgram()),e.openGLTexture.render(e._openGLRenderWindow);const i=e.openGLTexture.getTextureUnit();e.tris.getProgram().setUniformi("sbtexture",i);const o=e._openGLRenderer.getRenderable(),a=e.openGLCamera.getKeyMatrices(o),s=new Float64Array(16);if($n(s,a.wcpc),e.tris.getProgram().setUniformMatrix("IMCPCMatrix",s),e.lastFormat==="box"){const c=o.getActiveCamera().getPosition();e.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}e.tris.getVAO().bind(),e.context.drawArrays(e.context.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.openGLTexture.deactivate()}},t.updateBufferObjects=()=>{if(!e.tris.getCABO().getElementCount()){const n=new Float32Array(12);for(let s=0;s<4;s++)n[s*3]=s%2*2-1,n[s*3+1]=s>1?1:-1,n[s*3+2]=1;const i=tt.newInstance({numberOfComponents:3,values:n});i.setName("points");const o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=tt.newInstance({numberOfComponents:1,values:o});e.tris.getCABO().createVBO(a,"polys",Vr.SURFACE,{points:i,cellOffset:0})}e.renderable.getFormat()!==e.lastFormat&&(e.lastFormat=e.renderable.getFormat(),e.lastFormat==="box"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec + `)]).result;break;case 2:s=ce.substitute(s,"//VTK::TCoord::Impl",["vec4 tcolor = texture2D(texture1, tcoordVCVSOutput);","float intensity = tcolor.r*cscale0 + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(intensity, 0.5)).rgb, pwfscale0*tcolor.g + pwfshift0);"]).result;break;case 3:s=ce.substitute(s,"//VTK::TCoord::Impl",["vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, opacity);"]).result;break;default:s=ce.substitute(s,"//VTK::TCoord::Impl",["vec4 tcolor = cscale0*texture2D(texture1, tcoordVCVSOutput.st) + cshift0;","gl_FragData[0] = vec4(texture2D(colorTexture1, vec2(tcolor.r,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.g,0.5)).r,"," texture2D(colorTexture1, vec2(tcolor.b,0.5)).r, tcolor.a);"]).result}e.haveSeenDepthRequest&&(s=ce.substitute(s,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),n.Vertex=a,n.Fragment=s,t.replaceShaderClip(n,i,o),t.replaceShaderCoincidentOffset(n,i,o)},t.replaceShaderClip=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){let c=e.renderable.getNumberOfClippingPlanes();c>6&&(Dt("OpenGL has a limit of 6 clipping planes"),c=6),a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=ce.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,s=ce.substitute(s,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getNeedToRebuildShaders=(n,i,o)=>{var l;const a=e.openGLTexture.getComponents(),s=o.getProperty().getIndependentComponents();let c=!1;return(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(c=!0),c||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||((l=n.getProgram())==null?void 0:l.getHandle())===0||e.lastTextureComponents!==a||e.lastIndependentComponents!==s?(e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=a,e.lastIndependentComponents=s,!0):!1},t.updateShaders=(n,i,o)=>{if(e.lastBoundBO=n,t.getNeedToRebuildShaders(n,i,o)){const a={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(a,i,o);const s=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);s!==n.getProgram()&&(n.setProgram(s),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),t.setMapperShaderParameters(n,i,o),t.setCameraShaderParameters(n,i,o),t.setPropertyShaderParameters(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexMC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Vl("Error setting vertexMC in shader VAO.")),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),e.context.FALSE)||Vl("Error setting tcoordMC in shader VAO.")),n.getAttributeUpdateTime().modified());const a=e.openGLTexture.getTextureUnit();n.getProgram().setUniformi("texture1",a);const s=e.openGLTexture.getComponents(),c=o.getProperty().getIndependentComponents();if(c)for(let g=0;g6&&(Dt("OpenGL has a limit of 6 clipping planes"),g=6);const v=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,x=v?_n(e.imagematinv,o.getMatrix()):o.getMatrix();v&&(St(x,x),bt(x,x,v),St(x,x)),St(e.imagemat,e.currentInput.getIndexToWorld()),bt(e.imagematinv,x,e.imagemat);const m=[];for(let y=0;y{const a=n.getProgram(),s=e.openGLImageSlice.getKeyMatrices(),c=e.currentInput,l=c.getIndexToWorld();bt(e.imagemat,s.mcwc,l);const f=e.openGLCamera.getKeyMatrices(i);if(bt(e.imagemat,f.wcpc,e.imagemat),n.getCABO().getCoordShiftAndScaleEnabled()){const d=n.getCABO().getInverseShiftAndScaleMatrix();bt(e.imagemat,e.imagemat,d)}if(a.setUniformMatrix("MCPCMatrix",e.imagemat),o.getProperty().getUseLabelOutline()===!0){const d=c.getWorldToIndex(),h=c.getDimensions();a.setUniform3i("imageDimensions",h[0],h[1],1),a.setUniformMatrix("vWCtoIDX",d);const g=e.openGLCamera.getKeyMatrices(i);$n(e.projectionToWorld,g.wcpc),e.openGLCamera.getKeyMatrices(i),a.setUniformMatrix("PCWCMatrix",e.projectionToWorld);const p=t.getRenderTargetSize();a.setUniformf("vpWidth",p[0]),a.setUniformf("vpHeight",p[1]);const v=t.getRenderTargetOffset();a.setUniformf("vpOffsetX",v[0]/p[0]),a.setUniformf("vpOffsetY",v[1]/p[1])}},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram(),c=o.getProperty().getOpacity();a.setUniformf("opacity",c)},t.renderPieceStart=(n,i)=>{t.updateBufferObjects(n,i),e.lastBoundBO=null},t.renderPieceDraw=(n,i)=>{const o=e.context;e.openGLTexture.activate(),e.colorTexture.activate(),e.labelOutlineThicknessTexture.activate(),e.pwfTexture.activate(),e.tris.getCABO().getElementCount()&&(t.updateShaders(e.tris,n,i),o.drawArrays(o.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release()),e.openGLTexture.deactivate(),e.colorTexture.deactivate(),e.labelOutlineThicknessTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(n,i)=>{},t.renderPiece=(n,i)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getCurrentImage(),t.invokeEvent({type:"EndEvent"}),!e.currentInput){Vl("No input!");return}t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i)},t.computeBounds=(n,i)=>{if(!t.getInput()){y0(e.bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i)},t.getNeedToRebuildBufferObjects=(n,i)=>{var o,a,s,c;return e.VBOBuildTime.getMTime(){var I,R,M,L;const o=e.currentInput;if(!o)return;const a=o.getPointData()&&o.getPointData().getScalars();if(!a)return;const s=a.getDataType(),c=a.getNumberOfComponents(),l=i.getProperty(),f=l.getInterpolationType(),u=l.getIndependentComponents(),d=u?c:1,h=u?2*d:1,g=l.getRGBTransferFunction(),p=sa(g,u,d),v=e._openGLRenderWindow.getGraphicsResourceForObject(g);if(!((I=v==null?void 0:v.oglObject)!=null&&I.getHandle())||(v==null?void 0:v.hash)!==p){e.colorTexture=yn.newInstance({resizable:!0}),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const A=1024,G=A*h*3,P=new Uint8ClampedArray(G);if(f===Xc.NEAREST?(e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST)):(e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR)),g){const N=new Float32Array(A*3);for(let V=0;V1?1:0;const V=[ho.X,ho.Y,ho.Z].includes(e.renderable.getSlicingMode())?T:_,$=o.getSpatialExtent(),H=a.getData();let Y=null;if(S===ho.I){Y=new H.constructor(A[2]*A[1]*c);let fe=0;for(let le=0;le{var c;const i=n.getProperty().getLabelOutlineThickness(),o=e._openGLRenderWindow.getGraphicsResourceForObject(i),a=`${i.join("-")}`;if(!((c=o==null?void 0:o.oglObject)!=null&&c.getHandle())||(o==null?void 0:o.hash)!==a){const d=new Uint8Array(1024);for(let h=0;h<1024;++h){const g=typeof i[h]<"u"?i[h]:i[0];d[h]=g}e.labelOutlineThicknessTexture=yn.newInstance({resizable:!1}),e.labelOutlineThicknessTexture.setOpenGLRenderWindow(e._openGLRenderWindow),e.labelOutlineThicknessTexture.resetFormatAndType(),e.labelOutlineThicknessTexture.setMinificationFilter(Je.NEAREST),e.labelOutlineThicknessTexture.setMagnificationFilter(Je.NEAREST),e.labelOutlineThicknessTexture.create2DFromRaw(1024,1,1,vt.UNSIGNED_CHAR,d),i&&(e._openGLRenderWindow.setGraphicsResourceForObject(i,e.labelOutlineThicknessTexture,a),i!==e._labelOutlineThicknessArray&&(e._openGLRenderWindow.registerGraphicsResourceUser(i,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._labelOutlineThicknessArray,t)),e._labelOutlineThicknessArray=i)}else e.labelOutlineThicknessTexture=o.oglObject},t.getRenderTargetSize=()=>{if(e._useSmallViewport)return[e._smallViewportWidth,e._smallViewportHeight];const{usize:n,vsize:i}=e._openGLRenderer.getTiledSizeAndOrigin();return[n,i]},t.getRenderTargetOffset=()=>{const{lowerLeftU:n,lowerLeftV:i}=e._openGLRenderer.getTiledSizeAndOrigin();return[n,i]},t.delete=gh(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const Vq={VBOBuildTime:0,VBOBuildString:null,openGLTexture:null,tris:null,imagemat:null,imagematinv:null,colorTexture:null,pwfTexture:null,labelOutlineThicknessTexture:null,labelOutlineThicknessTextureString:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0};function LI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Vq,r),tn.extend(t,e,r),aa.implementReplaceShaderCoincidentOffset(t,e,r),aa.implementBuildShadersWithReplacements(t,e,r),e.tris=fa.newInstance(),e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.projectionToWorld=qe(new Float64Array(16)),e.idxToView=qe(new Float64Array(16)),e.idxNormalMatrix=ao(new Float64Array(9)),e.modelToView=qe(new Float64Array(16)),e.projectionToView=qe(new Float64Array(16)),Jn(t,e,[]),e.VBOBuildTime={},un(e.VBOBuildTime),kq(t,e)}const NI=Bt(LI,"vtkOpenGLImageMapper");var Fq={newInstance:NI,extend:LI};ir("vtkAbstractImageMapper",NI);function Uq(t,e){e.classHierarchy.push("vtkOpenGLImageSlice"),t.buildPass=r=>{if(!(!e.renderable||!e.renderable.getVisibility())&&r){if(!e.renderable)return;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes()}},t.traverseZBufferPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseOpaqueZBufferPass=r=>t.traverseOpaquePass(r),t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.zBufferPass=(r,n)=>t.opaquePass(r,n),t.opaqueZBufferPass=(r,n)=>t.opaquePass(r,n),t.opaquePass=(r,n)=>{r&&e.context.depthMask(!0)},t.translucentPass=(r,n)=>{e.context.depthMask(!r)},t.getKeyMatrices=()=>(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(_n(e.keyMatrices.mcwc,e.renderable.getMatrix()),St(e.keyMatrices.mcwc,e.keyMatrices.mcwc),e.keyMatrixTime.modified()),e.keyMatrices)}const Bq={context:null,keyMatrixTime:null,keyMatrices:null};function PI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Bq,r),tn.extend(t,e,r),e.keyMatrixTime={},un(e.keyMatrixTime,{mtime:0}),e.keyMatrices={mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),Uq(t,e)}const AI=Bt(PI,"vtkOpenGLImageSlice");var Gq={newInstance:AI,extend:PI};ir("vtkImageSlice",AI);const{vtkDebugMacro:Wq}=Br;function zq(t,e){e.classHierarchy.push("vtkOpenGLPixelSpaceCallbackMapper"),t.opaquePass=(r,n)=>{e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow");const i=e._openGLRenderer.getAspectRatio(),o=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,a=e._openGLRenderer.getTiledSizeAndOrigin();let s=null;if(e.renderable.getUseZValues()){const c=n.getZBufferTexture(),l=Math.floor(c.getWidth()),f=Math.floor(c.getHeight()),u=e._openGLRenderWindow.getContext();c.bind();const d=n.getFramebuffer();d?d.saveCurrentBindingsAndBuffers():Wq("No framebuffer to save/restore");const h=u.createFramebuffer();u.bindFramebuffer(u.FRAMEBUFFER,h),u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_2D,c.getHandle(),0),u.checkFramebufferStatus(u.FRAMEBUFFER)===u.FRAMEBUFFER_COMPLETE&&(s=new Uint8Array(l*f*4),u.viewport(0,0,l,f),u.readPixels(0,0,l,f,u.RGBA,u.UNSIGNED_BYTE,s)),d&&d.restorePreviousBindingsAndBuffers(),u.deleteFramebuffer(h)}e.renderable.invokeCallback(e.renderable.getInputData(),o,i,a,s)},t.queryPass=(r,n)=>{r&&e.renderable.getUseZValues()&&n.requestDepth()}}const $q={};function kI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$q,r),tn.extend(t,e,r),zq(t,e)}const VI=Bt(kI,"vtkOpenGLPixelSpaceCallbackMapper");var jq={newInstance:VI,extend:kI};ir("vtkPixelSpaceCallbackMapper",VI);const{vtkDebugMacro:Hq}=Br;function Kq(t,e){e.classHierarchy.push("vtkOpenGLRenderer"),t.buildPass=r=>{if(r){if(!e.renderable)return;t.updateLights(),t.prepareNodes(),t.addMissingNode(e.renderable.getActiveCamera()),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes()}},t.updateLights=()=>{let r=0;const n=e.renderable.getLightsByReference();for(let i=0;i0&&r++;return r||(Hq("No lights are on, creating one."),e.renderable.createLight()),r},t.zBufferPass=r=>{if(r){let n=0;const i=e.context;e.renderable.getTransparent()||(e.context.clearColor(1,0,0,1),n|=i.COLOR_BUFFER_BIT),e.renderable.getPreserveDepthBuffer()||(i.clearDepth(1),n|=i.DEPTH_BUFFER_BIT,e.context.depthMask(!0));const o=t.getTiledSizeAndOrigin();i.enable(i.SCISSOR_TEST),i.scissor(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),i.viewport(o.lowerLeftU,o.lowerLeftV,o.usize,o.vsize),i.colorMask(!0,!0,!0,!0),n&&i.clear(n),i.enable(i.DEPTH_TEST)}},t.opaqueZBufferPass=r=>t.zBufferPass(r),t.cameraPass=r=>{r&&t.clear()},t.getAspectRatio=()=>{const r=e._parent.getSizeByReference(),n=e.renderable.getViewportByReference();return r[0]*(n[2]-n[0])/((n[3]-n[1])*r[1])},t.getTiledSizeAndOrigin=()=>{const r=e.renderable.getViewportByReference(),n=[0,0,1,1],i=r[0]-n[0],o=r[1]-n[1],a=e._parent.normalizedDisplayToDisplay(i,o),s=Math.round(a[0]),c=Math.round(a[1]),l=r[2]-n[0],f=r[3]-n[1],u=e._parent.normalizedDisplayToDisplay(l,f);let d=Math.round(u[0])-s,h=Math.round(u[1])-c;return d<0&&(d=0),h<0&&(h=0),{usize:d,vsize:h,lowerLeftU:s,lowerLeftV:c}},t.clear=()=>{let r=0;const n=e.context;if(!e.renderable.getTransparent()){const o=e.renderable.getBackgroundByReference();n.clearColor(o[0],o[1],o[2],o[3]),r|=n.COLOR_BUFFER_BIT}e.renderable.getPreserveDepthBuffer()||(n.clearDepth(1),r|=n.DEPTH_BUFFER_BIT,n.depthMask(!0)),n.colorMask(!0,!0,!0,!0);const i=t.getTiledSizeAndOrigin();n.enable(n.SCISSOR_TEST),n.scissor(i.lowerLeftU,i.lowerLeftV,i.usize,i.vsize),n.viewport(i.lowerLeftU,i.lowerLeftV,i.usize,i.vsize),r&&n.clear(r),n.enable(n.DEPTH_TEST)},t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources(),e.renderable&&e.renderable.getViewProps().forEach(r=>{r.modified()})},t.setOpenGLRenderWindow=r=>{e._openGLRenderWindow!==r&&(t.releaseGraphicsResources(),e._openGLRenderWindow=r,e.context=null,r&&(e.context=e._openGLRenderWindow.getContext()))}}const qq={context:null,_openGLRenderWindow:null,selector:null};function FI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qq,r),tn.extend(t,e,r),gi(t,e,["shaderCache"]),Jn(t,e,["selector"]),hh(t,e,["openGLRenderWindow"]),Kq(t,e)}const UI=Bt(FI,"vtkOpenGLRenderer");var Xq={newInstance:UI,extend:FI};ir("vtkRenderer",UI);const{vtkErrorMacro:a8}=Br;function Yq(t,e){e.classHierarchy.push("vtkOpenGLSkybox"),t.buildPass=r=>{if(r){e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow),e.openGLTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const n=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(n.getActiveCamera())}},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementOpaqueActorCount()}},t.opaquePass=(r,n)=>{if(r&&!e._openGLRenderer.getSelector()){t.updateBufferObjects(),e.context.depthMask(!0),e._openGLRenderWindow.getShaderCache().readyShaderProgram(e.tris.getProgram()),e.openGLTexture.render(e._openGLRenderWindow);const i=e.openGLTexture.getTextureUnit();e.tris.getProgram().setUniformi("sbtexture",i);const o=e._openGLRenderer.getRenderable(),a=e.openGLCamera.getKeyMatrices(o),s=new Float64Array(16);if($n(s,a.wcpc),e.tris.getProgram().setUniformMatrix("IMCPCMatrix",s),e.lastFormat==="box"){const c=o.getActiveCamera().getPosition();e.tris.getProgram().setUniform3f("camPos",c[0],c[1],c[2])}e.tris.getVAO().bind(),e.context.drawArrays(e.context.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.openGLTexture.deactivate()}},t.updateBufferObjects=()=>{if(!e.tris.getCABO().getElementCount()){const n=new Float32Array(12);for(let s=0;s<4;s++)n[s*3]=s%2*2-1,n[s*3+1]=s>1?1:-1,n[s*3+2]=1;const i=tt.newInstance({numberOfComponents:3,values:n});i.setName("points");const o=new Uint16Array(8);o[0]=3,o[1]=0,o[2]=1,o[3]=3,o[4]=3,o[5]=0,o[6]=3,o[7]=2;const a=tt.newInstance({numberOfComponents:1,values:o});e.tris.getCABO().createVBO(a,"polys",kr.SURFACE,{points:i,cellOffset:0})}e.renderable.getFormat()!==e.lastFormat&&(e.lastFormat=e.renderable.getFormat(),e.lastFormat==="box"&&e.tris.setProgram(e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(`//VTK::System::Dec attribute vec3 vertexMC; uniform mat4 IMCPCMatrix; varying vec3 TexCoords; @@ -353,7 +353,7 @@ void main() uniform sampler2D sbtexture; void main () { gl_FragData[0] = texture2D(sbtexture, TexCoords); - }`,"")),e.tris.getShaderSourceTime().modified(),e.tris.getVAO().bind(),e.tris.getVAO().addAttributeArray(e.tris.getProgram(),e.tris.getCABO(),"vertexMC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||r8("Error setting vertexMC in shader VAO."));const r=e.renderable.getTextures();r.length||r8("vtkSkybox requires a texture map"),e.openGLTexture.getRenderable()!==r[0]&&(e.openGLTexture.releaseGraphicsResources(e._openGLRenderWindow),e.openGLTexture.setRenderable(r[0]))}}const jq={context:null};function AI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jq,r),nn.extend(t,e,r),e.openGLTexture=yn.newInstance(),e.tris=ua.newInstance(),e.keyMatrixTime={},fn(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:oo(new Float64Array(9)),mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),gi(t,e,["activeTextures"]),$q(t,e)}const kI=Bt(AI);var Hq={newInstance:kI,extend:AI};ir("vtkSkybox",kI);var Kq=`//VTK::System::Dec + }`,"")),e.tris.getShaderSourceTime().modified(),e.tris.getVAO().bind(),e.tris.getVAO().addAttributeArray(e.tris.getProgram(),e.tris.getCABO(),"vertexMC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||a8("Error setting vertexMC in shader VAO."));const r=e.renderable.getTextures();r.length||a8("vtkSkybox requires a texture map"),e.openGLTexture.getRenderable()!==r[0]&&(e.openGLTexture.releaseGraphicsResources(e._openGLRenderWindow),e.openGLTexture.setRenderable(r[0]))}}const Jq={context:null};function BI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Jq,r),tn.extend(t,e,r),e.openGLTexture=yn.newInstance(),e.tris=fa.newInstance(),e.keyMatrixTime={},un(e.keyMatrixTime,{mtime:0}),e.keyMatrices={normalMatrix:ao(new Float64Array(9)),mcwc:qe(new Float64Array(16))},Jn(t,e,["context"]),gi(t,e,["activeTextures"]),Yq(t,e)}const GI=Bt(BI);var Zq={newInstance:GI,extend:BI};ir("vtkSkybox",GI);var Qq=`//VTK::System::Dec /*========================================================================= @@ -434,7 +434,7 @@ void main() gl_Position = VCPCMatrix * vertexVCVSOutput; } -`;const{vtkErrorMacro:qq}=Gr;function Xq(t,e){e.classHierarchy.push("vtkOpenGLSphereMapper");const r={...t};t.getShaderTemplate=(n,i,o)=>{n.Vertex=Kq,n.Fragment=yh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",[`uniform mat4 VCPCMatrix; +`;const{vtkErrorMacro:eX}=Br;function tX(t,e){e.classHierarchy.push("vtkOpenGLSphereMapper");const r={...t};t.getShaderTemplate=(n,i,o)=>{n.Vertex=Qq,n.Fragment=wh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",[`uniform mat4 VCPCMatrix; `,"uniform mat4 MCVCMatrix;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Dec",["varying vec4 vertexVCVSOutput;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Impl",[`vec4 vertexVC = vertexVCVSOutput; `]).result;const c=[`uniform float invertedDepth; `,`uniform int cameraParallel; @@ -469,7 +469,7 @@ void main() `,` vertexVC.xyz = normalVCVSOutput*radiusVCVSOutput + centerVCVSOutput; `,` } `,` vec4 pos = VCPCMatrix * vertexVC; -`,l]).result,s=ce.substitute(s,"//VTK::Normal::Impl","").result,e.haveSeenDepthRequest&&(s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),n.Vertex=a,n.Fragment=s,r.replaceShaderValues(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{if(n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&n.getProgram().isAttributeUsed("offsetMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"offsetMC",12,n.getCABO().getStride(),e.context.FLOAT,2,!1)||qq("Error setting 'offsetMC' in shader VAO.")),n.getProgram().isUniformUsed("invertedDepth")&&n.getProgram().setUniformf("invertedDepth",e.invert?-1:1),n.getProgram().isUniformUsed("scaleFactor")){const s=e.currentInput.getPointData();e.renderable.getScaleArray()!=null&&s.hasArray(e.renderable.getScaleArray())?n.getProgram().setUniformf("scaleFactor",e.renderable.getScaleFactor()):n.getProgram().setUniformf("scaleFactor",1)}r.setMapperShaderParameters(n,i,o)},t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=i.getActiveCamera(),c=e.openGLCamera.getKeyMatrices(i);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",c.vcpc),a.isUniformUsed("MCVCMatrix"))if(o.getIsIdentity())a.setUniformMatrix("MCVCMatrix",c.wcvc);else{const l=e.openGLActor.getKeyMatrices(),f=new Float64Array(16);bt(f,c.wcvc,l.mcwc),a.setUniformMatrix("MCVCMatrix",f)}a.isUniformUsed("cameraParallel")&&n.getProgram().setUniformi("cameraParallel",s.getParallelProjection())},t.getOpenGLMode=(n,i)=>e.context.TRIANGLES,t.buildBufferObjects=(n,i)=>{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors(),s=e.primitives[e.primTypes.Tris].getCABO(),c=o.getPointData(),l=o.getPoints(),f=l.getNumberOfPoints(),u=l.getData(),d=5;let h=null;e.renderable.getScaleArray()!=null&&c.hasArray(e.renderable.getScaleArray())&&(h=c.getArray(e.renderable.getScaleArray()).getData());let g=null,p=0,v=null;a?(p=a.getNumberOfComponents(),s.setColorOffset(0),s.setColorBOStride(4),g=a.getData(),v=new Uint8Array(3*f*4),s.getColorBO()||s.setColorBO(Na.newInstance()),s.getColorBO().setOpenGLRenderWindow(e._openGLRenderWindow)):s.getColorBO()&&s.setColorBO(null),s.setColorComponents(p);const x=new Float32Array(d*f*3);s.setStride(d*4);const m=Math.cos(Vn(30));let y=0,w=0,C=0,S=0;for(let T=0;T2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Yq,r),r2.extend(t,e,r),Xq(t,e)}const FI=Bt(VI,"vtkOpenGLSphereMapper");var Jq={newInstance:FI,extend:VI};ir("vtkSphereMapper",FI);var Zq=`//VTK::System::Dec +`,l]).result,s=ce.substitute(s,"//VTK::Normal::Impl","").result,e.haveSeenDepthRequest&&(s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),n.Vertex=a,n.Fragment=s,r.replaceShaderValues(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{if(n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&n.getProgram().isAttributeUsed("offsetMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"offsetMC",12,n.getCABO().getStride(),e.context.FLOAT,2,!1)||eX("Error setting 'offsetMC' in shader VAO.")),n.getProgram().isUniformUsed("invertedDepth")&&n.getProgram().setUniformf("invertedDepth",e.invert?-1:1),n.getProgram().isUniformUsed("scaleFactor")){const s=e.currentInput.getPointData();e.renderable.getScaleArray()!=null&&s.hasArray(e.renderable.getScaleArray())?n.getProgram().setUniformf("scaleFactor",e.renderable.getScaleFactor()):n.getProgram().setUniformf("scaleFactor",1)}r.setMapperShaderParameters(n,i,o)},t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=i.getActiveCamera(),c=e.openGLCamera.getKeyMatrices(i);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",c.vcpc),a.isUniformUsed("MCVCMatrix"))if(o.getIsIdentity())a.setUniformMatrix("MCVCMatrix",c.wcvc);else{const l=e.openGLActor.getKeyMatrices(),f=new Float64Array(16);bt(f,c.wcvc,l.mcwc),a.setUniformMatrix("MCVCMatrix",f)}a.isUniformUsed("cameraParallel")&&n.getProgram().setUniformi("cameraParallel",s.getParallelProjection())},t.getOpenGLMode=(n,i)=>e.context.TRIANGLES,t.buildBufferObjects=(n,i)=>{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors(),s=e.primitives[e.primTypes.Tris].getCABO(),c=o.getPointData(),l=o.getPoints(),f=l.getNumberOfPoints(),u=l.getData(),d=5;let h=null;e.renderable.getScaleArray()!=null&&c.hasArray(e.renderable.getScaleArray())&&(h=c.getArray(e.renderable.getScaleArray()).getData());let g=null,p=0,v=null;a?(p=a.getNumberOfComponents(),s.setColorOffset(0),s.setColorBOStride(4),g=a.getData(),v=new Uint8Array(3*f*4),s.getColorBO()||s.setColorBO(Pa.newInstance()),s.getColorBO().setOpenGLRenderWindow(e._openGLRenderWindow)):s.getColorBO()&&s.setColorBO(null),s.setColorComponents(p);const x=new Float32Array(d*f*3);s.setStride(d*4);const m=Math.cos(Vn(30));let y=0,w=0,C=0,S=0;for(let T=0;T2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nX,r),o2.extend(t,e,r),tX(t,e)}const zI=Bt(WI,"vtkOpenGLSphereMapper");var rX={newInstance:zI,extend:WI};ir("vtkSphereMapper",zI);var iX=`//VTK::System::Dec /*========================================================================= @@ -570,7 +570,7 @@ void main() gl_Position = VCPCMatrix * vertexVCVSOutput; } -`;const{vtkErrorMacro:dg}=Gr;function Qq(t,e){e.classHierarchy.push("vtkOpenGLStickMapper");const r={...t};t.getShaderTemplate=(n,i,o)=>{n.Vertex=Zq,n.Fragment=yh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",[`uniform mat4 VCPCMatrix; +`;const{vtkErrorMacro:gg}=Br;function oX(t,e){e.classHierarchy.push("vtkOpenGLStickMapper");const r={...t};t.getShaderTemplate=(n,i,o)=>{n.Vertex=iX,n.Fragment=wh,n.Geometry=""},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;a=ce.substitute(a,"//VTK::Camera::Dec",[`uniform mat4 VCPCMatrix; `,"uniform mat4 MCVCMatrix;"]).result,s=ce.substitute(s,"//VTK::PositionVC::Dec","varying vec4 vertexVCVSOutput;").result,s=ce.substitute(s,"//VTK::PositionVC::Impl",` vec4 vertexVC = vertexVCVSOutput; `).result;const c=[`uniform int cameraParallel; `,`varying float radiusVCVSOutput; @@ -630,8 +630,8 @@ void main() `,` } `,` } `,` vec4 pos = VCPCMatrix * vertexVC; -`,l]).result,s=ce.substitute(s,"//VTK::Normal::Impl","").result,e.haveSeenDepthRequest&&(s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),n.Vertex=a,n.Fragment=s,r.replaceShaderValues(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("orientMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"orientMC",12,n.getCABO().getStride(),e.context.FLOAT,3,!1)||dg("Error setting 'orientMC' in shader VAO.")),n.getProgram().isAttributeUsed("offsetMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"offsetMC",0,n.getCABO().getColorBOStride(),e.context.UNSIGNED_BYTE,3,!0)||dg("Error setting 'offsetMC' in shader VAO.")),n.getProgram().isAttributeUsed("radiusMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"radiusMC",24,n.getCABO().getStride(),e.context.FLOAT,1,!1)||dg("Error setting 'radiusMC' in shader VAO."))),r.setMapperShaderParameters(n,i,o)},t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=i.getActiveCamera(),c=e.openGLCamera.getKeyMatrices(i);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",c.vcpc),o.getIsIdentity())a.isUniformUsed("MCVCMatrix")&&a.setUniformMatrix("MCVCMatrix",c.wcvc),a.isUniformUsed("normalMatrix")&&a.setUniformMatrix3x3("normalMatrix",c.normalMatrix);else{const l=e.openGLActor.getKeyMatrices();if(a.isUniformUsed("MCVCMatrix")){const f=new Float64Array(16);bt(f,c.wcvc,l.mcwc),a.setUniformMatrix("MCVCMatrix",f)}if(a.isUniformUsed("normalMatrix")){const f=new Float64Array(9);$u(f,c.normalMatrix,l.normalMatrix),a.setUniformMatrix3x3("normalMatrix",f)}}a.isUniformUsed("cameraParallel")&&n.getProgram().setUniformi("cameraParallel",s.getParallelProjection())},t.getOpenGLMode=(n,i)=>e.context.TRIANGLES,t.buildBufferObjects=(n,i)=>{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors(),s=e.primitives[e.primTypes.Tris].getCABO(),c=o.getPointData(),l=o.getPoints(),f=l.getNumberOfPoints(),u=l.getData();let d=3;d+=4;let h=null,g=0;s.setColorBOStride(4),s.getColorBO()||s.setColorBO(Na.newInstance()),s.getColorBO().setOpenGLRenderWindow(e._openGLRenderWindow),a&&(g=a.getNumberOfComponents(),s.setColorOffset(4),h=a.getData(),s.setColorBOStride(8)),s.setColorComponents(g),s.setStride(d*4);const p=new Float32Array(d*f*12),v=new Uint8Array(12*f*(h?8:4));let x=null,m=null;e.renderable.getScaleArray()!=null&&c.hasArray(e.renderable.getScaleArray())&&(x=c.getArray(e.renderable.getScaleArray()).getData()),e.renderable.getOrientationArray()!=null&&c.hasArray(e.renderable.getOrientationArray())?m=c.getArray(e.renderable.getOrientationArray()).getData():dg([`Error setting orientationArray. -`,"You have to specify the stick orientation"]);const y=[0,1,3,0,3,2,2,3,5,2,5,4];let w=0,C=0,S=0,T=0;for(let _=0;_=4?255:0,v[T++]=y[b]>=2?255:0,v[T++]=255,C=_*g,h&&(v[T++]=h[C],v[T++]=h[C+1],v[T++]=h[C+2],v[T++]=h[C+3])}s.setElementCount(S/d),s.upload(p,Fa.ARRAY_BUFFER),s.getColorBO().upload(v,Fa.ARRAY_BUFFER),e.VBOBuildTime.modified()}}const eX={};function UI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eX,r),r2.extend(t,e,r),Qq(t,e)}const BI=Bt(UI,"vtkOpenGLStickMapper");var tX={newInstance:BI,extend:UI};ir("vtkStickMapper",BI);function nX(t,e){e.classHierarchy.push("vtkOpenGLVolume"),t.buildPass=r=>{!e.renderable||!e.renderable.getVisibility()||r&&(e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementVolumeCount()}},t.traverseVolumePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0].traverse(r),t.apply(r,!1))},t.volumePass=r=>{!e.renderable||!e.renderable.getVisibility()||e.context.depthMask(!r)},t.getKeyMatrices=()=>(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),En(e.MCWCMatrix,e.renderable.getMatrix()),St(e.MCWCMatrix,e.MCWCMatrix),e.renderable.getIsIdentity()?oo(e.normalMatrix):(qm(e.normalMatrix,e.MCWCMatrix),mh(e.normalMatrix,e.normalMatrix),dw(e.normalMatrix,e.normalMatrix)),e.keyMatrixTime.modified()),{mcwc:e.MCWCMatrix,normalMatrix:e.normalMatrix})}const rX={};function GI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rX,r),nn.extend(t,e,r),e.keyMatrixTime={},fn(e.keyMatrixTime,{mtime:0}),e.normalMatrix=new Float64Array(9),e.MCWCMatrix=new Float64Array(16),Jn(t,e,["context"]),nX(t,e)}const WI=Bt(GI,"vtkOpenGLVolume");var iX={newInstance:WI,extend:GI};ir("vtkVolume",WI);const K5={NEAREST:0,LINEAR:1,FAST_LINEAR:2},zI={FRACTIONAL:0,PROPORTIONAL:1},Ip={CUSTOM:0,ADDITIVE:1,COLORIZE:2};var $I={InterpolationType:K5,OpacityMode:zI,ColorMixPreset:Ip},oX=`//VTK::System::Dec +`,l]).result,s=ce.substitute(s,"//VTK::Normal::Impl","").result,e.haveSeenDepthRequest&&(s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float computedZ = (pos.z / pos.w + 1.0) / 2.0;","float iz = floor(computedZ * 65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result),n.Vertex=a,n.Fragment=s,r.replaceShaderValues(n,i,o)},t.setMapperShaderParameters=(n,i,o)=>{n.getCABO().getElementCount()&&(e.VBOBuildTime>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(n.getProgram().isAttributeUsed("orientMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"orientMC",12,n.getCABO().getStride(),e.context.FLOAT,3,!1)||gg("Error setting 'orientMC' in shader VAO.")),n.getProgram().isAttributeUsed("offsetMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO().getColorBO(),"offsetMC",0,n.getCABO().getColorBOStride(),e.context.UNSIGNED_BYTE,3,!0)||gg("Error setting 'offsetMC' in shader VAO.")),n.getProgram().isAttributeUsed("radiusMC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"radiusMC",24,n.getCABO().getStride(),e.context.FLOAT,1,!1)||gg("Error setting 'radiusMC' in shader VAO."))),r.setMapperShaderParameters(n,i,o)},t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=i.getActiveCamera(),c=e.openGLCamera.getKeyMatrices(i);if(a.isUniformUsed("VCPCMatrix")&&a.setUniformMatrix("VCPCMatrix",c.vcpc),o.getIsIdentity())a.isUniformUsed("MCVCMatrix")&&a.setUniformMatrix("MCVCMatrix",c.wcvc),a.isUniformUsed("normalMatrix")&&a.setUniformMatrix3x3("normalMatrix",c.normalMatrix);else{const l=e.openGLActor.getKeyMatrices();if(a.isUniformUsed("MCVCMatrix")){const f=new Float64Array(16);bt(f,c.wcvc,l.mcwc),a.setUniformMatrix("MCVCMatrix",f)}if(a.isUniformUsed("normalMatrix")){const f=new Float64Array(9);Ku(f,c.normalMatrix,l.normalMatrix),a.setUniformMatrix3x3("normalMatrix",f)}}a.isUniformUsed("cameraParallel")&&n.getProgram().setUniformi("cameraParallel",s.getParallelProjection())},t.getOpenGLMode=(n,i)=>e.context.TRIANGLES,t.buildBufferObjects=(n,i)=>{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,1);const a=e.renderable.getColorMapColors(),s=e.primitives[e.primTypes.Tris].getCABO(),c=o.getPointData(),l=o.getPoints(),f=l.getNumberOfPoints(),u=l.getData();let d=3;d+=4;let h=null,g=0;s.setColorBOStride(4),s.getColorBO()||s.setColorBO(Pa.newInstance()),s.getColorBO().setOpenGLRenderWindow(e._openGLRenderWindow),a&&(g=a.getNumberOfComponents(),s.setColorOffset(4),h=a.getData(),s.setColorBOStride(8)),s.setColorComponents(g),s.setStride(d*4);const p=new Float32Array(d*f*12),v=new Uint8Array(12*f*(h?8:4));let x=null,m=null;e.renderable.getScaleArray()!=null&&c.hasArray(e.renderable.getScaleArray())&&(x=c.getArray(e.renderable.getScaleArray()).getData()),e.renderable.getOrientationArray()!=null&&c.hasArray(e.renderable.getOrientationArray())?m=c.getArray(e.renderable.getOrientationArray()).getData():gg([`Error setting orientationArray. +`,"You have to specify the stick orientation"]);const y=[0,1,3,0,3,2,2,3,5,2,5,4];let w=0,C=0,S=0,T=0;for(let _=0;_=4?255:0,v[T++]=y[b]>=2?255:0,v[T++]=255,C=_*g,h&&(v[T++]=h[C],v[T++]=h[C+1],v[T++]=h[C+2],v[T++]=h[C+3])}s.setElementCount(S/d),s.upload(p,Ua.ARRAY_BUFFER),s.getColorBO().upload(v,Ua.ARRAY_BUFFER),e.VBOBuildTime.modified()}}const aX={};function $I(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aX,r),o2.extend(t,e,r),oX(t,e)}const jI=Bt($I,"vtkOpenGLStickMapper");var sX={newInstance:jI,extend:$I};ir("vtkStickMapper",jI);function cX(t,e){e.classHierarchy.push("vtkOpenGLVolume"),t.buildPass=r=>{!e.renderable||!e.renderable.getVisibility()||r&&(e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e.context=e._openGLRenderWindow.getContext(),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;n.incrementVolumeCount()}},t.traverseVolumePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e._openGLRenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0].traverse(r),t.apply(r,!1))},t.volumePass=r=>{!e.renderable||!e.renderable.getVisibility()||e.context.depthMask(!r)},t.getKeyMatrices=()=>(e.renderable.getMTime()>e.keyMatrixTime.getMTime()&&(e.renderable.computeMatrix(),_n(e.MCWCMatrix,e.renderable.getMatrix()),St(e.MCWCMatrix,e.MCWCMatrix),e.renderable.getIsIdentity()?ao(e.normalMatrix):(Ym(e.normalMatrix,e.MCWCMatrix),yh(e.normalMatrix,e.normalMatrix),gw(e.normalMatrix,e.normalMatrix)),e.keyMatrixTime.modified()),{mcwc:e.MCWCMatrix,normalMatrix:e.normalMatrix})}const lX={};function HI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lX,r),tn.extend(t,e,r),e.keyMatrixTime={},un(e.keyMatrixTime,{mtime:0}),e.normalMatrix=new Float64Array(9),e.MCWCMatrix=new Float64Array(16),Jn(t,e,["context"]),cX(t,e)}const KI=Bt(HI,"vtkOpenGLVolume");var uX={newInstance:KI,extend:HI};ir("vtkVolume",KI);const Y5={NEAREST:0,LINEAR:1,FAST_LINEAR:2},qI={FRACTIONAL:0,PROPORTIONAL:1},Mp={CUSTOM:0,ADDITIVE:1,COLORIZE:2};var XI={InterpolationType:Y5,OpacityMode:qI,ColorMixPreset:Mp},fX=`//VTK::System::Dec /*========================================================================= @@ -671,7 +671,7 @@ void main() vertexVCVSOutput = vcpos.xyz/vcpos.w; gl_Position = dcsmall; } -`,aX=`//VTK::System::Dec +`,dX=`//VTK::System::Dec /*========================================================================= @@ -2612,7 +2612,7 @@ void main() // Perform the blending operation along the ray applyBlend(posIS, endIS, tdims); } -`;const{vtkWarningMacro:sX,vtkErrorMacro:Dv}=Gr;function cX(t){switch(t){case Ip.CUSTOM:return"//VTK::CustomColorMix";case Ip.ADDITIVE:return` +`;const{vtkWarningMacro:hX,vtkErrorMacro:Iv}=Br;function gX(t){switch(t){case Mp.CUSTOM:return"//VTK::CustomColorMix";case Mp.ADDITIVE:return` // compute normals mat4 normalMat = computeMat4Normal(posIS, tValue, tstep); #if (vtkLightComplexity > 0) && defined(vtkComputeNormalFromOpacity) @@ -2651,7 +2651,7 @@ void main() tColor1 = applyAllLightning(tColor1, opacity1, posIS, normalLight1); vec3 mixedColor = (opacity0 * tColor0 + opacity1 * tColor1) / opacitySum; return vec4(mixedColor, min(1.0, opacitySum)); -`;case Ip.COLORIZE:return` +`;case Mp.COLORIZE:return` // compute normals mat4 normalMat = computeMat4Normal(posIS, tValue, tstep); #if (vtkLightComplexity > 0) && defined(vtkComputeNormalFromOpacity) @@ -2675,22 +2675,22 @@ void main() vec3 color = tColor0 * mix(vec3(1.0), tColor1, pwfValue1); color = applyAllLightning(color, opacity0, posIS, normalLight0); return vec4(color, opacity0); -`;default:return null}}function lX(t,e){e.classHierarchy.push("vtkOpenGLVolumeMapper");function r(i){[e._scalars,e._scalarOpacityFunc,e._colorTransferFunc,e._labelOutlineThicknessArray].forEach(o=>i.unregisterGraphicsResourceUser(o,t))}t.buildPass=()=>{e.zBufferTexture=null},t.zBufferPass=(i,o)=>{if(i){const a=o.getZBufferTexture();a!==e.zBufferTexture&&(e.zBufferTexture=a)}},t.opaqueZBufferPass=(i,o)=>t.zBufferPass(i,o),t.volumePass=(i,o)=>{if(i){const a=e._openGLRenderWindow;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),a&&!a.isDeleted()&&a!==e._openGLRenderWindow&&r(a),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow),e.jitterTexture.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.openGLVolume=t.getFirstAncestorOfType("vtkOpenGLVolume");const s=e.openGLVolume.getRenderable();e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const c=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(c.getActiveCamera()),t.renderPiece(c,s)}},t.getShaderTemplate=(i,o,a)=>{i.Vertex=oX,i.Fragment=aX,i.Geometry=""},t.useIndependentComponents=i=>{var l,f;const o=i.getIndependentComponents(),a=e.currentInput,s=(f=(l=a==null?void 0:a.getPointData())==null?void 0:l.getScalars())==null?void 0:f.getNumberOfComponents(),c=i.getColorMixPreset();return o&&s>=2||!!c},t.replaceShaderValues=(i,o,a)=>{const s=a.getProperty();let c=i.Fragment;s.getInterpolationType()===K5.LINEAR&&(c=ce.substitute(c,"//VTK::TrilinearOn","#define vtkTrilinearOn").result),t.isLabelmapOutlineRequired(a)===!0&&(c=ce.substitute(c,"//VTK::ImageLabelOutlineOn","#define vtkImageLabelOutlineOn").result),e.renderable.getBlendMode()===mp.LABELMAP_EDGE_PROJECTION_BLEND&&(c=ce.substitute(c,"//VTK::LabelEdgeProjectionOn","#define vtkLabelEdgeProjectionOn").result);const d=e.scalarTexture.getComponents();c=ce.substitute(c,"//VTK::NumComponents",`#define vtkNumComponents ${d}`).result;const h=t.useIndependentComponents(s);h&&(c=ce.substitute(c,"//VTK::IndependentComponentsOn","#define UseIndependentComponents").result);const g=[],p=[];for(let T=0;Ti.unregisterGraphicsResourceUser(o,t))}t.buildPass=()=>{e.zBufferTexture=null},t.zBufferPass=(i,o)=>{if(i){const a=o.getZBufferTexture();a!==e.zBufferTexture&&(e.zBufferTexture=a)}},t.opaqueZBufferPass=(i,o)=>t.zBufferPass(i,o),t.volumePass=(i,o)=>{if(i){const a=e._openGLRenderWindow;e._openGLRenderWindow=t.getLastAncestorOfType("vtkOpenGLRenderWindow"),a&&!a.isDeleted()&&a!==e._openGLRenderWindow&&r(a),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow),e.jitterTexture.setOpenGLRenderWindow(e._openGLRenderWindow),e.framebuffer.setOpenGLRenderWindow(e._openGLRenderWindow),e.openGLVolume=t.getFirstAncestorOfType("vtkOpenGLVolume");const s=e.openGLVolume.getRenderable();e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const c=e._openGLRenderer.getRenderable();e.openGLCamera=e._openGLRenderer.getViewNodeFor(c.getActiveCamera()),t.renderPiece(c,s)}},t.getShaderTemplate=(i,o,a)=>{i.Vertex=fX,i.Fragment=dX,i.Geometry=""},t.useIndependentComponents=i=>{var l,f;const o=i.getIndependentComponents(),a=e.currentInput,s=(f=(l=a==null?void 0:a.getPointData())==null?void 0:l.getScalars())==null?void 0:f.getNumberOfComponents(),c=i.getColorMixPreset();return o&&s>=2||!!c},t.replaceShaderValues=(i,o,a)=>{const s=a.getProperty();let c=i.Fragment;s.getInterpolationType()===Y5.LINEAR&&(c=ce.substitute(c,"//VTK::TrilinearOn","#define vtkTrilinearOn").result),t.isLabelmapOutlineRequired(a)===!0&&(c=ce.substitute(c,"//VTK::ImageLabelOutlineOn","#define vtkImageLabelOutlineOn").result),e.renderable.getBlendMode()===yp.LABELMAP_EDGE_PROJECTION_BLEND&&(c=ce.substitute(c,"//VTK::LabelEdgeProjectionOn","#define vtkLabelEdgeProjectionOn").result);const d=e.scalarTexture.getComponents();c=ce.substitute(c,"//VTK::NumComponents",`#define vtkNumComponents ${d}`).result;const h=t.useIndependentComponents(s);h&&(c=ce.substitute(c,"//VTK::IndependentComponentsOn","#define UseIndependentComponents").result);const g=[],p=[];for(let T=0;T0&&(e.renderable.getVolumetricScatteringBlending()>0&&(c=ce.substitute(c,"//VTK::VolumeShadowOn","#define VolumeShadowOn").result),e.renderable.getVolumetricScatteringBlending()<1&&(c=ce.substitute(c,"//VTK::SurfaceShadowOn","#define SurfaceShadowOn").result),e.renderable.getLocalAmbientOcclusion()&&s.getAmbient()>0&&(c=ce.substitute(c,"//VTK::localAmbientOcclusionOn","#define localAmbientOcclusionOn").result));const S=h?d:1;e.gopacity=!1;for(let T=0;!e.gopacity&&T{if(e.lightComplexity===0)return;let s=i.Fragment,c=0;o.getLights().forEach(l=>{l.getSwitch()&&(c+=1)}),s=ce.substitute(s,"//VTK::Light::Dec",["uniform int lightNum;","uniform bool twoSidedLighting;",`uniform vec3 lightColor[${c}];`,`uniform vec3 lightDirectionVC[${c}]; // normalized`,`uniform vec3 lightHalfAngleVC[${c}];`,"//VTK::Light::Dec"],!1).result,e.lightComplexity===3&&(s=ce.substitute(s,"//VTK::Light::Dec",[`uniform vec3 lightPositionVC[${c}];`,`uniform vec3 lightAttenuation[${c}];`,`uniform float lightConeAngle[${c}];`,`uniform float lightExponent[${c}];`,`uniform int lightPositional[${c}];`],!1).result),e.renderable.getVolumetricScatteringBlending()>0&&(s=ce.substitute(s,"//VTK::VolumeShadow::Dec",["uniform float volumetricScatteringBlending;","uniform float giReach;","uniform float volumeShadowSamplingDistFactor;","uniform float anisotropy;","uniform float anisotropy2;"],!1).result),e.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0&&(s=ce.substitute(s,"//VTK::LAO::Dec",["uniform int kernelRadius;",`uniform vec2 kernelSample[${e.renderable.getLAOKernelRadius()}];`,"uniform int kernelSize;"],!1).result),i.Fragment=s},t.replaceShaderClippingPlane=(i,o,a)=>{let s=i.Fragment;if(e.renderable.getClippingPlanes().length>0){const c=e.renderable.getClippingPlanes().length;s=ce.substitute(s,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","uniform vec3 vClipPlaneOrigins[6];","uniform int clip_numPlanes;","//VTK::ClipPlane::Dec","#define vtkClippingPlanesOn"],!1).result,s=ce.substitute(s,"//VTK::ClipPlane::Impl",[`for(int i = 0; i < ${c}; i++) {`," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}i.Fragment=s};const n=(i,o)=>{let a=0;i.getProperty().getShade()&&e.renderable.getBlendMode()===mp.COMPOSITE_BLEND&&(a=0,e.numberOfLights=0,o.forEach(s=>{s.getSwitch()>0&&(e.numberOfLights++,a===0&&(a=1)),a===1&&(e.numberOfLights>1||s.getIntensity()!==1||!s.lightTypeIsHeadLight())&&(a=2),a<3&&s.getPositional()&&(a=3)})),a!==e.lightComplexity&&(e.lightComplexity=a,t.modified())};t.getNeedToRebuildShaders=(i,o,a)=>{var x;const s=a.getProperty();n(a,o.getLights());const c=e.scalarTexture.getComponents(),l=[],f=[];for(let m=0;m{if(t.getNeedToRebuildShaders(i,o,a)){const s={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(s,o,a);const c=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(s.Vertex,s.Fragment,s.Geometry);c!==i.getProgram()&&(i.setProgram(c),i.getVAO().releaseGraphicsResources()),i.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(i.getProgram());i.getVAO().bind(),t.setMapperShaderParameters(i,o,a),t.setCameraShaderParameters(i,o,a),t.setPropertyShaderParameters(i,o,a),t.getClippingPlaneShaderParameters(i,o,a)},t.setMapperShaderParameters=(i,o,a)=>{var f;const s=i.getProgram();i.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>i.getAttributeUpdateTime().getMTime()||i.getShaderSourceTime().getMTime()>i.getAttributeUpdateTime().getMTime())&&(s.isAttributeUsed("vertexDC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"vertexDC",i.getCABO().getVertexOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Dv("Error setting vertexDC in shader VAO.")),i.getAttributeUpdateTime().modified()),s.setUniformi("texture1",e.scalarTexture.getTextureUnit()),s.setUniformf("sampleDistance",t.getCurrentSampleDistance(o));const c=e.scalarTexture.getVolumeInfo(),l=e.renderable.getIpScalarRange();if((f=c==null?void 0:c.dataComputedScale)!=null&&f.length){const u=[],d=[];for(let h=0;h<4;h++)u[h]=l[0]*c.dataComputedScale[h]+c.dataComputedOffset[h],d[h]=l[1]*c.dataComputedScale[h]+c.dataComputedOffset[h],u[h]=(u[h]-c.offset[h])/c.scale[h],d[h]=(d[h]-c.offset[h])/c.scale[h];s.setUniform4f("ipScalarRangeMin",u[0],u[1],u[2],u[3]),s.setUniform4f("ipScalarRangeMax",d[0],d[1],d[2],d[3])}if(e.zBufferTexture!==null){s.setUniformi("zBufferTexture",e.zBufferTexture.getTextureUnit());const u=e._useSmallViewport?[e._smallViewportWidth,e._smallViewportHeight]:e._openGLRenderWindow.getFramebufferSize();s.setUniformf("vpZWidth",u[0]),s.setUniformf("vpZHeight",u[1])}},t.setCameraShaderParameters=(i,o,a)=>{const s=e.openGLCamera.getKeyMatrices(o),c=e.openGLVolume.getKeyMatrices();bt(e.modelToView,s.wcvc,c.mcwc);const l=i.getProgram(),f=e.openGLCamera.getRenderable(),u=f.getClippingRange();l.setUniformf("camThick",u[1]-u[0]),l.setUniformf("camNear",u[0]),l.setUniformf("camFar",u[1]);const d=e.currentInput.getBounds(),h=e.currentInput.getDimensions(),g=new Float64Array(3),p=new Float64Array(3);let v=1,x=-1,m=1,y=-1;for(let A=0;A<8;++A){if(jt(g,d[A%2],d[2+Math.floor(A/2)%2],d[4+Math.floor(A/4)]),et(g,g,e.modelToView),!f.getParallelProjection()){an(p,g);const G=-u[0]/g[2];cr(g,p,G)}et(g,g,s.vcpc),v=Math.min(g[0],v),x=Math.max(g[0],x),m=Math.min(g[1],m),y=Math.max(g[1],y)}l.setUniformf("dcxmin",v),l.setUniformf("dcxmax",x),l.setUniformf("dcymin",m),l.setUniformf("dcymax",y),l.isUniformUsed("cameraParallel")&&l.setUniformi("cameraParallel",f.getParallelProjection());const w=e.currentInput.getSpatialExtent(),C=e.currentInput.getSpacing(),S=new Float64Array(3);jt(S,(w[1]-w[0])*C[0],(w[3]-w[2])*C[1],(w[5]-w[4])*C[2]),l.setUniform3f("vSpacing",C[0],C[1],C[2]),jt(g,w[0],w[2],w[4]),e.currentInput.indexToWorldVec3(g,g),et(g,g,e.modelToView),l.setUniform3f("vOriginVC",g[0],g[1],g[2]);const T=e.currentInput.getIndexToWorld();bt(e.idxToView,e.modelToView,T),$u(e.idxNormalMatrix,s.normalMatrix,c.normalMatrix),$u(e.idxNormalMatrix,e.idxNormalMatrix,e.currentInput.getDirectionByReference());const _=ui(S)/t.getCurrentSampleDistance(o);_>e.renderable.getMaximumSamplesPerRay()&&sX(`The number of steps required ${Math.ceil(_)} is larger than the +`)).result;const v=s.getColorMixPreset(),x=gX(v);x&&(c=ce.substitute(c,"//VTK::CustomComponentsColorMixOn","#define vtkCustomComponentsColorMix").result,c=ce.substitute(c,"//VTK::CustomComponentsColorMix::Impl",x).result);const m=e.currentInput.getSpatialExtent(),y=e.currentInput.getSpacing(),w=new Float64Array(3);$t(w,(m[1]-m[0])*y[0],(m[3]-m[2])*y[1],(m[5]-m[4])*y[2]);const C=ui(w)/t.getCurrentSampleDistance(o);c=ce.substitute(c,"//VTK::MaximumSamplesValue",`${Math.ceil(C)}`).result,c=ce.substitute(c,"//VTK::LightComplexity",`#define vtkLightComplexity ${e.lightComplexity}`).result,e.lightComplexity>0&&(e.renderable.getVolumetricScatteringBlending()>0&&(c=ce.substitute(c,"//VTK::VolumeShadowOn","#define VolumeShadowOn").result),e.renderable.getVolumetricScatteringBlending()<1&&(c=ce.substitute(c,"//VTK::SurfaceShadowOn","#define SurfaceShadowOn").result),e.renderable.getLocalAmbientOcclusion()&&s.getAmbient()>0&&(c=ce.substitute(c,"//VTK::localAmbientOcclusionOn","#define localAmbientOcclusionOn").result));const S=h?d:1;e.gopacity=!1;for(let T=0;!e.gopacity&&T{if(e.lightComplexity===0)return;let s=i.Fragment,c=0;o.getLights().forEach(l=>{l.getSwitch()&&(c+=1)}),s=ce.substitute(s,"//VTK::Light::Dec",["uniform int lightNum;","uniform bool twoSidedLighting;",`uniform vec3 lightColor[${c}];`,`uniform vec3 lightDirectionVC[${c}]; // normalized`,`uniform vec3 lightHalfAngleVC[${c}];`,"//VTK::Light::Dec"],!1).result,e.lightComplexity===3&&(s=ce.substitute(s,"//VTK::Light::Dec",[`uniform vec3 lightPositionVC[${c}];`,`uniform vec3 lightAttenuation[${c}];`,`uniform float lightConeAngle[${c}];`,`uniform float lightExponent[${c}];`,`uniform int lightPositional[${c}];`],!1).result),e.renderable.getVolumetricScatteringBlending()>0&&(s=ce.substitute(s,"//VTK::VolumeShadow::Dec",["uniform float volumetricScatteringBlending;","uniform float giReach;","uniform float volumeShadowSamplingDistFactor;","uniform float anisotropy;","uniform float anisotropy2;"],!1).result),e.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0&&(s=ce.substitute(s,"//VTK::LAO::Dec",["uniform int kernelRadius;",`uniform vec2 kernelSample[${e.renderable.getLAOKernelRadius()}];`,"uniform int kernelSize;"],!1).result),i.Fragment=s},t.replaceShaderClippingPlane=(i,o,a)=>{let s=i.Fragment;if(e.renderable.getClippingPlanes().length>0){const c=e.renderable.getClippingPlanes().length;s=ce.substitute(s,"//VTK::ClipPlane::Dec",["uniform vec3 vClipPlaneNormals[6];","uniform float vClipPlaneDistances[6];","uniform vec3 vClipPlaneOrigins[6];","uniform int clip_numPlanes;","//VTK::ClipPlane::Dec","#define vtkClippingPlanesOn"],!1).result,s=ce.substitute(s,"//VTK::ClipPlane::Impl",[`for(int i = 0; i < ${c}; i++) {`," float rayDirRatio = dot(rayDir, vClipPlaneNormals[i]);"," float equationResult = dot(vertexVCVSOutput, vClipPlaneNormals[i]) + vClipPlaneDistances[i];"," if (rayDirRatio == 0.0)"," {"," if (equationResult < 0.0) dists.x = dists.y;"," continue;"," }"," float result = -1.0 * equationResult / rayDirRatio;"," if (rayDirRatio < 0.0) dists.y = min(dists.y, result);"," else dists.x = max(dists.x, result);","}","//VTK::ClipPlane::Impl"],!1).result}i.Fragment=s};const n=(i,o)=>{let a=0;i.getProperty().getShade()&&e.renderable.getBlendMode()===yp.COMPOSITE_BLEND&&(a=0,e.numberOfLights=0,o.forEach(s=>{s.getSwitch()>0&&(e.numberOfLights++,a===0&&(a=1)),a===1&&(e.numberOfLights>1||s.getIntensity()!==1||!s.lightTypeIsHeadLight())&&(a=2),a<3&&s.getPositional()&&(a=3)})),a!==e.lightComplexity&&(e.lightComplexity=a,t.modified())};t.getNeedToRebuildShaders=(i,o,a)=>{var x;const s=a.getProperty();n(a,o.getLights());const c=e.scalarTexture.getComponents(),l=[],f=[];for(let m=0;m{if(t.getNeedToRebuildShaders(i,o,a)){const s={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(s,o,a);const c=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(s.Vertex,s.Fragment,s.Geometry);c!==i.getProgram()&&(i.setProgram(c),i.getVAO().releaseGraphicsResources()),i.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(i.getProgram());i.getVAO().bind(),t.setMapperShaderParameters(i,o,a),t.setCameraShaderParameters(i,o,a),t.setPropertyShaderParameters(i,o,a),t.getClippingPlaneShaderParameters(i,o,a)},t.setMapperShaderParameters=(i,o,a)=>{var f;const s=i.getProgram();i.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>i.getAttributeUpdateTime().getMTime()||i.getShaderSourceTime().getMTime()>i.getAttributeUpdateTime().getMTime())&&(s.isAttributeUsed("vertexDC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"vertexDC",i.getCABO().getVertexOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Iv("Error setting vertexDC in shader VAO.")),i.getAttributeUpdateTime().modified()),s.setUniformi("texture1",e.scalarTexture.getTextureUnit()),s.setUniformf("sampleDistance",t.getCurrentSampleDistance(o));const c=e.scalarTexture.getVolumeInfo(),l=e.renderable.getIpScalarRange();if((f=c==null?void 0:c.dataComputedScale)!=null&&f.length){const u=[],d=[];for(let h=0;h<4;h++)u[h]=l[0]*c.dataComputedScale[h]+c.dataComputedOffset[h],d[h]=l[1]*c.dataComputedScale[h]+c.dataComputedOffset[h],u[h]=(u[h]-c.offset[h])/c.scale[h],d[h]=(d[h]-c.offset[h])/c.scale[h];s.setUniform4f("ipScalarRangeMin",u[0],u[1],u[2],u[3]),s.setUniform4f("ipScalarRangeMax",d[0],d[1],d[2],d[3])}if(e.zBufferTexture!==null){s.setUniformi("zBufferTexture",e.zBufferTexture.getTextureUnit());const u=e._useSmallViewport?[e._smallViewportWidth,e._smallViewportHeight]:e._openGLRenderWindow.getFramebufferSize();s.setUniformf("vpZWidth",u[0]),s.setUniformf("vpZHeight",u[1])}},t.setCameraShaderParameters=(i,o,a)=>{const s=e.openGLCamera.getKeyMatrices(o),c=e.openGLVolume.getKeyMatrices();bt(e.modelToView,s.wcvc,c.mcwc);const l=i.getProgram(),f=e.openGLCamera.getRenderable(),u=f.getClippingRange();l.setUniformf("camThick",u[1]-u[0]),l.setUniformf("camNear",u[0]),l.setUniformf("camFar",u[1]);const d=e.currentInput.getBounds(),h=e.currentInput.getDimensions(),g=new Float64Array(3),p=new Float64Array(3);let v=1,x=-1,m=1,y=-1;for(let A=0;A<8;++A){if($t(g,d[A%2],d[2+Math.floor(A/2)%2],d[4+Math.floor(A/4)]),et(g,g,e.modelToView),!f.getParallelProjection()){on(p,g);const G=-u[0]/g[2];lr(g,p,G)}et(g,g,s.vcpc),v=Math.min(g[0],v),x=Math.max(g[0],x),m=Math.min(g[1],m),y=Math.max(g[1],y)}l.setUniformf("dcxmin",v),l.setUniformf("dcxmax",x),l.setUniformf("dcymin",m),l.setUniformf("dcymax",y),l.isUniformUsed("cameraParallel")&&l.setUniformi("cameraParallel",f.getParallelProjection());const w=e.currentInput.getSpatialExtent(),C=e.currentInput.getSpacing(),S=new Float64Array(3);$t(S,(w[1]-w[0])*C[0],(w[3]-w[2])*C[1],(w[5]-w[4])*C[2]),l.setUniform3f("vSpacing",C[0],C[1],C[2]),$t(g,w[0],w[2],w[4]),e.currentInput.indexToWorldVec3(g,g),et(g,g,e.modelToView),l.setUniform3f("vOriginVC",g[0],g[1],g[2]);const T=e.currentInput.getIndexToWorld();bt(e.idxToView,e.modelToView,T),Ku(e.idxNormalMatrix,s.normalMatrix,c.normalMatrix),Ku(e.idxNormalMatrix,e.idxNormalMatrix,e.currentInput.getDirectionByReference());const _=ui(S)/t.getCurrentSampleDistance(o);_>e.renderable.getMaximumSamplesPerRay()&&hX(`The number of steps required ${Math.ceil(_)} is larger than the specified maximum number of steps ${e.renderable.getMaximumSamplesPerRay()}. Please either change the - volumeMapper sampleDistance or its maximum number of samples.`);const E=new Float64Array(3);if(jt(E,1,1,1),H$(E,E,S),l.setUniform3f("vVCToIJK",E[0],E[1],E[2]),l.setUniform3i("volumeDimensions",h[0],h[1],h[2]),l.setUniform3f("volumeSpacings",C[0],C[1],C[2]),!e._openGLRenderWindow.getWebgl2()){const A=e.scalarTexture.getVolumeInfo();l.setUniformf("texWidth",e.scalarTexture.getWidth()),l.setUniformf("texHeight",e.scalarTexture.getHeight()),l.setUniformi("xreps",A.xreps),l.setUniformi("xstride",A.xstride),l.setUniformi("ystride",A.ystride)}const D=new Float64Array(3),b=new Float64Array(3);for(let A=0;A<6;++A){switch(A){case 1:jt(D,-1,0,0),jt(b,w[0],w[2],w[4]);break;case 2:jt(D,0,1,0),jt(b,w[1],w[3],w[5]);break;case 3:jt(D,0,-1,0),jt(b,w[0],w[2],w[4]);break;case 4:jt(D,0,0,1),jt(b,w[1],w[3],w[5]);break;case 5:jt(D,0,0,-1),jt(b,w[0],w[2],w[4]);break;case 0:default:jt(D,1,0,0),jt(b,w[1],w[3],w[5]);break}_p(D,D,e.idxNormalMatrix),et(b,b,e.idxToView);const G=-1*je(b,D);l.setUniform3f(`vPlaneNormal${A}`,D[0],D[1],D[2]),l.setUniformf(`vPlaneDistance${A}`,G)}if(t.isLabelmapOutlineRequired(a)){const G=e.currentInput.getWorldToIndex();l.setUniformMatrix("vWCtoIDX",G);const P=o.getActiveCamera(),[N,V]=P.getClippingRange(),$=P.getDistance();P.setClippingRange($,$+.1);const j=e.openGLCamera.getKeyMatrices(o);$n(e.projectionToWorld,j.wcpc),P.setClippingRange(N,V),e.openGLCamera.getKeyMatrices(o),l.setUniformMatrix("PCWCMatrix",e.projectionToWorld);const Y=t.getRenderTargetSize();l.setUniformf("vpWidth",Y[0]),l.setUniformf("vpHeight",Y[1]);const te=t.getRenderTargetOffset();l.setUniformf("vpOffsetX",te[0]/Y[0]),l.setUniformf("vpOffsetY",te[1]/Y[1])}if($n(e.projectionToView,s.vcpc),l.setUniformMatrix("PCVCMatrix",e.projectionToView),e.lightComplexity===0)return;let I=0;const R=[],M=[],L=[];if(o.getLights().forEach(A=>{if(A.getSwitch()>0){const P=A.getColor(),N=A.getIntensity();R[0+I*3]=P[0]*N,R[1+I*3]=P[1]*N,R[2+I*3]=P[2]*N;const V=A.getDirection();jt(D,V[0],V[1],V[2]),_p(D,D,s.normalMatrix),an(D,D),M[0+I*3]=D[0],M[1+I*3]=D[1],M[2+I*3]=D[2],L[0+I*3]=-.5*D[0],L[1+I*3]=-.5*D[1],L[2+I*3]=-.5*(D[2]-1),I++}}),l.setUniformi("twoSidedLighting",o.getTwoSidedLighting()),l.setUniformi("lightNum",I),l.setUniform3fv("lightColor",R),l.setUniform3fv("lightDirectionVC",M),l.setUniform3fv("lightHalfAngleVC",L),e.lightComplexity===3){I=0;const A=[],G=[],P=[],N=[],V=[];o.getLights().forEach($=>{if($.getSwitch()>0){const Y=$.getAttenuationValues();G[0+I*3]=Y[0],G[1+I*3]=Y[1],G[2+I*3]=Y[2],N[I]=$.getExponent(),P[I]=$.getConeAngle(),V[I]=$.getPositional();const te=$.getTransformedPosition();et(te,te,e.modelToView),A[0+I*3]=te[0],A[1+I*3]=te[1],A[2+I*3]=te[2],I+=1}}),l.setUniform3fv("lightPositionVC",A),l.setUniform3fv("lightAttenuation",G),l.setUniformfv("lightConeAngle",P),l.setUniformfv("lightExponent",N),l.setUniformiv("lightPositional",V)}if(e.renderable.getVolumetricScatteringBlending()>0&&(l.setUniformf("giReach",e.renderable.getGlobalIlluminationReach()),l.setUniformf("volumetricScatteringBlending",e.renderable.getVolumetricScatteringBlending()),l.setUniformf("volumeShadowSamplingDistFactor",e.renderable.getVolumeShadowSamplingDistFactor()),l.setUniformf("anisotropy",e.renderable.getAnisotropy()),l.setUniformf("anisotropy2",e.renderable.getAnisotropy()**2)),e.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0){const A=e.renderable.getLAOKernelSize();l.setUniformi("kernelSize",A);const G=[];for(let P=0;P{const s=i.getProgram();s.setUniformi("ctexture",e.colorTexture.getTextureUnit()),s.setUniformi("otexture",e.opacityTexture.getTextureUnit()),s.setUniformi("jtexture",e.jitterTexture.getTextureUnit()),s.setUniformi("ttexture",e.labelOutlineThicknessTexture.getTextureUnit());const c=e.scalarTexture.getVolumeInfo(),l=a.getProperty(),f=e.scalarTexture.getComponents(),u=t.useIndependentComponents(l);if(u)for(let h=0;h0&&(s.setUniformf("vAmbient",l.getAmbient()),s.setUniformf("vDiffuse",l.getDiffuse()),s.setUniformf("vSpecular",l.getSpecular()),s.setUniformf("vSpecularPower",l.getSpecularPower()))},t.getClippingPlaneShaderParameters=(i,o,a)=>{if(e.renderable.getClippingPlanes().length>0){const s=e.openGLCamera.getKeyMatrices(o),c=[],l=[],f=[],u=e.renderable.getClippingPlanes(),d=u.length;for(let g=0;g{e._animationRateSubscription&&(e._animationRateSubscription.unsubscribe(),e._animationRateSubscription=null)},()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete),t.getRenderTargetSize=()=>{if(e._useSmallViewport)return[e._smallViewportWidth,e._smallViewportHeight];const{usize:i,vsize:o}=e._openGLRenderer.getTiledSizeAndOrigin();return[i,o]},t.getRenderTargetOffset=()=>{const{lowerLeftU:i,lowerLeftV:o}=e._openGLRenderer.getTiledSizeAndOrigin();return[i,o]},t.getCurrentSampleDistance=i=>{const o=i.getVTKWindow().getInteractor(),a=e.renderable.getSampleDistance();if(o.isAnimating()){const s=e.renderable.getInteractionSampleDistanceFactor();return a*s}return a},t.renderPieceStart=(i,o)=>{const a=i.getVTKWindow().getInteractor();if(e._lastScale||(e._lastScale=e.renderable.getInitialInteractionScale()),e._useSmallViewport=!1,a.isAnimating()&&e._lastScale>1.5&&(e._useSmallViewport=!0),e._animationRateSubscription||(e._animationRateSubscription=a.onAnimationFrameRateUpdate(()=>{if(e.renderable.getAutoAdjustSampleDistances()){const c=a.getRecentAnimationFrameRate(),l=a.getDesiredUpdateRate()/c;(l>1.15||l<.85)&&(e._lastScale*=l),e._lastScale>400&&(e._lastScale=400),e._lastScale<1.5&&(e._lastScale=1.5)}else e._lastScale=e.renderable.getImageSampleDistance()*e.renderable.getImageSampleDistance()})),e._useSmallViewport){const c=e._openGLRenderWindow.getFramebufferSize(),l=1/Math.sqrt(e._lastScale);if(e._smallViewportWidth=Math.ceil(l*c[0]),e._smallViewportHeight=Math.ceil(l*c[1]),e._smallViewportHeight>c[1]&&(e._smallViewportHeight=c[1]),e._smallViewportWidth>c[0]&&(e._smallViewportWidth=c[0]),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.getGLFramebuffer()===null)e.framebuffer.create(c[0],c[1]),e.framebuffer.populateFramebuffer();else{const u=e.framebuffer.getSize();(!u||u[0]!==c[0]||u[1]!==c[1])&&(e.framebuffer.create(c[0],c[1]),e.framebuffer.populateFramebuffer())}e.framebuffer.bind();const f=e.context;f.clearColor(0,0,0,0),f.colorMask(!0,!0,!0,!0),f.clear(f.COLOR_BUFFER_BIT),f.viewport(0,0,e._smallViewportWidth,e._smallViewportHeight),e.fvp=[e._smallViewportWidth/c[0],e._smallViewportHeight/c[1]]}e.context.disable(e.context.DEPTH_TEST),t.updateBufferObjects(i,o),o.getProperty().getInterpolationType()===K5.NEAREST?(e.scalarTexture.setMinificationFilter(Je.NEAREST),e.scalarTexture.setMagnificationFilter(Je.NEAREST)):(e.scalarTexture.setMinificationFilter(Je.LINEAR),e.scalarTexture.setMagnificationFilter(Je.LINEAR)),e.zBufferTexture!==null&&e.zBufferTexture.activate()},t.renderPieceDraw=(i,o)=>{const a=e.context;e.scalarTexture.activate(),e.opacityTexture.activate(),e.labelOutlineThicknessTexture.activate(),e.colorTexture.activate(),e.jitterTexture.activate(),t.updateShaders(e.tris,i,o),a.drawArrays(a.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.scalarTexture.deactivate(),e.colorTexture.deactivate(),e.opacityTexture.deactivate(),e.labelOutlineThicknessTexture.deactivate(),e.jitterTexture.deactivate()},t.renderPieceFinish=(i,o)=>{if(e.zBufferTexture!==null&&e.zBufferTexture.deactivate(),e._useSmallViewport){if(e.framebuffer.restorePreviousBindingsAndBuffers(),e.copyShader===null){e.copyShader=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join(` + volumeMapper sampleDistance or its maximum number of samples.`);const E=new Float64Array(3);if($t(E,1,1,1),Z$(E,E,S),l.setUniform3f("vVCToIJK",E[0],E[1],E[2]),l.setUniform3i("volumeDimensions",h[0],h[1],h[2]),l.setUniform3f("volumeSpacings",C[0],C[1],C[2]),!e._openGLRenderWindow.getWebgl2()){const A=e.scalarTexture.getVolumeInfo();l.setUniformf("texWidth",e.scalarTexture.getWidth()),l.setUniformf("texHeight",e.scalarTexture.getHeight()),l.setUniformi("xreps",A.xreps),l.setUniformi("xstride",A.xstride),l.setUniformi("ystride",A.ystride)}const D=new Float64Array(3),b=new Float64Array(3);for(let A=0;A<6;++A){switch(A){case 1:$t(D,-1,0,0),$t(b,w[0],w[2],w[4]);break;case 2:$t(D,0,1,0),$t(b,w[1],w[3],w[5]);break;case 3:$t(D,0,-1,0),$t(b,w[0],w[2],w[4]);break;case 4:$t(D,0,0,1),$t(b,w[1],w[3],w[5]);break;case 5:$t(D,0,0,-1),$t(b,w[0],w[2],w[4]);break;case 0:default:$t(D,1,0,0),$t(b,w[1],w[3],w[5]);break}Dp(D,D,e.idxNormalMatrix),et(b,b,e.idxToView);const G=-1*je(b,D);l.setUniform3f(`vPlaneNormal${A}`,D[0],D[1],D[2]),l.setUniformf(`vPlaneDistance${A}`,G)}if(t.isLabelmapOutlineRequired(a)){const G=e.currentInput.getWorldToIndex();l.setUniformMatrix("vWCtoIDX",G);const P=o.getActiveCamera(),[N,V]=P.getClippingRange(),$=P.getDistance();P.setClippingRange($,$+.1);const H=e.openGLCamera.getKeyMatrices(o);$n(e.projectionToWorld,H.wcpc),P.setClippingRange(N,V),e.openGLCamera.getKeyMatrices(o),l.setUniformMatrix("PCWCMatrix",e.projectionToWorld);const Y=t.getRenderTargetSize();l.setUniformf("vpWidth",Y[0]),l.setUniformf("vpHeight",Y[1]);const ne=t.getRenderTargetOffset();l.setUniformf("vpOffsetX",ne[0]/Y[0]),l.setUniformf("vpOffsetY",ne[1]/Y[1])}if($n(e.projectionToView,s.vcpc),l.setUniformMatrix("PCVCMatrix",e.projectionToView),e.lightComplexity===0)return;let I=0;const R=[],M=[],L=[];if(o.getLights().forEach(A=>{if(A.getSwitch()>0){const P=A.getColor(),N=A.getIntensity();R[0+I*3]=P[0]*N,R[1+I*3]=P[1]*N,R[2+I*3]=P[2]*N;const V=A.getDirection();$t(D,V[0],V[1],V[2]),Dp(D,D,s.normalMatrix),on(D,D),M[0+I*3]=D[0],M[1+I*3]=D[1],M[2+I*3]=D[2],L[0+I*3]=-.5*D[0],L[1+I*3]=-.5*D[1],L[2+I*3]=-.5*(D[2]-1),I++}}),l.setUniformi("twoSidedLighting",o.getTwoSidedLighting()),l.setUniformi("lightNum",I),l.setUniform3fv("lightColor",R),l.setUniform3fv("lightDirectionVC",M),l.setUniform3fv("lightHalfAngleVC",L),e.lightComplexity===3){I=0;const A=[],G=[],P=[],N=[],V=[];o.getLights().forEach($=>{if($.getSwitch()>0){const Y=$.getAttenuationValues();G[0+I*3]=Y[0],G[1+I*3]=Y[1],G[2+I*3]=Y[2],N[I]=$.getExponent(),P[I]=$.getConeAngle(),V[I]=$.getPositional();const ne=$.getTransformedPosition();et(ne,ne,e.modelToView),A[0+I*3]=ne[0],A[1+I*3]=ne[1],A[2+I*3]=ne[2],I+=1}}),l.setUniform3fv("lightPositionVC",A),l.setUniform3fv("lightAttenuation",G),l.setUniformfv("lightConeAngle",P),l.setUniformfv("lightExponent",N),l.setUniformiv("lightPositional",V)}if(e.renderable.getVolumetricScatteringBlending()>0&&(l.setUniformf("giReach",e.renderable.getGlobalIlluminationReach()),l.setUniformf("volumetricScatteringBlending",e.renderable.getVolumetricScatteringBlending()),l.setUniformf("volumeShadowSamplingDistFactor",e.renderable.getVolumeShadowSamplingDistFactor()),l.setUniformf("anisotropy",e.renderable.getAnisotropy()),l.setUniformf("anisotropy2",e.renderable.getAnisotropy()**2)),e.renderable.getLocalAmbientOcclusion()&&a.getProperty().getAmbient()>0){const A=e.renderable.getLAOKernelSize();l.setUniformi("kernelSize",A);const G=[];for(let P=0;P{const s=i.getProgram();s.setUniformi("ctexture",e.colorTexture.getTextureUnit()),s.setUniformi("otexture",e.opacityTexture.getTextureUnit()),s.setUniformi("jtexture",e.jitterTexture.getTextureUnit()),s.setUniformi("ttexture",e.labelOutlineThicknessTexture.getTextureUnit());const c=e.scalarTexture.getVolumeInfo(),l=a.getProperty(),f=e.scalarTexture.getComponents(),u=t.useIndependentComponents(l);if(u)for(let h=0;h0&&(s.setUniformf("vAmbient",l.getAmbient()),s.setUniformf("vDiffuse",l.getDiffuse()),s.setUniformf("vSpecular",l.getSpecular()),s.setUniformf("vSpecularPower",l.getSpecularPower()))},t.getClippingPlaneShaderParameters=(i,o,a)=>{if(e.renderable.getClippingPlanes().length>0){const s=e.openGLCamera.getKeyMatrices(o),c=[],l=[],f=[],u=e.renderable.getClippingPlanes(),d=u.length;for(let g=0;g{e._animationRateSubscription&&(e._animationRateSubscription.unsubscribe(),e._animationRateSubscription=null)},()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete),t.getRenderTargetSize=()=>{if(e._useSmallViewport)return[e._smallViewportWidth,e._smallViewportHeight];const{usize:i,vsize:o}=e._openGLRenderer.getTiledSizeAndOrigin();return[i,o]},t.getRenderTargetOffset=()=>{const{lowerLeftU:i,lowerLeftV:o}=e._openGLRenderer.getTiledSizeAndOrigin();return[i,o]},t.getCurrentSampleDistance=i=>{const o=i.getVTKWindow().getInteractor(),a=e.renderable.getSampleDistance();if(o.isAnimating()){const s=e.renderable.getInteractionSampleDistanceFactor();return a*s}return a},t.renderPieceStart=(i,o)=>{const a=i.getVTKWindow().getInteractor();if(e._lastScale||(e._lastScale=e.renderable.getInitialInteractionScale()),e._useSmallViewport=!1,a.isAnimating()&&e._lastScale>1.5&&(e._useSmallViewport=!0),e._animationRateSubscription||(e._animationRateSubscription=a.onAnimationFrameRateUpdate(()=>{if(e.renderable.getAutoAdjustSampleDistances()){const c=a.getRecentAnimationFrameRate(),l=a.getDesiredUpdateRate()/c;(l>1.15||l<.85)&&(e._lastScale*=l),e._lastScale>400&&(e._lastScale=400),e._lastScale<1.5&&(e._lastScale=1.5)}else e._lastScale=e.renderable.getImageSampleDistance()*e.renderable.getImageSampleDistance()})),e._useSmallViewport){const c=e._openGLRenderWindow.getFramebufferSize(),l=1/Math.sqrt(e._lastScale);if(e._smallViewportWidth=Math.ceil(l*c[0]),e._smallViewportHeight=Math.ceil(l*c[1]),e._smallViewportHeight>c[1]&&(e._smallViewportHeight=c[1]),e._smallViewportWidth>c[0]&&(e._smallViewportWidth=c[0]),e.framebuffer.saveCurrentBindingsAndBuffers(),e.framebuffer.getGLFramebuffer()===null)e.framebuffer.create(c[0],c[1]),e.framebuffer.populateFramebuffer();else{const u=e.framebuffer.getSize();(!u||u[0]!==c[0]||u[1]!==c[1])&&(e.framebuffer.create(c[0],c[1]),e.framebuffer.populateFramebuffer())}e.framebuffer.bind();const f=e.context;f.clearColor(0,0,0,0),f.colorMask(!0,!0,!0,!0),f.clear(f.COLOR_BUFFER_BIT),f.viewport(0,0,e._smallViewportWidth,e._smallViewportHeight),e.fvp=[e._smallViewportWidth/c[0],e._smallViewportHeight/c[1]]}e.context.disable(e.context.DEPTH_TEST),t.updateBufferObjects(i,o),o.getProperty().getInterpolationType()===Y5.NEAREST?(e.scalarTexture.setMinificationFilter(Je.NEAREST),e.scalarTexture.setMagnificationFilter(Je.NEAREST)):(e.scalarTexture.setMinificationFilter(Je.LINEAR),e.scalarTexture.setMagnificationFilter(Je.LINEAR)),e.zBufferTexture!==null&&e.zBufferTexture.activate()},t.renderPieceDraw=(i,o)=>{const a=e.context;e.scalarTexture.activate(),e.opacityTexture.activate(),e.labelOutlineThicknessTexture.activate(),e.colorTexture.activate(),e.jitterTexture.activate(),t.updateShaders(e.tris,i,o),a.drawArrays(a.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.scalarTexture.deactivate(),e.colorTexture.deactivate(),e.opacityTexture.deactivate(),e.labelOutlineThicknessTexture.deactivate(),e.jitterTexture.deactivate()},t.renderPieceFinish=(i,o)=>{if(e.zBufferTexture!==null&&e.zBufferTexture.deactivate(),e._useSmallViewport){if(e.framebuffer.restorePreviousBindingsAndBuffers(),e.copyShader===null){e.copyShader=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(["//VTK::System::Dec","attribute vec4 vertexDC;","uniform vec2 tfactor;","varying vec2 tcoord;","void main() { tcoord = vec2(vertexDC.x*0.5 + 0.5, vertexDC.y*0.5 + 0.5) * tfactor; gl_Position = vertexDC; }"].join(` `),["//VTK::System::Dec","//VTK::Output::Dec","uniform sampler2D texture1;","varying vec2 tcoord;","void main() { gl_FragData[0] = texture2D(texture1,tcoord); }"].join(` -`),"");const l=e.copyShader;e.copyVAO=Ew.newInstance(),e.copyVAO.setOpenGLRenderWindow(e._openGLRenderWindow),e.tris.getCABO().bind(),e.copyVAO.addAttributeArray(l,e.tris.getCABO(),"vertexDC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Dv("Error setting vertexDC in copy shader VAO.")}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(e.copyShader);const a=e._openGLRenderWindow.getFramebufferSize();e.context.viewport(0,0,a[0],a[1]);const s=e.framebuffer.getColorTexture();s.activate(),e.copyShader.setUniformi("texture",s.getTextureUnit()),e.copyShader.setUniform2f("tfactor",e.fvp[0],e.fvp[1]);const c=e.context;c.blendFuncSeparate(c.ONE,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA),e.context.drawArrays(e.context.TRIANGLES,0,e.tris.getCABO().getElementCount()),s.deactivate(),c.blendFuncSeparate(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA)}},t.renderPiece=(i,o)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent({type:"EndEvent"}),!e.currentInput){Dv("No input!");return}t.renderPieceStart(i,o),t.renderPieceDraw(i,o),t.renderPieceFinish(i,o)},t.computeBounds=(i,o)=>{if(!t.getInput()){p0(e.Bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(i,o)=>{t.getNeedToRebuildBufferObjects(i,o)&&t.buildBufferObjects(i,o)},t.getNeedToRebuildBufferObjects=(i,o)=>{var a,s,c;return e.VBOBuildTime.getMTime(){var C,S;const a=e.currentInput;if(!a)return;const s=a.getPointData()&&a.getPointData().getScalars();if(!s)return;const c=o.getProperty();if(!e.jitterTexture.getHandle()){const T=new Uint8Array(1024);for(let _=0;_<32*32;++_)T[_]=255*Math.random();e.jitterTexture.setMinificationFilter(Je.LINEAR),e.jitterTexture.setMagnificationFilter(Je.LINEAR),e.jitterTexture.create2DFromRaw(32,32,1,yt.UNSIGNED_CHAR,T)}const l=s.getNumberOfComponents(),f=t.useIndependentComponents(c),u=f?l:1,d=c.getScalarOpacity(),h=e._openGLRenderWindow.getGraphicsResourceForObject(d);let g=aa(d,f,u);if(!(h!=null&&h.oglObject)||h.hash!==g){e.opacityTexture=yn.newInstance(),e.opacityTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const T=1024,_=T*2*u,E=new Float32Array(_),D=new Float32Array(T);for(let b=0;b1?1:-1,T[b*3+2]=-1;const _=new Uint16Array(8);_[0]=3,_[1]=0,_[2]=1,_[3]=3,_[4]=3,_[5]=0,_[6]=3,_[7]=2;const E=tt.newInstance({numberOfComponents:3,values:T});E.setName("points");const D=tt.newInstance({numberOfComponents:1,values:_});e.tris.getCABO().createVBO(D,"polys",Vr.SURFACE,{points:E,cellOffset:0})}e.VBOBuildTime.modified()},t.updateLabelOutlineThicknessTexture=i=>{var l;const o=i.getProperty().getLabelOutlineThickness(),a=e._openGLRenderWindow.getGraphicsResourceForObject(o),s=`${o.join("-")}`;if(!((l=a==null?void 0:a.oglObject)!=null&&l.getHandle())||(a==null?void 0:a.hash)!==s){e.labelOutlineThicknessTexture=yn.newInstance(),e.labelOutlineThicknessTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const f=1024,u=1,d=f*u,h=new Uint8Array(d);for(let g=0;g{const o=i.getProperty(),a=e.renderable;return o.getUseLabelOutline()||a.getBlendMode()===mp.LABELMAP_EDGE_PROJECTION_BLEND}}const uX={context:null,VBOBuildTime:null,scalarTexture:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,labelOutlineThicknessTexture:null,labelOutlineThicknessTextureString:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function jI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,uX,r),nn.extend(t,e,r),oa.implementBuildShadersWithReplacements(t,e,r),e.VBOBuildTime={},fn(e.VBOBuildTime,{mtime:0}),e.tris=ua.newInstance(),e.jitterTexture=yn.newInstance(),e.jitterTexture.setWrapS(Dd.REPEAT),e.jitterTexture.setWrapT(Dd.REPEAT),e.framebuffer=Km.newInstance(),e.idxToView=qe(new Float64Array(16)),e.idxNormalMatrix=oo(new Float64Array(9)),e.modelToView=qe(new Float64Array(16)),e.projectionToView=qe(new Float64Array(16)),e.projectionToWorld=qe(new Float64Array(16)),Jn(t,e,["context"]),lX(t,e)}const HI=Bt(jI,"vtkOpenGLVolumeMapper");var KI={newInstance:HI,extend:jI};ir("vtkVolumeMapper",HI);function qI(t,e){switch(t){case"Float32Array":return Float32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":case"Int16Array":return e?(console.debug(`${t} is not supported for volume rendering, switching back to Float32Array`),Float32Array):t==="Uint16Array"?Uint16Array:Int16Array;default:if(t)throw new Error("TargetBuffer should be Float32Array, Uint8Array, Uint16Array, or Int16Array");return Float32Array}}function Gw(t,e,r={}){const{isVolumeBuffer:n=!1}=r,i=qI(t,n),o=i.BYTES_PER_ELEMENT;return{numBytes:e*o,TypedArrayConstructor:i}}function fX(t,e){e.classHierarchy.push("vtkStreamingOpenGLVolumeMapper"),t.buildBufferObjects=(r,n)=>{var p;const i=e.currentInput;if(!i)return;const o=n.getProperty();if(!e.jitterTexture.getHandle()){const v=new Uint8Array(1024);for(let x=0;x<32*32;++x)v[x]=255*Math.random();e.jitterTexture.setMinificationFilter(Je.LINEAR),e.jitterTexture.setMagnificationFilter(Je.LINEAR),e.jitterTexture.create2DFromRaw(32,32,1,yt.UNSIGNED_CHAR,v)}const{numberOfComponents:a}=i.get("numberOfComponents"),s=t.useIndependentComponents(o),c=o.getScalarOpacity(),l=e._openGLRenderWindow.getGraphicsResourceForObject(c);let f=aa(c,s,a);if(!(l!=null&&l.oglObject)||l.hash!==f){e.opacityTexture=yn.newInstance(),e.opacityTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const v=1024,x=v*2*a,m=new Float32Array(x),y=new Float32Array(v);for(let w=0;w1?1:-1,v[w*3+2]=-1;const x=new Uint16Array(8);x[0]=3,x[1]=0,x[2]=1,x[3]=3,x[4]=3,x[5]=0,x[6]=3,x[7]=2;const m=tt.newInstance({numberOfComponents:3,values:v});m.setName("points");const y=tt.newInstance({numberOfComponents:1,values:x});e.tris.getCABO().createVBO(y,"polys",Vr.SURFACE,{points:m,cellOffset:0})}e.VBOBuildTime.modified()},t.getNeedToRebuildBufferObjects=(r,n)=>{var i,o,a,s,c,l;return e.VBOBuildTime.getMTime(){if(r.isDeleted())return null;let n=0,i=r.getClassName(n++),o=!1;const a=Object.keys(e.overrides);for(;i&&!o;)a.includes(i)?o=!0:i=r.getClassName(n++);if(!o)return null;const s=e.getModelInitialValues(r),c=e.overrides[i](s);return c.setMyFactory(t),c},e.overrides=YI,e.getModelInitialValues=r=>{const n={};return r.getClassName()==="vtkSharedVolumeMapper"&&(n.scalarTexture=r.getScalarTexture()),n}}const mX={};function JI(t,e,r={}){Object.assign(e,mX,r),lw.extend(t,e,r),pX(t,e),Rr("vtkActor",QH.newInstance),Rr("vtkActor2D",nK.newInstance),Rr("vtkCamera",oK.newInstance),Rr("vtkGlyph3DMapper",Dq.newInstance),Rr("vtkImageMapper",Lq.newInstance),Rr("vtkImageSlice",Aq.newInstance),Rr("vtkMapper",r2.newInstance),Rr("vtkPixelSpaceCallbackMapper",Uq.newInstance),Rr("vtkRenderer",zq.newInstance),Rr("vtkSkybox",Hq.newInstance),Rr("vtkSphereMapper",Jq.newInstance),Rr("vtkStickMapper",tX.newInstance),Rr("vtkTexture",yn.newInstance),Rr("vtkVolume",iX.newInstance),Rr("vtkVolumeMapper",KI.newInstance),Rr("vtkSharedVolumeMapper",gX.newInstance)}const vX=W.newInstance(JI,"vtkStreamingOpenGLViewNodeFactory"),yX={newInstance:vX,extend:JI};function xX(t,e){e.classHierarchy.push("vtkStreamingOpenGLRenderWindow")}function ZI(t,e,r={}){Object.assign(e,r),YH.extend(t,e,r),e.myFactory=yX.newInstance(),Rr("vtkRenderWindow",QI),xX(t,e)}const QI=W.newInstance(ZI,"vtkStreamingOpenGLRenderWindow"),wX={newInstance:QI,extend:ZI},{vtkDebugMacro:hg}=W;function CX(t,e){e.classHierarchy.push("vtkCamera");const r=new Float64Array(3),n=new Float64Array([0,0,-1]),i=new Float64Array([0,1,0]),o=qe(new Float64Array(16)),a=qe(new Float64Array(16)),s=new Float64Array(3),c=new Float64Array(3),l=new Float64Array(3),f=qe(new Float64Array(16)),u=qe(new Float64Array(16)),d=new Float64Array(3),h=new Float64Array(3);function g(){e.viewPlaneNormal[0]=-e.directionOfProjection[0],e.viewPlaneNormal[1]=-e.directionOfProjection[1],e.viewPlaneNormal[2]=-e.directionOfProjection[2]}t.orthogonalizeViewUp=()=>{const p=t.getViewMatrix();e.viewUp[0]=p[4],e.viewUp[1]=p[5],e.viewUp[2]=p[6],t.modified()},t.setPosition=(p,v,x)=>{p===e.position[0]&&v===e.position[1]&&x===e.position[2]||(e.position[0]=p,e.position[1]=v,e.position[2]=x,t.computeDistance(),t.modified())},t.setFocalPoint=(p,v,x)=>{p===e.focalPoint[0]&&v===e.focalPoint[1]&&x===e.focalPoint[2]||(e.focalPoint[0]=p,e.focalPoint[1]=v,e.focalPoint[2]=x,t.computeDistance(),t.modified())},t.setDistance=p=>{if(e.distance===p)return;e.distance=p,e.distance<1e-20&&(e.distance=1e-20,hg("Distance is set to minimum."));const v=e.directionOfProjection;e.focalPoint[0]=e.position[0]+v[0]*e.distance,e.focalPoint[1]=e.position[1]+v[1]*e.distance,e.focalPoint[2]=e.position[2]+v[2]*e.distance,t.modified()},t.computeDistance=()=>{const p=e.focalPoint[0]-e.position[0],v=e.focalPoint[1]-e.position[1],x=e.focalPoint[2]-e.position[2];if(e.distance=Math.sqrt(p*p+v*v+x*x),e.distance<1e-20){e.distance=1e-20,hg("Distance is set to minimum.");const m=e.directionOfProjection;e.focalPoint[0]=e.position[0]+m[0]*e.distance,e.focalPoint[1]=e.position[1]+m[1]*e.distance,e.focalPoint[2]=e.position[2]+m[2]*e.distance}e.directionOfProjection[0]=p/e.distance,e.directionOfProjection[1]=v/e.distance,e.directionOfProjection[2]=x/e.distance,g()},t.dolly=p=>{if(p<=0)return;const v=e.distance/p;t.setPosition(e.focalPoint[0]-v*e.directionOfProjection[0],e.focalPoint[1]-v*e.directionOfProjection[1],e.focalPoint[2]-v*e.directionOfProjection[2])},t.roll=p=>{const v=e.position,x=e.focalPoint,m=e.viewUp,y=new Float64Array([m[0],m[1],m[2],0]);qe(f);const w=new Float64Array([x[0]-v[0],x[1]-v[1],x[2]-v[2]]);Kr(f,f,Vn(p),w),Is(y,y,f),e.viewUp[0]=y[0],e.viewUp[1]=y[1],e.viewUp[2]=y[2],t.modified()},t.azimuth=p=>{const v=e.focalPoint;qe(u),rn(u,u,v),Kr(u,u,Vn(p),e.viewUp),rn(u,u,[-v[0],-v[1],-v[2]]),et(d,e.position,u),t.setPosition(d[0],d[1],d[2])},t.yaw=p=>{const v=e.position;qe(u),rn(u,u,v),Kr(u,u,Vn(p),e.viewUp),rn(u,u,[-v[0],-v[1],-v[2]]),et(h,e.focalPoint,u),t.setFocalPoint(h[0],h[1],h[2])},t.elevation=p=>{const v=e.focalPoint,x=t.getViewMatrix(),m=[-x[0],-x[1],-x[2]];qe(u),rn(u,u,v),Kr(u,u,Vn(p),m),rn(u,u,[-v[0],-v[1],-v[2]]),et(d,e.position,u),t.setPosition(d[0],d[1],d[2])},t.pitch=p=>{const v=e.position,x=t.getViewMatrix(),m=[x[0],x[1],x[2]];qe(u),rn(u,u,v),Kr(u,u,Vn(p),m),rn(u,u,[-v[0],-v[1],-v[2]]),et(h,e.focalPoint,u),t.setFocalPoint(...h)},t.zoom=p=>{p<=0||(e.parallelProjection?e.parallelScale/=p:e.viewAngle/=p,t.modified())},t.translate=(p,v,x)=>{const m=[p,v,x];T1(e.position,m,e.position),T1(e.focalPoint,m,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=p=>{const v=[...e.viewUp,1],x=[],m=[],y=[];v[0]+=e.position[0],v[1]+=e.position[1],v[2]+=e.position[2],Is(x,[...e.position,1],p),Is(m,[...e.focalPoint,1],p),Is(y,v,p),y[0]-=x[0],y[1]-=x[1],y[2]-=x[2],t.setPosition(...x.slice(0,3)),t.setFocalPoint(...m.slice(0,3)),t.setViewUp(...y.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=p=>{let v=p;v<1e-20&&(v=1e-20,hg("Thickness is set to minimum.")),t.setClippingRange(e.clippingRange[0],e.clippingRange[0]+v)},t.setThicknessFromFocalPoint=p=>{let v=p;v<1e-20&&(v=1e-20,hg("Thickness is set to minimum.")),t.setClippingRange(e.distance-v/2,e.distance+v/2)},t.setRoll=p=>{},t.getRoll=()=>{},t.setObliqueAngles=(p,v)=>{},t.getOrientation=()=>{},t.getOrientationWXYZ=()=>{},t.getFrustumPlanes=p=>{},t.getCameraLightTransformMatrix=p=>(En(p,e.cameraLightTransform),p),t.computeCameraLightTransform=()=>{En(o,t.getViewMatrix()),$n(o,o),vw(a,[e.distance,e.distance,e.distance]),bt(o,o,a),qe(e.cameraLightTransform),rn(e.cameraLightTransform,o,[0,0,-1])},t.deepCopy=p=>{},t.physicalOrientationToWorldDirection=p=>{const v=NT(p[0],p[1],p[2],p[3]),x=cl(),m=NT(0,0,1,0);return Z$(x,v),LT(m,v,m),LT(m,m,x),[m[0],m[1],m[2]]},t.getPhysicalToWorldMatrix=p=>{t.getWorldToPhysicalMatrix(p),$n(p,p)},t.getWorldToPhysicalMatrix=p=>{qe(p);const v=[3];ra(e.physicalViewNorth,e.physicalViewUp,v),p[0]=v[0],p[1]=v[1],p[2]=v[2],p[4]=e.physicalViewUp[0],p[5]=e.physicalViewUp[1],p[6]=e.physicalViewUp[2],p[8]=-e.physicalViewNorth[0],p[9]=-e.physicalViewNorth[1],p[10]=-e.physicalViewNorth[2],St(p,p),jt(s,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),ja(p,p,s),rn(p,p,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=p=>{$n(o,p),et(s,r,o),t.computeDistance();const v=e.distance;t.setPosition(s[0],s[1],s[2]),et(c,n,o),kt(c,c,s),an(c,c),t.setDirectionOfProjection(c[0],c[1],c[2]),et(l,i,o),kt(l,l,s),an(l,l),t.setViewUp(l[0],l[1],l[2]),t.setDistance(v)},t.computeViewParametersFromPhysicalMatrix=p=>{t.getWorldToPhysicalMatrix(o),bt(o,p,o),t.computeViewParametersFromViewMatrix(o)},t.setViewMatrix=p=>{e.viewMatrix=p,e.viewMatrix&&(En(o,e.viewMatrix),t.computeViewParametersFromViewMatrix(o),St(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=()=>{if(e.viewMatrix)return e.viewMatrix;ww(o,e.position,e.focalPoint,e.viewUp),St(o,o);const p=new Float64Array(16);return En(p,o),p},t.setProjectionMatrix=p=>{e.projectionMatrix=p},t.getProjectionMatrix=(p,v,x)=>{const m=new Float64Array(16);if(qe(m),e.projectionMatrix){const C=1/e.physicalScale;return jt(s,C,C,C),En(m,e.projectionMatrix),ja(m,m,s),St(m,m),m}qe(o);const y=e.clippingRange[1]-e.clippingRange[0],w=[e.clippingRange[0]+(v+1)*y/2,e.clippingRange[0]+(x+1)*y/2];if(e.parallelProjection){const C=e.parallelScale*p,S=e.parallelScale,T=(e.windowCenter[0]-1)*C,_=(e.windowCenter[0]+1)*C,E=(e.windowCenter[1]-1)*S,D=(e.windowCenter[1]+1)*S;xw(o,T,_,E,D,w[0],w[1]),St(o,o)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const C=Math.tan(Vn(e.viewAngle)/2);let S,T;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*C,T=e.clippingRange[0]*C/p):(S=e.clippingRange[0]*C*p,T=e.clippingRange[0]*C);const _=(e.windowCenter[0]-1)*S,E=(e.windowCenter[0]+1)*S,D=(e.windowCenter[1]-1)*T,b=(e.windowCenter[1]+1)*T,I=w[0],R=w[1];o[0]=2*I/(E-_),o[5]=2*I/(b-D),o[2]=(_+E)/(E-_),o[6]=(D+b)/(b-D),o[10]=-(I+R)/(R-I),o[14]=-1,o[11]=-2*I*R/(R-I),o[15]=0}}return En(m,o),m},t.getCompositeProjectionMatrix=(p,v,x)=>{const m=t.getViewMatrix(),y=t.getProjectionMatrix(p,v,x);return bt(y,m,y),y},t.setDirectionOfProjection=(p,v,x)=>{if(e.directionOfProjection[0]===p&&e.directionOfProjection[1]===v&&e.directionOfProjection[2]===x)return;e.directionOfProjection[0]=p,e.directionOfProjection[1]=v,e.directionOfProjection[2]=x;const m=e.directionOfProjection;e.focalPoint[0]=e.position[0]+m[0]*e.distance,e.focalPoint[1]=e.position[1]+m[1]*e.distance,e.focalPoint[2]=e.position[2]+m[2]*e.distance,g()},t.setDeviceAngles=(p,v,x,m)=>{const y=[3];ra(e.physicalViewNorth,e.physicalViewUp,y);const w=qe(new Float64Array(16));Kr(w,w,Vn(p),e.physicalViewUp),Kr(w,w,Vn(v),y),Kr(w,w,Vn(x),e.physicalViewNorth),Kr(w,w,Vn(-m),e.physicalViewUp);const C=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);et(C,C,w),et(S,S,w),t.setDirectionOfProjection(C[0],C[1],C[2]),t.setViewUp(S[0],S[1],S[2]),t.modified()},t.setOrientationWXYZ=(p,v,x,m)=>{const y=qe(new Float64Array(16));if(p!==0&&(v!==0||x!==0||m!==0)){const S=Vn(p),T=cl();Sw(T,[v,x,m],S),D1(y,T)}const w=new Float64Array(3);et(w,[0,0,-1],y);const C=new Float64Array(3);et(C,[0,1,0],y),t.setDirectionOfProjection(...w),t.setViewUp(...C),t.modified()},t.computeClippingRange=p=>{let v=null,x=null;v=e.viewPlaneNormal,x=e.position;const m=-v[0],y=-v[1],w=-v[2],C=-(m*x[0]+y*x[1]+w*x[2]),S=[m*p[0]+y*p[2]+w*p[4]+C,1e-18];for(let T=0;T<2;T++)for(let _=0;_<2;_++)for(let E=0;E<2;E++){const D=m*p[E]+y*p[2+_]+w*p[4+T]+C;S[0]=DS[1]?D:S[1]}return S}}const SX={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,cameraLightTransform:co(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function eO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SX,r),W.obj(t,e),W.get(t,e,["distance"]),W.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),W.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),W.setGetArray(t,e,["clippingRange","windowCenter"],2),W.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),CX(t,e)}const TX=W.newInstance(eO,"vtkCamera");var Ww={newInstance:TX,extend:eO};const _X=["HeadLight","CameraLight","SceneLight"];function EX(t,e){e.classHierarchy.push("vtkLight");const r=new Float64Array(3);t.getTransformedPosition=()=>(e.transformMatrix?et(r,e.position,e.transformMatrix):jt(r,e.position[0],e.position[1],e.position[2]),r),t.getTransformedFocalPoint=()=>(e.transformMatrix?et(r,e.focalPoint,e.transformMatrix):jt(r,e.focalPoint[0],e.focalPoint[1],e.focalPoint[2]),r),t.getDirection=()=>(e.directionMTime{const i=new Float64Array(3);en(i,e.position,n),e.focalPoint=i},t.setDirectionAngle=(n,i)=>{const o=Vn(n),a=Vn(i);t.setPosition(Math.cos(o)*Math.sin(a),Math.sin(o),Math.cos(o)*Math.cos(a)),t.setFocalPoint(0,0,0),t.setPositional(0)},t.setLightTypeToHeadLight=()=>{t.setLightType("HeadLight")},t.setLightTypeToCameraLight=()=>{t.setLightType("CameraLight")},t.setLightTypeToSceneLight=()=>{t.setTransformMatrix(null),t.setLightType("SceneLight")},t.lightTypeIsHeadLight=()=>e.lightType==="HeadLight",t.lightTypeIsSceneLight=()=>e.lightType==="SceneLight",t.lightTypeIsCameraLight=()=>e.lightType==="CameraLight"}const DX={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function tO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,DX,r),W.obj(t,e),W.setGet(t,e,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),W.setGetArray(t,e,["color","position","focalPoint","attenuationValues"],3),EX(t,e)}const bX=W.newInstance(tO,"vtkLight");var IX={newInstance:bX,extend:tO,LIGHT_TYPES:_X};const{vtkErrorMacro:Op}=W;function OX(t){return()=>Op(`vtkViewport::${t} - NOT IMPLEMENTED`)}function MX(t,e){e.classHierarchy.push("vtkViewport"),t.getViewProps=()=>e.props,t.hasViewProp=n=>e.props.includes(n),t.addViewProp=n=>{n&&!t.hasViewProp(n)&&e.props.push(n)},t.removeViewProp=n=>{const i=e.props.filter(o=>o!==n);e.props.length!==i.length&&(e.props=i)},t.removeAllViewProps=()=>{e.props=[]};function r(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];i.push(n);const o=n.getNestedProps();if(o&&o.length)for(let a=0;a{const n=[];for(let i=0;i{t.removeViewProp(n)},t.getActors2D=()=>(e.actors2D=[],e.props.forEach(n=>{e.actors2D=e.actors2D.concat(n.getActors2D())}),e.actors2D),t.displayToView=()=>Op("call displayToView on your view instead"),t.viewToDisplay=()=>Op("callviewtodisplay on your view instead"),t.getSize=()=>Op("call getSize on your View instead"),t.normalizedDisplayToProjection=(n,i,o)=>{const a=t.normalizedDisplayToNormalizedViewport(n,i,o);return t.normalizedViewportToProjection(a[0],a[1],a[2])},t.normalizedDisplayToNormalizedViewport=(n,i,o)=>{const a=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[(n-e.viewport[0])/a[0],(i-e.viewport[1])/a[1],o]},t.normalizedViewportToProjection=(n,i,o)=>[n*2-1,i*2-1,o*2-1],t.projectionToNormalizedDisplay=(n,i,o)=>{const a=t.projectionToNormalizedViewport(n,i,o);return t.normalizedViewportToNormalizedDisplay(a[0],a[1],a[2])},t.normalizedViewportToNormalizedDisplay=(n,i,o)=>{const a=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[n*a[0]+e.viewport[0],i*a[1]+e.viewport[1],o]},t.projectionToNormalizedViewport=(n,i,o)=>[(n+1)*.5,(i+1)*.5,(o+1)*.5],t.PickPropFrom=OX("PickPropFrom")}const RX={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function nO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RX,r),W.obj(t,e),W.event(t,e,"event"),W.setGetArray(t,e,["viewport"],4),W.setGetArray(t,e,["background","background2"],3),MX(t,e)}const LX=W.newInstance(nO,"vtkViewport");var NX={newInstance:LX,extend:nO};const{vtkDebugMacro:J0,vtkErrorMacro:gs,vtkWarningMacro:PX}=Gr;function i8(t){return()=>gs(`vtkRenderer::${t} - NOT IMPLEMENTED`)}function AX(t,e){e.classHierarchy.push("vtkRenderer");const r={type:"ComputeVisiblePropBoundsEvent",renderer:t},n={type:"ResetCameraClippingRangeEvent",renderer:t},i={type:"ResetCameraEvent",renderer:t};t.updateCamera=()=>(e.activeCamera||(J0("No cameras are on, creating one."),t.getActiveCameraAndResetIfCreated()),e.activeCamera.render(t),!0),t.updateLightsGeometryToFollowCamera=()=>{const o=t.getActiveCameraAndResetIfCreated();e.lights.forEach(a=>{a.lightTypeIsSceneLight()||(a.lightTypeIsHeadLight()?(a.setPositionFrom(o.getPositionByReference()),a.setFocalPointFrom(o.getFocalPointByReference()),a.modified(o.getMTime())):a.lightTypeIsCameraLight()?a.setTransformMatrix(o.getCameraLightTransformMatrix(co())):gs("light has unknown light type",a.get()))})},t.updateLightGeometry=()=>e.lightFollowCamera?t.updateLightsGeometryToFollowCamera():!0,t.allocateTime=i8("allocateTime"),t.updateGeometry=i8("updateGeometry"),t.getVTKWindow=()=>e._renderWindow,t.setLayer=o=>{J0(t.getClassName(),t,"setting Layer to ",o),e.layer!==o&&(e.layer=o,t.modified()),t.setPreserveColorBuffer(!!o)},t.setActiveCamera=o=>e.activeCamera===o?!1:(e.activeCamera=o,t.modified(),t.invokeEvent({type:"ActiveCameraEvent",camera:o}),!0),t.makeCamera=()=>{const o=Ww.newInstance();return t.invokeEvent({type:"CreateCameraEvent",camera:o}),o},t.getActiveCamera=()=>(e.activeCamera||(e.activeCamera=t.makeCamera()),e.activeCamera),t.getActiveCameraAndResetIfCreated=()=>(e.activeCamera||(t.getActiveCamera(),t.resetCamera()),e.activeCamera),t.getActors=()=>(e.actors=[],e.props.forEach(o=>{e.actors=e.actors.concat(o.getActors())}),e.actors),t.addActor=t.addViewProp,t.removeActor=o=>{e.actors=e.actors.filter(a=>a!==o),t.removeViewProp(o),t.modified()},t.removeAllActors=()=>{t.getActors().forEach(a=>{t.removeViewProp(a)}),e.actors=[],t.modified()},t.getVolumes=()=>(e.volumes=[],e.props.forEach(o=>{e.volumes=e.volumes.concat(o.getVolumes())}),e.volumes),t.addVolume=t.addViewProp,t.removeVolume=o=>{e.volumes=e.volumes.filter(a=>a!==o),t.removeViewProp(o),t.modified()},t.removeAllVolumes=()=>{t.getVolumes().forEach(a=>{t.removeViewProp(a)}),e.volumes=[],t.modified()},t.hasLight=o=>e.lights.includes(o),t.addLight=o=>{o&&!t.hasLight(o)&&(e.lights.push(o),t.modified())},t.removeLight=o=>{e.lights=e.lights.filter(a=>a!==o),t.modified()},t.removeAllLights=()=>{e.lights=[],t.modified()},t.setLightCollection=o=>{e.lights=o,t.modified()},t.makeLight=IX.newInstance,t.createLight=()=>{e.automaticLightCreation&&(e._createdLight&&(t.removeLight(e._createdLight),e._createdLight.delete(),e._createdLight=null),e._createdLight=t.makeLight(),t.addLight(e._createdLight),e._createdLight.setLightTypeToHeadLight(),e._createdLight.setPosition(t.getActiveCamera().getPosition()),e._createdLight.setFocalPoint(t.getActiveCamera().getFocalPoint()))},t.normalizedDisplayToWorld=(o,a,s,c)=>{let l=t.normalizedDisplayToProjection(o,a,s);return l=t.projectionToView(l[0],l[1],l[2],c),t.viewToWorld(l[0],l[1],l[2])},t.worldToNormalizedDisplay=(o,a,s,c)=>{let l=t.worldToView(o,a,s);return l=t.viewToProjection(l[0],l[1],l[2],c),t.projectionToNormalizedDisplay(l[0],l[1],l[2])},t.viewToWorld=(o,a,s)=>{if(e.activeCamera===null)return gs("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getViewMatrix();$n(c,c),St(c,c);const l=new Float64Array([o,a,s]);return et(l,l,c),l},t.projectionToView=(o,a,s,c)=>{if(e.activeCamera===null)return gs("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const l=e.activeCamera.getProjectionMatrix(c,-1,1);$n(l,l),St(l,l);const f=new Float64Array([o,a,s]);return et(f,f,l),f},t.worldToView=(o,a,s)=>{if(e.activeCamera===null)return gs("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getViewMatrix();St(c,c);const l=new Float64Array([o,a,s]);return et(l,l,c),l},t.viewToProjection=(o,a,s,c)=>{if(e.activeCamera===null)return gs("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const l=e.activeCamera.getProjectionMatrix(c,-1,1);St(l,l);const f=new Float64Array([o,a,s]);return et(f,f,l),f},t.computeVisiblePropBounds=()=>{e.allBounds[0]=Xt.INIT_BOUNDS[0],e.allBounds[1]=Xt.INIT_BOUNDS[1],e.allBounds[2]=Xt.INIT_BOUNDS[2],e.allBounds[3]=Xt.INIT_BOUNDS[3],e.allBounds[4]=Xt.INIT_BOUNDS[4],e.allBounds[5]=Xt.INIT_BOUNDS[5];let o=!0;t.invokeEvent(r);for(let a=0;ae.allBounds[1]&&(e.allBounds[1]=c[1]),c[2]e.allBounds[3]&&(e.allBounds[3]=c[3]),c[4]e.allBounds[5]&&(e.allBounds[5]=c[5]))}}return o&&(p0(e.allBounds),J0("Can't compute bounds, no 3D props are visible")),e.allBounds},t.resetCamera=function(){const a=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds(),s=[0,0,0];if(!Tp(a))return J0("Cannot reset camera!"),!1;let c=null;if(t.getActiveCamera())c=e.activeCamera.getViewPlaneNormal();else return gs("Trying to reset non-existent camera"),!1;e.activeCamera.setViewAngle(30),s[0]=(a[0]+a[1])/2,s[1]=(a[2]+a[3])/2,s[2]=(a[4]+a[5])/2;let l=a[1]-a[0],f=a[3]-a[2],u=a[5]-a[4];l*=l,f*=f,u*=u;let d=l+f+u;d=d===0?1:d,d=Math.sqrt(d)*.5;const h=Vn(e.activeCamera.getViewAngle()),g=d,p=d/Math.sin(h*.5),v=e.activeCamera.getViewUp();return Math.abs(wt(v,c))>.999&&(PX("Resetting view-up since view plane normal is parallel"),e.activeCamera.setViewUp(-v[2],v[0],v[1])),e.activeCamera.setFocalPoint(s[0],s[1],s[2]),e.activeCamera.setPosition(s[0]+p*c[0],s[1]+p*c[1],s[2]+p*c[2]),t.resetCameraClippingRange(a),e.activeCamera.setParallelScale(g),e.activeCamera.setPhysicalScale(d),e.activeCamera.setPhysicalTranslation(-s[0],-s[1],-s[2]),t.invokeEvent(i),!0},t.resetCameraClippingRange=function(){const a=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds();if(!Tp(a))return J0("Cannot reset camera clipping range!"),!1;if(t.getActiveCameraAndResetIfCreated(),!e.activeCamera)return gs("Trying to reset clipping range of non-existent camera"),!1;const s=e.activeCamera.computeClippingRange(a);let c=0;if(e.activeCamera.getParallelProjection())c=.2*e.activeCamera.getParallelScale();else{const l=Vn(e.activeCamera.getViewAngle());c=.2*Math.tan(l/2)*s[1]}return s[1]-s[0]=s[1]?.01*s[1]:s[0],e.nearClippingPlaneTolerance||(e.nearClippingPlaneTolerance=.01),s[0]{o!==e._renderWindow&&(e._vtkWindow=o,e._renderWindow=o)},t.visibleActorCount=()=>e.props.filter(o=>o.getVisibility()).length,t.visibleVolumeCount=t.visibleActorCount,t.getMTime=()=>{let o=e.mtime;const a=e.activeCamera?e.activeCamera.getMTime():0;a>o&&(o=a);const s=e._createdLight?e._createdLight.getMTime():0;return s>o&&(o=s),o},t.getTransparent=()=>!!e.preserveColorBuffer,t.isActiveCameraCreated=()=>!!e.activeCamera}const kX={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:Ks(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function rO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};for(Object.assign(e,kX,r),NX.extend(t,e,r),e.background||(e.background=[0,0,0,1]);e.background.length<3;)e.background.push(0);e.background.length===3&&e.background.push(1),gi(t,e,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),Jn(t,e,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),g0(t,e,["actors","volumes","lights"]),jx(t,e,["background"],4,1),fh(t,e,["renderWindow"]),AX(t,e)}const VX=Bt(rO,"vtkRenderer");var iO={newInstance:VX,extend:rO};const FX={Unknown:0,LeftController:1,RightController:2},UX={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},BX={Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4};var oO={Device:FX,Input:UX,Axis:BX};const{Device:gg,Input:Dc}=oO,{vtkWarningMacro:pg,vtkErrorMacro:mg,normalizeWheel:GX,vtkOnceErrorMacro:WX}=W,Al={ctrlKey:!1,altKey:!1,shiftKey:!1},bv={"xr-standard":[Dc.Trigger,Dc.Grip,Dc.TrackPad,Dc.Thumbstick,Dc.A,Dc.B]},zw=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function Z0(t){t.cancelable&&t.preventDefault()}function vg(t){const e=Object.create(null);return t.forEach(r=>{let{pointerId:n,position:i}=r;e[n]=i}),e}function zX(t,e){e.classHierarchy.push("vtkRenderWindowInteractor");const r={...t},n=new Set,i=new Map;let o=1;t.start=()=>{!e.initialized&&(t.initialize(),!e.initialized)||t.startEventLoop()},t.setRenderWindow=p=>{mg("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},t.setInteractorStyle=p=>{e.interactorStyle!==p&&(e.interactorStyle!=null&&e.interactorStyle.setInteractor(null),e.interactorStyle=p,e.interactorStyle!=null&&e.interactorStyle.getInteractor()!==t&&e.interactorStyle.setInteractor(t))},t.initialize=()=>{e.initialized=!0,t.enable(),t.render()},t.enable=()=>t.setEnabled(!0),t.disable=()=>t.setEnabled(!1),t.startEventLoop=()=>pg("empty event loop");function a(p,v){e._forcedRenderer||(e.currentRenderer=t.findPokedRenderer(p,v))}t.getCurrentRenderer=()=>(e.currentRenderer||a(0,0),e.currentRenderer);function s(p){const v=e._view.getCanvas(),x=v.getBoundingClientRect(),m=v.width/x.width,y=v.height/x.height,w={x:m*(p.clientX-x.left),y:y*(x.height-p.clientY+x.top),z:0};return(i.size<=1||!e.currentRenderer)&&a(w.x,w.y),w}const c=e._getScreenEventPositionFor||s;function l(p){return{controlKey:p.ctrlKey,altKey:p.altKey,shiftKey:p.shiftKey}}function f(p){const v=l(p);return{key:p.key,keyCode:p.charCode,...v}}function u(p){return p.pointerType||""}const d=()=>{if(e.container===null)return;const{container:p}=e;p.addEventListener("contextmenu",Z0),p.addEventListener("wheel",t.handleWheel),p.addEventListener("DOMMouseScroll",t.handleWheel),p.addEventListener("pointerenter",t.handlePointerEnter),p.addEventListener("pointerleave",t.handlePointerLeave),p.addEventListener("pointermove",t.handlePointerMove,{passive:!1}),p.addEventListener("pointerdown",t.handlePointerDown,{passive:!1}),p.addEventListener("pointerup",t.handlePointerUp),p.addEventListener("pointercancel",t.handlePointerCancel),document.addEventListener("keypress",t.handleKeyPress),document.addEventListener("keydown",t.handleKeyDown),document.addEventListener("keyup",t.handleKeyUp),document.addEventListener("pointerlockchange",t.handlePointerLockChange),p.style.touchAction="none",p.style.userSelect="none",p.style.webkitTapHighlightColor="rgba(0,0,0,0)"};t.bindEvents=p=>{if(p===null)return;r.setContainer(p)&&d()};const h=()=>{clearTimeout(e.moveTimeoutID),clearTimeout(e.wheelTimeoutID),e.moveTimeoutID=0,e.wheelTimeoutID=0,o=1;const{container:p}=e;p&&(p.removeEventListener("contextmenu",Z0),p.removeEventListener("wheel",t.handleWheel),p.removeEventListener("DOMMouseScroll",t.handleWheel),p.removeEventListener("pointerenter",t.handlePointerEnter),p.removeEventListener("pointerleave",t.handlePointerLeave),p.removeEventListener("pointermove",t.handlePointerMove,{passive:!1}),p.removeEventListener("pointerdown",t.handlePointerDown,{passive:!1}),p.removeEventListener("pointerup",t.handlePointerUp),p.removeEventListener("pointercancel",t.handlePointerCancel)),document.removeEventListener("keypress",t.handleKeyPress),document.removeEventListener("keydown",t.handleKeyDown),document.removeEventListener("keyup",t.handleKeyUp),document.removeEventListener("pointerlockchange",t.handlePointerLockChange),i.clear()};t.unbindEvents=()=>{h(),r.setContainer(null)},t.handleKeyPress=p=>{const v=f(p);t.keyPressEvent(v)},t.handleKeyDown=p=>{const v=f(p);t.keyDownEvent(v)},t.handleKeyUp=p=>{const v=f(p);t.keyUpEvent(v)},t.handlePointerEnter=p=>{const v={...l(p),position:c(p),deviceType:u(p)};t.pointerEnterEvent(v),v.deviceType==="mouse"&&t.mouseEnterEvent(v)},t.handlePointerLeave=p=>{const v={...l(p),position:c(p),deviceType:u(p)};t.pointerLeaveEvent(v),v.deviceType==="mouse"&&t.mouseLeaveEvent(v)},t.handlePointerDown=p=>{if(!(p.button>2||t.isPointerLocked()))switch(e.preventDefaultOnPointerDown&&Z0(p),p.target.hasPointerCapture(p.pointerId)&&p.target.releasePointerCapture(p.pointerId),e.container.setPointerCapture(p.pointerId),i.has(p.pointerId)&&pg("[RenderWindowInteractor] duplicate pointerId detected"),i.set(p.pointerId,{pointerId:p.pointerId,position:c(p)}),p.pointerType){case"pen":case"touch":t.handleTouchStart(p);break;case"mouse":default:t.handleMouseDown(p);break}},t.handlePointerUp=p=>{if(i.has(p.pointerId))switch(e.preventDefaultOnPointerUp&&Z0(p),i.delete(p.pointerId),e.container.releasePointerCapture(p.pointerId),p.pointerType){case"pen":case"touch":t.handleTouchEnd(p);break;case"mouse":default:t.handleMouseUp(p);break}},t.handlePointerCancel=p=>{if(i.has(p.pointerId))switch(i.delete(p.pointerId),p.pointerType){case"pen":case"touch":t.handleTouchEnd(p);break;case"mouse":default:t.handleMouseUp(p);break}},t.handlePointerMove=p=>{if(i.has(p.pointerId)){const v=i.get(p.pointerId);v.position=c(p)}switch(p.pointerType){case"pen":case"touch":t.handleTouchMove(p);break;case"mouse":default:t.handleMouseMove(p);break}},t.handleMouseDown=p=>{const v={...l(p),position:c(p),deviceType:u(p)};switch(p.button){case 0:t.leftButtonPressEvent(v);break;case 1:t.middleButtonPressEvent(v);break;case 2:t.rightButtonPressEvent(v);break;default:mg(`Unknown mouse button pressed: ${p.button}`);break}},t.requestPointerLock=()=>{e.container&&e.container.requestPointerLock()},t.exitPointerLock=()=>{var p;return(p=document.exitPointerLock)==null?void 0:p.call(document)},t.isPointerLocked=()=>!!e.container&&document.pointerLockElement===e.container,t.handlePointerLockChange=()=>{t.isPointerLocked()?t.startPointerLockEvent():t.endPointerLockEvent()};function g(){e._view&&e.enabled&&e.enableRender&&(e.inRender=!0,e._view.traverseAllPasses(),e.inRender=!1),t.invokeRenderEvent()}t.requestAnimation=p=>{if(p===void 0){mg("undefined requester, can not start animating");return}if(n.has(p)){pg("requester is already registered for animating");return}n.add(p),!e.animationRequest&&n.size===1&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.extendAnimation=p=>{const v=Date.now()+p;e._animationExtendedEnd=Math.max(e._animationExtendedEnd,v),!e.animationRequest&&n.size===0&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.isAnimating=()=>e.xrAnimation||e.animationRequest!==null,t.cancelAnimation=function(p){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!n.has(p)){if(!v){const x=p&&p.getClassName?p.getClassName():p;pg(`${x} did not request an animation`)}return}n.delete(p),e.animationRequest&&n.size===0&&Date.now()>e._animationExtendedEnd&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null,t.endAnimationEvent(),t.render())},t.switchToXRAnimation=()=>{e.animationRequest&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null),e.xrAnimation=!0},t.returnFromXRAnimation=()=>{e.xrAnimation=!1,n.size!==0&&(e.recentAnimationFrameRate=10,e.animationRequest=requestAnimationFrame(t.handleAnimation))},t.updateXRGamepads=(p,v,x)=>{p.inputSources.forEach(m=>{const y=m.gripSpace==null?null:v.getPose(m.gripSpace,x),w=m.gripSpace==null?null:v.getPose(m.targetRaySpace,x),C=m.gamepad,S=m.handedness;if(C){C.index in e.lastGamepadValues||(e.lastGamepadValues[C.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let T=0;T{const v={...l(p),position:c(p),deviceType:u(p)};e.moveTimeoutID===0?t.startMouseMoveEvent(v):(t.mouseMoveEvent(v),clearTimeout(e.moveTimeoutID)),e.moveTimeoutID=setTimeout(()=>{t.endMouseMoveEvent(),e.moveTimeoutID=0},200)},t.handleAnimation=()=>{const p=Date.now();e._animationFrameCount++,p-e._animationStartTime>1e3&&e._animationFrameCount>1&&(e.recentAnimationFrameRate=1e3*(e._animationFrameCount-1)/(p-e._animationStartTime),e.lastFrameTime=1/e.recentAnimationFrameRate,t.animationFrameRateUpdateEvent(),e._animationStartTime=p,e._animationFrameCount=1),t.animationEvent(),g(),n.size>0||Date.now(){Z0(p);const v={...GX(p),...l(p),position:c(p),deviceType:u(p)};e.wheelTimeoutID===0&&(Math.abs(v.spinY)>=.3?o=Math.abs(v.spinY):o=1),v.spinY/=o,e.wheelTimeoutID===0?(t.startMouseWheelEvent(v),t.mouseWheelEvent(v)):(t.mouseWheelEvent(v),clearTimeout(e.wheelTimeoutID)),e.mouseScrollDebounceByPass?(t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0):e.wheelTimeoutID=setTimeout(()=>{t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0},200)},t.handleMouseUp=p=>{const v={...l(p),position:c(p),deviceType:u(p)};switch(p.button){case 0:t.leftButtonReleaseEvent(v);break;case 1:t.middleButtonReleaseEvent(v);break;case 2:t.rightButtonReleaseEvent(v);break;default:mg(`Unknown mouse button released: ${p.button}`);break}},t.handleTouchStart=p=>{const v=[...i.values()];if(e.recognizeGestures&&v.length>1){const x=vg(i);if(v.length===2){const m={...l(Al),position:v[0].position,deviceType:u(p)};t.leftButtonReleaseEvent(m)}t.recognizeGesture("TouchStart",x)}else if(v.length===1){const x={...l(Al),position:c(p),deviceType:u(p)};t.leftButtonPressEvent(x)}},t.handleTouchMove=p=>{const v=[...i.values()];if(e.recognizeGestures&&v.length>1){const x=vg(i);t.recognizeGesture("TouchMove",x)}else if(v.length===1){const x={...l(Al),position:v[0].position,deviceType:u(p)};t.mouseMoveEvent(x)}},t.handleTouchEnd=p=>{const v=[...i.values()];if(e.recognizeGestures)if(v.length===0){const x={...l(Al),position:c(p),deviceType:u(p)};t.leftButtonReleaseEvent(x)}else if(v.length===1){const x=vg(i);t.recognizeGesture("TouchEnd",x);const m={...l(Al),position:v[0].position,deviceType:u(p)};t.leftButtonPressEvent(m)}else{const x=vg(i);t.recognizeGesture("TouchMove",x)}else if(v.length===1){const x={...l(Al),position:v[0].position,deviceType:u(p)};t.leftButtonReleaseEvent(x)}},t.setView=p=>{e._view!==p&&(e._view=p,e._view.getRenderable().setInteractor(t),t.modified())},t.getFirstRenderer=()=>{var p,v,x;return(x=(v=(p=e._view)==null?void 0:p.getRenderable())==null?void 0:v.getRenderersByReference())==null?void 0:x[0]},t.findPokedRenderer=function(){var S,T;let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e._view)return null;const x=(T=(S=e._view)==null?void 0:S.getRenderable())==null?void 0:T.getRenderers();if(!x||x.length===0)return null;x.sort((_,E)=>_.getLayer()-E.getLayer());let m=null,y=null,w=null,C=x.length;for(;C--;){const _=x[C];if(e._view.isInViewport(p,v,_)&&_.getInteractive()){w=_;break}m===null&&_.getInteractive()&&(m=_),y===null&&e._view.isInViewport(p,v,_)&&(y=_)}return w===null&&(w=m),w===null&&(w=y),w==null&&(w=x[0]),w},t.render=()=>{!t.isAnimating()&&!e.inRender&&g()},zw.forEach(p=>{const v=p.charAt(0).toLowerCase()+p.slice(1);t[`${v}Event`]=x=>{if(!e.enabled)return;if(!t.getCurrentRenderer()){WX(` +`),"");const l=e.copyShader;e.copyVAO=bw.newInstance(),e.copyVAO.setOpenGLRenderWindow(e._openGLRenderWindow),e.tris.getCABO().bind(),e.copyVAO.addAttributeArray(l,e.tris.getCABO(),"vertexDC",e.tris.getCABO().getVertexOffset(),e.tris.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||Iv("Error setting vertexDC in copy shader VAO.")}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(e.copyShader);const a=e._openGLRenderWindow.getFramebufferSize();e.context.viewport(0,0,a[0],a[1]);const s=e.framebuffer.getColorTexture();s.activate(),e.copyShader.setUniformi("texture",s.getTextureUnit()),e.copyShader.setUniform2f("tfactor",e.fvp[0],e.fvp[1]);const c=e.context;c.blendFuncSeparate(c.ONE,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA),e.context.drawArrays(e.context.TRIANGLES,0,e.tris.getCABO().getElementCount()),s.deactivate(),c.blendFuncSeparate(c.SRC_ALPHA,c.ONE_MINUS_SRC_ALPHA,c.ONE,c.ONE_MINUS_SRC_ALPHA)}},t.renderPiece=(i,o)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent({type:"EndEvent"}),!e.currentInput){Iv("No input!");return}t.renderPieceStart(i,o),t.renderPieceDraw(i,o),t.renderPieceFinish(i,o)},t.computeBounds=(i,o)=>{if(!t.getInput()){y0(e.Bounds);return}e.bounds=t.getInput().getBounds()},t.updateBufferObjects=(i,o)=>{t.getNeedToRebuildBufferObjects(i,o)&&t.buildBufferObjects(i,o)},t.getNeedToRebuildBufferObjects=(i,o)=>{var a,s,c;return e.VBOBuildTime.getMTime(){var C,S;const a=e.currentInput;if(!a)return;const s=a.getPointData()&&a.getPointData().getScalars();if(!s)return;const c=o.getProperty();if(!e.jitterTexture.getHandle()){const T=new Uint8Array(1024);for(let _=0;_<32*32;++_)T[_]=255*Math.random();e.jitterTexture.setMinificationFilter(Je.LINEAR),e.jitterTexture.setMagnificationFilter(Je.LINEAR),e.jitterTexture.create2DFromRaw(32,32,1,vt.UNSIGNED_CHAR,T)}const l=s.getNumberOfComponents(),f=t.useIndependentComponents(c),u=f?l:1,d=c.getScalarOpacity(),h=e._openGLRenderWindow.getGraphicsResourceForObject(d);let g=sa(d,f,u);if(!(h!=null&&h.oglObject)||h.hash!==g){e.opacityTexture=yn.newInstance(),e.opacityTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const T=1024,_=T*2*u,E=new Float32Array(_),D=new Float32Array(T);for(let b=0;b1?1:-1,T[b*3+2]=-1;const _=new Uint16Array(8);_[0]=3,_[1]=0,_[2]=1,_[3]=3,_[4]=3,_[5]=0,_[6]=3,_[7]=2;const E=tt.newInstance({numberOfComponents:3,values:T});E.setName("points");const D=tt.newInstance({numberOfComponents:1,values:_});e.tris.getCABO().createVBO(D,"polys",kr.SURFACE,{points:E,cellOffset:0})}e.VBOBuildTime.modified()},t.updateLabelOutlineThicknessTexture=i=>{var l;const o=i.getProperty().getLabelOutlineThickness(),a=e._openGLRenderWindow.getGraphicsResourceForObject(o),s=`${o.join("-")}`;if(!((l=a==null?void 0:a.oglObject)!=null&&l.getHandle())||(a==null?void 0:a.hash)!==s){e.labelOutlineThicknessTexture=yn.newInstance(),e.labelOutlineThicknessTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const f=1024,u=1,d=f*u,h=new Uint8Array(d);for(let g=0;g{const o=i.getProperty(),a=e.renderable;return o.getUseLabelOutline()||a.getBlendMode()===yp.LABELMAP_EDGE_PROJECTION_BLEND}}const mX={context:null,VBOBuildTime:null,scalarTexture:null,opacityTexture:null,opacityTextureString:null,colorTexture:null,colorTextureString:null,jitterTexture:null,labelOutlineThicknessTexture:null,labelOutlineThicknessTextureString:null,tris:null,framebuffer:null,copyShader:null,copyVAO:null,lastXYF:1,targetXYF:1,zBufferTexture:null,lastZBufferTexture:null,lightComplexity:0,fullViewportTime:1,idxToView:null,idxNormalMatrix:null,modelToView:null,projectionToView:null,avgWindowArea:0,avgFrameTime:0};function YI(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mX,r),tn.extend(t,e,r),aa.implementBuildShadersWithReplacements(t,e,r),e.VBOBuildTime={},un(e.VBOBuildTime,{mtime:0}),e.tris=fa.newInstance(),e.jitterTexture=yn.newInstance(),e.jitterTexture.setWrapS(Id.REPEAT),e.jitterTexture.setWrapT(Id.REPEAT),e.framebuffer=Xm.newInstance(),e.idxToView=qe(new Float64Array(16)),e.idxNormalMatrix=ao(new Float64Array(9)),e.modelToView=qe(new Float64Array(16)),e.projectionToView=qe(new Float64Array(16)),e.projectionToWorld=qe(new Float64Array(16)),Jn(t,e,["context"]),pX(t,e)}const JI=Bt(YI,"vtkOpenGLVolumeMapper");var ZI={newInstance:JI,extend:YI};ir("vtkVolumeMapper",JI);function QI(t,e){switch(t){case"Float32Array":return Float32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":case"Int16Array":return e?(console.debug(`${t} is not supported for volume rendering, switching back to Float32Array`),Float32Array):t==="Uint16Array"?Uint16Array:Int16Array;default:if(t)throw new Error("TargetBuffer should be Float32Array, Uint8Array, Uint16Array, or Int16Array");return Float32Array}}function zw(t,e,r={}){const{isVolumeBuffer:n=!1}=r,i=QI(t,n),o=i.BYTES_PER_ELEMENT;return{numBytes:e*o,TypedArrayConstructor:i}}function vX(t,e){e.classHierarchy.push("vtkStreamingOpenGLVolumeMapper"),t.buildBufferObjects=(r,n)=>{var p;const i=e.currentInput;if(!i)return;const o=n.getProperty();if(!e.jitterTexture.getHandle()){const v=new Uint8Array(1024);for(let x=0;x<32*32;++x)v[x]=255*Math.random();e.jitterTexture.setMinificationFilter(Je.LINEAR),e.jitterTexture.setMagnificationFilter(Je.LINEAR),e.jitterTexture.create2DFromRaw(32,32,1,vt.UNSIGNED_CHAR,v)}const{numberOfComponents:a}=i.get("numberOfComponents"),s=t.useIndependentComponents(o),c=o.getScalarOpacity(),l=e._openGLRenderWindow.getGraphicsResourceForObject(c);let f=sa(c,s,a);if(!(l!=null&&l.oglObject)||l.hash!==f){e.opacityTexture=yn.newInstance(),e.opacityTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const v=1024,x=v*2*a,m=new Float32Array(x),y=new Float32Array(v);for(let w=0;w1?1:-1,v[w*3+2]=-1;const x=new Uint16Array(8);x[0]=3,x[1]=0,x[2]=1,x[3]=3,x[4]=3,x[5]=0,x[6]=3,x[7]=2;const m=tt.newInstance({numberOfComponents:3,values:v});m.setName("points");const y=tt.newInstance({numberOfComponents:1,values:x});e.tris.getCABO().createVBO(y,"polys",kr.SURFACE,{points:m,cellOffset:0})}e.VBOBuildTime.modified()},t.getNeedToRebuildBufferObjects=(r,n)=>{var i,o,a,s,c,l;return e.VBOBuildTime.getMTime(){if(r.isDeleted())return null;let n=0,i=r.getClassName(n++),o=!1;const a=Object.keys(e.overrides);for(;i&&!o;)a.includes(i)?o=!0:i=r.getClassName(n++);if(!o)return null;const s=e.getModelInitialValues(r),c=e.overrides[i](s);return c.setMyFactory(t),c},e.overrides=tO,e.getModelInitialValues=r=>{const n={};return r.getClassName()==="vtkSharedVolumeMapper"&&(n.scalarTexture=r.getScalarTexture()),n}}const SX={};function nO(t,e,r={}){Object.assign(e,SX,r),fw.extend(t,e,r),CX(t,e),Mr("vtkActor",oK.newInstance),Mr("vtkActor2D",cK.newInstance),Mr("vtkCamera",fK.newInstance),Mr("vtkGlyph3DMapper",Lq.newInstance),Mr("vtkImageMapper",Fq.newInstance),Mr("vtkImageSlice",Gq.newInstance),Mr("vtkMapper",o2.newInstance),Mr("vtkPixelSpaceCallbackMapper",jq.newInstance),Mr("vtkRenderer",Xq.newInstance),Mr("vtkSkybox",Zq.newInstance),Mr("vtkSphereMapper",rX.newInstance),Mr("vtkStickMapper",sX.newInstance),Mr("vtkTexture",yn.newInstance),Mr("vtkVolume",uX.newInstance),Mr("vtkVolumeMapper",ZI.newInstance),Mr("vtkSharedVolumeMapper",wX.newInstance)}const TX=W.newInstance(nO,"vtkStreamingOpenGLViewNodeFactory"),_X={newInstance:TX,extend:nO};function EX(t,e){e.classHierarchy.push("vtkStreamingOpenGLRenderWindow")}function rO(t,e,r={}){Object.assign(e,r),nK.extend(t,e,r),e.myFactory=_X.newInstance(),Mr("vtkRenderWindow",iO),EX(t,e)}const iO=W.newInstance(rO,"vtkStreamingOpenGLRenderWindow"),DX={newInstance:iO,extend:rO},{vtkDebugMacro:pg}=W;function bX(t,e){e.classHierarchy.push("vtkCamera");const r=new Float64Array(3),n=new Float64Array([0,0,-1]),i=new Float64Array([0,1,0]),o=qe(new Float64Array(16)),a=qe(new Float64Array(16)),s=new Float64Array(3),c=new Float64Array(3),l=new Float64Array(3),f=qe(new Float64Array(16)),u=qe(new Float64Array(16)),d=new Float64Array(3),h=new Float64Array(3);function g(){e.viewPlaneNormal[0]=-e.directionOfProjection[0],e.viewPlaneNormal[1]=-e.directionOfProjection[1],e.viewPlaneNormal[2]=-e.directionOfProjection[2]}t.orthogonalizeViewUp=()=>{const p=t.getViewMatrix();e.viewUp[0]=p[4],e.viewUp[1]=p[5],e.viewUp[2]=p[6],t.modified()},t.setPosition=(p,v,x)=>{p===e.position[0]&&v===e.position[1]&&x===e.position[2]||(e.position[0]=p,e.position[1]=v,e.position[2]=x,t.computeDistance(),t.modified())},t.setFocalPoint=(p,v,x)=>{p===e.focalPoint[0]&&v===e.focalPoint[1]&&x===e.focalPoint[2]||(e.focalPoint[0]=p,e.focalPoint[1]=v,e.focalPoint[2]=x,t.computeDistance(),t.modified())},t.setDistance=p=>{if(e.distance===p)return;e.distance=p,e.distance<1e-20&&(e.distance=1e-20,pg("Distance is set to minimum."));const v=e.directionOfProjection;e.focalPoint[0]=e.position[0]+v[0]*e.distance,e.focalPoint[1]=e.position[1]+v[1]*e.distance,e.focalPoint[2]=e.position[2]+v[2]*e.distance,t.modified()},t.computeDistance=()=>{const p=e.focalPoint[0]-e.position[0],v=e.focalPoint[1]-e.position[1],x=e.focalPoint[2]-e.position[2];if(e.distance=Math.sqrt(p*p+v*v+x*x),e.distance<1e-20){e.distance=1e-20,pg("Distance is set to minimum.");const m=e.directionOfProjection;e.focalPoint[0]=e.position[0]+m[0]*e.distance,e.focalPoint[1]=e.position[1]+m[1]*e.distance,e.focalPoint[2]=e.position[2]+m[2]*e.distance}e.directionOfProjection[0]=p/e.distance,e.directionOfProjection[1]=v/e.distance,e.directionOfProjection[2]=x/e.distance,g()},t.dolly=p=>{if(p<=0)return;const v=e.distance/p;t.setPosition(e.focalPoint[0]-v*e.directionOfProjection[0],e.focalPoint[1]-v*e.directionOfProjection[1],e.focalPoint[2]-v*e.directionOfProjection[2])},t.roll=p=>{const v=e.position,x=e.focalPoint,m=e.viewUp,y=new Float64Array([m[0],m[1],m[2],0]);qe(f);const w=new Float64Array([x[0]-v[0],x[1]-v[1],x[2]-v[2]]);Hr(f,f,Vn(p),w),Os(y,y,f),e.viewUp[0]=y[0],e.viewUp[1]=y[1],e.viewUp[2]=y[2],t.modified()},t.azimuth=p=>{const v=e.focalPoint;qe(u),nn(u,u,v),Hr(u,u,Vn(p),e.viewUp),nn(u,u,[-v[0],-v[1],-v[2]]),et(d,e.position,u),t.setPosition(d[0],d[1],d[2])},t.yaw=p=>{const v=e.position;qe(u),nn(u,u,v),Hr(u,u,Vn(p),e.viewUp),nn(u,u,[-v[0],-v[1],-v[2]]),et(h,e.focalPoint,u),t.setFocalPoint(h[0],h[1],h[2])},t.elevation=p=>{const v=e.focalPoint,x=t.getViewMatrix(),m=[-x[0],-x[1],-x[2]];qe(u),nn(u,u,v),Hr(u,u,Vn(p),m),nn(u,u,[-v[0],-v[1],-v[2]]),et(d,e.position,u),t.setPosition(d[0],d[1],d[2])},t.pitch=p=>{const v=e.position,x=t.getViewMatrix(),m=[x[0],x[1],x[2]];qe(u),nn(u,u,v),Hr(u,u,Vn(p),m),nn(u,u,[-v[0],-v[1],-v[2]]),et(h,e.focalPoint,u),t.setFocalPoint(...h)},t.zoom=p=>{p<=0||(e.parallelProjection?e.parallelScale/=p:e.viewAngle/=p,t.modified())},t.translate=(p,v,x)=>{const m=[p,v,x];E1(e.position,m,e.position),E1(e.focalPoint,m,e.focalPoint),t.computeDistance(),t.modified()},t.applyTransform=p=>{const v=[...e.viewUp,1],x=[],m=[],y=[];v[0]+=e.position[0],v[1]+=e.position[1],v[2]+=e.position[2],Os(x,[...e.position,1],p),Os(m,[...e.focalPoint,1],p),Os(y,v,p),y[0]-=x[0],y[1]-=x[1],y[2]-=x[2],t.setPosition(...x.slice(0,3)),t.setFocalPoint(...m.slice(0,3)),t.setViewUp(...y.slice(0,3))},t.getThickness=()=>e.clippingRange[1]-e.clippingRange[0],t.setThickness=p=>{let v=p;v<1e-20&&(v=1e-20,pg("Thickness is set to minimum.")),t.setClippingRange(e.clippingRange[0],e.clippingRange[0]+v)},t.setThicknessFromFocalPoint=p=>{let v=p;v<1e-20&&(v=1e-20,pg("Thickness is set to minimum.")),t.setClippingRange(e.distance-v/2,e.distance+v/2)},t.setRoll=p=>{},t.getRoll=()=>{},t.setObliqueAngles=(p,v)=>{},t.getOrientation=()=>{},t.getOrientationWXYZ=()=>{},t.getFrustumPlanes=p=>{},t.getCameraLightTransformMatrix=p=>(_n(p,e.cameraLightTransform),p),t.computeCameraLightTransform=()=>{_n(o,t.getViewMatrix()),$n(o,o),xw(a,[e.distance,e.distance,e.distance]),bt(o,o,a),qe(e.cameraLightTransform),nn(e.cameraLightTransform,o,[0,0,-1])},t.deepCopy=p=>{},t.physicalOrientationToWorldDirection=p=>{const v=kT(p[0],p[1],p[2],p[3]),x=ll(),m=kT(0,0,1,0);return ij(x,v),AT(m,v,m),AT(m,m,x),[m[0],m[1],m[2]]},t.getPhysicalToWorldMatrix=p=>{t.getWorldToPhysicalMatrix(p),$n(p,p)},t.getWorldToPhysicalMatrix=p=>{qe(p);const v=[3];ia(e.physicalViewNorth,e.physicalViewUp,v),p[0]=v[0],p[1]=v[1],p[2]=v[2],p[4]=e.physicalViewUp[0],p[5]=e.physicalViewUp[1],p[6]=e.physicalViewUp[2],p[8]=-e.physicalViewNorth[0],p[9]=-e.physicalViewNorth[1],p[10]=-e.physicalViewNorth[2],St(p,p),$t(s,1/e.physicalScale,1/e.physicalScale,1/e.physicalScale),Ha(p,p,s),nn(p,p,e.physicalTranslation)},t.computeViewParametersFromViewMatrix=p=>{$n(o,p),et(s,r,o),t.computeDistance();const v=e.distance;t.setPosition(s[0],s[1],s[2]),et(c,n,o),kt(c,c,s),on(c,c),t.setDirectionOfProjection(c[0],c[1],c[2]),et(l,i,o),kt(l,l,s),on(l,l),t.setViewUp(l[0],l[1],l[2]),t.setDistance(v)},t.computeViewParametersFromPhysicalMatrix=p=>{t.getWorldToPhysicalMatrix(o),bt(o,p,o),t.computeViewParametersFromViewMatrix(o)},t.setViewMatrix=p=>{e.viewMatrix=p,e.viewMatrix&&(_n(o,e.viewMatrix),t.computeViewParametersFromViewMatrix(o),St(e.viewMatrix,e.viewMatrix))},t.getViewMatrix=()=>{if(e.viewMatrix)return e.viewMatrix;Sw(o,e.position,e.focalPoint,e.viewUp),St(o,o);const p=new Float64Array(16);return _n(p,o),p},t.setProjectionMatrix=p=>{e.projectionMatrix=p},t.getProjectionMatrix=(p,v,x)=>{const m=new Float64Array(16);if(qe(m),e.projectionMatrix){const C=1/e.physicalScale;return $t(s,C,C,C),_n(m,e.projectionMatrix),Ha(m,m,s),St(m,m),m}qe(o);const y=e.clippingRange[1]-e.clippingRange[0],w=[e.clippingRange[0]+(v+1)*y/2,e.clippingRange[0]+(x+1)*y/2];if(e.parallelProjection){const C=e.parallelScale*p,S=e.parallelScale,T=(e.windowCenter[0]-1)*C,_=(e.windowCenter[0]+1)*C,E=(e.windowCenter[1]-1)*S,D=(e.windowCenter[1]+1)*S;Cw(o,T,_,E,D,w[0],w[1]),St(o,o)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const C=Math.tan(Vn(e.viewAngle)/2);let S,T;e.useHorizontalViewAngle===!0?(S=e.clippingRange[0]*C,T=e.clippingRange[0]*C/p):(S=e.clippingRange[0]*C*p,T=e.clippingRange[0]*C);const _=(e.windowCenter[0]-1)*S,E=(e.windowCenter[0]+1)*S,D=(e.windowCenter[1]-1)*T,b=(e.windowCenter[1]+1)*T,I=w[0],R=w[1];o[0]=2*I/(E-_),o[5]=2*I/(b-D),o[2]=(_+E)/(E-_),o[6]=(D+b)/(b-D),o[10]=-(I+R)/(R-I),o[14]=-1,o[11]=-2*I*R/(R-I),o[15]=0}}return _n(m,o),m},t.getCompositeProjectionMatrix=(p,v,x)=>{const m=t.getViewMatrix(),y=t.getProjectionMatrix(p,v,x);return bt(y,m,y),y},t.setDirectionOfProjection=(p,v,x)=>{if(e.directionOfProjection[0]===p&&e.directionOfProjection[1]===v&&e.directionOfProjection[2]===x)return;e.directionOfProjection[0]=p,e.directionOfProjection[1]=v,e.directionOfProjection[2]=x;const m=e.directionOfProjection;e.focalPoint[0]=e.position[0]+m[0]*e.distance,e.focalPoint[1]=e.position[1]+m[1]*e.distance,e.focalPoint[2]=e.position[2]+m[2]*e.distance,g()},t.setDeviceAngles=(p,v,x,m)=>{const y=[3];ia(e.physicalViewNorth,e.physicalViewUp,y);const w=qe(new Float64Array(16));Hr(w,w,Vn(p),e.physicalViewUp),Hr(w,w,Vn(v),y),Hr(w,w,Vn(x),e.physicalViewNorth),Hr(w,w,Vn(-m),e.physicalViewUp);const C=new Float64Array([-e.physicalViewUp[0],-e.physicalViewUp[1],-e.physicalViewUp[2]]),S=new Float64Array(e.physicalViewNorth);et(C,C,w),et(S,S,w),t.setDirectionOfProjection(C[0],C[1],C[2]),t.setViewUp(S[0],S[1],S[2]),t.modified()},t.setOrientationWXYZ=(p,v,x,m)=>{const y=qe(new Float64Array(16));if(p!==0&&(v!==0||x!==0||m!==0)){const S=Vn(p),T=ll();_w(T,[v,x,m],S),I1(y,T)}const w=new Float64Array(3);et(w,[0,0,-1],y);const C=new Float64Array(3);et(C,[0,1,0],y),t.setDirectionOfProjection(...w),t.setViewUp(...C),t.modified()},t.computeClippingRange=p=>{let v=null,x=null;v=e.viewPlaneNormal,x=e.position;const m=-v[0],y=-v[1],w=-v[2],C=-(m*x[0]+y*x[1]+w*x[2]),S=[m*p[0]+y*p[2]+w*p[4]+C,1e-18];for(let T=0;T<2;T++)for(let _=0;_<2;_++)for(let E=0;E<2;E++){const D=m*p[E]+y*p[2+_]+w*p[4+T]+C;S[0]=DS[1]?D:S[1]}return S}}const IX={position:[0,0,1],focalPoint:[0,0,0],viewUp:[0,1,0],directionOfProjection:[0,0,-1],parallelProjection:!1,useHorizontalViewAngle:!1,viewAngle:30,parallelScale:1,clippingRange:[.01,1000.01],windowCenter:[0,0],viewPlaneNormal:[0,0,1],useOffAxisProjection:!1,screenBottomLeft:[-.5,-.5,-.5],screenBottomRight:[.5,-.5,-.5],screenTopRight:[.5,.5,-.5],freezeFocalPoint:!1,projectionMatrix:null,viewMatrix:null,cameraLightTransform:lo(),physicalTranslation:[0,0,0],physicalScale:1,physicalViewUp:[0,1,0],physicalViewNorth:[0,0,-1]};function oO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IX,r),W.obj(t,e),W.get(t,e,["distance"]),W.setGet(t,e,["parallelProjection","useHorizontalViewAngle","viewAngle","parallelScale","useOffAxisProjection","freezeFocalPoint","physicalScale"]),W.getArray(t,e,["directionOfProjection","viewPlaneNormal","position","focalPoint"]),W.setGetArray(t,e,["clippingRange","windowCenter"],2),W.setGetArray(t,e,["viewUp","screenBottomLeft","screenBottomRight","screenTopRight","physicalTranslation","physicalViewUp","physicalViewNorth"],3),bX(t,e)}const OX=W.newInstance(oO,"vtkCamera");var $w={newInstance:OX,extend:oO};const MX=["HeadLight","CameraLight","SceneLight"];function RX(t,e){e.classHierarchy.push("vtkLight");const r=new Float64Array(3);t.getTransformedPosition=()=>(e.transformMatrix?et(r,e.position,e.transformMatrix):$t(r,e.position[0],e.position[1],e.position[2]),r),t.getTransformedFocalPoint=()=>(e.transformMatrix?et(r,e.focalPoint,e.transformMatrix):$t(r,e.focalPoint[0],e.focalPoint[1],e.focalPoint[2]),r),t.getDirection=()=>(e.directionMTime{const i=new Float64Array(3);Qt(i,e.position,n),e.focalPoint=i},t.setDirectionAngle=(n,i)=>{const o=Vn(n),a=Vn(i);t.setPosition(Math.cos(o)*Math.sin(a),Math.sin(o),Math.cos(o)*Math.cos(a)),t.setFocalPoint(0,0,0),t.setPositional(0)},t.setLightTypeToHeadLight=()=>{t.setLightType("HeadLight")},t.setLightTypeToCameraLight=()=>{t.setLightType("CameraLight")},t.setLightTypeToSceneLight=()=>{t.setTransformMatrix(null),t.setLightType("SceneLight")},t.lightTypeIsHeadLight=()=>e.lightType==="HeadLight",t.lightTypeIsSceneLight=()=>e.lightType==="SceneLight",t.lightTypeIsCameraLight=()=>e.lightType==="CameraLight"}const LX={switch:!0,intensity:1,color:[1,1,1],position:[0,0,1],focalPoint:[0,0,0],positional:!1,exponent:1,coneAngle:30,coneFalloff:5,attenuationValues:[1,0,0],transformMatrix:null,lightType:"SceneLight",shadowAttenuation:1,direction:[0,0,0],directionMTime:0};function aO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,LX,r),W.obj(t,e),W.setGet(t,e,["intensity","switch","positional","exponent","coneAngle","coneFalloff","transformMatrix","lightType","shadowAttenuation","attenuationValues"]),W.setGetArray(t,e,["color","position","focalPoint","attenuationValues"],3),RX(t,e)}const NX=W.newInstance(aO,"vtkLight");var PX={newInstance:NX,extend:aO,LIGHT_TYPES:MX};const{vtkErrorMacro:Rp}=W;function AX(t){return()=>Rp(`vtkViewport::${t} - NOT IMPLEMENTED`)}function kX(t,e){e.classHierarchy.push("vtkViewport"),t.getViewProps=()=>e.props,t.hasViewProp=n=>e.props.includes(n),t.addViewProp=n=>{n&&!t.hasViewProp(n)&&e.props.push(n)},t.removeViewProp=n=>{const i=e.props.filter(o=>o!==n);e.props.length!==i.length&&(e.props=i)},t.removeAllViewProps=()=>{e.props=[]};function r(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];i.push(n);const o=n.getNestedProps();if(o&&o.length)for(let a=0;a{const n=[];for(let i=0;i{t.removeViewProp(n)},t.getActors2D=()=>(e.actors2D=[],e.props.forEach(n=>{e.actors2D=e.actors2D.concat(n.getActors2D())}),e.actors2D),t.displayToView=()=>Rp("call displayToView on your view instead"),t.viewToDisplay=()=>Rp("callviewtodisplay on your view instead"),t.getSize=()=>Rp("call getSize on your View instead"),t.normalizedDisplayToProjection=(n,i,o)=>{const a=t.normalizedDisplayToNormalizedViewport(n,i,o);return t.normalizedViewportToProjection(a[0],a[1],a[2])},t.normalizedDisplayToNormalizedViewport=(n,i,o)=>{const a=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[(n-e.viewport[0])/a[0],(i-e.viewport[1])/a[1],o]},t.normalizedViewportToProjection=(n,i,o)=>[n*2-1,i*2-1,o*2-1],t.projectionToNormalizedDisplay=(n,i,o)=>{const a=t.projectionToNormalizedViewport(n,i,o);return t.normalizedViewportToNormalizedDisplay(a[0],a[1],a[2])},t.normalizedViewportToNormalizedDisplay=(n,i,o)=>{const a=[e.viewport[2]-e.viewport[0],e.viewport[3]-e.viewport[1]];return[n*a[0]+e.viewport[0],i*a[1]+e.viewport[1],o]},t.projectionToNormalizedViewport=(n,i,o)=>[(n+1)*.5,(i+1)*.5,(o+1)*.5],t.PickPropFrom=AX("PickPropFrom")}const VX={background:[0,0,0],background2:[.2,.2,.2],gradientBackground:!1,viewport:[0,0,1,1],aspect:[1,1],pixelAspect:[1,1],props:[],actors2D:[]};function sO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VX,r),W.obj(t,e),W.event(t,e,"event"),W.setGetArray(t,e,["viewport"],4),W.setGetArray(t,e,["background","background2"],3),kX(t,e)}const FX=W.newInstance(sO,"vtkViewport");var UX={newInstance:FX,extend:sO};const{vtkDebugMacro:Q0,vtkErrorMacro:ps,vtkWarningMacro:BX}=Br;function s8(t){return()=>ps(`vtkRenderer::${t} - NOT IMPLEMENTED`)}function GX(t,e){e.classHierarchy.push("vtkRenderer");const r={type:"ComputeVisiblePropBoundsEvent",renderer:t},n={type:"ResetCameraClippingRangeEvent",renderer:t},i={type:"ResetCameraEvent",renderer:t};t.updateCamera=()=>(e.activeCamera||(Q0("No cameras are on, creating one."),t.getActiveCameraAndResetIfCreated()),e.activeCamera.render(t),!0),t.updateLightsGeometryToFollowCamera=()=>{const o=t.getActiveCameraAndResetIfCreated();e.lights.forEach(a=>{a.lightTypeIsSceneLight()||(a.lightTypeIsHeadLight()?(a.setPositionFrom(o.getPositionByReference()),a.setFocalPointFrom(o.getFocalPointByReference()),a.modified(o.getMTime())):a.lightTypeIsCameraLight()?a.setTransformMatrix(o.getCameraLightTransformMatrix(lo())):ps("light has unknown light type",a.get()))})},t.updateLightGeometry=()=>e.lightFollowCamera?t.updateLightsGeometryToFollowCamera():!0,t.allocateTime=s8("allocateTime"),t.updateGeometry=s8("updateGeometry"),t.getVTKWindow=()=>e._renderWindow,t.setLayer=o=>{Q0(t.getClassName(),t,"setting Layer to ",o),e.layer!==o&&(e.layer=o,t.modified()),t.setPreserveColorBuffer(!!o)},t.setActiveCamera=o=>e.activeCamera===o?!1:(e.activeCamera=o,t.modified(),t.invokeEvent({type:"ActiveCameraEvent",camera:o}),!0),t.makeCamera=()=>{const o=$w.newInstance();return t.invokeEvent({type:"CreateCameraEvent",camera:o}),o},t.getActiveCamera=()=>(e.activeCamera||(e.activeCamera=t.makeCamera()),e.activeCamera),t.getActiveCameraAndResetIfCreated=()=>(e.activeCamera||(t.getActiveCamera(),t.resetCamera()),e.activeCamera),t.getActors=()=>(e.actors=[],e.props.forEach(o=>{e.actors=e.actors.concat(o.getActors())}),e.actors),t.addActor=t.addViewProp,t.removeActor=o=>{e.actors=e.actors.filter(a=>a!==o),t.removeViewProp(o),t.modified()},t.removeAllActors=()=>{t.getActors().forEach(a=>{t.removeViewProp(a)}),e.actors=[],t.modified()},t.getVolumes=()=>(e.volumes=[],e.props.forEach(o=>{e.volumes=e.volumes.concat(o.getVolumes())}),e.volumes),t.addVolume=t.addViewProp,t.removeVolume=o=>{e.volumes=e.volumes.filter(a=>a!==o),t.removeViewProp(o),t.modified()},t.removeAllVolumes=()=>{t.getVolumes().forEach(a=>{t.removeViewProp(a)}),e.volumes=[],t.modified()},t.hasLight=o=>e.lights.includes(o),t.addLight=o=>{o&&!t.hasLight(o)&&(e.lights.push(o),t.modified())},t.removeLight=o=>{e.lights=e.lights.filter(a=>a!==o),t.modified()},t.removeAllLights=()=>{e.lights=[],t.modified()},t.setLightCollection=o=>{e.lights=o,t.modified()},t.makeLight=PX.newInstance,t.createLight=()=>{e.automaticLightCreation&&(e._createdLight&&(t.removeLight(e._createdLight),e._createdLight.delete(),e._createdLight=null),e._createdLight=t.makeLight(),t.addLight(e._createdLight),e._createdLight.setLightTypeToHeadLight(),e._createdLight.setPosition(t.getActiveCamera().getPosition()),e._createdLight.setFocalPoint(t.getActiveCamera().getFocalPoint()))},t.normalizedDisplayToWorld=(o,a,s,c)=>{let l=t.normalizedDisplayToProjection(o,a,s);return l=t.projectionToView(l[0],l[1],l[2],c),t.viewToWorld(l[0],l[1],l[2])},t.worldToNormalizedDisplay=(o,a,s,c)=>{let l=t.worldToView(o,a,s);return l=t.viewToProjection(l[0],l[1],l[2],c),t.projectionToNormalizedDisplay(l[0],l[1],l[2])},t.viewToWorld=(o,a,s)=>{if(e.activeCamera===null)return ps("ViewToWorld: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getViewMatrix();$n(c,c),St(c,c);const l=new Float64Array([o,a,s]);return et(l,l,c),l},t.projectionToView=(o,a,s,c)=>{if(e.activeCamera===null)return ps("ProjectionToView: no active camera, cannot compute projection to view, returning 0,0,0"),[0,0,0];const l=e.activeCamera.getProjectionMatrix(c,-1,1);$n(l,l),St(l,l);const f=new Float64Array([o,a,s]);return et(f,f,l),f},t.worldToView=(o,a,s)=>{if(e.activeCamera===null)return ps("WorldToView: no active camera, cannot compute view to world, returning 0,0,0"),[0,0,0];const c=e.activeCamera.getViewMatrix();St(c,c);const l=new Float64Array([o,a,s]);return et(l,l,c),l},t.viewToProjection=(o,a,s,c)=>{if(e.activeCamera===null)return ps("ViewToProjection: no active camera, cannot compute view to projection, returning 0,0,0"),[0,0,0];const l=e.activeCamera.getProjectionMatrix(c,-1,1);St(l,l);const f=new Float64Array([o,a,s]);return et(f,f,l),f},t.computeVisiblePropBounds=()=>{e.allBounds[0]=qt.INIT_BOUNDS[0],e.allBounds[1]=qt.INIT_BOUNDS[1],e.allBounds[2]=qt.INIT_BOUNDS[2],e.allBounds[3]=qt.INIT_BOUNDS[3],e.allBounds[4]=qt.INIT_BOUNDS[4],e.allBounds[5]=qt.INIT_BOUNDS[5];let o=!0;t.invokeEvent(r);for(let a=0;ae.allBounds[1]&&(e.allBounds[1]=c[1]),c[2]e.allBounds[3]&&(e.allBounds[3]=c[3]),c[4]e.allBounds[5]&&(e.allBounds[5]=c[5]))}}return o&&(y0(e.allBounds),Q0("Can't compute bounds, no 3D props are visible")),e.allBounds},t.resetCamera=function(){const a=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds(),s=[0,0,0];if(!Ep(a))return Q0("Cannot reset camera!"),!1;let c=null;if(t.getActiveCamera())c=e.activeCamera.getViewPlaneNormal();else return ps("Trying to reset non-existent camera"),!1;e.activeCamera.setViewAngle(30),s[0]=(a[0]+a[1])/2,s[1]=(a[2]+a[3])/2,s[2]=(a[4]+a[5])/2;let l=a[1]-a[0],f=a[3]-a[2],u=a[5]-a[4];l*=l,f*=f,u*=u;let d=l+f+u;d=d===0?1:d,d=Math.sqrt(d)*.5;const h=Vn(e.activeCamera.getViewAngle()),g=d,p=d/Math.sin(h*.5),v=e.activeCamera.getViewUp();return Math.abs(wt(v,c))>.999&&(BX("Resetting view-up since view plane normal is parallel"),e.activeCamera.setViewUp(-v[2],v[0],v[1])),e.activeCamera.setFocalPoint(s[0],s[1],s[2]),e.activeCamera.setPosition(s[0]+p*c[0],s[1]+p*c[1],s[2]+p*c[2]),t.resetCameraClippingRange(a),e.activeCamera.setParallelScale(g),e.activeCamera.setPhysicalScale(d),e.activeCamera.setPhysicalTranslation(-s[0],-s[1],-s[2]),t.invokeEvent(i),!0},t.resetCameraClippingRange=function(){const a=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:null)||t.computeVisiblePropBounds();if(!Ep(a))return Q0("Cannot reset camera clipping range!"),!1;if(t.getActiveCameraAndResetIfCreated(),!e.activeCamera)return ps("Trying to reset clipping range of non-existent camera"),!1;const s=e.activeCamera.computeClippingRange(a);let c=0;if(e.activeCamera.getParallelProjection())c=.2*e.activeCamera.getParallelScale();else{const l=Vn(e.activeCamera.getViewAngle());c=.2*Math.tan(l/2)*s[1]}return s[1]-s[0]=s[1]?.01*s[1]:s[0],e.nearClippingPlaneTolerance||(e.nearClippingPlaneTolerance=.01),s[0]{o!==e._renderWindow&&(e._vtkWindow=o,e._renderWindow=o)},t.visibleActorCount=()=>e.props.filter(o=>o.getVisibility()).length,t.visibleVolumeCount=t.visibleActorCount,t.getMTime=()=>{let o=e.mtime;const a=e.activeCamera?e.activeCamera.getMTime():0;a>o&&(o=a);const s=e._createdLight?e._createdLight.getMTime():0;return s>o&&(o=s),o},t.getTransparent=()=>!!e.preserveColorBuffer,t.isActiveCameraCreated=()=>!!e.activeCamera}const WX={pickedProp:null,activeCamera:null,allBounds:[],ambient:[1,1,1],allocatedRenderTime:100,timeFactor:1,automaticLightCreation:!0,twoSidedLighting:!0,lastRenderTimeInSeconds:-1,renderWindow:null,lights:[],actors:[],volumes:[],lightFollowCamera:!0,numberOfPropsRendered:0,propArray:null,pathArray:null,layer:0,preserveColorBuffer:!1,preserveDepthBuffer:!1,computeVisiblePropBounds:qs(),interactive:!0,nearClippingPlaneTolerance:0,clippingRangeExpansion:.05,erase:!0,draw:!0,useShadows:!1,useDepthPeeling:!1,occlusionRatio:0,maximumNumberOfPeels:4,selector:null,delegate:null,texturedBackground:!1,backgroundTexture:null,environmentTexture:null,environmentTextureDiffuseStrength:1,environmentTextureSpecularStrength:1,useEnvironmentTextureAsBackground:!1,pass:0};function cO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};for(Object.assign(e,WX,r),UX.extend(t,e,r),e.background||(e.background=[0,0,0,1]);e.background.length<3;)e.background.push(0);e.background.length===3&&e.background.push(1),gi(t,e,["_renderWindow","allocatedRenderTime","timeFactor","lastRenderTimeInSeconds","numberOfPropsRendered","lastRenderingUsedDepthPeeling","selector"]),Jn(t,e,["twoSidedLighting","lightFollowCamera","automaticLightCreation","erase","draw","nearClippingPlaneTolerance","clippingRangeExpansion","backingStore","interactive","layer","preserveColorBuffer","preserveDepthBuffer","useDepthPeeling","occlusionRatio","maximumNumberOfPeels","delegate","backgroundTexture","texturedBackground","environmentTexture","environmentTextureDiffuseStrength","environmentTextureSpecularStrength","useEnvironmentTextureAsBackground","useShadows","pass"]),v0(t,e,["actors","volumes","lights"]),Kx(t,e,["background"],4,1),hh(t,e,["renderWindow"]),GX(t,e)}const zX=Bt(cO,"vtkRenderer");var lO={newInstance:zX,extend:cO};const $X={Unknown:0,LeftController:1,RightController:2},jX={Unknown:0,Trigger:1,TrackPad:2,Grip:3,Thumbstick:4,A:5,B:6,ApplicationMenu:7},HX={Unknown:0,TouchpadX:1,TouchpadY:2,ThumbstickX:3,ThumbstickY:4};var uO={Device:$X,Input:jX,Axis:HX};const{Device:mg,Input:bc}=uO,{vtkWarningMacro:vg,vtkErrorMacro:yg,normalizeWheel:KX,vtkOnceErrorMacro:qX}=W,Fl={ctrlKey:!1,altKey:!1,shiftKey:!1},Ov={"xr-standard":[bc.Trigger,bc.Grip,bc.TrackPad,bc.Thumbstick,bc.A,bc.B]},jw=["StartAnimation","Animation","EndAnimation","PointerEnter","PointerLeave","MouseEnter","MouseLeave","StartMouseMove","MouseMove","EndMouseMove","LeftButtonPress","LeftButtonRelease","MiddleButtonPress","MiddleButtonRelease","RightButtonPress","RightButtonRelease","KeyPress","KeyDown","KeyUp","StartMouseWheel","MouseWheel","EndMouseWheel","StartPinch","Pinch","EndPinch","StartPan","Pan","EndPan","StartRotate","Rotate","EndRotate","Button3D","Move3D","StartPointerLock","EndPointerLock","StartInteraction","Interaction","EndInteraction","AnimationFrameRateUpdate"];function ef(t){t.cancelable&&t.preventDefault()}function xg(t){const e=Object.create(null);return t.forEach(r=>{let{pointerId:n,position:i}=r;e[n]=i}),e}function XX(t,e){e.classHierarchy.push("vtkRenderWindowInteractor");const r={...t},n=new Set,i=new Map;let o=1;t.start=()=>{!e.initialized&&(t.initialize(),!e.initialized)||t.startEventLoop()},t.setRenderWindow=p=>{yg("you want to call setView(view) instead of setRenderWindow on a vtk.js interactor")},t.setInteractorStyle=p=>{e.interactorStyle!==p&&(e.interactorStyle!=null&&e.interactorStyle.setInteractor(null),e.interactorStyle=p,e.interactorStyle!=null&&e.interactorStyle.getInteractor()!==t&&e.interactorStyle.setInteractor(t))},t.initialize=()=>{e.initialized=!0,t.enable(),t.render()},t.enable=()=>t.setEnabled(!0),t.disable=()=>t.setEnabled(!1),t.startEventLoop=()=>vg("empty event loop");function a(p,v){e._forcedRenderer||(e.currentRenderer=t.findPokedRenderer(p,v))}t.getCurrentRenderer=()=>(e.currentRenderer||a(0,0),e.currentRenderer);function s(p){const v=e._view.getCanvas(),x=v.getBoundingClientRect(),m=v.width/x.width,y=v.height/x.height,w={x:m*(p.clientX-x.left),y:y*(x.height-p.clientY+x.top),z:0};return(i.size<=1||!e.currentRenderer)&&a(w.x,w.y),w}const c=e._getScreenEventPositionFor||s;function l(p){return{controlKey:p.ctrlKey,altKey:p.altKey,shiftKey:p.shiftKey}}function f(p){const v=l(p);return{key:p.key,keyCode:p.charCode,...v}}function u(p){return p.pointerType||""}const d=()=>{if(e.container===null)return;const{container:p}=e;p.addEventListener("contextmenu",ef),p.addEventListener("wheel",t.handleWheel),p.addEventListener("DOMMouseScroll",t.handleWheel),p.addEventListener("pointerenter",t.handlePointerEnter),p.addEventListener("pointerleave",t.handlePointerLeave),p.addEventListener("pointermove",t.handlePointerMove,{passive:!1}),p.addEventListener("pointerdown",t.handlePointerDown,{passive:!1}),p.addEventListener("pointerup",t.handlePointerUp),p.addEventListener("pointercancel",t.handlePointerCancel),document.addEventListener("keypress",t.handleKeyPress),document.addEventListener("keydown",t.handleKeyDown),document.addEventListener("keyup",t.handleKeyUp),document.addEventListener("pointerlockchange",t.handlePointerLockChange),p.style.touchAction="none",p.style.userSelect="none",p.style.webkitTapHighlightColor="rgba(0,0,0,0)"};t.bindEvents=p=>{if(p===null)return;r.setContainer(p)&&d()};const h=()=>{clearTimeout(e.moveTimeoutID),clearTimeout(e.wheelTimeoutID),e.moveTimeoutID=0,e.wheelTimeoutID=0,o=1;const{container:p}=e;p&&(p.removeEventListener("contextmenu",ef),p.removeEventListener("wheel",t.handleWheel),p.removeEventListener("DOMMouseScroll",t.handleWheel),p.removeEventListener("pointerenter",t.handlePointerEnter),p.removeEventListener("pointerleave",t.handlePointerLeave),p.removeEventListener("pointermove",t.handlePointerMove,{passive:!1}),p.removeEventListener("pointerdown",t.handlePointerDown,{passive:!1}),p.removeEventListener("pointerup",t.handlePointerUp),p.removeEventListener("pointercancel",t.handlePointerCancel)),document.removeEventListener("keypress",t.handleKeyPress),document.removeEventListener("keydown",t.handleKeyDown),document.removeEventListener("keyup",t.handleKeyUp),document.removeEventListener("pointerlockchange",t.handlePointerLockChange),i.clear()};t.unbindEvents=()=>{h(),r.setContainer(null)},t.handleKeyPress=p=>{const v=f(p);t.keyPressEvent(v)},t.handleKeyDown=p=>{const v=f(p);t.keyDownEvent(v)},t.handleKeyUp=p=>{const v=f(p);t.keyUpEvent(v)},t.handlePointerEnter=p=>{const v={...l(p),position:c(p),deviceType:u(p)};t.pointerEnterEvent(v),v.deviceType==="mouse"&&t.mouseEnterEvent(v)},t.handlePointerLeave=p=>{const v={...l(p),position:c(p),deviceType:u(p)};t.pointerLeaveEvent(v),v.deviceType==="mouse"&&t.mouseLeaveEvent(v)},t.handlePointerDown=p=>{if(!(p.button>2||t.isPointerLocked()))switch(e.preventDefaultOnPointerDown&&ef(p),p.target.hasPointerCapture(p.pointerId)&&p.target.releasePointerCapture(p.pointerId),e.container.setPointerCapture(p.pointerId),i.has(p.pointerId)&&vg("[RenderWindowInteractor] duplicate pointerId detected"),i.set(p.pointerId,{pointerId:p.pointerId,position:c(p)}),p.pointerType){case"pen":case"touch":t.handleTouchStart(p);break;case"mouse":default:t.handleMouseDown(p);break}},t.handlePointerUp=p=>{if(i.has(p.pointerId))switch(e.preventDefaultOnPointerUp&&ef(p),i.delete(p.pointerId),e.container.releasePointerCapture(p.pointerId),p.pointerType){case"pen":case"touch":t.handleTouchEnd(p);break;case"mouse":default:t.handleMouseUp(p);break}},t.handlePointerCancel=p=>{if(i.has(p.pointerId))switch(i.delete(p.pointerId),p.pointerType){case"pen":case"touch":t.handleTouchEnd(p);break;case"mouse":default:t.handleMouseUp(p);break}},t.handlePointerMove=p=>{if(i.has(p.pointerId)){const v=i.get(p.pointerId);v.position=c(p)}switch(p.pointerType){case"pen":case"touch":t.handleTouchMove(p);break;case"mouse":default:t.handleMouseMove(p);break}},t.handleMouseDown=p=>{const v={...l(p),position:c(p),deviceType:u(p)};switch(p.button){case 0:t.leftButtonPressEvent(v);break;case 1:t.middleButtonPressEvent(v);break;case 2:t.rightButtonPressEvent(v);break;default:yg(`Unknown mouse button pressed: ${p.button}`);break}},t.requestPointerLock=()=>{e.container&&e.container.requestPointerLock()},t.exitPointerLock=()=>{var p;return(p=document.exitPointerLock)==null?void 0:p.call(document)},t.isPointerLocked=()=>!!e.container&&document.pointerLockElement===e.container,t.handlePointerLockChange=()=>{t.isPointerLocked()?t.startPointerLockEvent():t.endPointerLockEvent()};function g(){e._view&&e.enabled&&e.enableRender&&(e.inRender=!0,e._view.traverseAllPasses(),e.inRender=!1),t.invokeRenderEvent()}t.requestAnimation=p=>{if(p===void 0){yg("undefined requester, can not start animating");return}if(n.has(p)){vg("requester is already registered for animating");return}n.add(p),!e.animationRequest&&n.size===1&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.extendAnimation=p=>{const v=Date.now()+p;e._animationExtendedEnd=Math.max(e._animationExtendedEnd,v),!e.animationRequest&&n.size===0&&!e.xrAnimation&&(e._animationStartTime=Date.now(),e._animationFrameCount=0,e.animationRequest=requestAnimationFrame(t.handleAnimation),t.startAnimationEvent())},t.isAnimating=()=>e.xrAnimation||e.animationRequest!==null,t.cancelAnimation=function(p){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!n.has(p)){if(!v){const x=p&&p.getClassName?p.getClassName():p;vg(`${x} did not request an animation`)}return}n.delete(p),e.animationRequest&&n.size===0&&Date.now()>e._animationExtendedEnd&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null,t.endAnimationEvent(),t.render())},t.switchToXRAnimation=()=>{e.animationRequest&&(cancelAnimationFrame(e.animationRequest),e.animationRequest=null),e.xrAnimation=!0},t.returnFromXRAnimation=()=>{e.xrAnimation=!1,n.size!==0&&(e.recentAnimationFrameRate=10,e.animationRequest=requestAnimationFrame(t.handleAnimation))},t.updateXRGamepads=(p,v,x)=>{p.inputSources.forEach(m=>{const y=m.gripSpace==null?null:v.getPose(m.gripSpace,x),w=m.gripSpace==null?null:v.getPose(m.targetRaySpace,x),C=m.gamepad,S=m.handedness;if(C){C.index in e.lastGamepadValues||(e.lastGamepadValues[C.index]={left:{buttons:{}},right:{buttons:{}},none:{buttons:{}}});for(let T=0;T{const v={...l(p),position:c(p),deviceType:u(p)};e.moveTimeoutID===0?t.startMouseMoveEvent(v):(t.mouseMoveEvent(v),clearTimeout(e.moveTimeoutID)),e.moveTimeoutID=setTimeout(()=>{t.endMouseMoveEvent(),e.moveTimeoutID=0},200)},t.handleAnimation=()=>{const p=Date.now();e._animationFrameCount++,p-e._animationStartTime>1e3&&e._animationFrameCount>1&&(e.recentAnimationFrameRate=1e3*(e._animationFrameCount-1)/(p-e._animationStartTime),e.lastFrameTime=1/e.recentAnimationFrameRate,t.animationFrameRateUpdateEvent(),e._animationStartTime=p,e._animationFrameCount=1),t.animationEvent(),g(),n.size>0||Date.now(){ef(p);const v={...KX(p),...l(p),position:c(p),deviceType:u(p)};e.wheelTimeoutID===0&&(Math.abs(v.spinY)>=.3?o=Math.abs(v.spinY):o=1),v.spinY/=o,e.wheelTimeoutID===0?(t.startMouseWheelEvent(v),t.mouseWheelEvent(v)):(t.mouseWheelEvent(v),clearTimeout(e.wheelTimeoutID)),e.mouseScrollDebounceByPass?(t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0):e.wheelTimeoutID=setTimeout(()=>{t.extendAnimation(600),t.endMouseWheelEvent(),e.wheelTimeoutID=0},200)},t.handleMouseUp=p=>{const v={...l(p),position:c(p),deviceType:u(p)};switch(p.button){case 0:t.leftButtonReleaseEvent(v);break;case 1:t.middleButtonReleaseEvent(v);break;case 2:t.rightButtonReleaseEvent(v);break;default:yg(`Unknown mouse button released: ${p.button}`);break}},t.handleTouchStart=p=>{const v=[...i.values()];if(e.recognizeGestures&&v.length>1){const x=xg(i);if(v.length===2){const m={...l(Fl),position:v[0].position,deviceType:u(p)};t.leftButtonReleaseEvent(m)}t.recognizeGesture("TouchStart",x)}else if(v.length===1){const x={...l(Fl),position:c(p),deviceType:u(p)};t.leftButtonPressEvent(x)}},t.handleTouchMove=p=>{const v=[...i.values()];if(e.recognizeGestures&&v.length>1){const x=xg(i);t.recognizeGesture("TouchMove",x)}else if(v.length===1){const x={...l(Fl),position:v[0].position,deviceType:u(p)};t.mouseMoveEvent(x)}},t.handleTouchEnd=p=>{const v=[...i.values()];if(e.recognizeGestures)if(v.length===0){const x={...l(Fl),position:c(p),deviceType:u(p)};t.leftButtonReleaseEvent(x)}else if(v.length===1){const x=xg(i);t.recognizeGesture("TouchEnd",x);const m={...l(Fl),position:v[0].position,deviceType:u(p)};t.leftButtonPressEvent(m)}else{const x=xg(i);t.recognizeGesture("TouchMove",x)}else if(v.length===1){const x={...l(Fl),position:v[0].position,deviceType:u(p)};t.leftButtonReleaseEvent(x)}},t.setView=p=>{e._view!==p&&(e._view=p,e._view.getRenderable().setInteractor(t),t.modified())},t.getFirstRenderer=()=>{var p,v,x;return(x=(v=(p=e._view)==null?void 0:p.getRenderable())==null?void 0:v.getRenderersByReference())==null?void 0:x[0]},t.findPokedRenderer=function(){var S,T;let p=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!e._view)return null;const x=(T=(S=e._view)==null?void 0:S.getRenderable())==null?void 0:T.getRenderers();if(!x||x.length===0)return null;x.sort((_,E)=>_.getLayer()-E.getLayer());let m=null,y=null,w=null,C=x.length;for(;C--;){const _=x[C];if(e._view.isInViewport(p,v,_)&&_.getInteractive()){w=_;break}m===null&&_.getInteractive()&&(m=_),y===null&&e._view.isInViewport(p,v,_)&&(y=_)}return w===null&&(w=m),w===null&&(w=y),w==null&&(w=x[0]),w},t.render=()=>{!t.isAnimating()&&!e.inRender&&g()},jw.forEach(p=>{const v=p.charAt(0).toLowerCase()+p.slice(1);t[`${v}Event`]=x=>{if(!e.enabled)return;if(!t.getCurrentRenderer()){qX(` Can not forward events without a current renderer on the interactor. - `);return}const y={type:p,pokedRenderer:e.currentRenderer,firstRenderer:t.getFirstRenderer(),...x};t[`invoke${p}`](y)}}),t.recognizeGesture=(p,v)=>{if(Object.keys(v).length>2)return;if(e.startingEventPositions||(e.startingEventPositions={}),p==="TouchStart"){Object.keys(v).forEach(D=>{e.startingEventPositions[D]=v[D]}),e.currentGesture="Start";return}if(p==="TouchEnd"){e.currentGesture==="Pinch"&&(t.render(),t.endPinchEvent()),e.currentGesture==="Rotate"&&(t.render(),t.endRotateEvent()),e.currentGesture==="Pan"&&(t.render(),t.endPanEvent()),e.currentGesture="Start",e.startingEventPositions={};return}let x=0;const m=[],y=[];Object.keys(v).forEach(D=>{m[x]=v[D],y[x]=e.startingEventPositions[D],x++});const w=Math.sqrt((y[0].x-y[1].x)*(y[0].x-y[1].x)+(y[0].y-y[1].y)*(y[0].y-y[1].y)),C=Math.sqrt((m[0].x-m[1].x)*(m[0].x-m[1].x)+(m[0].y-m[1].y)*(m[0].y-m[1].y));let S=S1(Math.atan2(y[1].y-y[0].y,y[1].x-y[0].x)),T=S1(Math.atan2(m[1].y-m[0].y,m[1].x-m[0].x)),_=T-S;T=T+180>=360?T-180:T+180,S=S+180>=360?S-180:S+180,Math.abs(T-S)D&&b>I&&b>R){e.currentGesture="Pinch";const M={scale:1,touches:v};t.startPinchEvent(M)}else if(I>D&&I>R){e.currentGesture="Rotate";const M={rotation:0,touches:v};t.startRotateEvent(M)}else if(R>D){e.currentGesture="Pan";const M={translation:[0,0],touches:v};t.startPanEvent(M)}}else{if(e.currentGesture==="Rotate"){const D={rotation:_,touches:v};t.rotateEvent(D)}if(e.currentGesture==="Pinch"){const D={scale:C/w,touches:v};t.pinchEvent(D)}if(e.currentGesture==="Pan"){const D={translation:E,touches:v};t.panEvent(D)}}},t.handleVisibilityChange=()=>{e._animationStartTime=Date.now(),e._animationFrameCount=0},t.setCurrentRenderer=p=>{e._forcedRenderer=!!p,e.currentRenderer=p},t.setContainer=p=>{h();const v=r.setContainer(p??null);return v&&d(),v},t.delete=()=>{for(;n.size;)t.cancelAnimation(n.values().next().value);typeof document.hidden<"u"&&document.removeEventListener("visibilitychange",t.handleVisibilityChange),e.container&&t.setContainer(null),r.delete()},typeof document.hidden<"u"&&document.addEventListener("visibilitychange",t.handleVisibilityChange,!1)}const $X={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function aO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$X,r),W.obj(t,e),e._animationExtendedEnd=0,W.event(t,e,"RenderEvent"),zw.forEach(n=>W.event(t,e,n)),W.get(t,e,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),W.setGet(t,e,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),W.moveToProtected(t,e,["view"]),zX(t,e)}const jX=W.newInstance(aO,"vtkRenderWindowInteractor");var HX={newInstance:jX,extend:aO,handledEvents:zw,...oO};const{vtkErrorMacro:KX}=W,qX=[1,-1,1,-1,1,-1];function XX(t,e){e.classHierarchy.push("vtkPoints"),t.getNumberOfPoints=t.getNumberOfTuples,t.setNumberOfPoints=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;t.getNumberOfPoints()!==r&&(e.size=r*n,e.values=W.newTypedArray(e.dataType,e.size),t.setNumberOfComponents(n),t.modified())},t.setPoint=function(r){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;ot.insertNextTuple([r,n,i]),t.getBounds=()=>{if(t.getNumberOfComponents()===3){const i=t.getRange(0);e.bounds[0]=i[0],e.bounds[1]=i[1];const o=t.getRange(1);e.bounds[2]=o[0],e.bounds[3]=o[1];const a=t.getRange(2);return e.bounds[4]=a[0],e.bounds[5]=a[1],e.bounds}if(t.getNumberOfComponents()!==2)return KX(`getBounds called on an array with components of - ${t.getNumberOfComponents()}`),qX;const r=t.getRange(0);e.bounds[0]=r[0],e.bounds[1]=r[1];const n=t.getRange(1);return e.bounds[2]=n[0],e.bounds[3]=n[1],e.bounds[4]=0,e.bounds[5]=0,e.bounds},t.computeBounds=t.getBounds,t.setNumberOfComponents(e.numberOfComponents<2?3:e.numberOfComponents)}const YX={empty:!0,numberOfComponents:3,dataType:yt.FLOAT,bounds:[1,-1,1,-1,1,-1]};function sO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YX,r),tt.extend(t,e,r),XX(t,e)}const JX=W.newInstance(sO,"vtkPoints");var Md={newInstance:JX,extend:sO};function cO(t){let e=0;return t.filter((r,n)=>n===e?(e+=r+1,!0):!1)}function lO(t){let e=0;for(let r=0;r(e.numberOfCells!==void 0&&!n||(e.cellSizes?e.numberOfCells=e.cellSizes.length:e.numberOfCells=lO(t.getData())),e.numberOfCells),t.getCellSizes=n=>(e.cellSizes!==void 0&&!n||(e.cellSizes=cO(t.getData())),e.cellSizes),t.resize=n=>{const i=t.getNumberOfTuples();r.resize(n);const o=t.getNumberOfTuples();o{r.setData(n,1),e.numberOfCells=void 0,e.cellSizes=void 0},t.getCell=n=>{let i=n;const o=e.values[i++];return e.values.subarray(i,i+o)},t.insertNextCell=n=>{const i=t.getNumberOfCells();return t.insertNextTuples([n.length,...n]),++e.numberOfCells,e.cellSizes!=null&&e.cellSizes.push(n.length),i}}function eY(t){return{empty:!0,numberOfComponents:1,dataType:yt.UNSIGNED_INT,...t}}function uO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};tt.extend(t,e,eY(r)),QX(t,e)}const tY=W.newInstance(uO,"vtkCellArray");var ll={newInstance:tY,extend:uO,...ZX};function nY(t,e){e.classHierarchy.push("vtkCell"),t.initialize=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(n){e.pointsIds=n;let i=e.points.getData();i.length!==3*e.pointsIds.length&&(i=W.newTypedArray(r.getDataType(),3*e.pointsIds.length));const o=r.getData();e.pointsIds.forEach((a,s)=>{let c=3*a,l=3*s;i[l]=o[c],i[++l]=o[++c],i[++l]=o[++c]}),e.points.setData(i)}else{e.points=r,e.pointsIds=new Array(r.getNumberOfPoints());for(let i=r.getNumberOfPoints()-1;i>=0;--i)e.pointsIds[i]=i}},t.getBounds=()=>{const r=e.points.getNumberOfPoints(),n=[];if(r){e.points.getPoint(0,n),e.bounds[0]=n[0],e.bounds[1]=n[0],e.bounds[2]=n[1],e.bounds[3]=n[1],e.bounds[4]=n[2],e.bounds[5]=n[2];for(let i=1;ie.bounds[1]?n[0]:e.bounds[1],e.bounds[2]=n[1]e.bounds[3]?n[1]:e.bounds[3],e.bounds[4]=n[2]e.bounds[5]?n[2]:e.bounds[5]}else p0(e.bounds);return e.bounds},t.getLength2=()=>{t.getBounds();let r=0,n=0;for(let i=0;i<3;i++)n=e.bounds[2*i+1]-e.bounds[2*i],r+=n*n;return r},t.getParametricDistance=r=>{let n,i=0;for(let o=0;o<3;o++)r[o]<0?n=-r[o]:r[o]>1?n=r[o]-1:n=0,n>i&&(i=n);return i},t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.deepCopy=r=>{r.initialize(e.points,e.pointsIds)},t.getCellDimension=()=>{},t.intersectWithLine=(r,n,i,o,a,s,c)=>{},t.evaluatePosition=(r,n,i,o,a,s)=>{W.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const rY={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function fO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rY,r),W.obj(t,e),e.points||(e.points=Md.newInstance()),W.get(t,e,["points","pointsIds"]),nY(t,e)}const iY=W.newInstance(fO,"vtkCell");var A1={newInstance:iY,extend:fO};function oY(t,e){let r=e;for(e>=t.array.length&&(r+=t.array.length);r>t.array.length;)t.array.push({ncells:0,cells:null});t.array.length=r}function aY(t,e){e.classHierarchy.push("vtkCellLinks"),t.buildLinks=r=>{const n=r.getPoints().getNumberOfPoints(),i=r.getNumberOfCells(),o=new Uint32Array(n);if(r.isA("vtkPolyData")){for(let a=0;a{t.incrementLinkCount(c)})}t.allocateLinks(n),e.maxId=n-1;for(let a=0;a{t.insertCellReference(c,o[c]++,a)})}}else{for(let a=0;a{t.incrementLinkCount(c)});t.allocateLinks(n),e.maxId=n-1;for(let a=0;a{t.insertCellReference(c,o[c]++,a)})}},t.allocate=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.array=Array(r).fill().map(()=>({ncells:0,cells:null})),e.extend=n,e.maxId=-1},t.initialize=()=>{e.array=null},t.getLink=r=>e.array[r],t.getNcells=r=>e.array[r].ncells,t.getCells=r=>e.array[r].cells,t.insertNextPoint=r=>{e.array.push({ncells:r,cells:Array(r)}),++e.maxId},t.insertNextCellReference=(r,n)=>{e.array[r].cells[e.array[r].ncells++]=n},t.deletePoint=r=>{e.array[r].ncells=0,e.array[r].cells=null},t.removeCellReference=(r,n)=>{e.array[n].cells=e.array[n].cells.filter(i=>i!==r),e.array[n].ncells=e.array[n].cells.length},t.addCellReference=(r,n)=>{e.array[n].cells[e.array[n].ncells++]=r},t.resizeCellList=(r,n)=>{e.array[r].cells.length=n},t.squeeze=()=>{oY(e,e.maxId+1)},t.reset=()=>{e.maxId=-1},t.deepCopy=r=>{e.array=[...r.array],e.extend=r.extend,e.maxId=r.maxId},t.incrementLinkCount=r=>{++e.array[r].ncells},t.allocateLinks=r=>{for(let n=0;n{e.array[r].cells[n]=i}}const sY={array:null,maxId:0,extend:0};function dO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sY,r),W.obj(t,e),aY(t,e)}const cY=W.newInstance(dO,"vtkCellLinks");var lY={newInstance:cY,extend:dO};const gn={VTK_EMPTY_CELL:0,VTK_VERTEX:1,VTK_POLY_VERTEX:2,VTK_LINE:3,VTK_POLY_LINE:4,VTK_TRIANGLE:5,VTK_TRIANGLE_STRIP:6,VTK_POLYGON:7,VTK_PIXEL:8,VTK_QUAD:9,VTK_TETRA:10,VTK_VOXEL:11,VTK_HEXAHEDRON:12,VTK_WEDGE:13,VTK_PYRAMID:14,VTK_PENTAGONAL_PRISM:15,VTK_HEXAGONAL_PRISM:16,VTK_QUADRATIC_EDGE:21,VTK_QUADRATIC_TRIANGLE:22,VTK_QUADRATIC_QUAD:23,VTK_QUADRATIC_POLYGON:36,VTK_QUADRATIC_TETRA:24,VTK_QUADRATIC_HEXAHEDRON:25,VTK_QUADRATIC_WEDGE:26,VTK_QUADRATIC_PYRAMID:27,VTK_BIQUADRATIC_QUAD:28,VTK_TRIQUADRATIC_HEXAHEDRON:29,VTK_QUADRATIC_LINEAR_QUAD:30,VTK_QUADRATIC_LINEAR_WEDGE:31,VTK_BIQUADRATIC_QUADRATIC_WEDGE:32,VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:33,VTK_BIQUADRATIC_TRIANGLE:34,VTK_CUBIC_LINE:35,VTK_CONVEX_POINT_SET:41,VTK_POLYHEDRON:42,VTK_PARAMETRIC_CURVE:51,VTK_PARAMETRIC_SURFACE:52,VTK_PARAMETRIC_TRI_SURFACE:53,VTK_PARAMETRIC_QUAD_SURFACE:54,VTK_PARAMETRIC_TETRA_REGION:55,VTK_PARAMETRIC_HEX_REGION:56,VTK_HIGHER_ORDER_EDGE:60,VTK_HIGHER_ORDER_TRIANGLE:61,VTK_HIGHER_ORDER_QUAD:62,VTK_HIGHER_ORDER_POLYGON:63,VTK_HIGHER_ORDER_TETRAHEDRON:64,VTK_HIGHER_ORDER_WEDGE:65,VTK_HIGHER_ORDER_PYRAMID:66,VTK_HIGHER_ORDER_HEXAHEDRON:67,VTK_LAGRANGE_CURVE:68,VTK_LAGRANGE_TRIANGLE:69,VTK_LAGRANGE_QUADRILATERAL:70,VTK_LAGRANGE_TETRAHEDRON:71,VTK_LAGRANGE_HEXAHEDRON:72,VTK_LAGRANGE_WEDGE:73,VTK_LAGRANGE_PYRAMID:74,VTK_NUMBER_OF_CELL_TYPES:75},q5=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"];function uY(t){return t0&&arguments[0]!==void 0?arguments[0]:512,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.size=r>0?r:1,e.extend=n>0?n:1,e.maxId=-1,e.typeArray=new Uint8Array(r),e.locationArray=new Uint32Array(r)},t.insertCell=(r,n,i)=>{e.typeArray[r]=n,e.locationArray[r]=i,r>e.maxId&&(e.maxId=r)},t.insertNextCell=(r,n)=>(t.insertCell(++e.maxId,r,n),e.maxId),t.setCellTypes=(r,n,i)=>{e.size=r,e.typeArray=n,e.locationArray=i,e.maxId=r-1},t.getCellLocation=r=>e.locationArray[r],t.deleteCell=r=>{e.typeArray[r]=gn.VTK_EMPTY_CELL},t.getNumberOfTypes=()=>e.maxId+1,t.isType=r=>{const n=t.getNumberOfTypes();for(let i=0;it.insertNextCell(r,-1),t.getCellType=r=>e.typeArray[r],t.reset=()=>{e.maxId=-1},t.deepCopy=r=>{t.allocate(r.getSize(),r.getExtend()),e.typeArray.set(r.getTypeArray()),e.locationArray.set(r.getLocationArray()),e.maxId=r.getMaxId()}}const mY={size:0,maxId:-1,extend:1e3};function hO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mY,r),W.obj(t,e),W.get(t,e,["size","maxId","extend"]),W.getArray(t,e,["typeArray","locationArray"]),pY(t,e)}const vY=W.newInstance(hO,"vtkCellTypes");var yY={newInstance:vY,extend:hO,...gY};const xY={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var gO={IntersectionState:xY};const{IntersectionState:Mp}=gO;function ru(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;const i={t:Number.MIN_VALUE,distance:0},o=[];let a;o[0]=r[0]-e[0],o[1]=r[1]-e[1],o[2]=r[2]-e[2];const s=o[0]*(t[0]-e[0])+o[1]*(t[1]-e[1])+o[2]*(t[2]-e[2]),c=wt(o,o);let l=1e-5*s;return c!==0&&(i.t=s/c),l<0&&(l=-l),-l1?a=r:(a=o,o[0]=e[0]+i.t*o[0],o[1]=e[1]+i.t*o[1],o[2]=e[2]+i.t*o[2]),n&&(n[0]=a[0],n[1]=a[1],n[2]=a[2]),i.distance=$o(a,t),i}function pO(t,e,r,n,i,o){const a=[],s=[],c=[];i[0]=0,o[0]=0,Va(e,t,a),Va(n,r,s),Va(r,t,c);const l=[wt(a,a),-wt(a,s),-wt(a,s),wt(s,s)],f=[];if(f[0]=wt(a,c),f[1]=-wt(s,c),_7(l,f,2)===0){let u=Number.MAX_VALUE;const d=[t,e,r,n],h=[r,r,t,t],g=[n,n,e,e];o[0],o[0],i[0],i[0],i[0],i[0],o[0],o[0];let p;for(let v=0;v<4;v++)p=ru(d[v],h[v],g[v]),p.distance=0&&i[0]<=1&&o[0]>=0&&o[0]<=1?Mp.YES_INTERSECTION:Mp.NO_INTERSECTION}const wY={distanceToLine:ru,intersection:pO};function CY(t,e){e.classHierarchy.push("vtkLine");function r(n){return n>=0&&n<=1}t.getCellDimension=()=>1,t.intersectWithLine=(n,i,o,a,s)=>{const c={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};s[1]=0,s[2]=0;const l=[],f=[],u=[];e.points.getPoint(0,f),e.points.getPoint(1,u);const d=[],h=[],g=pO(n,i,f,u,d,h);if(c.t=d[0],c.betweenPoints=r(c.t),s[0]=h[0],g===Mp.YES_INTERSECTION){for(let p=0;p<3;p++)a[p]=f[p]+s[0]*(u[p]-f[p]),l[p]=n[p]+c.t*(i[p]-n[p]);if($o(a,l)<=o*o)return c.intersect=1,c}else{let p;if(c.t<0)return p=ru(n,f,u,a),p.distance<=o*o&&(c.t=0,c.intersect=1,c.betweenPoints=!0),c;if(c.t>1)return p=ru(i,f,u,a),p.distance<=o*o&&(c.t=1,c.intersect=1,c.betweenPoints=!0),c;if(s[0]<0)return s[0]=0,p=ru(f,n,i,a),c.t=p.t,p.distance<=o*o&&(c.intersect=1),c;if(s[0]>1)return s[0]=1,p=ru(u,n,i,a),c.t=p.t,p.distance<=o*o&&(c.intersect=1),c}return c},t.evaluateLocation=(n,i,o)=>{const a=[],s=[];e.points.getPoint(0,a),e.points.getPoint(1,s);for(let c=0;c<3;c++)i[c]=a[c]+n[0]*(s[c]-a[c]);o[0]=1-n[0],o[1]=n[0]},t.evaluateOrientation=(n,i,o)=>e.orientations?(Dp(i,e.orientations[0],e.orientations[1],n[0]),o[0]=1-n[0],o[1]=n[0],!0):!1}const SY={orientations:null};function mO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SY,r),A1.extend(t,e,r),W.setGet(t,e,["orientations"]),CY(t,e)}const TY=W.newInstance(mO,"vtkLine");var Ki={newInstance:TY,extend:mO,...wY,...gO};function _Y(t,e){e.classHierarchy.push("vtkPointSet"),e.points?e.points=_o(e.points):e.points=Md.newInstance(),t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.getBounds=()=>e.points.getBounds(),t.computeBounds=()=>{t.getBounds()};const r=t.shallowCopy;t.shallowCopy=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;r(n,i),e.points=Md.newInstance(),e.points.shallowCopy(n.getPoints())}}const EY={};function vO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,EY,r),v0.extend(t,e,r),W.setGet(t,e,["points"]),_Y(t,e)}const DY=W.newInstance(vO,"vtkPointSet");var bY={newInstance:DY,extend:vO};function $w(t,e,r,n){const i=r[0]-e[0],o=r[1]-e[1],a=r[2]-e[2],s=t[0]-e[0],c=t[1]-e[1],l=t[2]-e[2];n[0]=o*l-a*c,n[1]=a*s-i*l,n[2]=i*c-o*s}function k1(t,e,r,n){$w(t,e,r,n);const i=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);i!==0&&(n[0]/=i,n[1]/=i,n[2]/=i)}function IY(t,e,r,n,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:1e-6,s=!1;const c=[],l=[],f=[],u=[],d=[];k1(t,e,r,u),k1(n,i,o,d);const h=-wt(u,t),g=-wt(d,n),p=[wt(d,t)+g,wt(d,e)+g,wt(d,r)+g];if(p[0]*p[1]>a&&p[0]*p[2]>a)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};const v=[wt(u,n)+h,wt(u,i)+h,wt(u,o)+h];if(v[0]*v[1]>a&&v[0]*v[2]>a)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(Math.abs(u[0]-d[0])<1e-9&&Math.abs(u[1]-d[1])<1e-9&&Math.abs(u[2]-d[2])<1e-9&&Math.abs(h-g)<1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};const x=[t,e,r],m=[n,i,o],y=wt(u,d),w=(h-g*y)/(y*y-1),C=(g-h*y)/(y*y-1),S=[w*u[0]+C*d[0],w*u[1]+C*d[1],w*u[2]+C*d[2]],T=ra(u,d,[]);sl(T);let _=0,E=0;const D=[],b=[];let I=50,R=50;for(let A=0;A<3;A++){const G=A,P=(A+1)%3,N=Yr.intersectWithLine(x[G],x[P],n,d);N.intersection&&N.t>0-a&&N.t<1+a&&(N.t<1+a&&N.t>1-a&&(I=_),D[_++]=wt(N.x,T)-wt(S,T));const V=Yr.intersectWithLine(m[G],m[P],t,u);V.intersection&&V.t>0-a&&V.t<1+a&&(V.t<1+a&&V.t>1-a&&(R=E),b[E++]=wt(V.x,T)-wt(S,T))}if(_>2){_--;const A=D[2];D[2]=D[I],D[I]=A}if(E>2){E--;const A=b[2];b[2]=b[R],b[R]=A}if(_!==2||E!==2)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(Number.isNaN(D[0])||Number.isNaN(D[1])||Number.isNaN(b[0])||Number.isNaN(b[1]))return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(D[0]>D[1]){const A=D[1];D[1]=D[0],D[0]=A}if(b[0]>b[1]){const A=b[1];b[1]=b[0],b[0]=A}let M,L;return D[1]2,t.intersectWithLine=(r,n,i,o,a)=>{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};a[2]=0;const c=[],l=i*i,f=[],u=[],d=[];e.points.getPoint(0,f),e.points.getPoint(1,u),e.points.getPoint(2,d);const h=[],g=[];if(k1(f,u,d,h),h[0]!==0||h[1]!==0||h[2]!==0){const y=Yr.intersectWithLine(r,n,f,h);if(s.betweenPoints=y.betweenPoints,s.t=y.t,o[0]=y.x[0],o[1]=y.x[1],o[2]=y.x[2],!y.intersection)return a[0]=0,a[1]=0,s.intersect=0,s;const w=t.evaluatePosition(o,c,a,g);if(w.evaluation>=0)return w.dist2<=l?(s.intersect=1,s):(s.intersect=w.evaluation,s)}const p=$o(f,u),v=$o(u,d),x=$o(d,f);e.line||(e.line=Ki.newInstance()),p>v&&p>x?(e.line.getPoints().setPoint(0,f),e.line.getPoints().setPoint(1,u)):v>x&&v>p?(e.line.getPoints().setPoint(0,u),e.line.getPoints().setPoint(1,d)):(e.line.getPoints().setPoint(0,d),e.line.getPoints().setPoint(1,f));const m=e.line.intersectWithLine(r,n,i,o,a);if(s.betweenPoints=m.betweenPoints,s.t=m.t,m.intersect){const y=[],w=[],C=[];for(let S=0;S<3;S++)y[S]=f[S]-d[S],w[S]=u[S]-d[S],C[S]=o[S]-d[S];return a[0]=wt(C,y)/x,a[1]=wt(C,w)/v,s.intersect=1,s}return a[0]=0,a[1]=0,s.intersect=0,s},t.evaluatePosition=(r,n,i,o)=>{const a={subId:0,dist2:0,evaluation:-1};let s,c;const l=[],f=[],u=[],d=[];let h;const g=[],p=[],v=[];let x=0,m=0;const y=[];let w,C,S,T=[];const _=[],E=[],D=[];a.subId=0,i[2]=0,e.points.getPoint(1,l),e.points.getPoint(2,f),e.points.getPoint(0,u),$w(l,f,u,d),Yr.generalizedProjectPoint(r,l,d,D);let b=0;for(s=0;s<3;s++)d[s]<0?h=-d[s]:h=d[s],h>b&&(b=h,m=s);for(c=0,s=0;s<3;s++)s!==m&&(y[c++]=s);for(s=0;s<2;s++)g[s]=D[y[s]]-u[y[s]],p[s]=l[y[s]]-u[y[s]],v[s]=f[y[s]]-u[y[s]];if(x=Fn(p,v),x===0)return i[0]=0,i[1]=0,a.evaluation=-1,a;if(i[0]=Fn(g,v)/x,i[1]=Fn(p,g)/x,o[0]=1-(i[0]+i[1]),o[1]=i[0],o[2]=i[1],o[0]>=0&&o[0]<=1&&o[1]>=0&&o[1]<=1&&o[2]>=0&&o[2]<=1)n&&(a.dist2=$o(D,r),n[0]=D[0],n[1]=D[1],n[2]=D[2]),a.evaluation=1;else{let I;if(n){if(o[1]<0&&o[2]<0)for(w=$o(r,u),C=Ki.distanceToLine(r,l,u,I,_),S=Ki.distanceToLine(r,u,f,I,E),w{const o=[],a=[],s=[];e.points.getPoint(0,o),e.points.getPoint(1,a),e.points.getPoint(2,s);const c=1-r[0]-r[1];for(let l=0;l<3;l++)n[l]=o[l]*c+a[l]*r[0]+s[l]*r[1];i[0]=c,i[1]=r[0],i[2]=r[1]},t.getParametricDistance=r=>{let n,i=0;const o=[];o[0]=r[0],o[1]=r[1],o[2]=1-r[0]-r[1];for(let a=0;a<3;a++)o[a]<0?n=-o[a]:o[a]>1?n=o[a]-1:n=0,n>i&&(i=n);return i}}const RY={};function yO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RY,r),A1.extend(t,e,r),MY(t,e)}const LY=W.newInstance(yO,"vtkTriangle");var NY={newInstance:LY,extend:yO,...OY};const Iv=["verts","lines","polys","strips"],{vtkWarningMacro:o8}=W,PY={[gn.VTK_LINE]:Ki,[gn.VTK_POLY_LINE]:Ki,[gn.VTK_TRIANGLE]:NY};function AY(t,e){e.classHierarchy.push("vtkPolyData");function r(i){return i.replace(/(?:^\w|[A-Z]|\b\w)/g,o=>o.toUpperCase()).replace(/\s+/g,"")}Iv.forEach(i=>{t[`getNumberOf${r(i)}`]=()=>e[i].getNumberOfCells(),e[i]?e[i]=_o(e[i]):e[i]=ll.newInstance()}),t.getNumberOfCells=()=>Iv.reduce((i,o)=>i+e[o].getNumberOfCells(),0);const n=t.shallowCopy;t.shallowCopy=function(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n(i,o),Iv.forEach(a=>{e[a]=ll.newInstance(),e[a].shallowCopy(i.getReferenceByName(a))})},t.buildCells=()=>{const i=t.getNumberOfVerts(),o=t.getNumberOfLines(),a=t.getNumberOfPolys(),s=t.getNumberOfStrips(),c=i+o+a+s,l=new Uint8Array(c);let f=l;const u=new Uint32Array(c);let d=u;if(i){let h=0;e.verts.getCellSizes().forEach((g,p)=>{d[p]=h,f[p]=g>1?gn.VTK_POLY_VERTEX:gn.VTK_VERTEX,h+=g+1}),d=d.subarray(i),f=f.subarray(i)}if(o){let h=0;e.lines.getCellSizes().forEach((g,p)=>{d[p]=h,f[p]=g>2?gn.VTK_POLY_LINE:gn.VTK_LINE,g===1&&o8("Building VTK_LINE ",p," with only one point, but VTK_LINE needs at least two points. Check the input."),h+=g+1}),d=d.subarray(o),f=f.subarray(o)}if(a){let h=0;e.polys.getCellSizes().forEach((g,p)=>{switch(d[p]=h,g){case 3:f[p]=gn.VTK_TRIANGLE;break;case 4:f[p]=gn.VTK_QUAD;break;default:f[p]=gn.VTK_POLYGON;break}g<3&&o8("Building VTK_TRIANGLE ",p," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),h+=g+1}),d+=d.subarray(a),f+=f.subarray(a)}if(s){let h=0;f.fill(gn.VTK_TRIANGLE_STRIP,0,s),e.strips.getCellSizes().forEach((g,p)=>{d[p]=h,h+=g+1})}e.cells=yY.newInstance(),e.cells.setCellTypes(c,l,u)},t.buildLinks=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;e.cells===void 0&&t.buildCells(),e.links=lY.newInstance(),i>0?e.links.allocate(i):e.links.allocate(t.getPoints().getNumberOfPoints()),e.links.buildLinks(t)},t.getCellType=i=>e.cells.getCellType(i),t.getCellPoints=i=>{const o=t.getCellType(i);let a=null;switch(o){case gn.VTK_VERTEX:case gn.VTK_POLY_VERTEX:a=e.verts;break;case gn.VTK_LINE:case gn.VTK_POLY_LINE:a=e.lines;break;case gn.VTK_TRIANGLE:case gn.VTK_QUAD:case gn.VTK_POLYGON:a=e.polys;break;case gn.VTK_TRIANGLE_STRIP:a=e.strips;break;default:return a=null,{type:0,cellPointIds:null}}const s=e.cells.getCellLocation(i),c=a.getCell(s);return{cellType:o,cellPointIds:c}},t.getPointCells=i=>e.links.getCells(i),t.getCellEdgeNeighbors=(i,o,a)=>{const s=e.links.getLink(o),c=e.links.getLink(a);return s.cells.filter(l=>l!==i&&c.cells.indexOf(l)!==-1)},t.getCell=function(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const a=t.getCellPoints(i),s=o||PY[a.cellType].newInstance();return s.initialize(t.getPoints(),a.cellPointIds),s}}const kY={};function xO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kY,r),bY.extend(t,e,r),W.get(t,e,["cells","links"]),W.setGet(t,e,["verts","lines","polys","strips"]),AY(t,e)}const VY=W.newInstance(xO,"vtkPolyData");var dr={newInstance:VY,extend:xO};const FY=1e-6;function UY(t,e){e.classHierarchy.push("vtkProp3D"),t.addPosition=n=>{e.position=e.position.map((i,o)=>i+n[o]),t.modified()},t.getOrientationWXYZ=()=>{const n=cl();F5(n,e.rotation);const i=new Float64Array(3),o=J$(i,n);return[S1(o),i[0],i[1],i[2]]},t.getOrientationQuaternion=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return F5(n,e.rotation)},t.rotateX=n=>{n!==0&&(gw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateY=n=>{n!==0&&(pw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateZ=n=>{n!==0&&(mw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateWXYZ=(n,i,o,a)=>{if(n===0||i===0&&o===0&&a===0)return;const s=Vn(n),c=cl();Sw(c,[i,o,a],s);const l=new Float64Array(16);D1(l,c),bt(e.rotation,e.rotation,l),t.modified()},t.rotateQuaternion=n=>{if(Math.abs(n[3])>=1-FY)return;const i=D1(new Float64Array(16),n);bt(e.rotation,e.rotation,i),t.modified()},t.setOrientation=(n,i,o)=>n===e.orientation[0]&&i===e.orientation[1]&&o===e.orientation[2]?!1:(e.orientation=[n,i,o],qe(e.rotation),t.rotateZ(o),t.rotateX(n),t.rotateY(i),t.modified(),!0),t.setUserMatrix=n=>gh(e.userMatrix,n)?!1:(En(e.userMatrix,n),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){qe(e.matrix),e.userMatrix&&bt(e.matrix,e.matrix,e.userMatrix),rn(e.matrix,e.matrix,e.origin),rn(e.matrix,e.matrix,e.position),bt(e.matrix,e.matrix,e.rotation),ja(e.matrix,e.matrix,e.scale),rn(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),St(e.matrix,e.matrix),e.isIdentity=!0;for(let n=0;n<4;++n)for(let i=0;i<4;++i)(n===i?1:0)!==e.matrix[n+i*4]&&(e.isIdentity=!1);e.matrixMTime.modified()}},t.getCenter=()=>Xt.getCenter(e.bounds),t.getLength=()=>Xt.getLength(e.bounds),t.getXRange=()=>Xt.getXRange(e.bounds),t.getYRange=()=>Xt.getYRange(e.bounds),t.getZRange=()=>Xt.getZRange(e.bounds),t.getUserMatrix=()=>e.userMatrix;function r(){t.computeMatrix()}t.onModified(r)}const BY={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function wO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BY,r),vh.extend(t,e,r),e.matrixMTime={},W.obj(e.matrixMTime),W.get(t,e,["bounds","isIdentity"]),W.getArray(t,e,["orientation"]),W.setGetArray(t,e,["origin","position","scale"],3),e.matrix=qe(new Float64Array(16)),e.rotation=qe(new Float64Array(16)),e.userMatrix=qe(new Float64Array(16)),e.transform=null,UY(t,e)}const GY=W.newInstance(wO,"vtkProp3D");var jw={newInstance:GY,extend:wO};const{vtkDebugMacro:WY}=W;function zY(t,e){e.classHierarchy.push("vtkActor");const r={...t};t.getActors=()=>[t],t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.property||t.getProperty();let n=e.property.getOpacity()>=1;return n=n&&(!e.texture||!e.texture.isTranslucent()),n=n&&(!e.mapper||e.mapper.getIsOpaque()),n},t.hasTranslucentPolygonalGeometry=()=>e.mapper===null?!1:(e.property===null&&t.setProperty(t.makeProperty()),!t.getIsOpaque()),t.makeProperty=m0.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const n=e.mapper.getBounds();if(!n||n.length!==6)return n;if(n[0]>n[1])return e.mapperBounds=n.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),n;if(!e.mapperBounds||n[0]!==e.mapperBounds[0]||n[1]!==e.mapperBounds[1]||n[2]!==e.mapperBounds[2]||n[3]!==e.mapperBounds[3]||n[4]!==e.mapperBounds[4]||n[5]!==e.mapperBounds[5]||t.getMTime()>e.boundsMTime.getMTime()){WY("Recomputing bounds..."),e.mapperBounds=n.concat();const i=[];Xt.getCorners(n,i),t.computeMatrix();const o=new Float64Array(16);St(o,e.matrix),i.forEach(a=>et(a,a,o)),e.bounds[0]=e.bounds[2]=e.bounds[4]=Number.MAX_VALUE,e.bounds[1]=e.bounds[3]=e.bounds[5]=-Number.MAX_VALUE,e.bounds=e.bounds.map((a,s)=>s%2===0?i.reduce((c,l)=>c>l[s/2]?l[s/2]:c,a):i.reduce((c,l)=>c{let n=r.getMTime();if(e.property!==null){const i=e.property.getMTime();n=i>n?i:n}if(e.backfaceProperty!==null){const i=e.backfaceProperty.getMTime();n=i>n?i:n}return n},t.getRedrawMTime=()=>{let n=e.mtime;if(e.mapper!==null){let i=e.mapper.getMTime();n=i>n?i:n,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),i=e.mapper.getInput().getMTime(),n=i>n?i:n)}return n},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1,t.processSelectorPixelBuffers=(n,i)=>{e.mapper&&e.mapper.processSelectorPixelBuffers&&e.mapper.processSelectorPixelBuffers(n,i)}}const $Y={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function CO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$Y,r),jw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),zY(t,e)}const jY=W.newInstance(CO,"vtkActor");var sa={newInstance:jY,extend:CO};function HY(t,e){const r=t.invokeResize;delete t.invokeResize,e.renderWindow=nW.newInstance(),e.rendererMap={},e.openGLRenderWindow=wX.newInstance(),e.renderWindow.addView(e.openGLRenderWindow),e.interactor=HX.newInstance(),e.interactor.setView(e.openGLRenderWindow),e.interactor.initialize(),t.addRenderer=({viewport:n,id:i,background:o})=>{const a=iO.newInstance({viewport:n,background:o||e.background});e.renderWindow.addRenderer(a),e.rendererMap[i]=a},t.destroy=()=>{e.renderWindow.getInteractor().delete()},t.removeRenderer=n=>{const i=t.getRenderer(n);e.renderWindow.removeRenderer(i),i.delete(),delete e.rendererMap[n]},t.getRenderer=n=>e.rendererMap[n],t.getRenderers=()=>{const{rendererMap:n}=e;return Object.keys(n).map(o=>({id:o,renderer:n[o]}))},t.resize=()=>{if(e.container){const{width:n,height:i}=e.container;e.openGLRenderWindow.setSize(Math.floor(n),Math.floor(i)),r(),e.renderWindow.render()}},t.setContainer=n=>{e.container=n,e.openGLRenderWindow.setContainer(e.container)},t.delete=W.chain(t.setContainer,t.destroy,e.openGLRenderWindow.delete,t.delete),t.resize()}const KY={background:[0,0,0],container:null};function SO(t,e,r={}){Object.assign(e,KY,r),W.obj(t,e),W.get(t,e,["renderWindow","openGLRenderWindow","interactor","container"]),W.event(t,e,"resize"),HY(t,e)}const qY=W.newInstance(SO),XY={newInstance:qY,extend:SO},{vtkErrorMacro:yg}=W;function YY(t,e){e.classHierarchy.push("vtkPiecewiseFunction"),t.getSize=()=>e.nodes.length,t.getType=()=>{let r,n=0,i=0;e.nodes.length>0&&(n=e.nodes[0].y);for(let o=1;on)switch(i){case 0:case 1:i=1;break;case 2:default:i=3;break}else switch(i){case 0:case 2:i=2;break;case 1:default:i=3;break}if(n=r,i===3)break}switch(i){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";case 3:default:return"Varied"}},t.getDataPointer=()=>{const r=e.nodes.length;if(e.function=null,r>0){e.function=[];for(let n=0;n{if(e.nodes.length===0)return 0;let r=1,n=0,i=0;for(;i0?n=e.nodes[i-1].x:e.clamping?n=-Number.MAX_VALUE:n=e.nodes[0].x,n},t.getNodeValue=(r,n)=>{const i=e.nodes.length;return r<0||r>=i?(yg("Index out of range!"),-1):(n[0]=e.nodes[r].x,n[1]=e.nodes[r].y,n[2]=e.nodes[r].midpoint,n[3]=e.nodes[r].sharpness,1)},t.setNodeValue=(r,n)=>{const i=e.nodes.length;if(r<0||r>=i)return yg("Index out of range!"),-1;const o=e.nodes[r].x;return e.nodes[r].x=n[0],e.nodes[r].y=n[1],e.nodes[r].midpoint=n[2],e.nodes[r].sharpness=n[3],o!==n[0]?t.sortAndUpdateRange():t.modified(),1},t.addPoint=(r,n)=>t.addPointLong(r,n,.5,0),t.addPointLong=(r,n,i,o)=>{if(i<0||i>1)return yg("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return yg("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(r);const a={x:r,y:n,midpoint:i,sharpness:o};e.nodes.push(a),t.sortAndUpdateRange();let s;for(s=0;s{e.nodes!==r&&(e.nodes=r,t.sortAndUpdateRange())},t.sortAndUpdateRange=()=>{e.nodes.sort((n,i)=>n.x-i.x),t.updateRange()||t.modified()},t.updateRange=()=>{const r=e.range.slice(),n=e.nodes.length;return n?(e.range[0]=e.nodes[0].x,e.range[1]=e.nodes[n-1].x):(e.range[0]=0,e.range[1]=0),r[0]===e.range[0]&&r[1]===e.range[1]?!1:(t.modified(),!0)},t.removePoint=r=>{let n;for(n=0;n=e.nodes.length)return-1;const i=n;let o=!1;return e.nodes.splice(n,1),(n===0||n===e.nodes.length)&&(o=t.updateRange()),o||t.modified(),i},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addSegment=(r,n,i,o)=>{t.sortAndUpdateRange();for(let a=0;a=r&&e.nodes[a].x<=i?e.nodes.splice(a,1):a++;t.addPoint(r,n,.5,0),t.addPoint(i,o,.5,0)},t.getValue=r=>{const n=[];return t.getTable(r,r,1,n),n[0]},t.adjustRange=r=>{if(r.length<2)return 0;const n=t.getRange();n[0]r[1]?t.addPoint(r[1],t.getValue(r[1])):t.addPoint(r[1],t.getValue(n[1])),t.sortAndUpdateRange();for(let i=0;i=r[0]&&e.nodes[i].x<=r[1]?e.nodes.splice(i,1):++i;return t.sortAndUpdateRange(),1},t.estimateMinNumberOfSamples=(r,n)=>{const i=t.findMinimumXDistance();return Math.ceil((n-r)/i)},t.findMinimumXDistance=()=>{const r=e.nodes.length;if(r<2)return-1;let n=e.nodes[1].x-e.nodes[0].x;for(let i=0;i4&&arguments[4]!==void 0?arguments[4]:1,s,c=0;const l=e.nodes.length;let f=0;l!==0&&(f=e.nodes[l-1].y);let u=0,d=0,h=0,g=0,p=0,v=0,x=0;for(s=0;s1?u=r+s/(i-1)*(n-r):u=.5*(r+n);ce.nodes[c].x;)c++,c.99999&&(v=.99999));if(c>=l)o[m]=e.clamping?f:0;else if(c===0)o[m]=e.clamping?e.nodes[0].y:0;else{let y=(u-d)/(h-d);if(y.99)if(y<.5){o[m]=g;continue}else{o[m]=p;continue}if(x<.01){o[m]=(1-y)*g+y*p;continue}y<.5?y=.5*(y*2)**(1+10*x):y>.5&&(y=1-.5*((1-y)*2)**(1+10*x));const w=y*y,C=w*y,S=2*C-3*w+1,T=-2*C+3*w,_=C-2*w+y,E=C-w,D=p-g,b=(1-x)*D;o[m]=S*g+T*p+_*b+E*b;const I=gp?g:p;o[m]=o[m]R?R:o[m]}}}}const JY={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function TO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,JY,r),W.obj(t,e),e.nodes=[],W.setGet(t,e,["allowDuplicateScalars","clamping"]),W.setArray(t,e,["range"],2),W.getArray(t,e,["range"]),YY(t,e)}const ZY=W.newInstance(TO,"vtkPiecewiseFunction");var ju={newInstance:ZY,extend:TO};const{BlendMode:ps,FilterMode:Ef}=mD;function QY(t,e,r,n,i){let o=null;return i?(o=i,o.removeAllPoints()):o=ju.newInstance(),o.addPointLong(-1024,0,1,1),o.addPoint(t,e),o.addPoint(r,n),o}const eJ={createRadonTransferFunction:QY};function tJ(t,e){e.classHierarchy.push("vtkVolumeMapper");const r={...t};t.getBounds=()=>{const n=t.getInputData();return n?(e.static||t.update(),e.bounds=n.getBounds()):e.bounds=Ks(),e.bounds},t.update=()=>{t.getInputData()},t.setBlendModeToComposite=()=>{t.setBlendMode(ps.COMPOSITE_BLEND)},t.setBlendModeToMaximumIntensity=()=>{t.setBlendMode(ps.MAXIMUM_INTENSITY_BLEND)},t.setBlendModeToMinimumIntensity=()=>{t.setBlendMode(ps.MINIMUM_INTENSITY_BLEND)},t.setBlendModeToAverageIntensity=()=>{t.setBlendMode(ps.AVERAGE_INTENSITY_BLEND)},t.setBlendModeToAdditiveIntensity=()=>{t.setBlendMode(ps.ADDITIVE_INTENSITY_BLEND)},t.setBlendModeToRadonTransform=()=>{t.setBlendMode(ps.RADON_TRANSFORM_BLEND)},t.getBlendModeAsString=()=>W.enumToString(ps,e.blendMode),t.setAverageIPScalarRange=(n,i)=>{console.warn("setAverageIPScalarRange is deprecated use setIpScalarRange"),t.setIpScalarRange(n,i)},t.getFilterModeAsString=()=>W.enumToString(Ef,e.filterMode),t.setFilterModeToOff=()=>{t.setFilterMode(Ef.OFF)},t.setFilterModeToNormalized=()=>{t.setFilterMode(Ef.NORMALIZED)},t.setFilterModeToRaw=()=>{t.setFilterMode(Ef.RAW)},t.setGlobalIlluminationReach=n=>r.setGlobalIlluminationReach(Eo(n,0,1)),t.setVolumetricScatteringBlending=n=>r.setVolumetricScatteringBlending(Eo(n,0,1)),t.setVolumeShadowSamplingDistFactor=n=>r.setVolumeShadowSamplingDistFactor(n>=1?n:1),t.setAnisotropy=n=>r.setAnisotropy(Eo(n,-.99,.99)),t.setLAOKernelSize=n=>r.setLAOKernelSize(ow(Eo(n,1,32))),t.setLAOKernelRadius=n=>r.setLAOKernelRadius(n>=1?n:1)}const nJ={bounds:[1,-1,1,-1,1,-1],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,initialInteractionScale:1,interactionSampleDistanceFactor:1,blendMode:ps.COMPOSITE_BLEND,ipScalarRange:[-1e6,1e6],filterMode:Ef.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,volumeShadowSamplingDistFactor:5,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7};function _O(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nJ,r),kw.extend(t,e,r),W.setGet(t,e,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","initialInteractionScale","interactionSampleDistanceFactor","blendMode","filterMode","preferSizeOverAccuracy","computeNormalFromOpacity","volumetricScatteringBlending","globalIlluminationReach","volumeShadowSamplingDistFactor","anisotropy","localAmbientOcclusion","LAOKernelSize","LAOKernelRadius"]),W.setGetArray(t,e,["ipScalarRange"],2),W.event(t,e,"lightingActivated"),tJ(t,e)}const rJ=W.newInstance(_O,"vtkVolumeMapper");var iJ={newInstance:rJ,extend:_O,...eJ};function oJ(t,e){e.classHierarchy.push("vtkSharedVolumeMapper");const r=t.delete;t.delete=()=>{e.scalarTexture=null,r()}}const aJ={scalarTexture:null};function EO(t,e,r={}){Object.assign(e,aJ,r),iJ.extend(t,e,r),W.setGet(t,e,["scalarTexture"]),oJ(t,e)}const sJ=W.newInstance(EO,"vtkSharedVolumeMapper"),cJ={newInstance:sJ,extend:EO};function Pn(t){const e=t.indexOf(":");return t.substring(e+1)}const lJ=1073741824;class uJ{constructor(){this._imageCache=new Map,this._volumeCache=new Map,this._geometryCache=new Map,this._imageCacheSize=0,this._maxCacheSize=3*lJ,this._geometryCacheSize=0,this.setMaxCacheSize=e=>{if(!e||typeof e!="number"){const r=`New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;throw new Error(r)}this._maxCacheSize=e},this.isCacheable=e=>{const r=this.getBytesAvailable(),n=Array.from(this._imageCache.values()).reduce((o,a)=>a.sharedCacheKey?o:o+a.sizeInBytes,0);return r+n>=e},this.getMaxCacheSize=()=>this._maxCacheSize,this.getCacheSize=()=>this._imageCacheSize,this._decacheImage=(e,r=!1)=>{const n=this._imageCache.get(e);if(!n)return;if(n.sharedCacheKey&&!r)throw new Error("Cannot decache an image with a shared cache key. You need to manually decache the volume first.");const{imageLoadObject:i}=n;i!=null&&i.cancelFn&&i.cancelFn(),i!=null&&i.decache&&i.decache(),this._imageCache.delete(e)},this._decacheVolume=e=>{const r=this._volumeCache.get(e);if(!r)return;const{volumeLoadObject:n,volume:i}=r;i&&(i.cancelLoading&&i.cancelLoading(),i.imageData&&i.imageData.delete(),n.cancelFn&&n.cancelFn(),i.imageIds&&i.imageIds.forEach(o=>{const a=this._imageCache.get(o);a&&a.sharedCacheKey===e&&(a.sharedCacheKey=void 0)}),this._volumeCache.delete(e))},this.purgeCache=()=>{const e=this._imageCache.keys();for(this.purgeVolumeCache();;){const{value:r,done:n}=e.next();if(n)break;this.removeImageLoadObject(r,{force:!0}),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:r})}},this.purgeVolumeCache=()=>{const e=this._volumeCache.keys();for(;;){const{value:r,done:n}=e.next();if(n)break;this.removeVolumeLoadObject(r),De(Ce,Se.VOLUME_CACHE_VOLUME_REMOVED,{volumeId:r})}},this.getVolumeLoadObject=e=>{if(e===void 0)throw new Error("getVolumeLoadObject: volumeId must not be undefined");const r=this._volumeCache.get(e);if(r)return r.timeStamp=Date.now(),r.volumeLoadObject},this.putGeometryLoadObject=(e,r)=>{if(e===void 0)throw new Error("putGeometryLoadObject: geometryId must not be undefined");if(r.promise===void 0)throw new Error("putGeometryLoadObject: geometryLoadObject.promise must not be undefined");if(this._geometryCache.has(e))throw new Error("putGeometryLoadObject: geometryId already present in geometryCache");if(r.cancelFn&&typeof r.cancelFn!="function")throw new Error("putGeometryLoadObject: geometryLoadObject.cancel must be a function");const n={loaded:!1,geometryId:e,geometryLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._geometryCache.set(e,n),r.promise.then(i=>{try{this._putGeometryCommon(e,i,n)}catch(o){throw console.debug(`Error in _putGeometryCommon for geometry ${e}:`,o),o}}).catch(i=>{throw console.debug(`Error caching geometry ${e}:`,i),this._geometryCache.delete(e),i})},this.getGeometry=e=>{if(e===void 0)throw new Error("getGeometry: geometryId must not be undefined");const r=this._geometryCache.get(e);if(r)return r.timeStamp=Date.now(),r.geometry},this.removeGeometryLoadObject=e=>{if(e===void 0)throw new Error("removeGeometryLoadObject: geometryId must not be undefined");const r=this._geometryCache.get(e);if(!r)throw new Error("removeGeometryLoadObject: geometryId was not present in geometryCache");this.decrementGeometryCacheSize(r.sizeInBytes);const n={geometry:r,geometryId:e};De(Ce,Se.GEOMETRY_CACHE_GEOMETRY_REMOVED,n),this._decacheGeometry(e)},this._decacheGeometry=e=>{const r=this._geometryCache.get(e);if(!r)return;const{geometryLoadObject:n}=r;n.cancelFn&&n.cancelFn(),n.decache&&n.decache(),this._geometryCache.delete(e)},this.incrementGeometryCacheSize=e=>{this._geometryCacheSize+=e},this.decrementGeometryCacheSize=e=>{this._geometryCacheSize-=e},this.getImage=(e,r=Pi.FAR_REPLICATE)=>{var i;if(e===void 0)throw new Error("getImage: imageId must not be undefined");const n=this._imageCache.get(e);if(n&&(n.timeStamp=Date.now(),!(((i=n.image)==null?void 0:i.imageQualityStatus){var i;if(e===void 0)throw new Error("getVolume: volumeId must not be undefined");const n=this._volumeCache.get(e);return n?(n.timeStamp=Date.now(),n.volume):r?(i=[...this._volumeCache.values()].find(o=>o.volumeId.includes(e)))==null?void 0:i.volume:void 0},this.getVolumes=()=>Array.from(this._volumeCache.values()).map(r=>r.volume),this.filterVolumesByReferenceId=e=>this.getVolumes().filter(n=>n.referencedVolumeId===e),this.removeImageLoadObject=(e,{force:r=!1}={})=>{if(e===void 0)throw new Error("removeImageLoadObject: imageId must not be undefined");const n=this._imageCache.get(e);if(!n)throw new Error("removeImageLoadObject: imageId was not present in imageCache");this._decacheImage(e,r),this.incrementImageCacheSize(-n.sizeInBytes);const i={image:n,imageId:e};De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,i)},this.removeVolumeLoadObject=e=>{if(e===void 0)throw new Error("removeVolumeLoadObject: volumeId must not be undefined");const r=this._volumeCache.get(e);if(!r)throw new Error("removeVolumeLoadObject: volumeId was not present in volumeCache");const n={volume:r,volumeId:e};De(Ce,Se.VOLUME_CACHE_VOLUME_REMOVED,n),this._decacheVolume(e)},this.incrementImageCacheSize=e=>{this._imageCacheSize+=e},this.decrementImageCacheSize=e=>{this._imageCacheSize-=e},this.getGeometryLoadObject=e=>{if(e===void 0)throw new Error("getGeometryLoadObject: geometryId must not be undefined");const r=this._geometryCache.get(e);if(r)return r.timeStamp=Date.now(),r.geometryLoadObject}}getBytesAvailable(){return this.getMaxCacheSize()-this.getCacheSize()}decacheIfNecessaryUntilBytesAvailable(e,r){let n=this.getBytesAvailable();if(n>=e)return n;const i=Array.from(this._imageCache.values()).filter(c=>!c.sharedCacheKey);function o(c,l){return c.timeStamp>l.timeStamp?1:c.timeStampc.imageId);let s=a;r&&(s=a.filter(c=>!r.includes(c)));for(const c of s)if(this.removeImageLoadObject(c),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:c}),n=this.getBytesAvailable(),n>=e)return n;for(const c of a)if(this.removeImageLoadObject(c),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:c}),n=this.getBytesAvailable(),n>=e)return n}_putImageCommon(e,r,n){if(!this._imageCache.has(e)){console.warn("The image was purged from the cache before it completed loading.");return}if(!r){console.warn("Image is undefined");return}if(r.sizeInBytes===void 0||Number.isNaN(r.sizeInBytes))throw new Error("_putImageCommon: image.sizeInBytes must not be undefined");if(r.sizeInBytes.toFixed===void 0)throw new Error("_putImageCommon: image.sizeInBytes is not a number");if(!this.isCacheable(r.sizeInBytes))throw new Error(Se.CACHE_SIZE_EXCEEDED);this.decacheIfNecessaryUntilBytesAvailable(r.sizeInBytes),n.loaded=!0,n.image=r,n.sizeInBytes=r.sizeInBytes,this.incrementImageCacheSize(n.sizeInBytes);const i={image:n};De(Ce,Se.IMAGE_CACHE_IMAGE_ADDED,i),n.sharedCacheKey=r.sharedCacheKey}async putImageLoadObject(e,r){if(e===void 0)throw console.error("putImageLoadObject: imageId must not be undefined"),new Error("putImageLoadObject: imageId must not be undefined");if(r.promise===void 0)throw console.error("putImageLoadObject: imageLoadObject.promise must not be undefined"),new Error("putImageLoadObject: imageLoadObject.promise must not be undefined");const n=this._imageCache.get(e);if(n!=null&&n.imageLoadObject)throw console.warn(`putImageLoadObject: imageId ${e} already in cache`),new Error("putImageLoadObject: imageId already in cache");if(r.cancelFn&&typeof r.cancelFn!="function")throw console.error("putImageLoadObject: imageLoadObject.cancel must be a function"),new Error("putImageLoadObject: imageLoadObject.cancel must be a function");const i={...n,loaded:!1,imageId:e,sharedCacheKey:void 0,imageLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._imageCache.set(e,i),this._imageCache.set(e,i),r.promise.then(o=>{try{this._putImageCommon(e,o,i)}catch(a){throw console.debug(`Error in _putImageCommon for image ${e}:`,a),a}}).catch(o=>{throw console.debug(`Error caching image ${e}:`,o),this._imageCache.delete(e),o})}putImageSync(e,r){if(e===void 0)throw new Error("putImageSync: imageId must not be undefined");if(this._imageCache.has(e))throw new Error("putImageSync: imageId already in cache");const n={loaded:!1,imageId:e,sharedCacheKey:void 0,imageLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._imageCache.set(e,n);try{this._putImageCommon(e,r,n)}catch(i){throw this._imageCache.delete(e),i}}getImageLoadObject(e){if(e===void 0)throw new Error("getImageLoadObject: imageId must not be undefined");const r=this._imageCache.get(e);if(r)return r.timeStamp=Date.now(),r.imageLoadObject}isLoaded(e){const r=this._imageCache.get(e);return r?r.loaded:!1}getVolumeContainingImageId(e){const r=Array.from(this._volumeCache.keys()),n=Pn(e);for(const i of r){const o=this._volumeCache.get(i);if(!o)return;const{volume:a}=o;if(!a.imageIds.length)return;const s=a.getImageURIIndex(n);if(s>-1)return{volume:a,imageIdIndex:s}}}getCachedImageBasedOnImageURI(e){const r=Pn(e),i=Array.from(this._imageCache.keys()).find(o=>Pn(o)===r);if(i)return this._imageCache.get(i)}_putVolumeCommon(e,r,n){var o;if(!this._volumeCache.get(e)){console.warn("The volume was purged from the cache before it completed loading.");return}n.loaded=!0,n.volume=r,(o=r.imageIds)==null||o.forEach(a=>{const s=this._imageCache.get(a);s&&(s.sharedCacheKey=e)});const i={volume:n};De(Ce,Se.VOLUME_CACHE_VOLUME_ADDED,i)}putVolumeSync(e,r){if(e===void 0)throw new Error("putVolumeSync: volumeId must not be undefined");if(this._volumeCache.has(e))throw new Error("putVolumeSync: volumeId already in cache");const n={loaded:!1,volumeId:e,volumeLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._volumeCache.set(e,n);try{this._putVolumeCommon(e,r,n)}catch(i){throw this._volumeCache.delete(e),i}}async putVolumeLoadObject(e,r){if(e===void 0)throw new Error("putVolumeLoadObject: volumeId must not be undefined");if(r.promise===void 0)throw new Error("putVolumeLoadObject: volumeLoadObject.promise must not be undefined");if(this._volumeCache.has(e))throw new Error(`putVolumeLoadObject: volumeId:${e} already in cache`);if(r.cancelFn&&typeof r.cancelFn!="function")throw new Error("putVolumeLoadObject: volumeLoadObject.cancel must be a function");const n={loaded:!1,volumeId:e,volumeLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._volumeCache.set(e,n),r.promise.then(i=>{try{this._putVolumeCommon(e,i,n)}catch(o){throw console.error(`Error in _putVolumeCommon for volume ${e}:`,o),this._volumeCache.delete(e),o}}).catch(i=>{throw this._volumeCache.delete(e),i})}_putGeometryCommon(e,r,n){if(!this._geometryCache.get(e)){console.warn("The geometry was purged from the cache before it completed loading.");return}if(!r){console.warn("Geometry is undefined");return}if(r.sizeInBytes===void 0||Number.isNaN(r.sizeInBytes))throw new Error("_putGeometryCommon: geometry.sizeInBytes must not be undefined");if(r.sizeInBytes.toFixed===void 0)throw new Error("_putGeometryCommon: geometry.sizeInBytes is not a number");if(!this.isCacheable(r.sizeInBytes))throw new Error(Se.CACHE_SIZE_EXCEEDED);this.decacheIfNecessaryUntilBytesAvailable(r.sizeInBytes),n.loaded=!0,n.geometry=r,n.sizeInBytes=r.sizeInBytes,this.incrementGeometryCacheSize(n.sizeInBytes);const i={geometry:n};De(Ce,Se.GEOMETRY_CACHE_GEOMETRY_ADDED,i)}putGeometrySync(e,r){if(e===void 0)throw new Error("putGeometrySync: geometryId must not be undefined");if(this._geometryCache.has(e))throw new Error("putGeometrySync: geometryId already in cache");const n={loaded:!1,geometryId:e,geometryLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._geometryCache.set(e,n);try{this._putGeometryCommon(e,r,n)}catch(i){throw this._geometryCache.delete(e),i}}setPartialImage(e,r){const n=this._imageCache.get(e);if(!n){r&&this._imageCache.set(e,{image:r,imageId:e,loaded:!1,timeStamp:Date.now(),sizeInBytes:0});return}n.loaded&&(n.loaded=!1,n.imageLoadObject=null,this.incrementImageCacheSize(-n.sizeInBytes),n.sizeInBytes=0),n.image=r||n.image}getImageQuality(e){var n;const r=(n=this._imageCache.get(e))==null?void 0:n.image;return r?r.imageQualityStatus||Pi.FULL_RESOLUTION:void 0}}const Te=new uJ;function fJ(t,e){e.classHierarchy.push("vtkStreamingOpenGLTexture"),e.updatedFrames=[],e.volumeId=null;const r=t.create3DFilterableFromRaw;t.create3DFilterableFromRaw=(a,s,c,l,f,u,d)=>{e.inputDataType=f,e.inputNumComps=l,r(a,s,c,l,f,u,d)},t.update3DFromRaw=()=>{const{volumeId:a}=e;if(!a)return;const s=Te.getVolume(a);if(e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),s.isDynamicVolume()){o();return}return t.hasUpdatedFrames()&&i()};const n=t.modified;t.setUpdatedFrame=a=>{e.updatedFrames[a]=!0,n()},t.modified=()=>{n();const a=Te.getVolume(e.volumeId);if(!a)return;const s=a.imageIds;for(let c=0;c!e.updatedFrames.length||e.updatedFrames.some(a=>a),t.getUpdatedFrames=()=>e.updatedFrames,t.setVolumeId=a=>{e.volumeId=a},t.getVolumeId=()=>e.volumeId,t.setTextureParameters=({width:a,height:s,depth:c,numberOfComponents:l,dataType:f})=>{e.width??(e.width=a),e.height??(e.height=s),e.depth??(e.depth=c),e.inputNumComps??(e.inputNumComps=l),e.inputDataType??(e.inputDataType=f)},t.getTextureParameters=()=>({width:e.width,height:e.height,depth:e.depth,numberOfComponents:e.inputNumComps,dataType:e.inputDataType})}const dJ={updatedFrames:[]};function DO(t,e,r={}){Object.assign(e,dJ,r),yn.extend(t,e,r),fJ(t,e)}const hJ=W.newInstance(DO,"vtkStreamingOpenGLTexture"),gJ={newInstance:hJ,extend:DO},pJ={isPerformingCoordinateTransformation:!1};function bO(t,e,r={}){Object.assign(e,pJ,r),Ww.extend(t,e,r),W.setGet(t,e,["isPerformingCoordinateTransformation"]),vJ(t,e)}const mJ=W.newInstance(bO,"vtkSlabCamera");function vJ(t,e){e.classHierarchy.push("vtkSlabCamera");const r=qe(new Float64Array(16)),n=new Float64Array(3);t.getProjectionMatrix=(i,o,a)=>{const s=co();if(e.projectionMatrix){const d=1/e.physicalScale;return jt(n,d,d,d),En(s,e.projectionMatrix),ja(s,s,n),St(s,s),s}qe(r);let c=e.clippingRange[0],l=e.clippingRange[1];e.isPerformingCoordinateTransformation&&(c=e.distance,l=e.distance+.1);const f=l-c,u=[c+(o+1)*f/2,c+(a+1)*f/2];if(e.parallelProjection){const d=e.parallelScale*i,h=e.parallelScale,g=(e.windowCenter[0]-1)*d,p=(e.windowCenter[0]+1)*d,v=(e.windowCenter[1]-1)*h,x=(e.windowCenter[1]+1)*h;xw(r,g,p,v,x,u[0],u[1]),St(r,r)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const d=Math.tan(nt.radiansFromDegrees(e.viewAngle)/2);let h,g;e.useHorizontalViewAngle===!0?(h=c*d,g=c*d/i):(h=c*d*i,g=c*d);const p=(e.windowCenter[0]-1)*h,v=(e.windowCenter[0]+1)*h,x=(e.windowCenter[1]-1)*g,m=(e.windowCenter[1]+1)*g,y=u[0],w=u[1];r[0]=2*y/(v-p),r[5]=2*y/(m-x),r[2]=(p+v)/(v-p),r[6]=(x+m)/(m-x),r[10]=-(y+w)/(w-y),r[14]=-1,r[11]=-2*y*w/(w-y),r[15]=0}}return En(s,r),s}}const yJ={newInstance:mJ,extend:bO};function qo(t){return ci(t,"vtkVolume")||ci(t,"vtkImageSlice")}function ci(t,e){return!!("isA"in t?t:t.actor).isA(e)}const Qo=[];function x0(t,e=0){let r;for(r=0;r0;)Qo.pop()}function Pe(t,...e){for(let r=0;rt,a8=1e-6;let OO=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.matrix=qe(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?Zz:CJ}rotateFromDirections(e,r){const n=new Float64Array(3),i=new Float64Array(3),o=new Float64Array(16);jt(n,e[0],e[1],e[2]),jt(i,r[0],r[1],r[2]),an(n,n),an(i,i);const a=je(n,i);return a>=1?this:(qt(this.tmp,n,i),ui(this.tmp)1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;if(gh(nw,this.matrix))return this;const i=n===-1?e.length:r+n*3;for(let o=r;oMath.abs(Math.abs(t)-1)<_J,Mv=(t,e)=>Ov(t[e])||Ov(t[e+1])||Ov(t[e+2]),EJ=t=>Mv(t,0)&&Mv(t,3)&&Mv(t,6);function o2(t,e,r){const n=t.getMapper().getInputData();let i;const o=n.getDirection();if(EJ(o))i=MO(t);else{const[u,d,h]=n.getDimensions();i=[[0,0,0],[u-1,0,0],[0,d-1,0],[u-1,d-1,0],[0,0,h-1],[u-1,0,h-1],[0,d-1,h-1],[u-1,d-1,h-1]].map(p=>n.indexToWorld(p))}const a=Ir.buildFromDegree().identity().rotateFromDirections(e,[1,0,0]);i.forEach(u=>a.apply(u));const s=[...r];a.apply(s);const c=s[0];let l=1/0,f=-1/0;for(let u=0;u<8;u++){const d=i[u][0];d>f&&(f=d),df?h=f:h<0&&(h=0);const p=h*i;g=[g[0]+n[0]*p,g[1]+n[1]*p,g[2]+n[2]*p];const v=[g[0]+l[0],g[1]+l[1],g[2]+l[2]];return{newFocalPoint:g,newPosition:v}}const DJ={RGB:0,HSV:1,LAB:2,DIVERGING:3},bJ={LINEAR:0,LOG10:1};var RO={ColorSpace:DJ,Scale:bJ};const{ColorSpace:qi,Scale:Hw}=RO,{ScalarMappingTarget:xg}=e2,{vtkDebugMacro:IJ,vtkErrorMacro:ma,vtkWarningMacro:OJ}=W;function s8(t,e){const r=t[0],n=t[1],i=t[2],o=Math.sqrt(r*r+n*n+i*i),a=o>.001?Math.acos(r/o):0,s=a>.001?Math.atan2(i,n):0;e[0]=o,e[1]=a,e[2]=s}function MJ(t,e){const r=t[0],n=t[1],i=t[2];e[0]=r*Math.cos(n),e[1]=r*Math.sin(n)*Math.cos(i),e[2]=r*Math.sin(n)*Math.sin(i)}function c8(t,e){if(t[0]>=e-.1)return t[2];const r=t[1]*Math.sqrt(e*e-t[0]*t[0])/(t[0]*Math.sin(t[1]));return t[2]>-.3*Math.PI?t[2]+r:t[2]-r}function RJ(t,e){let r=t-e;for(r<0&&(r=-r);r>=2*Math.PI;)r-=2*Math.PI;return r>Math.PI&&(r=2*Math.PI-r),r}function l8(t,e,r,n){const i=[],o=[];Fc(e,i),Fc(r,o);const a=[],s=[];s8(i,a),s8(o,s);let c=t;if(a[1]>.05&&s[1]>.05&&RJ(a[2],s[2])>.33*Math.PI){let u=Math.max(a[0],s[0]);u=Math.max(88,u),t<.5?(s[0]=u,s[1]=0,s[2]=0,c*=2):(a[0]=u,a[1]=0,a[2]=0,c=2*c-1)}a[1]<.05&&s[1]>.05?a[2]=c8(s,a[0]):s[1]<.05&&a[1]>.05&&(s[2]=c8(a,s[0]));const l=[];l[0]=(1-c)*a[0]+c*s[0],l[1]=(1-c)*a[1]+c*s[1],l[2]=(1-c)*a[2]+c*s[2];const f=[];MJ(l,f),_1(f,n)}function LJ(t,e){e.classHierarchy.push("vtkColorTransferFunction"),t.getSize=()=>e.nodes.length,t.addRGBPoint=(r,n,i,o)=>t.addRGBPointLong(r,n,i,o,.5,0),t.addRGBPointLong=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(a<0||a>1)return ma("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return ma("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(r);const c={x:r,r:n,g:i,b:o,midpoint:a,sharpness:s};e.nodes.push(c),t.sortAndUpdateRange();let l=0;for(;lt.addHSVPointLong(r,n,i,o,.5,0),t.addHSVPointLong=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;const c=[];return Mc([n,i,o],c),t.addRGBPoint(r,c[0],c[1],c[2],a,s)},t.setNodes=r=>{if(e.nodes!==r){const n=JSON.stringify(e.nodes);e.nodes=r;const i=JSON.stringify(e.nodes);if(t.sortAndUpdateRange()||n!==i)return t.modified(),!0}return!1},t.sortAndUpdateRange=()=>{const r=JSON.stringify(e.nodes);e.nodes.sort((o,a)=>o.x-a.x);const n=JSON.stringify(e.nodes),i=t.updateRange();return!i&&r!==n?(t.modified(),!0):i},t.updateRange=()=>{const r=[2];r[0]=e.mappingRange[0],r[1]=e.mappingRange[1];const n=e.nodes.length;return n?(e.mappingRange[0]=e.nodes[0].x,e.mappingRange[1]=e.nodes[n-1].x):(e.mappingRange[0]=0,e.mappingRange[1]=0),r[0]===e.mappingRange[0]&&r[1]===e.mappingRange[1]?!1:(t.modified(),!0)},t.removePoint=r=>{let n=0;for(;n=e.nodes.length)return-1;let o=!1;return e.nodes.splice(n,1),(n===0||n===e.nodes.length)&&(o=t.updateRange()),o||t.modified(),i},t.movePoint=(r,n)=>{if(r!==n){t.removePoint(n);for(let i=0;i{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(r,n,i,o,a,s,c,l)=>{t.sortAndUpdateRange();for(let f=0;f=r&&e.nodes[f].x<=a?e.nodes.splice(f,1):f++;t.addRGBPointLong(r,n,i,o,.5,0),t.addRGBPointLong(a,s,c,l,.5,0),t.modified()},t.addHSVSegment=(r,n,i,o,a,s,c,l)=>{const f=[n,i,o],u=[s,c,l],d=[],h=[];Mc(f,d),Mc(u,h),t.addRGBSegment(r,d[0],d[1],d[2],a,h[0],h[1],h[2])},t.mapValue=r=>{const n=[];return t.getColor(r,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},t.getColor=(r,n)=>{if(e.indexedLookup){const i=t.getSize(),o=t.getAnnotatedValueIndexInternal(r);if(o<0||i===0){const a=t.getNanColorByReference();n[0]=a[0],n[1]=a[1],n[2]=a[2]}else{const a=[];t.getNodeValue(o%i,a),n[0]=a[1],n[1]=a[2],n[2]=a[3]}return}t.getTable(r,r,1,n)},t.getRedValue=r=>{const n=[];return t.getColor(r,n),n[0]},t.getGreenValue=r=>{const n=[];return t.getColor(r,n),n[1]},t.getBlueValue=r=>{const n=[];return t.getColor(r,n),n[2]},t.getTable=(r,n,i,o)=>{const a=Number(r),s=Number(n);if(E1(a)||E1(s)){for(let E=0;E0);let S=0,T=0,_=0;C&&(S=Math.log10(a),T=Math.log10(s));for(let E=0;E1?C?(_=S+E/(i-1)*(T-S),h=10**_):h=a+E/(i-1)*(s-a):C?(_=.5*(S+T),h=10**_):h=.5*(a+s),e.discretize){const b=e.mappingRange;if(h>=b[0]&&h<=b[1]){const I=e.numberOfValues,R=b[1]-b[0];if(I<=1)h=b[0]+R/2;else{const M=(h-b[0])/R,L=ow(I*M);h=b[0]+L/(I-1)*R}}}for(;ce.nodes[c].x;)c++,c.99999&&(m=.99999));if(h>e.mappingRange[1])o[D]=0,o[D+1]=0,o[D+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(o[D]=e.aboveRangeColor[0],o[D+1]=e.aboveRangeColor[1],o[D+2]=e.aboveRangeColor[2]):(o[D]=f,o[D+1]=u,o[D+2]=d));else if(h0&&(o[D]=e.nodes[0].r,o[D+1]=e.nodes[0].g,o[D+2]=e.nodes[0].b));else if(c===0&&(Math.abs(h-a)<1e-6||e.discretize))l>0?(o[D]=e.nodes[0].r,o[D+1]=e.nodes[0].g,o[D+2]=e.nodes[0].b):(o[D]=0,o[D+1]=0,o[D+2]=0);else{let b=0;if(C?b=(_-g)/(p-g):b=(h-g)/(p-g),b.99)if(b<.5){o[D]=v[0],o[D+1]=v[1],o[D+2]=v[2];continue}else{o[D]=x[0],o[D+1]=x[1],o[D+2]=x[2];continue}if(y<.01){if(e.colorSpace===qi.RGB)o[D]=(1-b)*v[0]+b*x[0],o[D+1]=(1-b)*v[1]+b*x[1],o[D+2]=(1-b)*v[2]+b*x[2];else if(e.colorSpace===qi.HSV){const V=[],$=[];Cf(v,V),Cf(x,$),e.hSVWrap&&(V[0]-$[0]>.5||$[0]-V[0]>.5)&&(V[0]>$[0]?V[0]-=1:$[0]-=1);const j=[];j[0]=(1-b)*V[0]+b*$[0],j[0]<0&&(j[0]+=1),j[1]=(1-b)*V[1]+b*$[1],j[2]=(1-b)*V[2]+b*$[2],Mc(j,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else if(e.colorSpace===qi.LAB){const V=[],$=[];Fc(v,V),Fc(x,$);const j=[];j[0]=(1-b)*V[0]+b*$[0],j[1]=(1-b)*V[1]+b*$[1],j[2]=(1-b)*V[2]+b*$[2],_1(j,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else e.colorSpace===qi.DIVERGING?(l8(b,v,x,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]):ma("ColorSpace set to invalid value.",e.colorSpace);continue}b<.5?b=.5*(b*2)**(1+10*y):b>.5&&(b=1-.5*((1-b)*2)**(1+10*y));const I=b*b,R=I*b,M=2*R-3*I+1,L=-2*R+3*I,A=R-2*I+b,G=R-I;let P,N;if(e.colorSpace===qi.RGB)for(let V=0;V<3;V++)P=x[V]-v[V],N=(1-y)*P,o[D+V]=M*v[V]+L*x[V]+A*N+G*N;else if(e.colorSpace===qi.HSV){const V=[],$=[];Cf(v,V),Cf(x,$),e.hSVWrap&&(V[0]-$[0]>.5||$[0]-V[0]>.5)&&(V[0]>$[0]?V[0]-=1:$[0]-=1);const j=[];for(let Y=0;Y<3;Y++)P=$[Y]-V[Y],N=(1-y)*P,j[Y]=M*V[Y]+L*$[Y]+A*N+G*N,Y===0&&j[Y]<0&&(j[Y]+=1);Mc(j,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else if(e.colorSpace===qi.LAB){const V=[],$=[];Fc(v,V),Fc(x,$);const j=[];for(let Y=0;Y<3;Y++)P=$[Y]-V[Y],N=(1-y)*P,j[Y]=M*V[Y]+L*$[Y]+A*N+G*N;_1(j,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else e.colorSpace===qi.DIVERGING?(l8(b,v,x,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]):ma("ColorSpace set to invalid value.");for(let V=0;V<3;V++)o[D+V]=o[D+V]<0?0:o[D+V],o[D+V]=o[D+V]>1?1:o[D+V]}}},t.getUint8Table=function(r,n,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(t.getMTime()<=e.buildTime&&e.tableSize===i&&e.tableWithAlpha!==o)return e.table;if(e.nodes.length===0)return ma("Attempting to lookup a value with no points in the function"),e.table;const a=o?4:3;(e.tableSize!==i||e.tableWithAlpha!==o)&&(e.table=new Uint8Array(i*a),e.tableSize=i,e.tableWithAlpha=o);const s=[];t.getTable(r,n,i,s);for(let c=0;c{t.removeAllPoints();const n=r.getNumberOfComponents();for(let i=0;i{let a=0;t.removeAllPoints(),i>1&&(a=(n-r)/(i-1));for(let s=0;sr<0||r>=e.nodes.length?(ma("Index out of range!"),-1):(n[0]=e.nodes[r].x,n[1]=e.nodes[r].r,n[2]=e.nodes[r].g,n[3]=e.nodes[r].b,n[4]=e.nodes[r].midpoint,n[5]=e.nodes[r].sharpness,1),t.setNodeValue=(r,n)=>{if(r<0||r>=e.nodes.length)return ma("Index out of range!"),-1;const i=e.nodes[r].x;return e.nodes[r].x=n[0],e.nodes[r].r=n[1],e.nodes[r].g=n[2],e.nodes[r].b=n[3],e.nodes[r].midpoint=n[4],e.nodes[r].sharpness=n[5],i!==n[0]?t.sortAndUpdateRange():t.modified(),1},t.getNumberOfAvailableColors=()=>{var n;if(e.indexedLookup&&t.getSize())return t.getSize();if(e.tableSize)return e.tableSize;const r=((n=e.nodes)==null?void 0:n.length)??0;return Math.max(4094,r)},t.getIndexedColor=(r,n)=>{const i=t.getSize();if(i>0&&r>=0){const a=[];t.getNodeValue(r%i,a);for(let s=0;s<3;++s)n[s]=a[s+1];n[3]=1;return}const o=t.getNanColorByReference();n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=1},t.fillFromDataPointer=(r,n)=>{if(!(r<=0||!n)){t.removeAllPoints();for(let i=0;i{const i=[r,n],o=t.getRange();if(o[1]===i[1]&&o[0]===i[0])return;if(i[1]===i[0]){ma("attempt to set zero width color range");return}const a=(i[1]-i[0])/(o[1]-o[0]),s=i[0]-o[0]*a;for(let c=0;c{const n=t.getRange(),i=[];n[0]r[1]?(t.getColor(r[1],i),t.addRGBPoint(r[1],i[0],i[1],i[2])):(t.getColor(n[1],i),t.addRGBPoint(r[1],i[0],i[1],i[2])),t.sortAndUpdateRange();for(let o=0;o=r[0]&&e.nodes[o].x<=r[1]?e.nodes.splice(o,1):++o;return 1},t.estimateMinNumberOfSamples=(r,n)=>{const i=t.findMinimumXDistance();return Math.ceil((n-r)/i)},t.findMinimumXDistance=()=>{if(e.nodes.length<2)return-1;let r=Number.MAX_VALUE;for(let n=0;n{if(t.getSize()===0){IJ("Transfer Function Has No Points!");return}e.indexedLookup?t.mapDataIndexed(r,n,i,o):t.mapData(r,n,i,o)},t.mapData=(r,n,i,o)=>{if(t.getSize()===0){OJ("Transfer Function Has No Points!");return}const a=Math.floor(t.getAlpha()*255+.5),s=r.getNumberOfTuples(),c=r.getNumberOfComponents(),l=n.getData(),f=r.getData(),u=[];if(i===xg.RGBA)for(let d=0;d{const n=JSON.stringify(e.colorSpace);r.ColorSpace&&(e.colorSpace=qi[r.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(ma(`ColorSpace ${r.ColorSpace} not supported, using RGB instead`),e.colorSpace=qi.RGB));let i=n!==JSON.stringify(e.colorSpace);const o=i||JSON.stringify(e.nanColor);if(r.NanColor)for(e.nanColor=[].concat(r.NanColor);e.nanColor.length<4;)e.nanColor.push(1);i=i||o!==JSON.stringify(e.nanColor);const a=i||JSON.stringify(e.nodes);if(r.RGBPoints){const l=r.RGBPoints.length;e.nodes=[];const f=.5,u=0;for(let d=0;d2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,NJ,r),e2.extend(t,e,r),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},W.obj(e.buildTime),W.get(t,e,["buildTime","mappingRange"]),W.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","discretize","numberOfValues",{type:"enum",name:"colorSpace",enum:qi},{type:"enum",name:"scale",enum:Hw}]),W.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),W.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),LJ(t,e)}const PJ=W.newInstance(LO,"vtkColorTransferFunction");var Xs={newInstance:PJ,extend:LO,...RO},AJ=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,754296e-12,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,111641e-12,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,363578e-12,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,405298e-12,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4264e-11,0,620844e-12,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,33216e-11,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,405432e-12,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,455569e-13]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,455569e-13,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}];const Hu=Object.create(null);AJ.filter(t=>t.RGBPoints).filter(t=>t.ColorSpace!=="CIELAB").forEach(t=>{Hu[t.Name]=t});const Ku=Object.keys(Hu);Ku.sort();function kJ(t){return Hu[t]}function VJ(t){!t.RGBPoints||t.ColorSpace==="CIELAB"||(Hu[t.Name]||(Ku.push(t.Name),Ku.sort()),Hu[t.Name]=t)}function FJ(t){const e=Ku.indexOf(t);e>-1&&Ku.splice(e,1),delete Hu[t]}var V1={addPreset:VJ,removePresetByName:FJ,getPresetByName:kJ,rgbPresetNames:Ku};function hr(t){return Ed.get(t)}function _i(){return Ed.getAll()}const F1=t=>t&&typeof t=="object"&&Object.prototype.toString.call(t)!=="[object RegExp]"&&Object.prototype.toString.call(t)!=="[object Date]",UJ=t=>Array.isArray(t)?[]:{},Rd=(t,e)=>e&&e.clone===!0&&F1(t)?Qr(UJ(t),t,e):t,u8=(t,e,r)=>{const n=t.slice();return e.forEach(function(i,o){typeof n[o]>"u"?n[o]=Rd(i,r):F1(i)?n[o]=Qr(t[o],i,r):t.indexOf(i)===-1&&(n[o]=Rd(i,r))}),n},BJ=(t,e,r)=>{const n={};return F1(t)&&Object.keys(t).forEach(function(i){n[i]=Rd(t[i],r)}),Object.keys(e).forEach(function(i){!F1(e[i])||!t[i]?n[i]=Rd(e[i],r):n[i]=Qr(t[i],e[i],r)}),n},Qr=(t={},e={},r=void 0)=>{const n=Array.isArray(e),o=(r||{arrayMerge:u8}).arrayMerge||u8;return n?Array.isArray(t)?o(t,e,r):Rd(e,r):BJ(t,e,r)};/** + `);return}const y={type:p,pokedRenderer:e.currentRenderer,firstRenderer:t.getFirstRenderer(),...x};t[`invoke${p}`](y)}}),t.recognizeGesture=(p,v)=>{if(Object.keys(v).length>2)return;if(e.startingEventPositions||(e.startingEventPositions={}),p==="TouchStart"){Object.keys(v).forEach(D=>{e.startingEventPositions[D]=v[D]}),e.currentGesture="Start";return}if(p==="TouchEnd"){e.currentGesture==="Pinch"&&(t.render(),t.endPinchEvent()),e.currentGesture==="Rotate"&&(t.render(),t.endRotateEvent()),e.currentGesture==="Pan"&&(t.render(),t.endPanEvent()),e.currentGesture="Start",e.startingEventPositions={};return}let x=0;const m=[],y=[];Object.keys(v).forEach(D=>{m[x]=v[D],y[x]=e.startingEventPositions[D],x++});const w=Math.sqrt((y[0].x-y[1].x)*(y[0].x-y[1].x)+(y[0].y-y[1].y)*(y[0].y-y[1].y)),C=Math.sqrt((m[0].x-m[1].x)*(m[0].x-m[1].x)+(m[0].y-m[1].y)*(m[0].y-m[1].y));let S=_1(Math.atan2(y[1].y-y[0].y,y[1].x-y[0].x)),T=_1(Math.atan2(m[1].y-m[0].y,m[1].x-m[0].x)),_=T-S;T=T+180>=360?T-180:T+180,S=S+180>=360?S-180:S+180,Math.abs(T-S)D&&b>I&&b>R){e.currentGesture="Pinch";const M={scale:1,touches:v};t.startPinchEvent(M)}else if(I>D&&I>R){e.currentGesture="Rotate";const M={rotation:0,touches:v};t.startRotateEvent(M)}else if(R>D){e.currentGesture="Pan";const M={translation:[0,0],touches:v};t.startPanEvent(M)}}else{if(e.currentGesture==="Rotate"){const D={rotation:_,touches:v};t.rotateEvent(D)}if(e.currentGesture==="Pinch"){const D={scale:C/w,touches:v};t.pinchEvent(D)}if(e.currentGesture==="Pan"){const D={translation:E,touches:v};t.panEvent(D)}}},t.handleVisibilityChange=()=>{e._animationStartTime=Date.now(),e._animationFrameCount=0},t.setCurrentRenderer=p=>{e._forcedRenderer=!!p,e.currentRenderer=p},t.setContainer=p=>{h();const v=r.setContainer(p??null);return v&&d(),v},t.delete=()=>{for(;n.size;)t.cancelAnimation(n.values().next().value);typeof document.hidden<"u"&&document.removeEventListener("visibilitychange",t.handleVisibilityChange),e.container&&t.setContainer(null),r.delete()},typeof document.hidden<"u"&&document.addEventListener("visibilitychange",t.handleVisibilityChange,!1)}const YX={renderWindow:null,interactorStyle:null,picker:null,pickingManager:null,initialized:!1,enabled:!1,enableRender:!0,currentRenderer:null,lightFollowCamera:!0,desiredUpdateRate:30,stillUpdateRate:2,container:null,recognizeGestures:!0,currentGesture:"Start",animationRequest:null,lastFrameTime:.1,recentAnimationFrameRate:10,wheelTimeoutID:0,moveTimeoutID:0,lastGamepadValues:{},preventDefaultOnPointerDown:!1,preventDefaultOnPointerUp:!1,mouseScrollDebounceByPass:!1};function fO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YX,r),W.obj(t,e),e._animationExtendedEnd=0,W.event(t,e,"RenderEvent"),jw.forEach(n=>W.event(t,e,n)),W.get(t,e,["initialized","interactorStyle","lastFrameTime","recentAnimationFrameRate","_view"]),W.setGet(t,e,["container","lightFollowCamera","enabled","enableRender","recognizeGestures","desiredUpdateRate","stillUpdateRate","picker","preventDefaultOnPointerDown","preventDefaultOnPointerUp","mouseScrollDebounceByPass"]),W.moveToProtected(t,e,["view"]),XX(t,e)}const JX=W.newInstance(fO,"vtkRenderWindowInteractor");var ZX={newInstance:JX,extend:fO,handledEvents:jw,...uO};const{vtkErrorMacro:QX}=W,eY=[1,-1,1,-1,1,-1];function tY(t,e){e.classHierarchy.push("vtkPoints"),t.getNumberOfPoints=t.getNumberOfTuples,t.setNumberOfPoints=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:3;t.getNumberOfPoints()!==r&&(e.size=r*n,e.values=W.newTypedArray(e.dataType,e.size),t.setNumberOfComponents(n),t.modified())},t.setPoint=function(r){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;ot.insertNextTuple([r,n,i]),t.getBounds=()=>{if(t.getNumberOfComponents()===3){const i=t.getRange(0);e.bounds[0]=i[0],e.bounds[1]=i[1];const o=t.getRange(1);e.bounds[2]=o[0],e.bounds[3]=o[1];const a=t.getRange(2);return e.bounds[4]=a[0],e.bounds[5]=a[1],e.bounds}if(t.getNumberOfComponents()!==2)return QX(`getBounds called on an array with components of + ${t.getNumberOfComponents()}`),eY;const r=t.getRange(0);e.bounds[0]=r[0],e.bounds[1]=r[1];const n=t.getRange(1);return e.bounds[2]=n[0],e.bounds[3]=n[1],e.bounds[4]=0,e.bounds[5]=0,e.bounds},t.computeBounds=t.getBounds,t.setNumberOfComponents(e.numberOfComponents<2?3:e.numberOfComponents)}const nY={empty:!0,numberOfComponents:3,dataType:vt.FLOAT,bounds:[1,-1,1,-1,1,-1]};function dO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,nY,r),tt.extend(t,e,r),tY(t,e)}const rY=W.newInstance(dO,"vtkPoints");var Ld={newInstance:rY,extend:dO};function hO(t){let e=0;return t.filter((r,n)=>n===e?(e+=r+1,!0):!1)}function gO(t){let e=0;for(let r=0;r(e.numberOfCells!==void 0&&!n||(e.cellSizes?e.numberOfCells=e.cellSizes.length:e.numberOfCells=gO(t.getData())),e.numberOfCells),t.getCellSizes=n=>(e.cellSizes!==void 0&&!n||(e.cellSizes=hO(t.getData())),e.cellSizes),t.resize=n=>{const i=t.getNumberOfTuples();r.resize(n);const o=t.getNumberOfTuples();o{r.setData(n,1),e.numberOfCells=void 0,e.cellSizes=void 0},t.getCell=n=>{let i=n;const o=e.values[i++];return e.values.subarray(i,i+o)},t.insertNextCell=n=>{const i=t.getNumberOfCells();return t.insertNextTuples([n.length,...n]),++e.numberOfCells,e.cellSizes!=null&&e.cellSizes.push(n.length),i}}function aY(t){return{empty:!0,numberOfComponents:1,dataType:vt.UNSIGNED_INT,...t}}function pO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};tt.extend(t,e,aY(r)),oY(t,e)}const sY=W.newInstance(pO,"vtkCellArray");var ul={newInstance:sY,extend:pO,...iY};function cY(t,e){e.classHierarchy.push("vtkCell"),t.initialize=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(n){e.pointsIds=n;let i=e.points.getData();i.length!==3*e.pointsIds.length&&(i=W.newTypedArray(r.getDataType(),3*e.pointsIds.length));const o=r.getData();e.pointsIds.forEach((a,s)=>{let c=3*a,l=3*s;i[l]=o[c],i[++l]=o[++c],i[++l]=o[++c]}),e.points.setData(i)}else{e.points=r,e.pointsIds=new Array(r.getNumberOfPoints());for(let i=r.getNumberOfPoints()-1;i>=0;--i)e.pointsIds[i]=i}},t.getBounds=()=>{const r=e.points.getNumberOfPoints(),n=[];if(r){e.points.getPoint(0,n),e.bounds[0]=n[0],e.bounds[1]=n[0],e.bounds[2]=n[1],e.bounds[3]=n[1],e.bounds[4]=n[2],e.bounds[5]=n[2];for(let i=1;ie.bounds[1]?n[0]:e.bounds[1],e.bounds[2]=n[1]e.bounds[3]?n[1]:e.bounds[3],e.bounds[4]=n[2]e.bounds[5]?n[2]:e.bounds[5]}else y0(e.bounds);return e.bounds},t.getLength2=()=>{t.getBounds();let r=0,n=0;for(let i=0;i<3;i++)n=e.bounds[2*i+1]-e.bounds[2*i],r+=n*n;return r},t.getParametricDistance=r=>{let n,i=0;for(let o=0;o<3;o++)r[o]<0?n=-r[o]:r[o]>1?n=r[o]-1:n=0,n>i&&(i=n);return i},t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.deepCopy=r=>{r.initialize(e.points,e.pointsIds)},t.getCellDimension=()=>{},t.intersectWithLine=(r,n,i,o,a,s,c)=>{},t.evaluatePosition=(r,n,i,o,a,s)=>{W.vtkErrorMacro("vtkCell.evaluatePosition is not implemented.")}}const lY={bounds:[-1,-1,-1,-1,-1,-1],pointsIds:[]};function mO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lY,r),W.obj(t,e),e.points||(e.points=Ld.newInstance()),W.get(t,e,["points","pointsIds"]),cY(t,e)}const uY=W.newInstance(mO,"vtkCell");var V1={newInstance:uY,extend:mO};function fY(t,e){let r=e;for(e>=t.array.length&&(r+=t.array.length);r>t.array.length;)t.array.push({ncells:0,cells:null});t.array.length=r}function dY(t,e){e.classHierarchy.push("vtkCellLinks"),t.buildLinks=r=>{const n=r.getPoints().getNumberOfPoints(),i=r.getNumberOfCells(),o=new Uint32Array(n);if(r.isA("vtkPolyData")){for(let a=0;a{t.incrementLinkCount(c)})}t.allocateLinks(n),e.maxId=n-1;for(let a=0;a{t.insertCellReference(c,o[c]++,a)})}}else{for(let a=0;a{t.incrementLinkCount(c)});t.allocateLinks(n),e.maxId=n-1;for(let a=0;a{t.insertCellReference(c,o[c]++,a)})}},t.allocate=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.array=Array(r).fill().map(()=>({ncells:0,cells:null})),e.extend=n,e.maxId=-1},t.initialize=()=>{e.array=null},t.getLink=r=>e.array[r],t.getNcells=r=>e.array[r].ncells,t.getCells=r=>e.array[r].cells,t.insertNextPoint=r=>{e.array.push({ncells:r,cells:Array(r)}),++e.maxId},t.insertNextCellReference=(r,n)=>{e.array[r].cells[e.array[r].ncells++]=n},t.deletePoint=r=>{e.array[r].ncells=0,e.array[r].cells=null},t.removeCellReference=(r,n)=>{e.array[n].cells=e.array[n].cells.filter(i=>i!==r),e.array[n].ncells=e.array[n].cells.length},t.addCellReference=(r,n)=>{e.array[n].cells[e.array[n].ncells++]=r},t.resizeCellList=(r,n)=>{e.array[r].cells.length=n},t.squeeze=()=>{fY(e,e.maxId+1)},t.reset=()=>{e.maxId=-1},t.deepCopy=r=>{e.array=[...r.array],e.extend=r.extend,e.maxId=r.maxId},t.incrementLinkCount=r=>{++e.array[r].ncells},t.allocateLinks=r=>{for(let n=0;n{e.array[r].cells[n]=i}}const hY={array:null,maxId:0,extend:0};function vO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,hY,r),W.obj(t,e),dY(t,e)}const gY=W.newInstance(vO,"vtkCellLinks");var pY={newInstance:gY,extend:vO};const gn={VTK_EMPTY_CELL:0,VTK_VERTEX:1,VTK_POLY_VERTEX:2,VTK_LINE:3,VTK_POLY_LINE:4,VTK_TRIANGLE:5,VTK_TRIANGLE_STRIP:6,VTK_POLYGON:7,VTK_PIXEL:8,VTK_QUAD:9,VTK_TETRA:10,VTK_VOXEL:11,VTK_HEXAHEDRON:12,VTK_WEDGE:13,VTK_PYRAMID:14,VTK_PENTAGONAL_PRISM:15,VTK_HEXAGONAL_PRISM:16,VTK_QUADRATIC_EDGE:21,VTK_QUADRATIC_TRIANGLE:22,VTK_QUADRATIC_QUAD:23,VTK_QUADRATIC_POLYGON:36,VTK_QUADRATIC_TETRA:24,VTK_QUADRATIC_HEXAHEDRON:25,VTK_QUADRATIC_WEDGE:26,VTK_QUADRATIC_PYRAMID:27,VTK_BIQUADRATIC_QUAD:28,VTK_TRIQUADRATIC_HEXAHEDRON:29,VTK_QUADRATIC_LINEAR_QUAD:30,VTK_QUADRATIC_LINEAR_WEDGE:31,VTK_BIQUADRATIC_QUADRATIC_WEDGE:32,VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON:33,VTK_BIQUADRATIC_TRIANGLE:34,VTK_CUBIC_LINE:35,VTK_CONVEX_POINT_SET:41,VTK_POLYHEDRON:42,VTK_PARAMETRIC_CURVE:51,VTK_PARAMETRIC_SURFACE:52,VTK_PARAMETRIC_TRI_SURFACE:53,VTK_PARAMETRIC_QUAD_SURFACE:54,VTK_PARAMETRIC_TETRA_REGION:55,VTK_PARAMETRIC_HEX_REGION:56,VTK_HIGHER_ORDER_EDGE:60,VTK_HIGHER_ORDER_TRIANGLE:61,VTK_HIGHER_ORDER_QUAD:62,VTK_HIGHER_ORDER_POLYGON:63,VTK_HIGHER_ORDER_TETRAHEDRON:64,VTK_HIGHER_ORDER_WEDGE:65,VTK_HIGHER_ORDER_PYRAMID:66,VTK_HIGHER_ORDER_HEXAHEDRON:67,VTK_LAGRANGE_CURVE:68,VTK_LAGRANGE_TRIANGLE:69,VTK_LAGRANGE_QUADRILATERAL:70,VTK_LAGRANGE_TETRAHEDRON:71,VTK_LAGRANGE_HEXAHEDRON:72,VTK_LAGRANGE_WEDGE:73,VTK_LAGRANGE_PYRAMID:74,VTK_NUMBER_OF_CELL_TYPES:75},J5=["vtkEmptyCell","vtkVertex","vtkPolyVertex","vtkLine","vtkPolyLine","vtkTriangle","vtkTriangleStrip","vtkPolygon","vtkPixel","vtkQuad","vtkTetra","vtkVoxel","vtkHexahedron","vtkWedge","vtkPyramid","vtkPentagonalPrism","vtkHexagonalPrism","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkQuadraticEdge","vtkQuadraticTriangle","vtkQuadraticQuad","vtkQuadraticTetra","vtkQuadraticHexahedron","vtkQuadraticWedge","vtkQuadraticPyramid","vtkBiQuadraticQuad","vtkTriQuadraticHexahedron","vtkQuadraticLinearQuad","vtkQuadraticLinearWedge","vtkBiQuadraticQuadraticWedge","vtkBiQuadraticQuadraticHexahedron","vtkBiQuadraticTriangle","vtkCubicLine","vtkQuadraticPolygon","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkConvexPointSet","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","UnknownClass","vtkParametricCurve","vtkParametricSurface","vtkParametricTriSurface","vtkParametricQuadSurface","vtkParametricTetraRegion","vtkParametricHexRegion","UnknownClass","UnknownClass","UnknownClass","vtkHigherOrderEdge","vtkHigherOrderTriangle","vtkHigherOrderQuad","vtkHigherOrderPolygon","vtkHigherOrderTetrahedron","vtkHigherOrderWedge","vtkHigherOrderPyramid","vtkHigherOrderHexahedron"];function mY(t){return t0&&arguments[0]!==void 0?arguments[0]:512,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e3;e.size=r>0?r:1,e.extend=n>0?n:1,e.maxId=-1,e.typeArray=new Uint8Array(r),e.locationArray=new Uint32Array(r)},t.insertCell=(r,n,i)=>{e.typeArray[r]=n,e.locationArray[r]=i,r>e.maxId&&(e.maxId=r)},t.insertNextCell=(r,n)=>(t.insertCell(++e.maxId,r,n),e.maxId),t.setCellTypes=(r,n,i)=>{e.size=r,e.typeArray=n,e.locationArray=i,e.maxId=r-1},t.getCellLocation=r=>e.locationArray[r],t.deleteCell=r=>{e.typeArray[r]=gn.VTK_EMPTY_CELL},t.getNumberOfTypes=()=>e.maxId+1,t.isType=r=>{const n=t.getNumberOfTypes();for(let i=0;it.insertNextCell(r,-1),t.getCellType=r=>e.typeArray[r],t.reset=()=>{e.maxId=-1},t.deepCopy=r=>{t.allocate(r.getSize(),r.getExtend()),e.typeArray.set(r.getTypeArray()),e.locationArray.set(r.getLocationArray()),e.maxId=r.getMaxId()}}const SY={size:0,maxId:-1,extend:1e3};function yO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SY,r),W.obj(t,e),W.get(t,e,["size","maxId","extend"]),W.getArray(t,e,["typeArray","locationArray"]),CY(t,e)}const TY=W.newInstance(yO,"vtkCellTypes");var _Y={newInstance:TY,extend:yO,...wY};const EY={NO_INTERSECTION:0,YES_INTERSECTION:1,ON_LINE:2};var xO={IntersectionState:EY};const{IntersectionState:Lp}=xO;function au(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;const i={t:Number.MIN_VALUE,distance:0},o=[];let a;o[0]=r[0]-e[0],o[1]=r[1]-e[1],o[2]=r[2]-e[2];const s=o[0]*(t[0]-e[0])+o[1]*(t[1]-e[1])+o[2]*(t[2]-e[2]),c=wt(o,o);let l=1e-5*s;return c!==0&&(i.t=s/c),l<0&&(l=-l),-l1?a=r:(a=o,o[0]=e[0]+i.t*o[0],o[1]=e[1]+i.t*o[1],o[2]=e[2]+i.t*o[2]),n&&(n[0]=a[0],n[1]=a[1],n[2]=a[2]),i.distance=jo(a,t),i}function wO(t,e,r,n,i,o){const a=[],s=[],c=[];i[0]=0,o[0]=0,Fa(e,t,a),Fa(n,r,s),Fa(r,t,c);const l=[wt(a,a),-wt(a,s),-wt(a,s),wt(s,s)],f=[];if(f[0]=wt(a,c),f[1]=-wt(s,c),O7(l,f,2)===0){let u=Number.MAX_VALUE;const d=[t,e,r,n],h=[r,r,t,t],g=[n,n,e,e];o[0],o[0],i[0],i[0],i[0],i[0],o[0],o[0];let p;for(let v=0;v<4;v++)p=au(d[v],h[v],g[v]),p.distance=0&&i[0]<=1&&o[0]>=0&&o[0]<=1?Lp.YES_INTERSECTION:Lp.NO_INTERSECTION}const DY={distanceToLine:au,intersection:wO};function bY(t,e){e.classHierarchy.push("vtkLine");function r(n){return n>=0&&n<=1}t.getCellDimension=()=>1,t.intersectWithLine=(n,i,o,a,s)=>{const c={intersect:0,t:Number.MAX_VALUE,subId:0,betweenPoints:null};s[1]=0,s[2]=0;const l=[],f=[],u=[];e.points.getPoint(0,f),e.points.getPoint(1,u);const d=[],h=[],g=wO(n,i,f,u,d,h);if(c.t=d[0],c.betweenPoints=r(c.t),s[0]=h[0],g===Lp.YES_INTERSECTION){for(let p=0;p<3;p++)a[p]=f[p]+s[0]*(u[p]-f[p]),l[p]=n[p]+c.t*(i[p]-n[p]);if(jo(a,l)<=o*o)return c.intersect=1,c}else{let p;if(c.t<0)return p=au(n,f,u,a),p.distance<=o*o&&(c.t=0,c.intersect=1,c.betweenPoints=!0),c;if(c.t>1)return p=au(i,f,u,a),p.distance<=o*o&&(c.t=1,c.intersect=1,c.betweenPoints=!0),c;if(s[0]<0)return s[0]=0,p=au(f,n,i,a),c.t=p.t,p.distance<=o*o&&(c.intersect=1),c;if(s[0]>1)return s[0]=1,p=au(u,n,i,a),c.t=p.t,p.distance<=o*o&&(c.intersect=1),c}return c},t.evaluateLocation=(n,i,o)=>{const a=[],s=[];e.points.getPoint(0,a),e.points.getPoint(1,s);for(let c=0;c<3;c++)i[c]=a[c]+n[0]*(s[c]-a[c]);o[0]=1-n[0],o[1]=n[0]},t.evaluateOrientation=(n,i,o)=>e.orientations?(Ip(i,e.orientations[0],e.orientations[1],n[0]),o[0]=1-n[0],o[1]=n[0],!0):!1}const IY={orientations:null};function CO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,IY,r),V1.extend(t,e,r),W.setGet(t,e,["orientations"]),bY(t,e)}const OY=W.newInstance(CO,"vtkLine");var qi={newInstance:OY,extend:CO,...DY,...xO};function MY(t,e){e.classHierarchy.push("vtkPointSet"),e.points?e.points=Eo(e.points):e.points=Ld.newInstance(),t.getNumberOfPoints=()=>e.points.getNumberOfPoints(),t.getBounds=()=>e.points.getBounds(),t.computeBounds=()=>{t.getBounds()};const r=t.shallowCopy;t.shallowCopy=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;r(n,i),e.points=Ld.newInstance(),e.points.shallowCopy(n.getPoints())}}const RY={};function SO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RY,r),w0.extend(t,e,r),W.setGet(t,e,["points"]),MY(t,e)}const LY=W.newInstance(SO,"vtkPointSet");var NY={newInstance:LY,extend:SO};function Hw(t,e,r,n){const i=r[0]-e[0],o=r[1]-e[1],a=r[2]-e[2],s=t[0]-e[0],c=t[1]-e[1],l=t[2]-e[2];n[0]=o*l-a*c,n[1]=a*s-i*l,n[2]=i*c-o*s}function F1(t,e,r,n){Hw(t,e,r,n);const i=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);i!==0&&(n[0]/=i,n[1]/=i,n[2]/=i)}function PY(t,e,r,n,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:1e-6,s=!1;const c=[],l=[],f=[],u=[],d=[];F1(t,e,r,u),F1(n,i,o,d);const h=-wt(u,t),g=-wt(d,n),p=[wt(d,t)+g,wt(d,e)+g,wt(d,r)+g];if(p[0]*p[1]>a&&p[0]*p[2]>a)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};const v=[wt(u,n)+h,wt(u,i)+h,wt(u,o)+h];if(v[0]*v[1]>a&&v[0]*v[2]>a)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(Math.abs(u[0]-d[0])<1e-9&&Math.abs(u[1]-d[1])<1e-9&&Math.abs(u[2]-d[2])<1e-9&&Math.abs(h-g)<1e-9)return s=!0,{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};const x=[t,e,r],m=[n,i,o],y=wt(u,d),w=(h-g*y)/(y*y-1),C=(g-h*y)/(y*y-1),S=[w*u[0]+C*d[0],w*u[1]+C*d[1],w*u[2]+C*d[2]],T=ia(u,d,[]);cl(T);let _=0,E=0;const D=[],b=[];let I=50,R=50;for(let A=0;A<3;A++){const G=A,P=(A+1)%3,N=Xr.intersectWithLine(x[G],x[P],n,d);N.intersection&&N.t>0-a&&N.t<1+a&&(N.t<1+a&&N.t>1-a&&(I=_),D[_++]=wt(N.x,T)-wt(S,T));const V=Xr.intersectWithLine(m[G],m[P],t,u);V.intersection&&V.t>0-a&&V.t<1+a&&(V.t<1+a&&V.t>1-a&&(R=E),b[E++]=wt(V.x,T)-wt(S,T))}if(_>2){_--;const A=D[2];D[2]=D[I],D[I]=A}if(E>2){E--;const A=b[2];b[2]=b[R],b[R]=A}if(_!==2||E!==2)return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(Number.isNaN(D[0])||Number.isNaN(D[1])||Number.isNaN(b[0])||Number.isNaN(b[1]))return{intersect:!1,coplanar:s,pt1:c,pt2:l,surfaceId:f};if(D[0]>D[1]){const A=D[1];D[1]=D[0],D[0]=A}if(b[0]>b[1]){const A=b[1];b[1]=b[0],b[0]=A}let M,L;return D[1]2,t.intersectWithLine=(r,n,i,o,a)=>{const s={subId:0,t:Number.MAX_VALUE,intersect:0,betweenPoints:!1};a[2]=0;const c=[],l=i*i,f=[],u=[],d=[];e.points.getPoint(0,f),e.points.getPoint(1,u),e.points.getPoint(2,d);const h=[],g=[];if(F1(f,u,d,h),h[0]!==0||h[1]!==0||h[2]!==0){const y=Xr.intersectWithLine(r,n,f,h);if(s.betweenPoints=y.betweenPoints,s.t=y.t,o[0]=y.x[0],o[1]=y.x[1],o[2]=y.x[2],!y.intersection)return a[0]=0,a[1]=0,s.intersect=0,s;const w=t.evaluatePosition(o,c,a,g);if(w.evaluation>=0)return w.dist2<=l?(s.intersect=1,s):(s.intersect=w.evaluation,s)}const p=jo(f,u),v=jo(u,d),x=jo(d,f);e.line||(e.line=qi.newInstance()),p>v&&p>x?(e.line.getPoints().setPoint(0,f),e.line.getPoints().setPoint(1,u)):v>x&&v>p?(e.line.getPoints().setPoint(0,u),e.line.getPoints().setPoint(1,d)):(e.line.getPoints().setPoint(0,d),e.line.getPoints().setPoint(1,f));const m=e.line.intersectWithLine(r,n,i,o,a);if(s.betweenPoints=m.betweenPoints,s.t=m.t,m.intersect){const y=[],w=[],C=[];for(let S=0;S<3;S++)y[S]=f[S]-d[S],w[S]=u[S]-d[S],C[S]=o[S]-d[S];return a[0]=wt(C,y)/x,a[1]=wt(C,w)/v,s.intersect=1,s}return a[0]=0,a[1]=0,s.intersect=0,s},t.evaluatePosition=(r,n,i,o)=>{const a={subId:0,dist2:0,evaluation:-1};let s,c;const l=[],f=[],u=[],d=[];let h;const g=[],p=[],v=[];let x=0,m=0;const y=[];let w,C,S,T=[];const _=[],E=[],D=[];a.subId=0,i[2]=0,e.points.getPoint(1,l),e.points.getPoint(2,f),e.points.getPoint(0,u),Hw(l,f,u,d),Xr.generalizedProjectPoint(r,l,d,D);let b=0;for(s=0;s<3;s++)d[s]<0?h=-d[s]:h=d[s],h>b&&(b=h,m=s);for(c=0,s=0;s<3;s++)s!==m&&(y[c++]=s);for(s=0;s<2;s++)g[s]=D[y[s]]-u[y[s]],p[s]=l[y[s]]-u[y[s]],v[s]=f[y[s]]-u[y[s]];if(x=Fn(p,v),x===0)return i[0]=0,i[1]=0,a.evaluation=-1,a;if(i[0]=Fn(g,v)/x,i[1]=Fn(p,g)/x,o[0]=1-(i[0]+i[1]),o[1]=i[0],o[2]=i[1],o[0]>=0&&o[0]<=1&&o[1]>=0&&o[1]<=1&&o[2]>=0&&o[2]<=1)n&&(a.dist2=jo(D,r),n[0]=D[0],n[1]=D[1],n[2]=D[2]),a.evaluation=1;else{let I;if(n){if(o[1]<0&&o[2]<0)for(w=jo(r,u),C=qi.distanceToLine(r,l,u,I,_),S=qi.distanceToLine(r,u,f,I,E),w{const o=[],a=[],s=[];e.points.getPoint(0,o),e.points.getPoint(1,a),e.points.getPoint(2,s);const c=1-r[0]-r[1];for(let l=0;l<3;l++)n[l]=o[l]*c+a[l]*r[0]+s[l]*r[1];i[0]=c,i[1]=r[0],i[2]=r[1]},t.getParametricDistance=r=>{let n,i=0;const o=[];o[0]=r[0],o[1]=r[1],o[2]=1-r[0]-r[1];for(let a=0;a<3;a++)o[a]<0?n=-o[a]:o[a]>1?n=o[a]-1:n=0,n>i&&(i=n);return i}}const VY={};function TO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VY,r),V1.extend(t,e,r),kY(t,e)}const FY=W.newInstance(TO,"vtkTriangle");var UY={newInstance:FY,extend:TO,...AY};const Mv=["verts","lines","polys","strips"],{vtkWarningMacro:c8}=W,BY={[gn.VTK_LINE]:qi,[gn.VTK_POLY_LINE]:qi,[gn.VTK_TRIANGLE]:UY};function GY(t,e){e.classHierarchy.push("vtkPolyData");function r(i){return i.replace(/(?:^\w|[A-Z]|\b\w)/g,o=>o.toUpperCase()).replace(/\s+/g,"")}Mv.forEach(i=>{t[`getNumberOf${r(i)}`]=()=>e[i].getNumberOfCells(),e[i]?e[i]=Eo(e[i]):e[i]=ul.newInstance()}),t.getNumberOfCells=()=>Mv.reduce((i,o)=>i+e[o].getNumberOfCells(),0);const n=t.shallowCopy;t.shallowCopy=function(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;n(i,o),Mv.forEach(a=>{e[a]=ul.newInstance(),e[a].shallowCopy(i.getReferenceByName(a))})},t.buildCells=()=>{const i=t.getNumberOfVerts(),o=t.getNumberOfLines(),a=t.getNumberOfPolys(),s=t.getNumberOfStrips(),c=i+o+a+s,l=new Uint8Array(c);let f=l;const u=new Uint32Array(c);let d=u;if(i){let h=0;e.verts.getCellSizes().forEach((g,p)=>{d[p]=h,f[p]=g>1?gn.VTK_POLY_VERTEX:gn.VTK_VERTEX,h+=g+1}),d=d.subarray(i),f=f.subarray(i)}if(o){let h=0;e.lines.getCellSizes().forEach((g,p)=>{d[p]=h,f[p]=g>2?gn.VTK_POLY_LINE:gn.VTK_LINE,g===1&&c8("Building VTK_LINE ",p," with only one point, but VTK_LINE needs at least two points. Check the input."),h+=g+1}),d=d.subarray(o),f=f.subarray(o)}if(a){let h=0;e.polys.getCellSizes().forEach((g,p)=>{switch(d[p]=h,g){case 3:f[p]=gn.VTK_TRIANGLE;break;case 4:f[p]=gn.VTK_QUAD;break;default:f[p]=gn.VTK_POLYGON;break}g<3&&c8("Building VTK_TRIANGLE ",p," with less than three points, but VTK_TRIANGLE needs at least three points. Check the input."),h+=g+1}),d+=d.subarray(a),f+=f.subarray(a)}if(s){let h=0;f.fill(gn.VTK_TRIANGLE_STRIP,0,s),e.strips.getCellSizes().forEach((g,p)=>{d[p]=h,h+=g+1})}e.cells=_Y.newInstance(),e.cells.setCellTypes(c,l,u)},t.buildLinks=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;e.cells===void 0&&t.buildCells(),e.links=pY.newInstance(),i>0?e.links.allocate(i):e.links.allocate(t.getPoints().getNumberOfPoints()),e.links.buildLinks(t)},t.getCellType=i=>e.cells.getCellType(i),t.getCellPoints=i=>{const o=t.getCellType(i);let a=null;switch(o){case gn.VTK_VERTEX:case gn.VTK_POLY_VERTEX:a=e.verts;break;case gn.VTK_LINE:case gn.VTK_POLY_LINE:a=e.lines;break;case gn.VTK_TRIANGLE:case gn.VTK_QUAD:case gn.VTK_POLYGON:a=e.polys;break;case gn.VTK_TRIANGLE_STRIP:a=e.strips;break;default:return a=null,{type:0,cellPointIds:null}}const s=e.cells.getCellLocation(i),c=a.getCell(s);return{cellType:o,cellPointIds:c}},t.getPointCells=i=>e.links.getCells(i),t.getCellEdgeNeighbors=(i,o,a)=>{const s=e.links.getLink(o),c=e.links.getLink(a);return s.cells.filter(l=>l!==i&&c.cells.indexOf(l)!==-1)},t.getCell=function(i){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;const a=t.getCellPoints(i),s=o||BY[a.cellType].newInstance();return s.initialize(t.getPoints(),a.cellPointIds),s}}const WY={};function _O(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,WY,r),NY.extend(t,e,r),W.get(t,e,["cells","links"]),W.setGet(t,e,["verts","lines","polys","strips"]),GY(t,e)}const zY=W.newInstance(_O,"vtkPolyData");var hr={newInstance:zY,extend:_O};const $Y=1e-6;function jY(t,e){e.classHierarchy.push("vtkProp3D"),t.addPosition=n=>{e.position=e.position.map((i,o)=>i+n[o]),t.modified()},t.getOrientationWXYZ=()=>{const n=ll();G5(n,e.rotation);const i=new Float64Array(3),o=rj(i,n);return[_1(o),i[0],i[1],i[2]]},t.getOrientationQuaternion=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return G5(n,e.rotation)},t.rotateX=n=>{n!==0&&(mw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateY=n=>{n!==0&&(vw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateZ=n=>{n!==0&&(yw(e.rotation,e.rotation,Vn(n)),t.modified())},t.rotateWXYZ=(n,i,o,a)=>{if(n===0||i===0&&o===0&&a===0)return;const s=Vn(n),c=ll();_w(c,[i,o,a],s);const l=new Float64Array(16);I1(l,c),bt(e.rotation,e.rotation,l),t.modified()},t.rotateQuaternion=n=>{if(Math.abs(n[3])>=1-$Y)return;const i=I1(new Float64Array(16),n);bt(e.rotation,e.rotation,i),t.modified()},t.setOrientation=(n,i,o)=>n===e.orientation[0]&&i===e.orientation[1]&&o===e.orientation[2]?!1:(e.orientation=[n,i,o],qe(e.rotation),t.rotateZ(o),t.rotateX(n),t.rotateY(i),t.modified(),!0),t.setUserMatrix=n=>mh(e.userMatrix,n)?!1:(_n(e.userMatrix,n),t.modified(),!0),t.getMatrix=()=>(t.computeMatrix(),e.matrix),t.computeMatrix=()=>{if(t.getMTime()>e.matrixMTime.getMTime()){qe(e.matrix),e.userMatrix&&bt(e.matrix,e.matrix,e.userMatrix),nn(e.matrix,e.matrix,e.origin),nn(e.matrix,e.matrix,e.position),bt(e.matrix,e.matrix,e.rotation),Ha(e.matrix,e.matrix,e.scale),nn(e.matrix,e.matrix,[-e.origin[0],-e.origin[1],-e.origin[2]]),St(e.matrix,e.matrix),e.isIdentity=!0;for(let n=0;n<4;++n)for(let i=0;i<4;++i)(n===i?1:0)!==e.matrix[n+i*4]&&(e.isIdentity=!1);e.matrixMTime.modified()}},t.getCenter=()=>qt.getCenter(e.bounds),t.getLength=()=>qt.getLength(e.bounds),t.getXRange=()=>qt.getXRange(e.bounds),t.getYRange=()=>qt.getYRange(e.bounds),t.getZRange=()=>qt.getZRange(e.bounds),t.getUserMatrix=()=>e.userMatrix;function r(){t.computeMatrix()}t.onModified(r)}const HY={origin:[0,0,0],position:[0,0,0],orientation:[0,0,0],rotation:null,scale:[1,1,1],bounds:[1,-1,1,-1,1,-1],userMatrix:null,userMatrixMTime:null,cachedProp3D:null,isIdentity:!0,matrixMTime:null};function EO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,HY,r),xh.extend(t,e,r),e.matrixMTime={},W.obj(e.matrixMTime),W.get(t,e,["bounds","isIdentity"]),W.getArray(t,e,["orientation"]),W.setGetArray(t,e,["origin","position","scale"],3),e.matrix=qe(new Float64Array(16)),e.rotation=qe(new Float64Array(16)),e.userMatrix=qe(new Float64Array(16)),e.transform=null,jY(t,e)}const KY=W.newInstance(EO,"vtkProp3D");var Kw={newInstance:KY,extend:EO};const{vtkDebugMacro:qY}=W;function XY(t,e){e.classHierarchy.push("vtkActor");const r={...t};t.getActors=()=>[t],t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.property||t.getProperty();let n=e.property.getOpacity()>=1;return n=n&&(!e.texture||!e.texture.isTranslucent()),n=n&&(!e.mapper||e.mapper.getIsOpaque()),n},t.hasTranslucentPolygonalGeometry=()=>e.mapper===null?!1:(e.property===null&&t.setProperty(t.makeProperty()),!t.getIsOpaque()),t.makeProperty=x0.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const n=e.mapper.getBounds();if(!n||n.length!==6)return n;if(n[0]>n[1])return e.mapperBounds=n.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),n;if(!e.mapperBounds||n[0]!==e.mapperBounds[0]||n[1]!==e.mapperBounds[1]||n[2]!==e.mapperBounds[2]||n[3]!==e.mapperBounds[3]||n[4]!==e.mapperBounds[4]||n[5]!==e.mapperBounds[5]||t.getMTime()>e.boundsMTime.getMTime()){qY("Recomputing bounds..."),e.mapperBounds=n.concat();const i=[];qt.getCorners(n,i),t.computeMatrix();const o=new Float64Array(16);St(o,e.matrix),i.forEach(a=>et(a,a,o)),e.bounds[0]=e.bounds[2]=e.bounds[4]=Number.MAX_VALUE,e.bounds[1]=e.bounds[3]=e.bounds[5]=-Number.MAX_VALUE,e.bounds=e.bounds.map((a,s)=>s%2===0?i.reduce((c,l)=>c>l[s/2]?l[s/2]:c,a):i.reduce((c,l)=>c{let n=r.getMTime();if(e.property!==null){const i=e.property.getMTime();n=i>n?i:n}if(e.backfaceProperty!==null){const i=e.backfaceProperty.getMTime();n=i>n?i:n}return n},t.getRedrawMTime=()=>{let n=e.mtime;if(e.mapper!==null){let i=e.mapper.getMTime();n=i>n?i:n,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),i=e.mapper.getInput().getMTime(),n=i>n?i:n)}return n},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1,t.processSelectorPixelBuffers=(n,i)=>{e.mapper&&e.mapper.processSelectorPixelBuffers&&e.mapper.processSelectorPixelBuffers(n,i)}}const YY={mapper:null,property:null,backfaceProperty:null,forceOpaque:!1,forceTranslucent:!1,bounds:[1,-1,1,-1,1,-1]};function DO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YY,r),Kw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["backfaceProperty","forceOpaque","forceTranslucent","mapper"]),XY(t,e)}const JY=W.newInstance(DO,"vtkActor");var ca={newInstance:JY,extend:DO};function ZY(t,e){const r=t.invokeResize;delete t.invokeResize,e.renderWindow=cW.newInstance(),e.rendererMap={},e.openGLRenderWindow=DX.newInstance(),e.renderWindow.addView(e.openGLRenderWindow),e.interactor=ZX.newInstance(),e.interactor.setView(e.openGLRenderWindow),e.interactor.initialize(),t.addRenderer=({viewport:n,id:i,background:o})=>{const a=lO.newInstance({viewport:n,background:o||e.background});e.renderWindow.addRenderer(a),e.rendererMap[i]=a},t.destroy=()=>{e.renderWindow.getInteractor().delete()},t.removeRenderer=n=>{const i=t.getRenderer(n);e.renderWindow.removeRenderer(i),i.delete(),delete e.rendererMap[n]},t.getRenderer=n=>e.rendererMap[n],t.getRenderers=()=>{const{rendererMap:n}=e;return Object.keys(n).map(o=>({id:o,renderer:n[o]}))},t.resize=()=>{if(e.container){const{width:n,height:i}=e.container;e.openGLRenderWindow.setSize(Math.floor(n),Math.floor(i)),r(),e.renderWindow.render()}},t.setContainer=n=>{e.container=n,e.openGLRenderWindow.setContainer(e.container)},t.delete=W.chain(t.setContainer,t.destroy,e.openGLRenderWindow.delete,t.delete),t.resize()}const QY={background:[0,0,0],container:null};function bO(t,e,r={}){Object.assign(e,QY,r),W.obj(t,e),W.get(t,e,["renderWindow","openGLRenderWindow","interactor","container"]),W.event(t,e,"resize"),ZY(t,e)}const eJ=W.newInstance(bO),tJ={newInstance:eJ,extend:bO},{vtkErrorMacro:wg}=W;function nJ(t,e){e.classHierarchy.push("vtkPiecewiseFunction"),t.getSize=()=>e.nodes.length,t.getType=()=>{let r,n=0,i=0;e.nodes.length>0&&(n=e.nodes[0].y);for(let o=1;on)switch(i){case 0:case 1:i=1;break;case 2:default:i=3;break}else switch(i){case 0:case 2:i=2;break;case 1:default:i=3;break}if(n=r,i===3)break}switch(i){case 0:return"Constant";case 1:return"NonDecreasing";case 2:return"NonIncreasing";case 3:default:return"Varied"}},t.getDataPointer=()=>{const r=e.nodes.length;if(e.function=null,r>0){e.function=[];for(let n=0;n{if(e.nodes.length===0)return 0;let r=1,n=0,i=0;for(;i0?n=e.nodes[i-1].x:e.clamping?n=-Number.MAX_VALUE:n=e.nodes[0].x,n},t.getNodeValue=(r,n)=>{const i=e.nodes.length;return r<0||r>=i?(wg("Index out of range!"),-1):(n[0]=e.nodes[r].x,n[1]=e.nodes[r].y,n[2]=e.nodes[r].midpoint,n[3]=e.nodes[r].sharpness,1)},t.setNodeValue=(r,n)=>{const i=e.nodes.length;if(r<0||r>=i)return wg("Index out of range!"),-1;const o=e.nodes[r].x;return e.nodes[r].x=n[0],e.nodes[r].y=n[1],e.nodes[r].midpoint=n[2],e.nodes[r].sharpness=n[3],o!==n[0]?t.sortAndUpdateRange():t.modified(),1},t.addPoint=(r,n)=>t.addPointLong(r,n,.5,0),t.addPointLong=(r,n,i,o)=>{if(i<0||i>1)return wg("Midpoint outside range [0.0, 1.0]"),-1;if(o<0||o>1)return wg("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(r);const a={x:r,y:n,midpoint:i,sharpness:o};e.nodes.push(a),t.sortAndUpdateRange();let s;for(s=0;s{e.nodes!==r&&(e.nodes=r,t.sortAndUpdateRange())},t.sortAndUpdateRange=()=>{e.nodes.sort((n,i)=>n.x-i.x),t.updateRange()||t.modified()},t.updateRange=()=>{const r=e.range.slice(),n=e.nodes.length;return n?(e.range[0]=e.nodes[0].x,e.range[1]=e.nodes[n-1].x):(e.range[0]=0,e.range[1]=0),r[0]===e.range[0]&&r[1]===e.range[1]?!1:(t.modified(),!0)},t.removePoint=r=>{let n;for(n=0;n=e.nodes.length)return-1;const i=n;let o=!1;return e.nodes.splice(n,1),(n===0||n===e.nodes.length)&&(o=t.updateRange()),o||t.modified(),i},t.removeAllPoints=()=>{e.nodes=[],t.sortAndUpdateRange()},t.addSegment=(r,n,i,o)=>{t.sortAndUpdateRange();for(let a=0;a=r&&e.nodes[a].x<=i?e.nodes.splice(a,1):a++;t.addPoint(r,n,.5,0),t.addPoint(i,o,.5,0)},t.getValue=r=>{const n=[];return t.getTable(r,r,1,n),n[0]},t.adjustRange=r=>{if(r.length<2)return 0;const n=t.getRange();n[0]r[1]?t.addPoint(r[1],t.getValue(r[1])):t.addPoint(r[1],t.getValue(n[1])),t.sortAndUpdateRange();for(let i=0;i=r[0]&&e.nodes[i].x<=r[1]?e.nodes.splice(i,1):++i;return t.sortAndUpdateRange(),1},t.estimateMinNumberOfSamples=(r,n)=>{const i=t.findMinimumXDistance();return Math.ceil((n-r)/i)},t.findMinimumXDistance=()=>{const r=e.nodes.length;if(r<2)return-1;let n=e.nodes[1].x-e.nodes[0].x;for(let i=0;i4&&arguments[4]!==void 0?arguments[4]:1,s,c=0;const l=e.nodes.length;let f=0;l!==0&&(f=e.nodes[l-1].y);let u=0,d=0,h=0,g=0,p=0,v=0,x=0;for(s=0;s1?u=r+s/(i-1)*(n-r):u=.5*(r+n);ce.nodes[c].x;)c++,c.99999&&(v=.99999));if(c>=l)o[m]=e.clamping?f:0;else if(c===0)o[m]=e.clamping?e.nodes[0].y:0;else{let y=(u-d)/(h-d);if(y.99)if(y<.5){o[m]=g;continue}else{o[m]=p;continue}if(x<.01){o[m]=(1-y)*g+y*p;continue}y<.5?y=.5*(y*2)**(1+10*x):y>.5&&(y=1-.5*((1-y)*2)**(1+10*x));const w=y*y,C=w*y,S=2*C-3*w+1,T=-2*C+3*w,_=C-2*w+y,E=C-w,D=p-g,b=(1-x)*D;o[m]=S*g+T*p+_*b+E*b;const I=gp?g:p;o[m]=o[m]R?R:o[m]}}}}const rJ={range:[0,0],clamping:!0,allowDuplicateScalars:!1};function IO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rJ,r),W.obj(t,e),e.nodes=[],W.setGet(t,e,["allowDuplicateScalars","clamping"]),W.setArray(t,e,["range"],2),W.getArray(t,e,["range"]),nJ(t,e)}const iJ=W.newInstance(IO,"vtkPiecewiseFunction");var qu={newInstance:iJ,extend:IO};const{BlendMode:ms,FilterMode:bf}=CD;function oJ(t,e,r,n,i){let o=null;return i?(o=i,o.removeAllPoints()):o=qu.newInstance(),o.addPointLong(-1024,0,1,1),o.addPoint(t,e),o.addPoint(r,n),o}const aJ={createRadonTransferFunction:oJ};function sJ(t,e){e.classHierarchy.push("vtkVolumeMapper");const r={...t};t.getBounds=()=>{const n=t.getInputData();return n?(e.static||t.update(),e.bounds=n.getBounds()):e.bounds=qs(),e.bounds},t.update=()=>{t.getInputData()},t.setBlendModeToComposite=()=>{t.setBlendMode(ms.COMPOSITE_BLEND)},t.setBlendModeToMaximumIntensity=()=>{t.setBlendMode(ms.MAXIMUM_INTENSITY_BLEND)},t.setBlendModeToMinimumIntensity=()=>{t.setBlendMode(ms.MINIMUM_INTENSITY_BLEND)},t.setBlendModeToAverageIntensity=()=>{t.setBlendMode(ms.AVERAGE_INTENSITY_BLEND)},t.setBlendModeToAdditiveIntensity=()=>{t.setBlendMode(ms.ADDITIVE_INTENSITY_BLEND)},t.setBlendModeToRadonTransform=()=>{t.setBlendMode(ms.RADON_TRANSFORM_BLEND)},t.getBlendModeAsString=()=>W.enumToString(ms,e.blendMode),t.setAverageIPScalarRange=(n,i)=>{console.warn("setAverageIPScalarRange is deprecated use setIpScalarRange"),t.setIpScalarRange(n,i)},t.getFilterModeAsString=()=>W.enumToString(bf,e.filterMode),t.setFilterModeToOff=()=>{t.setFilterMode(bf.OFF)},t.setFilterModeToNormalized=()=>{t.setFilterMode(bf.NORMALIZED)},t.setFilterModeToRaw=()=>{t.setFilterMode(bf.RAW)},t.setGlobalIlluminationReach=n=>r.setGlobalIlluminationReach(Do(n,0,1)),t.setVolumetricScatteringBlending=n=>r.setVolumetricScatteringBlending(Do(n,0,1)),t.setVolumeShadowSamplingDistFactor=n=>r.setVolumeShadowSamplingDistFactor(n>=1?n:1),t.setAnisotropy=n=>r.setAnisotropy(Do(n,-.99,.99)),t.setLAOKernelSize=n=>r.setLAOKernelSize(sw(Do(n,1,32))),t.setLAOKernelRadius=n=>r.setLAOKernelRadius(n>=1?n:1)}const cJ={bounds:[1,-1,1,-1,1,-1],sampleDistance:1,imageSampleDistance:1,maximumSamplesPerRay:1e3,autoAdjustSampleDistances:!0,initialInteractionScale:1,interactionSampleDistanceFactor:1,blendMode:ms.COMPOSITE_BLEND,ipScalarRange:[-1e6,1e6],filterMode:bf.OFF,preferSizeOverAccuracy:!1,computeNormalFromOpacity:!1,volumetricScatteringBlending:0,globalIlluminationReach:0,volumeShadowSamplingDistFactor:5,anisotropy:0,localAmbientOcclusion:!1,LAOKernelSize:15,LAOKernelRadius:7};function OO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cJ,r),Fw.extend(t,e,r),W.setGet(t,e,["sampleDistance","imageSampleDistance","maximumSamplesPerRay","autoAdjustSampleDistances","initialInteractionScale","interactionSampleDistanceFactor","blendMode","filterMode","preferSizeOverAccuracy","computeNormalFromOpacity","volumetricScatteringBlending","globalIlluminationReach","volumeShadowSamplingDistFactor","anisotropy","localAmbientOcclusion","LAOKernelSize","LAOKernelRadius"]),W.setGetArray(t,e,["ipScalarRange"],2),W.event(t,e,"lightingActivated"),sJ(t,e)}const lJ=W.newInstance(OO,"vtkVolumeMapper");var uJ={newInstance:lJ,extend:OO,...aJ};function fJ(t,e){e.classHierarchy.push("vtkSharedVolumeMapper");const r=t.delete;t.delete=()=>{e.scalarTexture=null,r()}}const dJ={scalarTexture:null};function MO(t,e,r={}){Object.assign(e,dJ,r),uJ.extend(t,e,r),W.setGet(t,e,["scalarTexture"]),fJ(t,e)}const hJ=W.newInstance(MO,"vtkSharedVolumeMapper"),gJ={newInstance:hJ,extend:MO};function Nn(t){const e=t.indexOf(":");return t.substring(e+1)}const pJ=1073741824;class mJ{constructor(){this._imageCache=new Map,this._volumeCache=new Map,this._geometryCache=new Map,this._imageCacheSize=0,this._maxCacheSize=3*pJ,this._geometryCacheSize=0,this.setMaxCacheSize=e=>{if(!e||typeof e!="number"){const r=`New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;throw new Error(r)}this._maxCacheSize=e},this.isCacheable=e=>{const r=this.getBytesAvailable(),n=Array.from(this._imageCache.values()).reduce((o,a)=>a.sharedCacheKey?o:o+a.sizeInBytes,0);return r+n>=e},this.getMaxCacheSize=()=>this._maxCacheSize,this.getCacheSize=()=>this._imageCacheSize,this._decacheImage=(e,r=!1)=>{const n=this._imageCache.get(e);if(!n)return;if(n.sharedCacheKey&&!r)throw new Error("Cannot decache an image with a shared cache key. You need to manually decache the volume first.");const{imageLoadObject:i}=n;i!=null&&i.cancelFn&&i.cancelFn(),i!=null&&i.decache&&i.decache(),this._imageCache.delete(e)},this._decacheVolume=e=>{const r=this._volumeCache.get(e);if(!r)return;const{volumeLoadObject:n,volume:i}=r;i&&(i.cancelLoading&&i.cancelLoading(),i.imageData&&i.imageData.delete(),n.cancelFn&&n.cancelFn(),i.imageIds&&i.imageIds.forEach(o=>{const a=this._imageCache.get(o);a&&a.sharedCacheKey===e&&(a.sharedCacheKey=void 0)}),this._volumeCache.delete(e))},this.purgeCache=()=>{const e=this._imageCache.keys();for(this.purgeVolumeCache();;){const{value:r,done:n}=e.next();if(n)break;this.removeImageLoadObject(r,{force:!0}),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:r})}},this.purgeVolumeCache=()=>{const e=this._volumeCache.keys();for(;;){const{value:r,done:n}=e.next();if(n)break;this.removeVolumeLoadObject(r),De(Ce,Se.VOLUME_CACHE_VOLUME_REMOVED,{volumeId:r})}},this.getVolumeLoadObject=e=>{if(e===void 0)throw new Error("getVolumeLoadObject: volumeId must not be undefined");const r=this._volumeCache.get(e);if(r)return r.timeStamp=Date.now(),r.volumeLoadObject},this.putGeometryLoadObject=(e,r)=>{if(e===void 0)throw new Error("putGeometryLoadObject: geometryId must not be undefined");if(r.promise===void 0)throw new Error("putGeometryLoadObject: geometryLoadObject.promise must not be undefined");if(this._geometryCache.has(e))throw new Error("putGeometryLoadObject: geometryId already present in geometryCache");if(r.cancelFn&&typeof r.cancelFn!="function")throw new Error("putGeometryLoadObject: geometryLoadObject.cancel must be a function");const n={loaded:!1,geometryId:e,geometryLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._geometryCache.set(e,n),r.promise.then(i=>{try{this._putGeometryCommon(e,i,n)}catch(o){throw console.debug(`Error in _putGeometryCommon for geometry ${e}:`,o),o}}).catch(i=>{throw console.debug(`Error caching geometry ${e}:`,i),this._geometryCache.delete(e),i})},this.getGeometry=e=>{if(e===void 0)throw new Error("getGeometry: geometryId must not be undefined");const r=this._geometryCache.get(e);if(r)return r.timeStamp=Date.now(),r.geometry},this.removeGeometryLoadObject=e=>{if(e===void 0)throw new Error("removeGeometryLoadObject: geometryId must not be undefined");const r=this._geometryCache.get(e);if(!r)throw new Error("removeGeometryLoadObject: geometryId was not present in geometryCache");this.decrementGeometryCacheSize(r.sizeInBytes);const n={geometry:r,geometryId:e};De(Ce,Se.GEOMETRY_CACHE_GEOMETRY_REMOVED,n),this._decacheGeometry(e)},this._decacheGeometry=e=>{const r=this._geometryCache.get(e);if(!r)return;const{geometryLoadObject:n}=r;n.cancelFn&&n.cancelFn(),n.decache&&n.decache(),this._geometryCache.delete(e)},this.incrementGeometryCacheSize=e=>{this._geometryCacheSize+=e},this.decrementGeometryCacheSize=e=>{this._geometryCacheSize-=e},this.getImage=(e,r=Pi.FAR_REPLICATE)=>{var i;if(e===void 0)throw new Error("getImage: imageId must not be undefined");const n=this._imageCache.get(e);if(n&&(n.timeStamp=Date.now(),!(((i=n.image)==null?void 0:i.imageQualityStatus){var i;if(e===void 0)throw new Error("getVolume: volumeId must not be undefined");const n=this._volumeCache.get(e);return n?(n.timeStamp=Date.now(),n.volume):r?(i=[...this._volumeCache.values()].find(o=>o.volumeId.includes(e)))==null?void 0:i.volume:void 0},this.getVolumes=()=>Array.from(this._volumeCache.values()).map(r=>r.volume),this.filterVolumesByReferenceId=e=>this.getVolumes().filter(n=>n.referencedVolumeId===e),this.removeImageLoadObject=(e,{force:r=!1}={})=>{if(e===void 0)throw new Error("removeImageLoadObject: imageId must not be undefined");const n=this._imageCache.get(e);if(!n)throw new Error("removeImageLoadObject: imageId was not present in imageCache");this._decacheImage(e,r),this.incrementImageCacheSize(-n.sizeInBytes);const i={image:n,imageId:e};De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,i)},this.removeVolumeLoadObject=e=>{if(e===void 0)throw new Error("removeVolumeLoadObject: volumeId must not be undefined");const r=this._volumeCache.get(e);if(!r)throw new Error("removeVolumeLoadObject: volumeId was not present in volumeCache");const n={volume:r,volumeId:e};De(Ce,Se.VOLUME_CACHE_VOLUME_REMOVED,n),this._decacheVolume(e)},this.incrementImageCacheSize=e=>{this._imageCacheSize+=e},this.decrementImageCacheSize=e=>{this._imageCacheSize-=e},this.getGeometryLoadObject=e=>{if(e===void 0)throw new Error("getGeometryLoadObject: geometryId must not be undefined");const r=this._geometryCache.get(e);if(r)return r.timeStamp=Date.now(),r.geometryLoadObject}}getBytesAvailable(){return this.getMaxCacheSize()-this.getCacheSize()}decacheIfNecessaryUntilBytesAvailable(e,r){let n=this.getBytesAvailable();if(n>=e)return n;const i=Array.from(this._imageCache.values()).filter(c=>!c.sharedCacheKey);function o(c,l){return c.timeStamp>l.timeStamp?1:c.timeStampc.imageId);let s=a;r&&(s=a.filter(c=>!r.includes(c)));for(const c of s)if(this.removeImageLoadObject(c),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:c}),n=this.getBytesAvailable(),n>=e)return n;for(const c of a)if(this.removeImageLoadObject(c),De(Ce,Se.IMAGE_CACHE_IMAGE_REMOVED,{imageId:c}),n=this.getBytesAvailable(),n>=e)return n}_putImageCommon(e,r,n){if(!this._imageCache.has(e)){console.warn("The image was purged from the cache before it completed loading.");return}if(!r){console.warn("Image is undefined");return}if(r.sizeInBytes===void 0||Number.isNaN(r.sizeInBytes))throw new Error("_putImageCommon: image.sizeInBytes must not be undefined");if(r.sizeInBytes.toFixed===void 0)throw new Error("_putImageCommon: image.sizeInBytes is not a number");if(!this.isCacheable(r.sizeInBytes))throw new Error(Se.CACHE_SIZE_EXCEEDED);this.decacheIfNecessaryUntilBytesAvailable(r.sizeInBytes),n.loaded=!0,n.image=r,n.sizeInBytes=r.sizeInBytes,this.incrementImageCacheSize(n.sizeInBytes);const i={image:n};De(Ce,Se.IMAGE_CACHE_IMAGE_ADDED,i),n.sharedCacheKey=r.sharedCacheKey}async putImageLoadObject(e,r){if(e===void 0)throw console.error("putImageLoadObject: imageId must not be undefined"),new Error("putImageLoadObject: imageId must not be undefined");if(r.promise===void 0)throw console.error("putImageLoadObject: imageLoadObject.promise must not be undefined"),new Error("putImageLoadObject: imageLoadObject.promise must not be undefined");const n=this._imageCache.get(e);if(n!=null&&n.imageLoadObject)throw console.warn(`putImageLoadObject: imageId ${e} already in cache`),new Error("putImageLoadObject: imageId already in cache");if(r.cancelFn&&typeof r.cancelFn!="function")throw console.error("putImageLoadObject: imageLoadObject.cancel must be a function"),new Error("putImageLoadObject: imageLoadObject.cancel must be a function");const i={...n,loaded:!1,imageId:e,sharedCacheKey:void 0,imageLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._imageCache.set(e,i),this._imageCache.set(e,i),r.promise.then(o=>{try{this._putImageCommon(e,o,i)}catch(a){throw console.debug(`Error in _putImageCommon for image ${e}:`,a),a}}).catch(o=>{throw console.debug(`Error caching image ${e}:`,o),this._imageCache.delete(e),o})}putImageSync(e,r){if(e===void 0)throw new Error("putImageSync: imageId must not be undefined");if(this._imageCache.has(e))throw new Error("putImageSync: imageId already in cache");const n={loaded:!1,imageId:e,sharedCacheKey:void 0,imageLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._imageCache.set(e,n);try{this._putImageCommon(e,r,n)}catch(i){throw this._imageCache.delete(e),i}}getImageLoadObject(e){if(e===void 0)throw new Error("getImageLoadObject: imageId must not be undefined");const r=this._imageCache.get(e);if(r)return r.timeStamp=Date.now(),r.imageLoadObject}isLoaded(e){const r=this._imageCache.get(e);return r?r.loaded:!1}getVolumeContainingImageId(e){const r=Array.from(this._volumeCache.keys()),n=Nn(e);for(const i of r){const o=this._volumeCache.get(i);if(!o)return;const{volume:a}=o;if(!a.imageIds.length)return;const s=a.getImageURIIndex(n);if(s>-1)return{volume:a,imageIdIndex:s}}}getCachedImageBasedOnImageURI(e){const r=Nn(e),i=Array.from(this._imageCache.keys()).find(o=>Nn(o)===r);if(i)return this._imageCache.get(i)}_putVolumeCommon(e,r,n){var o;if(!this._volumeCache.get(e)){console.warn("The volume was purged from the cache before it completed loading.");return}n.loaded=!0,n.volume=r,(o=r.imageIds)==null||o.forEach(a=>{const s=this._imageCache.get(a);s&&(s.sharedCacheKey=e)});const i={volume:n};De(Ce,Se.VOLUME_CACHE_VOLUME_ADDED,i)}putVolumeSync(e,r){if(e===void 0)throw new Error("putVolumeSync: volumeId must not be undefined");if(this._volumeCache.has(e))throw new Error("putVolumeSync: volumeId already in cache");const n={loaded:!1,volumeId:e,volumeLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._volumeCache.set(e,n);try{this._putVolumeCommon(e,r,n)}catch(i){throw this._volumeCache.delete(e),i}}async putVolumeLoadObject(e,r){if(e===void 0)throw new Error("putVolumeLoadObject: volumeId must not be undefined");if(r.promise===void 0)throw new Error("putVolumeLoadObject: volumeLoadObject.promise must not be undefined");if(this._volumeCache.has(e))throw new Error(`putVolumeLoadObject: volumeId:${e} already in cache`);if(r.cancelFn&&typeof r.cancelFn!="function")throw new Error("putVolumeLoadObject: volumeLoadObject.cancel must be a function");const n={loaded:!1,volumeId:e,volumeLoadObject:r,timeStamp:Date.now(),sizeInBytes:0};return this._volumeCache.set(e,n),r.promise.then(i=>{try{this._putVolumeCommon(e,i,n)}catch(o){throw console.error(`Error in _putVolumeCommon for volume ${e}:`,o),this._volumeCache.delete(e),o}}).catch(i=>{throw this._volumeCache.delete(e),i})}_putGeometryCommon(e,r,n){if(!this._geometryCache.get(e)){console.warn("The geometry was purged from the cache before it completed loading.");return}if(!r){console.warn("Geometry is undefined");return}if(r.sizeInBytes===void 0||Number.isNaN(r.sizeInBytes))throw new Error("_putGeometryCommon: geometry.sizeInBytes must not be undefined");if(r.sizeInBytes.toFixed===void 0)throw new Error("_putGeometryCommon: geometry.sizeInBytes is not a number");if(!this.isCacheable(r.sizeInBytes))throw new Error(Se.CACHE_SIZE_EXCEEDED);this.decacheIfNecessaryUntilBytesAvailable(r.sizeInBytes),n.loaded=!0,n.geometry=r,n.sizeInBytes=r.sizeInBytes,this.incrementGeometryCacheSize(n.sizeInBytes);const i={geometry:n};De(Ce,Se.GEOMETRY_CACHE_GEOMETRY_ADDED,i)}putGeometrySync(e,r){if(e===void 0)throw new Error("putGeometrySync: geometryId must not be undefined");if(this._geometryCache.has(e))throw new Error("putGeometrySync: geometryId already in cache");const n={loaded:!1,geometryId:e,geometryLoadObject:{promise:Promise.resolve(r)},timeStamp:Date.now(),sizeInBytes:0};this._geometryCache.set(e,n);try{this._putGeometryCommon(e,r,n)}catch(i){throw this._geometryCache.delete(e),i}}setPartialImage(e,r){const n=this._imageCache.get(e);if(!n){r&&this._imageCache.set(e,{image:r,imageId:e,loaded:!1,timeStamp:Date.now(),sizeInBytes:0});return}n.loaded&&(n.loaded=!1,n.imageLoadObject=null,this.incrementImageCacheSize(-n.sizeInBytes),n.sizeInBytes=0),n.image=r||n.image}getImageQuality(e){var n;const r=(n=this._imageCache.get(e))==null?void 0:n.image;return r?r.imageQualityStatus||Pi.FULL_RESOLUTION:void 0}}const _e=new mJ;function vJ(t,e){e.classHierarchy.push("vtkStreamingOpenGLTexture"),e.updatedFrames=[],e.volumeId=null;const r=t.create3DFilterableFromRaw;t.create3DFilterableFromRaw=(a,s,c,l,f,u,d)=>{e.inputDataType=f,e.inputNumComps=l,r(a,s,c,l,f,u,d)},t.update3DFromRaw=()=>{const{volumeId:a}=e;if(!a)return;const s=_e.getVolume(a);if(e._openGLRenderWindow.activateTexture(t),t.createTexture(),t.bind(),s.isDynamicVolume()){o();return}return t.hasUpdatedFrames()&&i()};const n=t.modified;t.setUpdatedFrame=a=>{e.updatedFrames[a]=!0,n()},t.modified=()=>{n();const a=_e.getVolume(e.volumeId);if(!a)return;const s=a.imageIds;for(let c=0;c!e.updatedFrames.length||e.updatedFrames.some(a=>a),t.getUpdatedFrames=()=>e.updatedFrames,t.setVolumeId=a=>{e.volumeId=a},t.getVolumeId=()=>e.volumeId,t.setTextureParameters=({width:a,height:s,depth:c,numberOfComponents:l,dataType:f})=>{e.width??(e.width=a),e.height??(e.height=s),e.depth??(e.depth=c),e.inputNumComps??(e.inputNumComps=l),e.inputDataType??(e.inputDataType=f)},t.getTextureParameters=()=>({width:e.width,height:e.height,depth:e.depth,numberOfComponents:e.inputNumComps,dataType:e.inputDataType})}const yJ={updatedFrames:[]};function RO(t,e,r={}){Object.assign(e,yJ,r),yn.extend(t,e,r),vJ(t,e)}const xJ=W.newInstance(RO,"vtkStreamingOpenGLTexture"),wJ={newInstance:xJ,extend:RO},CJ={isPerformingCoordinateTransformation:!1};function LO(t,e,r={}){Object.assign(e,CJ,r),$w.extend(t,e,r),W.setGet(t,e,["isPerformingCoordinateTransformation"]),TJ(t,e)}const SJ=W.newInstance(LO,"vtkSlabCamera");function TJ(t,e){e.classHierarchy.push("vtkSlabCamera");const r=qe(new Float64Array(16)),n=new Float64Array(3);t.getProjectionMatrix=(i,o,a)=>{const s=lo();if(e.projectionMatrix){const d=1/e.physicalScale;return $t(n,d,d,d),_n(s,e.projectionMatrix),Ha(s,s,n),St(s,s),s}qe(r);let c=e.clippingRange[0],l=e.clippingRange[1];e.isPerformingCoordinateTransformation&&(c=e.distance,l=e.distance+.1);const f=l-c,u=[c+(o+1)*f/2,c+(a+1)*f/2];if(e.parallelProjection){const d=e.parallelScale*i,h=e.parallelScale,g=(e.windowCenter[0]-1)*d,p=(e.windowCenter[0]+1)*d,v=(e.windowCenter[1]-1)*h,x=(e.windowCenter[1]+1)*h;Cw(r,g,p,v,x,u[0],u[1]),St(r,r)}else{if(e.useOffAxisProjection)throw new Error("Off-Axis projection is not supported at this time");{const d=Math.tan(nt.radiansFromDegrees(e.viewAngle)/2);let h,g;e.useHorizontalViewAngle===!0?(h=c*d,g=c*d/i):(h=c*d*i,g=c*d);const p=(e.windowCenter[0]-1)*h,v=(e.windowCenter[0]+1)*h,x=(e.windowCenter[1]-1)*g,m=(e.windowCenter[1]+1)*g,y=u[0],w=u[1];r[0]=2*y/(v-p),r[5]=2*y/(m-x),r[2]=(p+v)/(v-p),r[6]=(x+m)/(m-x),r[10]=-(y+w)/(w-y),r[14]=-1,r[11]=-2*y*w/(w-y),r[15]=0}}return _n(s,r),s}}const _J={newInstance:SJ,extend:LO};function Xo(t){return ci(t,"vtkVolume")||ci(t,"vtkImageSlice")}function ci(t,e){return!!("isA"in t?t:t.actor).isA(e)}const ea=[];function S0(t,e=0){let r;for(r=0;r0;)ea.pop()}function Pe(t,...e){for(let r=0;rt,l8=1e-6;let PO=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.matrix=qe(new Float64Array(16)),this.tmp=new Float64Array(3),this.angleConv=e?i$:bJ}rotateFromDirections(e,r){const n=new Float64Array(3),i=new Float64Array(3),o=new Float64Array(16);$t(n,e[0],e[1],e[2]),$t(i,r[0],r[1],r[2]),on(n,n),on(i,i);const a=je(n,i);return a>=1?this:(Kt(this.tmp,n,i),ui(this.tmp)1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:-1;if(mh(iw,this.matrix))return this;const i=n===-1?e.length:r+n*3;for(let o=r;oMath.abs(Math.abs(t)-1)Rv(t[e])||Rv(t[e+1])||Rv(t[e+2]),RJ=t=>Lv(t,0)&&Lv(t,3)&&Lv(t,6);function s2(t,e,r){const n=t.getMapper().getInputData();let i;const o=n.getDirection();if(RJ(o))i=AO(t);else{const[u,d,h]=n.getDimensions();i=[[0,0,0],[u-1,0,0],[0,d-1,0],[u-1,d-1,0],[0,0,h-1],[u-1,0,h-1],[0,d-1,h-1],[u-1,d-1,h-1]].map(p=>n.indexToWorld(p))}const a=br.buildFromDegree().identity().rotateFromDirections(e,[1,0,0]);i.forEach(u=>a.apply(u));const s=[...r];a.apply(s);const c=s[0];let l=1/0,f=-1/0;for(let u=0;u<8;u++){const d=i[u][0];d>f&&(f=d),df?h=f:h<0&&(h=0);const p=h*i;g=[g[0]+n[0]*p,g[1]+n[1]*p,g[2]+n[2]*p];const v=[g[0]+l[0],g[1]+l[1],g[2]+l[2]];return{newFocalPoint:g,newPosition:v}}const LJ={RGB:0,HSV:1,LAB:2,DIVERGING:3},NJ={LINEAR:0,LOG10:1};var kO={ColorSpace:LJ,Scale:NJ};const{ColorSpace:Xi,Scale:qw}=kO,{ScalarMappingTarget:Cg}=n2,{vtkDebugMacro:PJ,vtkErrorMacro:va,vtkWarningMacro:AJ}=W;function u8(t,e){const r=t[0],n=t[1],i=t[2],o=Math.sqrt(r*r+n*n+i*i),a=o>.001?Math.acos(r/o):0,s=a>.001?Math.atan2(i,n):0;e[0]=o,e[1]=a,e[2]=s}function kJ(t,e){const r=t[0],n=t[1],i=t[2];e[0]=r*Math.cos(n),e[1]=r*Math.sin(n)*Math.cos(i),e[2]=r*Math.sin(n)*Math.sin(i)}function f8(t,e){if(t[0]>=e-.1)return t[2];const r=t[1]*Math.sqrt(e*e-t[0]*t[0])/(t[0]*Math.sin(t[1]));return t[2]>-.3*Math.PI?t[2]+r:t[2]-r}function VJ(t,e){let r=t-e;for(r<0&&(r=-r);r>=2*Math.PI;)r-=2*Math.PI;return r>Math.PI&&(r=2*Math.PI-r),r}function d8(t,e,r,n){const i=[],o=[];Uc(e,i),Uc(r,o);const a=[],s=[];u8(i,a),u8(o,s);let c=t;if(a[1]>.05&&s[1]>.05&&VJ(a[2],s[2])>.33*Math.PI){let u=Math.max(a[0],s[0]);u=Math.max(88,u),t<.5?(s[0]=u,s[1]=0,s[2]=0,c*=2):(a[0]=u,a[1]=0,a[2]=0,c=2*c-1)}a[1]<.05&&s[1]>.05?a[2]=f8(s,a[0]):s[1]<.05&&a[1]>.05&&(s[2]=f8(a,s[0]));const l=[];l[0]=(1-c)*a[0]+c*s[0],l[1]=(1-c)*a[1]+c*s[1],l[2]=(1-c)*a[2]+c*s[2];const f=[];kJ(l,f),D1(f,n)}function FJ(t,e){e.classHierarchy.push("vtkColorTransferFunction"),t.getSize=()=>e.nodes.length,t.addRGBPoint=(r,n,i,o)=>t.addRGBPointLong(r,n,i,o,.5,0),t.addRGBPointLong=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;if(a<0||a>1)return va("Midpoint outside range [0.0, 1.0]"),-1;if(s<0||s>1)return va("Sharpness outside range [0.0, 1.0]"),-1;e.allowDuplicateScalars||t.removePoint(r);const c={x:r,r:n,g:i,b:o,midpoint:a,sharpness:s};e.nodes.push(c),t.sortAndUpdateRange();let l=0;for(;lt.addHSVPointLong(r,n,i,o,.5,0),t.addHSVPointLong=function(r,n,i,o){let a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:.5,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:0;const c=[];return Rc([n,i,o],c),t.addRGBPoint(r,c[0],c[1],c[2],a,s)},t.setNodes=r=>{if(e.nodes!==r){const n=JSON.stringify(e.nodes);e.nodes=r;const i=JSON.stringify(e.nodes);if(t.sortAndUpdateRange()||n!==i)return t.modified(),!0}return!1},t.sortAndUpdateRange=()=>{const r=JSON.stringify(e.nodes);e.nodes.sort((o,a)=>o.x-a.x);const n=JSON.stringify(e.nodes),i=t.updateRange();return!i&&r!==n?(t.modified(),!0):i},t.updateRange=()=>{const r=[2];r[0]=e.mappingRange[0],r[1]=e.mappingRange[1];const n=e.nodes.length;return n?(e.mappingRange[0]=e.nodes[0].x,e.mappingRange[1]=e.nodes[n-1].x):(e.mappingRange[0]=0,e.mappingRange[1]=0),r[0]===e.mappingRange[0]&&r[1]===e.mappingRange[1]?!1:(t.modified(),!0)},t.removePoint=r=>{let n=0;for(;n=e.nodes.length)return-1;let o=!1;return e.nodes.splice(n,1),(n===0||n===e.nodes.length)&&(o=t.updateRange()),o||t.modified(),i},t.movePoint=(r,n)=>{if(r!==n){t.removePoint(n);for(let i=0;i{e.nodes=[],t.sortAndUpdateRange()},t.addRGBSegment=(r,n,i,o,a,s,c,l)=>{t.sortAndUpdateRange();for(let f=0;f=r&&e.nodes[f].x<=a?e.nodes.splice(f,1):f++;t.addRGBPointLong(r,n,i,o,.5,0),t.addRGBPointLong(a,s,c,l,.5,0),t.modified()},t.addHSVSegment=(r,n,i,o,a,s,c,l)=>{const f=[n,i,o],u=[s,c,l],d=[],h=[];Rc(f,d),Rc(u,h),t.addRGBSegment(r,d[0],d[1],d[2],a,h[0],h[1],h[2])},t.mapValue=r=>{const n=[];return t.getColor(r,n),[Math.floor(255*n[0]+.5),Math.floor(255*n[1]+.5),Math.floor(255*n[2]+.5),255]},t.getColor=(r,n)=>{if(e.indexedLookup){const i=t.getSize(),o=t.getAnnotatedValueIndexInternal(r);if(o<0||i===0){const a=t.getNanColorByReference();n[0]=a[0],n[1]=a[1],n[2]=a[2]}else{const a=[];t.getNodeValue(o%i,a),n[0]=a[1],n[1]=a[2],n[2]=a[3]}return}t.getTable(r,r,1,n)},t.getRedValue=r=>{const n=[];return t.getColor(r,n),n[0]},t.getGreenValue=r=>{const n=[];return t.getColor(r,n),n[1]},t.getBlueValue=r=>{const n=[];return t.getColor(r,n),n[2]},t.getTable=(r,n,i,o)=>{const a=Number(r),s=Number(n);if(b1(a)||b1(s)){for(let E=0;E0);let S=0,T=0,_=0;C&&(S=Math.log10(a),T=Math.log10(s));for(let E=0;E1?C?(_=S+E/(i-1)*(T-S),h=10**_):h=a+E/(i-1)*(s-a):C?(_=.5*(S+T),h=10**_):h=.5*(a+s),e.discretize){const b=e.mappingRange;if(h>=b[0]&&h<=b[1]){const I=e.numberOfValues,R=b[1]-b[0];if(I<=1)h=b[0]+R/2;else{const M=(h-b[0])/R,L=sw(I*M);h=b[0]+L/(I-1)*R}}}for(;ce.nodes[c].x;)c++,c.99999&&(m=.99999));if(h>e.mappingRange[1])o[D]=0,o[D+1]=0,o[D+2]=0,e.clamping&&(t.getUseAboveRangeColor()?(o[D]=e.aboveRangeColor[0],o[D+1]=e.aboveRangeColor[1],o[D+2]=e.aboveRangeColor[2]):(o[D]=f,o[D+1]=u,o[D+2]=d));else if(h0&&(o[D]=e.nodes[0].r,o[D+1]=e.nodes[0].g,o[D+2]=e.nodes[0].b));else if(c===0&&(Math.abs(h-a)<1e-6||e.discretize))l>0?(o[D]=e.nodes[0].r,o[D+1]=e.nodes[0].g,o[D+2]=e.nodes[0].b):(o[D]=0,o[D+1]=0,o[D+2]=0);else{let b=0;if(C?b=(_-g)/(p-g):b=(h-g)/(p-g),b.99)if(b<.5){o[D]=v[0],o[D+1]=v[1],o[D+2]=v[2];continue}else{o[D]=x[0],o[D+1]=x[1],o[D+2]=x[2];continue}if(y<.01){if(e.colorSpace===Xi.RGB)o[D]=(1-b)*v[0]+b*x[0],o[D+1]=(1-b)*v[1]+b*x[1],o[D+2]=(1-b)*v[2]+b*x[2];else if(e.colorSpace===Xi.HSV){const V=[],$=[];Tf(v,V),Tf(x,$),e.hSVWrap&&(V[0]-$[0]>.5||$[0]-V[0]>.5)&&(V[0]>$[0]?V[0]-=1:$[0]-=1);const H=[];H[0]=(1-b)*V[0]+b*$[0],H[0]<0&&(H[0]+=1),H[1]=(1-b)*V[1]+b*$[1],H[2]=(1-b)*V[2]+b*$[2],Rc(H,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else if(e.colorSpace===Xi.LAB){const V=[],$=[];Uc(v,V),Uc(x,$);const H=[];H[0]=(1-b)*V[0]+b*$[0],H[1]=(1-b)*V[1]+b*$[1],H[2]=(1-b)*V[2]+b*$[2],D1(H,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else e.colorSpace===Xi.DIVERGING?(d8(b,v,x,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]):va("ColorSpace set to invalid value.",e.colorSpace);continue}b<.5?b=.5*(b*2)**(1+10*y):b>.5&&(b=1-.5*((1-b)*2)**(1+10*y));const I=b*b,R=I*b,M=2*R-3*I+1,L=-2*R+3*I,A=R-2*I+b,G=R-I;let P,N;if(e.colorSpace===Xi.RGB)for(let V=0;V<3;V++)P=x[V]-v[V],N=(1-y)*P,o[D+V]=M*v[V]+L*x[V]+A*N+G*N;else if(e.colorSpace===Xi.HSV){const V=[],$=[];Tf(v,V),Tf(x,$),e.hSVWrap&&(V[0]-$[0]>.5||$[0]-V[0]>.5)&&(V[0]>$[0]?V[0]-=1:$[0]-=1);const H=[];for(let Y=0;Y<3;Y++)P=$[Y]-V[Y],N=(1-y)*P,H[Y]=M*V[Y]+L*$[Y]+A*N+G*N,Y===0&&H[Y]<0&&(H[Y]+=1);Rc(H,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else if(e.colorSpace===Xi.LAB){const V=[],$=[];Uc(v,V),Uc(x,$);const H=[];for(let Y=0;Y<3;Y++)P=$[Y]-V[Y],N=(1-y)*P,H[Y]=M*V[Y]+L*$[Y]+A*N+G*N;D1(H,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]}else e.colorSpace===Xi.DIVERGING?(d8(b,v,x,w),o[D]=w[0],o[D+1]=w[1],o[D+2]=w[2]):va("ColorSpace set to invalid value.");for(let V=0;V<3;V++)o[D+V]=o[D+V]<0?0:o[D+V],o[D+V]=o[D+V]>1?1:o[D+V]}}},t.getUint8Table=function(r,n,i){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(t.getMTime()<=e.buildTime&&e.tableSize===i&&e.tableWithAlpha!==o)return e.table;if(e.nodes.length===0)return va("Attempting to lookup a value with no points in the function"),e.table;const a=o?4:3;(e.tableSize!==i||e.tableWithAlpha!==o)&&(e.table=new Uint8Array(i*a),e.tableSize=i,e.tableWithAlpha=o);const s=[];t.getTable(r,n,i,s);for(let c=0;c{t.removeAllPoints();const n=r.getNumberOfComponents();for(let i=0;i{let a=0;t.removeAllPoints(),i>1&&(a=(n-r)/(i-1));for(let s=0;sr<0||r>=e.nodes.length?(va("Index out of range!"),-1):(n[0]=e.nodes[r].x,n[1]=e.nodes[r].r,n[2]=e.nodes[r].g,n[3]=e.nodes[r].b,n[4]=e.nodes[r].midpoint,n[5]=e.nodes[r].sharpness,1),t.setNodeValue=(r,n)=>{if(r<0||r>=e.nodes.length)return va("Index out of range!"),-1;const i=e.nodes[r].x;return e.nodes[r].x=n[0],e.nodes[r].r=n[1],e.nodes[r].g=n[2],e.nodes[r].b=n[3],e.nodes[r].midpoint=n[4],e.nodes[r].sharpness=n[5],i!==n[0]?t.sortAndUpdateRange():t.modified(),1},t.getNumberOfAvailableColors=()=>{var n;if(e.indexedLookup&&t.getSize())return t.getSize();if(e.tableSize)return e.tableSize;const r=((n=e.nodes)==null?void 0:n.length)??0;return Math.max(4094,r)},t.getIndexedColor=(r,n)=>{const i=t.getSize();if(i>0&&r>=0){const a=[];t.getNodeValue(r%i,a);for(let s=0;s<3;++s)n[s]=a[s+1];n[3]=1;return}const o=t.getNanColorByReference();n[0]=o[0],n[1]=o[1],n[2]=o[2],n[3]=1},t.fillFromDataPointer=(r,n)=>{if(!(r<=0||!n)){t.removeAllPoints();for(let i=0;i{const i=[r,n],o=t.getRange();if(o[1]===i[1]&&o[0]===i[0])return;if(i[1]===i[0]){va("attempt to set zero width color range");return}const a=(i[1]-i[0])/(o[1]-o[0]),s=i[0]-o[0]*a;for(let c=0;c{const n=t.getRange(),i=[];n[0]r[1]?(t.getColor(r[1],i),t.addRGBPoint(r[1],i[0],i[1],i[2])):(t.getColor(n[1],i),t.addRGBPoint(r[1],i[0],i[1],i[2])),t.sortAndUpdateRange();for(let o=0;o=r[0]&&e.nodes[o].x<=r[1]?e.nodes.splice(o,1):++o;return 1},t.estimateMinNumberOfSamples=(r,n)=>{const i=t.findMinimumXDistance();return Math.ceil((n-r)/i)},t.findMinimumXDistance=()=>{if(e.nodes.length<2)return-1;let r=Number.MAX_VALUE;for(let n=0;n{if(t.getSize()===0){PJ("Transfer Function Has No Points!");return}e.indexedLookup?t.mapDataIndexed(r,n,i,o):t.mapData(r,n,i,o)},t.mapData=(r,n,i,o)=>{if(t.getSize()===0){AJ("Transfer Function Has No Points!");return}const a=Math.floor(t.getAlpha()*255+.5),s=r.getNumberOfTuples(),c=r.getNumberOfComponents(),l=n.getData(),f=r.getData(),u=[];if(i===Cg.RGBA)for(let d=0;d{const n=JSON.stringify(e.colorSpace);r.ColorSpace&&(e.colorSpace=Xi[r.ColorSpace.toUpperCase()],e.colorSpace===void 0&&(va(`ColorSpace ${r.ColorSpace} not supported, using RGB instead`),e.colorSpace=Xi.RGB));let i=n!==JSON.stringify(e.colorSpace);const o=i||JSON.stringify(e.nanColor);if(r.NanColor)for(e.nanColor=[].concat(r.NanColor);e.nanColor.length<4;)e.nanColor.push(1);i=i||o!==JSON.stringify(e.nanColor);const a=i||JSON.stringify(e.nodes);if(r.RGBPoints){const l=r.RGBPoints.length;e.nodes=[];const f=.5,u=0;for(let d=0;d2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,UJ,r),n2.extend(t,e,r),e.table=[],e.nodes=[],e.nanColor=[.5,0,0,1],e.belowRangeColor=[0,0,0,1],e.aboveRangeColor=[1,1,1,1],e.buildTime={},W.obj(e.buildTime),W.get(t,e,["buildTime","mappingRange"]),W.setGet(t,e,["useAboveRangeColor","useBelowRangeColor","discretize","numberOfValues",{type:"enum",name:"colorSpace",enum:Xi},{type:"enum",name:"scale",enum:qw}]),W.setArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"],4),W.getArray(t,e,["nanColor","belowRangeColor","aboveRangeColor"]),FJ(t,e)}const BJ=W.newInstance(VO,"vtkColorTransferFunction");var Ys={newInstance:BJ,extend:VO,...kO},GJ=[{Name:"KAAMS",IndexedColors:[1,1,1,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,.63,.63,1,.67,.5,.33,1,.5,.75,.53,.35,.7,1,.75,.5],Annotations:[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11]},{ColorSpace:"Diverging",Name:"Cool to Warm",NanColor:[1,1,0],RGBPoints:[0,.23137254902,.298039215686,.752941176471,.5,.865,.865,.865,1,.705882352941,.0156862745098,.149019607843]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Cool to Warm (Extended)",NanColor:[.25,0,0],RGBPoints:[0,0,0,.34902,.03125,.039216,.062745,.380392,.0625,.062745,.117647,.411765,.09375,.090196,.184314,.45098,.125,.12549,.262745,.501961,.15625,.160784,.337255,.541176,.1875,.2,.396078,.568627,.21875,.239216,.454902,.6,.25,.286275,.521569,.65098,.28125,.337255,.592157,.701961,.3125,.388235,.654902,.74902,.34375,.466667,.737255,.819608,.375,.572549,.819608,.878431,.40625,.654902,.866667,.909804,.4375,.752941,.917647,.941176,.46875,.823529,.956863,.968627,.5,.988235,.960784,.901961,.5,.941176,.984314,.988235,.52,.988235,.945098,.85098,.54,.980392,.898039,.784314,.5625,.968627,.835294,.698039,.59375,.94902,.733333,.588235,.625,.929412,.65098,.509804,.65625,.909804,.564706,.435294,.6875,.878431,.458824,.352941,.71875,.839216,.388235,.286275,.75,.760784,.294118,.211765,.78125,.701961,.211765,.168627,.8125,.65098,.156863,.129412,.84375,.6,.094118,.094118,.875,.54902,.066667,.098039,.90625,.501961,.05098,.12549,.9375,.45098,.054902,.172549,.96875,.4,.054902,.192157,1,.34902,.070588,.211765]},{ColorSpace:"Diverging",Name:"Warm to Cool",NanColor:[1,1,0],RGBPoints:[0,.705882352941,.0156862745098,.149019607843,.5,.865,.865,.865,1,.23137254902,.298039215686,.752941176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Warm to Cool (Extended)",NanColor:[.250004,0,0],RGBPoints:[0,.34902,0,.129412,.025,.4,.00392157,.101961,.05,.470588,.0156863,.0901961,.075,.54902,.027451,.0705882,.1,.619608,.0627451,.0431373,.125,.690196,.12549,.0627451,.15,.741176,.184314,.0745098,.175,.788235,.266667,.0941176,.2,.811765,.345098,.113725,.225,.831373,.411765,.133333,.25,.85098,.47451,.145098,.275,.870588,.54902,.156863,.3,.878431,.619608,.168627,.325,.890196,.658824,.196078,.35,.909804,.717647,.235294,.375,.929412,.776471,.278431,.395522,.94902,.823529,.321569,.418905,.968627,.87451,.407843,.444278,.980392,.917647,.509804,.470149,.988235,.956863,.643137,.483582,.992157,.964706,.713725,.499,.988235,.980392,.870588,.5,1,1,1,.501,.913725,.988235,.937255,.516418,.827451,.980392,.886275,.531343,.764706,.980392,.866667,.546766,.658824,.980392,.843137,.564179,.572549,.964706,.835294,.587562,.423529,.941176,.87451,.60597,.262745,.901961,.862745,.629851,.0705882,.854902,.870588,.651741,.0509804,.8,.85098,.681592,.0235294,.709804,.831373,.712935,.0313725,.615686,.811765,.75,.0313725,.537255,.788235,.775,.0392157,.466667,.768627,.8,.0509804,.396078,.741176,.825,.054902,.317647,.709804,.85,.054902,.243137,.678431,.875,.0431373,.164706,.639216,.9,.0313725,.0980392,.6,.925,.0392157,.0392157,.560784,.95,.105882,.0509804,.509804,.975,.113725,.0235294,.45098,1,.12549,0,.380392]},{ColorSpace:"RGB",Name:"Rainbow Desaturated",NanColor:[1,1,0],RGBPoints:[0,.278431372549,.278431372549,.858823529412,.143,0,0,.360784313725,.285,0,1,1,.429,0,.501960784314,0,.571,1,1,0,.714,1,.380392156863,0,.857,.419607843137,0,0,1,.878431372549,.301960784314,.301960784314]},{ColorSpace:"RGB",Name:"Cold and Hot",NanColor:[1,1,0],RGBPoints:[0,0,1,1,.45,0,0,1,.5,0,0,.501960784314,.55,1,0,0,1,1,1,0]},{ColorSpace:"RGB",Name:"Black-Body Radiation",NanColor:[0,.498039215686,1],RGBPoints:[0,0,0,0,.4,.901960784314,0,0,.8,.901960784314,.901960784314,0,1,1,1,1]},{ColorSpace:"RGB",Name:"X Ray",NanColor:[1,0,0],RGBPoints:[0,1,1,1,1,0,0,0]},{ColorSpace:"RGB",Name:"Grayscale",NanColor:[1,0,0],RGBPoints:[0,0,0,0,1,1,1,1]},{ColorSpace:"RGB",Name:"BkRd",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,1,0,0]},{ColorSpace:"RGB",Name:"BkGn",NanColor:[1,0,1],RGBPoints:[0,0,0,0,1,0,1,0]},{ColorSpace:"RGB",Name:"BkBu",NanColor:[1,1,0],RGBPoints:[0,0,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"BkMa",NanColor:[0,1,0],RGBPoints:[0,0,0,0,1,1,0,1]},{ColorSpace:"RGB",Name:"BkCy",NanColor:[0,1,1],RGBPoints:[0,0,0,0,1,0,1,1]},{ColorSpace:"RGB",Name:"Black, Blue and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,0,0,.501960784314,.666,0,.501960784314,1,1,1,1,1]},{ColorSpace:"RGB",Name:"Black, Orange and White",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.333,.501960784314,0,0,.666,1,.501960784314,0,1,1,1,1]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear YGB 1211g",NanColor:[.25,0,0],RGBPoints:[0,1,.988235,.968627,.02,1,.952941,.878431,.05,.968627,.905882,.776471,.1,.94902,.898039,.647059,.15,.901961,.878431,.556863,.2,.847059,.858824,.482353,.25,.690196,.819608,.435294,.3,.513725,.768627,.384314,.35,.337255,.721569,.337255,.4,.278431,.658824,.392157,.45,.231373,.639216,.435294,.5,.203922,.6,.486275,.55,.172549,.568627,.537255,.6,.141176,.517647,.54902,.65,.133333,.458824,.541176,.7,.12549,.396078,.529412,.75,.117647,.321569,.521569,.8,.121569,.258824,.509804,.85,.133333,.227451,.501961,.9,.145098,.192157,.490196,.95,.188235,.164706,.470588,1,.258824,.196078,.439216]},{ColorSpace:"CIELAB",Creator:"Francesca Samsel",Name:"Linear Green (Gr4L)",NanColor:[.25,0,0],RGBPoints:[0,.054902,.109804,.121569,.05,.07451,.172549,.180392,.1,.086275,.231373,.219608,.15,.094118,.278431,.25098,.2,.109804,.34902,.278431,.25,.113725,.4,.278431,.3,.117647,.45098,.270588,.35,.117647,.490196,.243137,.4,.113725,.521569,.203922,.45,.109804,.54902,.152941,.5,.082353,.588235,.082353,.55,.109804,.631373,.05098,.6,.211765,.678431,.082353,.65,.317647,.721569,.113725,.7,.431373,.760784,.160784,.75,.556863,.8,.239216,.8,.666667,.839216,.294118,.85,.784314,.878431,.396078,.9,.886275,.921569,.533333,.95,.960784,.94902,.670588,1,1,.984314,.901961]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Linear Blue (8_31f)",NanColor:[.25,0,0],RGBPoints:[0,.960784,1,.980392,.05,.815686,.960784,.913725,.1,.670588,.929412,.870588,.15,.556863,.901961,.843137,.2,.478431,.870588,.823529,.25,.439216,.831373,.803922,.3,.4,.8,.788235,.35,.376471,.768627,.768627,.4,.34902,.709804,.729412,.45,.32549,.654902,.690196,.5,.301961,.607843,.658824,.55,.247059,.545098,.619608,.6,.239216,.494118,.580392,.65,.227451,.439216,.541176,.7,.227451,.403922,.521569,.75,.231373,.368627,.501961,.8,.227451,.321569,.470588,.85,.219608,.282353,.439216,.9,.192157,.235294,.4,.95,.160784,.184314,.34902,1,.133333,.12549,.301961]},{ColorSpace:"HSV",Name:"Blue to Red Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,0,0,1,1,1,0,0]},{ColorSpace:"HSV",Name:"Red to Blue Rainbow",NanColor:[.498039215686,.498039215686,.498039215686],RGBPoints:[0,1,0,0,1,0,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended White",NanColor:[1,1,0],RGBPoints:[0,1,1,1,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Grey",NanColor:[1,1,0],RGBPoints:[0,.317647058824,.341176470588,.43137254902,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Rainbow Blended Black",NanColor:[1,1,0],RGBPoints:[0,0,0,0,.17,0,0,1,.34,0,1,1,.5,0,1,0,.67,1,1,0,.84,1,0,0,1,.878431372549,0,1]},{ColorSpace:"RGB",Name:"Blue to Yellow",NanColor:[1,0,0],RGBPoints:[0,.0392156862745,.0392156862745,.949019607843,1,.949019607843,.949019607843,.0392156862745]},{ColorSpace:"HSV",Name:"blot",RGBPoints:[0,0,0,1,.166,0,0,1,.167,1,0,1,.332,1,0,1,.333,0,1,1,.5,0,1,1,.501,0,1,0,.666,0,1,0,.667,1,1,0,.832,1,1,0,.833,1,0,0,1,1,0,0]},{ColorSpace:"Lab",Name:"CIELab Blue to Red",NanColor:[1,1,0],RGBPoints:[0,0,.6,.749019607843,1,.76862745098,.466666666667,.341176470588]},{ColorSpace:"RGB",Name:"jet",RGBPoints:[-1,0,0,.5625,-.777778,0,0,1,-.269841,0,1,1,-.015873,.5,1,.5,.238095,1,1,0,.746032,1,0,0,1,.5,0,0]},{ColorSpace:"RGB",Name:"rainbow",RGBPoints:[-1,0,0,1,-.5,0,1,1,0,0,1,0,.5,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"erdc_rainbow_bright",RGBPoints:[-1,.32549,.14902,.960784,-.866221,.297047,.375586,.963836,-.732441,.180302,.536818,.964627,-.598662,.1302,.649207,.929647,-.464883,.0445143,.749654,.855998,-.331104,.0271325,.830713,.721527,-.197324,.259504,.866145,.543555,-.0635452,.428364,.890725,.329819,.0702341,.568503,.898508,.187623,.204013,.738259,.890317,.0825461,.337793,.84546,.86136,.0147555,.471572,.912191,.808018,0,.605351,.962848,.710445,0,.73913,.999469,.600258,.0176284,.87291,.994156,.445975,.193912,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"erdc_rainbow_dark",RGBPoints:[-1,0,0,.423499,-.866221,0,.119346,.529237,-.732441,0,.238691,.634976,-.598662,0,.346852,.68788,-.464883,0,.45022,.718141,-.331104,0,.553554,.664839,-.197324,0,.651082,.519303,-.0635452,.115841,.72479,.352857,.0702341,.326771,.781195,.140187,.204013,.522765,.798524,.0284624,.337793,.703162,.788685,.00885756,.471572,.845118,.751133,0,.605351,.955734,.690825,0,.73913,.995402,.567916,.0618524,.87291,.987712,.403398,.164851,1,.980407,.247105,.262699]},{ColorSpace:"Lab",Name:"nic_CubicL",RGBPoints:[-1,.479965,.0118108,.5307,-.87451,.522213,.0551282,.706919,-.74902,.50839,.237278,.867764,-.623529,.451617,.373834,.987255,-.498039,.39365,.497255,.97506,-.372549,.328631,.599639,.891843,-.247059,.250043,.690286,.778553,-.121569,.249656,.764905,.645857,.00392157,.297954,.821466,.50449,.129412,.337509,.872595,.358447,.254902,.430011,.913789,.297079,.380392,.587191,.931381,.333353,.505882,.727937,.93591,.353742,.631373,.826403,.921081,.365066,.756863,.893201,.846317,.372662,.882353,.965347,.73884,.378506,1,.983235,.597451,.366856]},{ColorSpace:"Lab",Name:"nic_CubicYF",RGBPoints:[-1,.5151,.0482,.6697,-.87451,.520711,.168955,.800574,-.74902,.493694,.278596,.911824,-.623529,.440026,.369475,.984978,-.498039,.398932,.457593,.987053,-.372549,.350651,.540644,.929608,-.247059,.298827,.615625,.857729,-.121569,.239928,.685061,.769531,.00392157,.228832,.739349,.673287,.129412,.263297,.78608,.569988,.254902,.298107,.828337,.460214,.380392,.33092,.864071,.352674,.505882,.38306,.898169,.287309,.631373,.49023,.917481,.307961,.756863,.62372,.926026,.332309,.882353,.717458,.92527,.342476,1,.8,.9255,.3529]},{ColorSpace:"Lab",Name:"gist_earth",RGBPoints:[-1,0,0,0,-.87451,.239216,.027451,.415686,-.74902,.0901961,.254902,.556863,-.623529,.0941176,.352941,.54902,-.498039,.105882,.435294,.533333,-.372549,.12549,.52549,.501961,-.247059,.156863,.596078,.443137,-.121569,.196078,.65098,.380392,.00392157,.282353,.717647,.301961,.129412,.466667,.772549,.27451,.254902,.678431,.784314,.309804,.380392,.901961,.756863,.376471,.505882,.992157,.705882,.521569,.631373,1,.721569,.701961,.756863,1,.784314,.784314,.882353,1,.866667,.866667,1,1,1,1]},{ColorSpace:"Lab",Name:"2hot",RGBPoints:[-1,.0416667,0,0,-.873016,.208333,0,0,-.746032,.375,0,0,-.619048,.541667,0,0,-.492063,.708333,0,0,-.365079,.854137,0,0,-.238095,.937488,.039062,0,-.111111,1,.208333,0,.015873,1,.375,0,.142857,1,.541667,0,.269841,1,.708333,0,.396825,1,.858805,.03125,.52381,1,.947392,.15625,.650794,1,1,.3125,.777778,1,1,.5625,.904762,1,1,.8125,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_red2yellow_BW",RGBPoints:[-1,754296e-12,0,109827e-10,-.87451,.18285,.0264094,0,-.74902,.3066,0,0,-.623529,.422841,0,0,-.498039,.522945,0,0,-.372549,.605721,0,0,-.247059,.672502,.14168,0,-.121569,.728167,.244025,0,.00392157,.781215,.333454,0,.129412,.825,.423586,0,.254902,.855893,.516793,0,.380392,.880491,.608846,0,.505882,.910305,.695505,0,.631373,.94109,.779067,.223528,.756863,.967873,.858572,.473521,.882353,.986815,.933211,.751583,1,1,1,.999997]},{ColorSpace:"Lab",Name:"erdc_marine2gold_BW",RGBPoints:[-1,111641e-12,0,162551e-11,-.87451,.0413146,.0619808,.209857,-.74902,.0185557,.101341,.350684,-.623529,.00486405,.149847,.461054,-.498039,.0836345,.210845,.517906,-.372549,.173222,.276134,.541793,-.247059,.259857,.343877,.535869,-.121569,.362299,.408124,.504293,.00392157,.468266,.468276,.468257,.129412,.582781,.527545,.374914,.254902,.691591,.585251,.274266,.380392,.784454,.645091,.247332,.505882,.862299,.710383,.27518,.631373,.920863,.782923,.351563,.756863,.955792,.859699,.533541,.882353,.976162,.93433,.780671,1,1,1,.999983]},{ColorSpace:"Lab",Name:"erdc_blue2gold_BW",RGBPoints:[-1,0,0,0,-.87451,.0742735,.0440331,.230013,-.74902,.125276,.0258685,.415826,-.623529,.143879,.0163031,.591346,-.498039,.212261,.0627855,.705239,-.372549,.306048,.141178,.763636,-.247059,.391537,.232286,.773263,-.121569,.461734,.336633,.708321,.00392157,.54209,.427581,.590007,.129412,.61704,.508623,.460978,.254902,.702703,.579586,.309117,.380392,.790336,.644811,.170397,.505882,.870173,.710733,.117134,.631373,.93656,.781991,.157144,.756863,.965672,.862068,.409836,.882353,.985751,.936296,.714162,1,1,1,.999999]},{ColorSpace:"Lab",Name:"erdc_sapphire2gold_BW",RGBPoints:[-1,.107704,.107708,.107694,-.87451,.1851,.112354,.308554,-.74902,.236782,.114233,.48788,-.623529,.28296,.126187,.639464,-.498039,.344787,.171643,.739713,-.372549,.413325,.242371,.76913,-.247059,.481863,.3131,.719841,-.121569,.550402,.383829,.612222,.00392157,.61894,.454558,.51126,.129412,.687478,.525287,.39993,.254902,.756017,.596016,.289923,.380392,.824555,.666745,.255498,.505882,.892979,.736822,.27696,.631373,.938851,.804966,.351734,.756863,.966491,.874853,.53572,.882353,.982105,.94153,.782579,1,1,1,.999986]},{ColorSpace:"Lab",Name:"erdc_red2purple_BW",RGBPoints:[-1,0,0,0,-.87451,.167793,.0166271,.0431278,-.74902,.262608,.0107595,.0791181,-.623529,.351902,.0101858,.100926,-.498039,.441257,.0160835,.131919,-.372549,.5221,.0555972,.195625,-.247059,.593852,.104294,.310234,-.121569,.654628,.158115,.448486,.00392157,.707443,.220914,.570253,.129412,.749504,.293268,.67897,.254902,.781587,.370517,.779269,.380392,.809951,.451099,.855831,.505882,.84424,.531462,.900451,.631373,.865174,.620901,.91606,.756863,.875041,.714054,.910284,.882353,.880764,.80554,.896276,1,.887572,.887591,.887556]},{ColorSpace:"Lab",Name:"erdc_purple2pink_BW",RGBPoints:[-1,0,0,0,-.87451,.117562,.0291202,.175876,-.74902,.178368,.0458476,.285454,-.623529,.237731,.0680173,.387717,-.498039,.300877,.0956291,.484802,-.372549,.370929,.136858,.554985,-.247059,.449033,.189273,.58863,-.121569,.529971,.245796,.598587,.00392157,.609914,.300643,.610244,.129412,.697079,.351286,.616371,.254902,.785858,.401991,.617376,.380392,.862517,.45745,.64463,.505882,.91359,.525462,.705336,.631373,.932583,.61064,.767412,.756863,.922478,.706966,.817522,.882353,.901302,.803071,.856311,1,.887571,.887591,.887549]},{ColorSpace:"Lab",Name:"erdc_pbj_lin",RGBPoints:[-1,0,0,0,-.87451,.091821,.0611476,.10617,-.74902,.160311,.0900022,.192713,-.623529,.22484,.12126,.272128,-.498039,.291263,.157469,.340828,-.372549,.360015,.200388,.388903,-.247059,.437497,.250058,.387201,-.121569,.512636,.304969,.355955,.00392157,.582603,.360874,.33488,.129412,.655126,.416374,.306351,.254902,.725889,.473329,.279051,.380392,.778125,.537928,.302697,.505882,.815894,.606931,.382431,.631373,.839159,.679308,.497608,.756863,.854748,.751666,.631792,.882353,.869483,.822508,.768592,1,.887572,.887589,.887565]},{ColorSpace:"Lab",Name:"erdc_blue2green_muted",RGBPoints:[-1,.107704,.107708,.107695,-.87451,.141522,.13066,.270741,-.74902,.180123,.146119,.42308,-.623529,.210161,.169674,.551795,-.498039,.239701,.212939,.634969,-.372549,.253916,.282947,.653641,-.247059,.242791,.366933,.608521,-.121569,.226302,.446776,.52693,.00392157,.236237,.514689,.458798,.129412,.274641,.577589,.376069,.254902,.349625,.633993,.288131,.380392,.4437,.683677,.260497,.505882,.536247,.731214,.285424,.631373,.628472,.777128,.349151,.756863,.718259,.819287,.496825,.882353,.804768,.856164,.703299,1,.887571,.887591,.887548]},{ColorSpace:"Lab",Name:"erdc_blue2green_BW",RGBPoints:[-1,363578e-12,0,529374e-11,-.87451,.0539915,.0577948,.212806,-.74902,.0620393,.0758942,.388959,-.623529,.0697499,.102032,.54177,-.498039,.113295,.156156,.64334,-.372549,.152047,.243196,.670283,-.247059,.158096,.344084,.622864,-.121569,.151142,.43922,.532767,.00392157,.17155,.521588,.457719,.129412,.225861,.599141,.363997,.254902,.32328,.67007,.259083,.380392,.442344,.733697,.223754,.505882,.558409,.794941,.257411,.631373,.673875,.854344,.340822,.756863,.787244,.909326,.524717,.882353,.896483,.958063,.775914,1,1,1,.999982]},{ColorSpace:"Lab",Name:"GREEN-WHITE_LINEAR",RGBPoints:[-1,0,0,0,-.87451,0,.062745,0,-.74902,0,.12549,0,-.623529,0,.188235,0,-.498039,0,.25098,0,-.372549,0,.313725,0,-.247059,0,.376471,0,-.121569,.094118,.439216,0,.00392157,.196078,.501961,0,.129412,.294118,.564706,0,.254902,.396078,.627451,0,.380392,.498039,.690196,0,.505882,.6,.752941,.145098,.631373,.701961,.815686,.364706,.756863,.8,.878431,.580392,.882353,.901961,.941176,.796078,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_green2yellow_BW",RGBPoints:[-1,0,0,0,-.87451,0,.105542,.0603919,-.74902,0,.159454,.104148,-.623529,0,.219502,.15542,-.498039,0,.282276,.203811,-.372549,0,.346331,.235652,-.247059,0,.411765,.235428,-.121569,0,.477177,.217977,.00392157,.0593644,.541635,.21361,.129412,.233081,.604722,.210591,.254902,.369803,.664942,.226536,.380392,.498446,.722367,.288237,.505882,.601929,.782244,.380815,.631373,.703207,.840497,.512134,.756863,.803186,.896433,.674462,.882353,.903834,.950266,.846715,1,1,1,.999981]},{ColorSpace:"Lab",Name:"blue2cyan",RGBPoints:[-1,0,0,0,-.87451,0,.152941,.364706,-.74902,0,.254902,.470588,-.623529,0,.34902,.572549,-.498039,0,.443137,.670588,-.372549,0,.537255,.772549,-.247059,0,.627451,.870588,-.121569,0,.717647,.964706,.00392157,.0784314,.772549,1,.129412,.207843,.858824,1,.254902,.32549,.941176,1,.380392,.45098,1,1,.505882,.560784,1,1,.631373,.662745,1,1,.756863,.760784,1,1,.882353,.870588,1,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_blue2cyan_BW",RGBPoints:[-1,405298e-12,0,59012e-10,-.87451,.0207526,.0740933,.18093,-.74902,0,.121033,.30343,-.623529,0,.166892,.416095,-.498039,0,.216768,.524796,-.372549,.0164769,.275471,.608585,-.247059,.0544527,.344824,.659267,-.121569,.0880643,.419118,.688675,.00392157,.127938,.492556,.720256,.129412,.149476,.566946,.756918,.254902,.188961,.641333,.792122,.380392,.245482,.715336,.827609,.505882,.329216,.786235,.874761,.631373,.453558,.852803,.918466,.756863,.626281,.910493,.954,.882353,.82257,.958709,.980146,1,1,1,.999989]},{ColorSpace:"Lab",Name:"erdc_blue_BW",RGBPoints:[-1,0,0,0,-.87451,.0425591,.0763529,.150682,-.74902,.0569472,.119154,.275403,-.623529,.0635978,.164772,.395427,-.498039,.0774342,.213851,.510014,-.372549,.106815,.267034,.615102,-.247059,.122093,.324649,.720068,-.121569,.160851,.387068,.806956,.00392157,.213754,.453516,.878012,.129412,.26722,.524656,.932436,.254902,.326844,.599279,.968038,.380392,.403403,.674712,.984784,.505882,.499703,.745519,1,.631373,.615055,.813983,1,.756863,.74405,.879228,1,.882353,.877909,.941913,1,1,1,1,.999996]},{ColorSpace:"Lab",Name:"BLUE-WHITE",RGBPoints:[-1,0,0,0,-.87451,0,0,.082353,-.74902,0,0,.168627,-.623529,0,0,.254902,-.498039,0,0,.337255,-.372549,0,0,.423529,-.247059,0,0,.509804,-.121569,0,.101961,.592157,.00392157,0,.203922,.678431,.129412,0,.301961,.764706,.254902,0,.403922,.85098,.380392,0,.505882,.933333,.505882,0,.603922,1,.631373,.254902,.705882,1,.756863,.509804,.807843,1,.882353,.764706,.905882,1,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_purple_BW",RGBPoints:[-1,4264e-11,0,620844e-12,-.87451,.100579,.0593111,.145666,-.74902,.167794,.0889224,.254953,-.623529,.231446,.123339,.360511,-.498039,.296699,.163027,.461278,-.372549,.363211,.209286,.55306,-.247059,.431136,.260776,.637195,-.121569,.498202,.320012,.705799,.00392157,.567456,.380459,.778091,.129412,.629381,.445284,.8448,.254902,.688373,.517374,.895694,.380392,.74891,.590906,.93976,.505882,.805017,.667956,.977626,.631373,.850914,.752618,.992396,.756863,.89724,.838454,.994093,.882353,.948461,.922603,.994449,1,1,1,.999967]},{ColorSpace:"Lab",Name:"erdc_magenta_BW",RGBPoints:[-1,0,0,254023e-10,-.87451,.128696,.0456782,.11635,-.74902,.228133,.0476299,.201452,-.623529,.327273,.0374065,.282107,-.498039,.420953,.0408166,.35709,-.372549,.511562,.0642203,.430511,-.247059,.599552,.102686,.504257,-.121569,.684646,.150536,.579429,.00392157,.765817,.205978,.656062,.129412,.839176,.27229,.731807,.254902,.89536,.357594,.797309,.380392,.930238,.457825,.846984,.505882,.945921,.564536,.880571,.631373,.948995,.670753,.902279,.756863,.947124,.772819,.918171,.882353,.947265,.869424,.934352,1,.954719,.95475,.954726]},{ColorSpace:"Lab",Name:"magenta",RGBPoints:[-1,0,0,0,-.87451,.364706,0,.152941,-.74902,.470588,0,.254902,-.623529,.572549,0,.34902,-.498039,.670588,0,.443137,-.372549,.772549,0,.537255,-.247059,.870588,0,.627451,-.121569,.964706,0,.717647,.00392157,1,.0784314,.772549,.129412,1,.207843,.858824,.254902,1,.32549,.941176,.380392,1,.45098,1,.505882,1,.560784,1,.631373,1,.662745,1,.756863,1,.760784,1,.882353,1,.870588,1,1,1,1,1]},{ColorSpace:"Lab",Name:"RED-PURPLE",RGBPoints:[-1,0,0,0,-.87451,.188235,0,.007843,-.74902,.345098,0,.035294,-.623529,.439216,0,.098039,-.498039,.533333,0,.152941,-.372549,.627451,.015686,.211765,-.247059,.721569,.031373,.266667,-.121569,.8,.047059,.329412,.00392157,.862745,.047059,.403922,.129412,.941176,.062745,.466667,.254902,.988235,.078431,.54902,.380392,.988235,.141176,.643137,.505882,.988235,.25098,.729412,.631373,.988235,.376471,.811765,.756863,.988235,.54902,.886275,.882353,.988235,.752941,.952941,1,.996078,.996078,.996078]},{ColorSpace:"Lab",Name:"erdc_red_BW",RGBPoints:[-1,0,0,0,-.87451,.147204,.0480135,.0401815,-.74902,.253411,.0617478,.0301333,-.623529,.356059,.0746331,.0446897,-.498039,.457731,.0934935,.0636931,-.372549,.557199,.122714,.0860013,-.247059,.665179,.144238,.105585,-.121569,.763833,.187056,.138326,.00392157,.847035,.254558,.189407,.129412,.905663,.345937,.258215,.254902,.941431,.447111,.346277,.380392,.962608,.546927,.457571,.505882,.987833,.637276,.569944,.631373,.994202,.732176,.687958,.756863,.993304,.826268,.800567,.882353,.994413,.917205,.906393,1,1,1,.999979]},{ColorSpace:"Lab",Name:"RED_TEMPERATURE",RGBPoints:[-1,0,0,0,-.87451,.090196,0,0,-.74902,.180392,0,0,-.623529,.270588,0,0,-.498039,.360784,0,0,-.372549,.45098,0,0,-.247059,.545098,0,0,-.121569,.635294,0,0,.00392157,.72549,.058824,0,.129412,.815686,.176471,0,.254902,.905882,.294118,0,.380392,1,.411765,0,.505882,1,.533333,.027451,.631373,1,.65098,.27451,.756863,1,.768627,.521569,.882353,1,.886275,.768627,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_orange_BW",RGBPoints:[-1,0,0,253806e-10,-.87451,.135871,.0593824,0,-.74902,.224328,.0907216,0,-.623529,.318083,.119647,0,-.498039,.414443,.150246,0,-.372549,.511077,.184884,0,-.247059,.605501,.226033,0,-.121569,.695274,.275491,0,.00392157,.777826,.334445,0,.129412,.851498,.402441,0,.254902,.915899,.47759,602975e-9,.380392,.971984,.557882,.0361443,.505882,1,.641287,.135967,.631373,1,.725198,.27997,.756863,1,.808205,.438135,.882353,1,.89306,.587036,1,1,.977928,.721599]},{ColorSpace:"Lab",Name:"heated_object",RGBPoints:[-1,0,0,0,-.87451,.34902,.0862745,0,-.74902,.45098,.172549,0,-.623529,.52549,.231373,0,-.498039,.580392,.278431,0,-.372549,.623529,.313725,0,-.247059,.670588,.352941,0,-.121569,.717647,.392157,0,.00392157,.772549,.439216,0,.129412,.839216,.494118,0,.254902,.901961,.541176,0,.380392,.968627,.6,0,.505882,1,.658824,0,.631373,1,.721569,0,.756863,1,.827451,.298039,.882353,1,.976471,.72549,1,1,1,1]},{ColorSpace:"Lab",Name:"erdc_gold_BW",RGBPoints:[-1,0,0,190933e-10,-.87451,.128363,.0636265,0,-.74902,.193795,.111057,0,-.623529,.25976,.15987,0,-.498039,.328546,.210589,0,-.372549,.399726,.26332,0,-.247059,.472969,.318261,0,-.121569,.546245,.375827,0,.00392157,.61745,.436719,0,.129412,.685545,.501113,0,.254902,.749578,.568799,0,.380392,.80962,.6394,0,.505882,.865572,.712699,.10257,.631373,.917709,.787569,.233665,.756863,.966914,.863138,.369608,.882353,1,.939405,.496104,1,.999225,1,.612275]},{ColorSpace:"Lab",Name:"erdc_brown_BW",RGBPoints:[-1,33216e-11,0,483629e-11,-.87451,.14693,.0518172,0,-.74902,.225806,.0814996,0,-.623529,.301681,.111452,0,-.498039,.370487,.150664,0,-.372549,.43108,.199477,0,-.247059,.4849,.255107,0,-.121569,.536798,.313486,0,.00392157,.59286,.371167,0,.129412,.653119,.428135,0,.254902,.714589,.485917,.0379541,.380392,.774667,.54565,.116634,.505882,.831222,.608047,.183895,.631373,.880305,.674199,.260298,.756863,.922314,.742472,.367086,.882353,.959408,.811222,.497258,1,.993548,.875183,.622093]},{ColorSpace:"Lab",Name:"copper_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0784314,.0501961,.0313725,-.74902,.156863,.100392,.0627451,-.623529,.235294,.150588,.0941176,-.498039,.313725,.200784,.12549,-.372549,.392157,.25098,.156863,-.247059,.470588,.301176,.188235,-.121569,.54902,.351373,.219608,.00392157,.627451,.401569,.25098,.129412,.705882,.451765,.282353,.254902,.784314,.501961,.313725,.380392,.862745,.552157,.345098,.505882,.941176,.602353,.376471,.631373,1,.652549,.407843,.756863,1,.702745,.439216,.882353,1,.752941,.470588,1,1,.8,.5]},{ColorSpace:"Lab",Name:"pink_Matlab",RGBPoints:[-1,0,0,0,-.87451,.312416,.204524,.204524,-.74902,.441822,.289241,.289241,-.623529,.54112,.354246,.354246,-.498039,.624831,.409048,.409048,-.372549,.698582,.45733,.45733,-.247059,.764404,.502282,.500979,-.121569,.791292,.591516,.54112,.00392157,.817297,.66895,.578481,.129412,.842499,.738308,.613572,.254902,.866968,.801687,.646762,.380392,.890766,.86041,.678329,.505882,.913944,.913944,.711254,.631373,.936549,.936549,.79459,.756863,.958621,.958621,.869979,.882353,.980196,.980196,.939336,1,1,1,1]},{ColorSpace:"Lab",Name:"bone_Matlab",RGBPoints:[-1,0,0,0,-.87451,.054902,.054902,.075817,-.74902,.109804,.109804,.151634,-.623529,.164706,.164706,.227451,-.498039,.219608,.219608,.303268,-.372549,.27451,.27451,.379085,-.247059,.329412,.329902,.454412,-.121569,.384314,.405719,.509314,.00392157,.439216,.481536,.564216,.129412,.494118,.557353,.619118,.254902,.54902,.63317,.67402,.380392,.603922,.708987,.728922,.505882,.660294,.783824,.783824,.631373,.746569,.838725,.838725,.756863,.832843,.893627,.893627,.882353,.919118,.948529,.948529,1,1,1,1]},{ColorSpace:"Lab",Name:"gray_Matlab",RGBPoints:[-1,0,0,0,-.87451,.0627451,.0627451,.0627451,-.74902,.12549,.12549,.12549,-.623529,.188235,.188235,.188235,-.498039,.25098,.25098,.25098,-.372549,.313725,.313725,.313725,-.247059,.376471,.376471,.376471,-.121569,.439216,.439216,.439216,.00392157,.501961,.501961,.501961,.129412,.564706,.564706,.564706,.254902,.627451,.627451,.627451,.380392,.690196,.690196,.690196,.505882,.752941,.752941,.752941,.631373,.815686,.815686,.815686,.756863,.878431,.878431,.878431,.882353,.941176,.941176,.941176,1,1,1,1]},{ColorSpace:"Lab",Name:"Purples",RGBPoints:[-1,.247059,0,.490196,-.87451,.288397,.07677,.525629,-.74902,.32975,.153587,.561092,-.623529,.373057,.236263,.600461,-.498039,.416363,.319,.639923,-.372549,.459669,.405613,.685198,-.247059,.503345,.491534,.730058,-.121569,.562399,.54862,.757616,.00392157,.621453,.606075,.785544,.129412,.680508,.674971,.824914,.254902,.739562,.743406,.863899,.380392,.798616,.800492,.893426,.505882,.85684,.856655,.922491,.631373,.898178,.894056,.942176,.756863,.938654,.930919,.961646,.882353,.964245,.958478,.977393,1,.988235,.984314,.992157]},{ColorSpace:"Lab",Name:"Blues",RGBPoints:[-1,.031373,.188235,.419608,-.87451,.031373,.253195,.516063,-.74902,.031757,.318139,.612149,-.623529,.080969,.38113,.661361,-.498039,.130427,.444152,.710327,-.372549,.195386,.509112,.743791,-.247059,.260715,.573841,.777209,-.121569,.341423,.628958,.808704,.00392157,.422745,.684075,.839892,.129412,.523137,.739193,.861546,.254902,.622684,.793464,.883429,.380392,.701423,.826928,.910988,.505882,.778685,.8603,.937993,.631373,.825928,.891795,.953741,.756863,.87328,.923291,.969489,.882353,.922491,.954787,.985236,1,.968627,.984314,1]},{ColorSpace:"Lab",Name:"Greens",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546082,.271326,-.372549,.197232,.609073,.31857,-.247059,.257255,.671742,.365859,-.121569,.357647,.720953,.415071,.00392157,.45767,.769919,.465021,.129412,.546251,.811257,.537855,.254902,.634295,.852211,.610688,.380392,.709097,.883706,.683522,.505882,.78316,.914833,.755894,.631373,.842215,.938454,.818885,.756863,.899977,.961538,.880692,.882353,.935409,.975317,.92203,1,.968627,.988235,.960784]},{ColorSpace:"Lab",Name:"PuBu",RGBPoints:[-1,.301961,0,.294118,-.87451,.404321,.029527,.390573,-.74902,.50599,.059592,.486782,-.623529,.519769,.158016,.551742,-.498039,.533456,.256194,.616301,-.372549,.54133,.33887,.655671,-.247059,.54902,.421592,.695087,-.121569,.54902,.506236,.736424,.00392157,.550127,.590573,.777701,.129412,.585559,.665375,.81707,.254902,.622145,.739023,.855825,.380392,.687105,.784298,.879446,.505882,.752065,.829758,.903253,.631373,.817024,.87897,.930811,.756863,.880907,.927213,.957832,.882353,.926182,.958708,.975548,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"BuPu",RGBPoints:[-1,.007843,.219608,.345098,-.87451,.01178,.286536,.449427,-.74902,.015702,.35328,.553479,-.623529,.01767,.396586,.622376,-.498039,.021115,.4402,.690688,-.372549,.11757,.503191,.722184,-.247059,.214625,.565859,.753633,-.121569,.336671,.615071,.78316,.00392157,.457978,.663975,.812503,.129412,.556401,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821638,.903068,.631373,.873387,.864944,.92669,.756863,.927536,.907605,.949988,.882353,.964937,.9391,.967705,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGn",RGBPoints:[-1,.031373,.25098,.505882,-.87451,.031373,.329719,.590527,-.74902,.031911,.408397,.674787,-.623529,.100807,.479262,.710219,-.498039,.169704,.550219,.745744,-.372549,.238601,.62699,.787082,-.247059,.307958,.703114,.826759,-.121569,.39654,.752326,.797232,.00392157,.485121,.801046,.767705,.129412,.573702,.83451,.738178,.254902,.661592,.867743,.711034,.380392,.732457,.895302,.74253,.505882,.801845,.922307,.774579,.631373,.841215,.938055,.817885,.756863,.880907,.95391,.861084,.882353,.926182,.971626,.902422,1,.968627,.988235,.941176]},{ColorSpace:"Lab",Name:"GnBu",RGBPoints:[-1,0,.266667,.105882,-.87451,0,.347374,.139346,-.74902,538e-6,.427912,.172933,-.623529,.069435,.486967,.222145,-.498039,.138178,.546175,.272095,-.372549,.197232,.615071,.368551,-.247059,.256609,.683276,.464867,-.121569,.329443,.722645,.555417,.00392157,.403137,.762138,.645413,.129412,.503529,.805444,.718247,.254902,.603922,.848597,.790465,.380392,.704314,.887966,.847551,.505882,.802307,.926321,.903714,.631373,.851519,.944037,.941115,.756863,.899977,.961538,.976901,.882353,.935409,.975317,.984775,1,.968627,.988235,.992157]},{ColorSpace:"Lab",Name:"GnBuPu",RGBPoints:[-1,.003922,.27451,.211765,-.87451,.003922,.349312,.280661,-.74902,.003937,.423852,.349773,-.623529,.005905,.46519,.446228,-.498039,.009443,.506344,.542837,-.372549,.111803,.535871,.649135,-.247059,.214025,.565859,.753633,-.121569,.310481,.615071,.78316,.00392157,.407797,.663975,.812503,.129412,.531811,.703345,.836125,.254902,.65421,.742714,.859669,.380392,.736886,.782084,.881323,.505882,.81827,.821176,.902884,.631373,.873387,.854641,.922568,.756863,.927536,.888535,.942361,.882353,.964937,.929873,.964014,1,1,.968627,.984314]},{ColorSpace:"Lab",Name:"BuGnYl",RGBPoints:[-1,.031373,.113725,.345098,-.87451,.088458,.159,.463206,-.74902,.145052,.204567,.5807,-.623529,.139146,.287243,.620069,-.498039,.13318,.370196,.659562,-.372549,.123337,.470588,.706805,-.247059,.115386,.570335,.753126,-.121569,.186251,.643168,.761,.00392157,.258716,.71514,.768074,.129412,.380761,.760415,.750358,.254902,.503576,.806075,.732795,.380392,.645306,.861192,.719016,.505882,.783899,.91511,.705606,.631373,.858701,.944637,.6997,.756863,.931349,.973303,.698424,.882353,.966782,.987082,.777163,1,1,1,.85098]},{ColorSpace:"Lab",Name:"PuRd",RGBPoints:[-1,.286275,0,.415686,-.87451,.38273,.001968,.441276,-.74902,.479231,.003922,.466774,-.623529,.581592,.003922,.480554,-.498039,.683799,.00549,.494887,-.372549,.776317,.105882,.544098,-.247059,.867866,.206321,.592618,-.121569,.919047,.308681,.612303,.00392157,.968812,.411226,.632603,.129412,.974717,.519493,.671972,.254902,.980546,.626451,.71065,.380392,.984483,.701253,.732303,.505882,.988328,.77504,.755617,.631373,.990296,.828189,.812703,.756863,.992372,.880907,.869035,.882353,.996309,.926182,.912341,1,1,.968627,.952941]},{ColorSpace:"Lab",Name:"RdPu",RGBPoints:[-1,.403922,0,.121569,-.87451,.500377,0,.192434,-.74902,.596909,277e-6,.263037,-.623529,.703206,.035709,.300438,-.498039,.808612,.071296,.338854,-.372549,.857824,.116571,.441215,-.247059,.905513,.163552,.54293,-.121569,.889765,.281661,.617732,.00392157,.873156,.39897,.691611,.129412,.82985,.491488,.736886,.254902,.789081,.583237,.781853,.380392,.810734,.656071,.819254,.505882,.833126,.729181,.85684,.631373,.870527,.80792,.898178,.756863,.907605,.884398,.938331,.882353,.9391,.921799,.958016,1,.968627,.956863,.976471]},{ColorSpace:"Lab",Name:"Oranges",RGBPoints:[-1,.498039,.152941,.015686,-.87451,.57481,.182468,.013718,-.74902,.651765,.212042,.011734,-.623529,.752157,.247474,.007797,-.498039,.851719,.283368,.004475,-.372549,.898962,.348328,.039908,-.247059,.945652,.413426,.076401,-.121569,.969273,.484291,.157109,.00392157,.992157,.554971,.238185,.129412,.992157,.619931,.330704,.254902,.992157,.684967,.423837,.380392,.992157,.751895,.532103,.505882,.992249,.817716,.639354,.631373,.994218,.861023,.725967,.756863,.996186,.903576,.810965,.882353,.998155,.933103,.868051,1,1,.960784,.921569]},{ColorSpace:"Lab",Name:"Reds",RGBPoints:[-1,.403922,0,.05098,-.87451,.525967,.029527,.066728,-.74902,.647643,.058962,.082476,-.623529,.722445,.076678,.098224,-.498039,.797186,.095194,.114187,-.372549,.868051,.164091,.143714,-.247059,.937809,.233541,.173933,-.121569,.96143,.326059,.232987,.00392157,.984375,.418147,.292657,.129412,.986344,.496886,.371396,.254902,.988235,.575702,.450673,.380392,.988235,.656409,.543191,.505882,.98842,.736747,.635894,.631373,.992357,.809581,.732349,.756863,.996186,.880692,.826759,.882353,.998155,.92203,.885813,1,1,.960784,.941176]},{ColorSpace:"Lab",Name:"RdOr",RGBPoints:[-1,.498039,0,0,-.87451,.6004,0,0,-.74902,.702514,738e-6,477e-6,-.623529,.773379,.095225,.061499,-.498039,.843875,.189865,.12283,-.372549,.891119,.294195,.203537,-.247059,.937855,.397924,.283137,-.121569,.963445,.476663,.316601,.00392157,.988297,.555771,.351665,.129412,.990265,.646321,.436309,.254902,.992157,.735256,.519646,.380392,.992157,.784468,.570827,.505882,.992249,.833218,.623483,.631373,.994218,.872587,.706159,.756863,.996186,.911419,.788189,.882353,.998155,.940946,.859054,1,1,.968627,.92549]},{ColorSpace:"Lab",Name:"BrOrYl",RGBPoints:[-1,.4,.145098,.023529,-.87451,.500392,.174625,.019592,-.74902,.600784,.204291,.015656,-.623529,.701176,.251534,.011719,-.498039,.800984,.299146,.008397,-.372549,.863975,.370012,.043829,-.247059,.926321,.441107,.0794,-.121569,.961753,.521815,.120738,.00392157,.996078,.602645,.163122,.129412,.996078,.68729,.237924,.254902,.996078,.771011,.314879,.380392,.996078,.832034,.444798,.505882,.996171,.892042,.572595,.631373,.998139,.931411,.65724,.756863,1,.969489,.741669,.882353,1,.985236,.822376,1,1,1,.898039]},{ColorSpace:"Lab",Name:"RdOrYl",RGBPoints:[-1,.501961,0,.14902,-.87451,.622038,0,.14902,-.74902,.741761,4e-4,.148866,-.623529,.816563,.05158,.129181,-.498039,.890965,.10356,.110235,-.372549,.940177,.205921,.137793,-.247059,.988281,.308789,.165536,-.121569,.99025,.432803,.200969,.00392157,.992218,.555217,.236278,.129412,.994187,.628051,.267774,.254902,.996078,.701038,.301269,.380392,.996078,.777809,.383945,.505882,.996171,.852826,.466621,.631373,.998139,.892195,.549296,.756863,1,.931349,.632188,.882353,1,.966782,.7188,1,1,1,.8]},{ColorSpace:"Lab",Name:"CIELab_blue2red",RGBPoints:[-1,0,.6,.74902,1,.76863,.46667,.34118]},{ColorSpace:"Lab",Name:"blue2yellow",RGBPoints:[-1,0,0,1,0,.5,.5,.5,1,1,1,0]},{ColorSpace:"Lab",Name:"erdc_blue2gold",RGBPoints:[-1,.175119,.0438468,1,-.874016,.22383,.159771,.94557,-.748031,.27254,.233611,.891216,-.622047,.321251,.296526,.836857,-.496063,.369962,.354296,.782359,-.370079,.418672,.409139,.72754,-.244094,.467383,.462152,.672148,-.11811,.51609,.51396,.615825,.00787402,.572863,.55452,.559172,.133858,.630269,.593822,.517729,.259843,.689588,.624668,.47446,.385827,.745394,.656113,.428638,.511811,.798624,.688104,.379105,.637795,.849926,.720593,.323834,.76378,.899765,.753543,.258657,.889764,.948487,.78692,.171778,1,.990413,.816451,.00729848]},{ColorSpace:"Lab",Name:"erdc_blue2yellow",RGBPoints:[-1,.0830122,0,.495617,-.87451,.141973,.0551288,.57363,-.74902,.193048,.110258,.604561,-.623529,.234231,.165386,.57643,-.498039,.275413,.220515,.548299,-.372549,.316596,.275644,.520169,-.247059,.357778,.330773,.492038,-.121569,.398961,.385901,.463908,.00392157,.449929,.438487,.426815,.129412,.511572,.488299,.379944,.254902,.581222,.53603,.325741,.380392,.650871,.583761,.271538,.505882,.720521,.631493,.217335,.631373,.79017,.679224,.163132,.756863,.85982,.726955,.108929,.882353,.910254,.774159,.14112,1,.927513,.81759,.306289]},{ColorSpace:"Lab",Name:"erdc_cyan2orange",RGBPoints:[-1,.0471513,.213874,.414329,-.87451,.0674702,.256648,.439027,-.74902,.0959957,.299331,.462089,-.623529,.132428,.341872,.483212,-.498039,.188743,.38277,.500597,-.372549,.268511,.420229,.512179,-.247059,.352945,.455602,.519101,-.121569,.43893,.489368,.521538,.00392157,.522445,.522495,.522436,.129412,.600089,.555682,.53205,.254902,.67988,.587981,.539163,.380392,.761011,.619586,.544439,.505882,.84278,.650741,.548567,.631373,.910713,.687347,.557822,.756863,.952232,.734972,.577775,.882353,.975642,.789858,.604868,1,.990752,.843643,.632857]},{ColorSpace:"Lab",Name:"erdc_purple2green",RGBPoints:[-1,.235006,.0483128,.530899,-.87451,.302968,.108419,.552391,-.74902,.360241,.166059,.569502,-.623529,.406746,.226782,.579373,-.498039,.444073,.28964,.582094,-.372549,.473648,.353774,.577947,-.247059,.497636,.418154,.567911,-.121569,.519086,.481741,.553968,.00392157,.542884,.542914,.542875,.129412,.566303,.603989,.527499,.254902,.595218,.662965,.516857,.380392,.628641,.720701,.510673,.505882,.665373,.777849,.508165,.631373,.704182,.834921,.508303,.756863,.743846,.892328,.50999,.882353,.783158,.950422,.512181,1,.818617,1,.513888]},{ColorSpace:"Lab",Name:"erdc_purple2green_dark",RGBPoints:[-1,.107656,0,.428682,-.87451,.1924,0,.449799,-.74902,.255118,.0648939,.466726,-.623529,.304256,.133066,.476703,-.498039,.343202,.19716,.479793,-.372549,.373876,.260353,.476241,-.247059,.398497,.322872,.466953,-.121569,.420016,.384252,.453785,.00392157,.44319,.443216,.443186,.129412,.465553,.502139,.428233,.254902,.492959,.559151,.417591,.380392,.524654,.615092,.411016,.505882,.55959,.670583,.40779,.631373,.596614,.726102,.406948,.756863,.634544,.782032,.407439,.882353,.672183,.838703,.408237,1,.706131,.892759,.408452]},{ColorSpace:"Lab",Name:"coolwarm",RGBPoints:[-1,.229806,.298718,.753683,-.875,.303869,.406535,.844959,-.75,.383013,.509419,.917388,-.625,.466667,.604563,.968155,-.5,.552953,.688929,.995376,-.375,.639176,.7596,.998151,-.25,.722193,.813953,.976575,-.125,.798692,.849786,.931689,0,.865395,.86541,.865396,.125,.924128,.827385,.774508,.25,.958853,.769768,.678008,.375,.969954,.694267,.579375,.5,.958003,.602842,.481776,.625,.923945,.497309,.38797,.75,.869187,.378313,.300267,.875,.795632,.241284,.220526,1,.705673,.0155562,.150233]},{ColorSpace:"Lab",Name:"BuRd",RGBPoints:[-1,.019608,.188235,.380392,-.87451,.088504,.321107,.564937,-.74902,.163399,.444983,.697501,-.623529,.247059,.555709,.754095,-.498039,.420684,.676432,.818685,-.372549,.606459,.789773,.880277,-.247059,.761476,.868512,.924567,-.121569,.878047,.925721,.951942,.00392157,.969089,.966474,.964937,.129412,.983852,.897578,.846828,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"Spectral_lowBlue",RGBPoints:[-1,.368627,.309804,.635294,-.87451,.260361,.450058,.70173,-.74902,.248058,.591311,.717186,-.623529,.376009,.734025,.658132,-.498039,.537947,.814764,.64506,-.372549,.702345,.879585,.636678,-.247059,.84752,.938639,.607151,-.121569,.940408,.976163,.656055,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.937793,.398539,.270127,.756863,.861515,.282891,.299654,.882353,.746482,.144637,.288812,1,.619608,.003922,.258824]},{ColorSpace:"Lab",Name:"GnRP",RGBPoints:[-1,0,.266667,.105882,-.87451,.066436,.394617,.174779,-.74902,.168858,.524567,.25767,-.623529,.323875,.657439,.361015,-.498039,.504883,.772318,.506344,-.372549,.678431,.870127,.654902,-.247059,.803922,.921799,.780392,-.121569,.897116,.951942,.882814,.00392157,.967397,.965936,.967474,.129412,.928028,.879815,.930565,.254902,.866052,.780777,.882891,.380392,.77501,.665129,.821376,.505882,.675663,.537024,.737024,.631373,.57847,.396155,.645982,.756863,.492349,.223914,.547559,.882353,.375548,.096886,.423299,1,.25098,0,.294118]},{ColorSpace:"Lab",Name:"GYPi",RGBPoints:[-1,.152941,.392157,.098039,-.87451,.246444,.505344,.117724,-.74902,.351942,.614533,.161399,-.623529,.474971,.717878,.240138,-.498039,.611995,.811226,.392849,-.372549,.746328,.893118,.565321,-.247059,.859516,.94233,.747405,-.121569,.928105,.96386,.875663,.00392157,.969089,.966859,.968012,.129412,.983852,.910265,.948328,.254902,.979239,.833218,.914648,.380392,.949712,.729873,.862976,.505882,.905652,.58293,.763552,.631373,.85521,.410073,.652211,.756863,.793695,.183699,.531642,.882353,.683737,.063899,.420761,1,.556863,.003922,.321569]},{ColorSpace:"Lab",Name:"GnYlRd",RGBPoints:[-1,0,.407843,.215686,-.87451,.063975,.525952,.277201,-.74902,.177932,.633064,.332718,-.623529,.364937,.724106,.379469,-.498039,.527951,.797155,.40223,-.372549,.678431,.862822,.433449,-.247059,.803922,.916955,.514648,-.121569,.909419,.961861,.625067,.00392157,.999923,.997616,.745021,.129412,.997463,.921338,.61707,.254902,.995002,.824606,.499885,.380392,.992541,.701576,.39654,.505882,.973472,.547405,.318108,.631373,.939023,.389927,.245521,.756863,.867666,.239831,.176624,.882353,.762399,.110727,.151326,1,.647059,0,.14902]},{ColorSpace:"Lab",Name:"GBBr",RGBPoints:[-1,0,.235294,.188235,-.87451,.002461,.338639,.301423,-.74902,.055902,.448981,.417609,-.623529,.183852,.56955,.538178,-.498039,.357785,.700115,.660746,-.372549,.540177,.819531,.77624,-.247059,.714879,.890888,.864821,-.121569,.851134,.934564,.922645,.00392157,.960861,.959785,.95694,.129412,.963322,.927797,.83391,.254902,.939946,.868897,.68935,.380392,.883353,.775394,.517109,.505882,.808074,.625836,.324106,.631373,.717647,.476355,.15494,.756863,.592157,.358247,.06882,.882353,.458593,.26436,.031142,1,.329412,.188235,.019608]},{ColorSpace:"Lab",Name:"PuOr",RGBPoints:[-1,.498039,.231373,.031373,-.87451,.62599,.30273,.026451,-.74902,.746943,.387082,.037524,-.623529,.85767,.490427,.071972,-.498039,.936409,.617762,.236371,-.372549,.992695,.743099,.43291,-.247059,.995156,.841523,.63714,-.121569,.985313,.913802,.813687,.00392157,.966244,.966398,.967705,.129412,.889965,.89504,.938178,.254902,.806151,.804306,.894656,.380392,.712649,.688658,.833141,.505882,.594233,.554325,.744637,.631373,.474894,.404229,.652364,.756863,.366628,.217224,.563783,.882353,.266436,.089965,.434833,1,.176471,0,.294118]},{ColorSpace:"Lab",Name:"PRGn",RGBPoints:[-1,.25098,0,.294118,-.87451,.383852,.103345,.431911,-.74902,.497732,.234679,.55371,-.623529,.583852,.40692,.652134,-.498039,.681968,.545175,.742561,-.372549,.7807,.672357,.825221,-.247059,.871742,.788005,.886736,-.121569,.930488,.885198,.932872,.00392157,.966321,.968089,.965859,.129412,.892503,.950865,.877278,.254902,.796078,.91857,.772549,.380392,.670588,.866897,.647059,.505882,.493195,.765398,.496655,.631373,.314187,.649135,.354556,.756863,.15917,.516263,.251211,.882353,.062284,.386621,.170473,1,0,.266667,.105882]},{ColorSpace:"Lab",Name:"PiYG",RGBPoints:[-1,.556863,.003922,.321569,-.87451,.692195,.067897,.427374,-.74902,.797539,.197847,.539177,-.623529,.859054,.424221,.659746,-.498039,.908574,.592618,.770319,-.372549,.951557,.736332,.866205,-.247059,.981084,.839677,.917878,-.121569,.98293,.913802,.949558,.00392157,.96732,.968474,.965629,.129412,.92549,.963552,.869666,.254902,.852441,.939254,.736025,.380392,.739254,.890042,.553941,.505882,.60323,.805536,.382238,.631373,.467282,.711419,.235217,.756863,.344252,.608074,.156478,.882353,.2406,.49827,.116494,1,.152941,.392157,.098039]},{ColorSpace:"Lab",Name:"OrPu",RGBPoints:[-1,.176471,0,.294118,-.87451,.272434,.095963,.444214,-.74902,.373395,.228912,.56932,-.623529,.481661,.415917,.657901,-.498039,.601922,.562937,.750481,-.372549,.718493,.695886,.836986,-.247059,.811995,.811534,.898501,-.121569,.894733,.8995,.940023,.00392157,.969166,.966859,.963629,.129412,.98639,.910265,.803691,.254902,.995002,.835371,.624375,.380392,.992541,.736947,.420146,.505882,.931949,.609458,.224221,.631373,.85075,.483968,.069819,.756863,.740023,.380623,.035371,.882353,.617993,.29827,.026759,1,.498039,.231373,.031373]},{ColorSpace:"Lab",Name:"BrBG",RGBPoints:[-1,.329412,.188235,.019608,-.87451,.467205,.269435,.031911,-.74902,.6,.365629,.074202,-.623529,.72549,.483737,.160323,-.498039,.812995,.635832,.336409,-.372549,.88689,.781238,.527874,-.247059,.943483,.87474,.700115,-.121569,.963168,.929796,.841599,.00392157,.957247,.959938,.959554,.129412,.84406,.932872,.920185,.254902,.70396,.886428,.859285,.380392,.529258,.815071,.770704,.505882,.346251,.691811,.653057,.631373,.175855,.562015,.530642,.756863,.047905,.441446,.410073,.882353,.002307,.33218,.294348,1,0,.235294,.188235]},{ColorSpace:"Lab",Name:"GyRd",RGBPoints:[-1,.101961,.101961,.101961,-.87451,.227451,.227451,.227451,-.74902,.359939,.359939,.359939,-.623529,.502653,.502653,.502653,-.498039,.631373,.631373,.631373,-.372549,.749865,.749865,.749865,-.247059,.843368,.843368,.843368,-.121569,.926105,.926105,.926105,.00392157,.999846,.997232,.995694,.129412,.994925,.908651,.857901,.254902,.982468,.800692,.706113,.380392,.960323,.66782,.536332,.505882,.894579,.503806,.399769,.631373,.81707,.33218,.281046,.756863,.728489,.155017,.197386,.882353,.576932,.055363,.14925,1,.403922,0,.121569]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen",RGBPoints:[-1,.297553,0,.489074,-.87451,.40259,.151146,.567754,-.74902,.516038,.284843,.658231,-.623529,.629783,.423646,.750938,-.498039,.735198,.563697,.835956,-.372549,.82408,.695541,.903582,-.247059,.889091,.807454,.944862,-.121569,.92334,.886917,.951839,.00392157,.921045,.921084,.921003,.129412,.877324,.907455,.845381,.254902,.797649,.849713,.734695,.380392,.691646,.75964,.600532,.505882,.568981,.649159,.453807,.631373,.438945,.529756,.304259,.756863,.30973,.412001,.158303,.882353,.187078,.305111,.00251458,1,.101655,.220836,0]},{ColorSpace:"Lab",Name:"erdc_divHi_purpleGreen_dim",RGBPoints:[-1,.404088,.131038,.592767,-.87451,.486469,.230957,.651243,-.74902,.575165,.339335,.717723,-.623529,.662741,.454332,.784263,-.498039,.742071,.570213,.842918,-.372549,.806935,.678992,.886227,-.247059,.852219,.771315,.90763,-.121569,.873345,.837327,.901572,.00392157,.866783,.86682,.866745,.129412,.82839,.858225,.796812,.254902,.762578,.814287,.700202,.380392,.676429,.744229,.585735,.505882,.577033,.65732,.461526,.631373,.47128,.562476,.33476,.756863,.365461,.467957,.21076,.882353,.264758,.381138,.0878313,1,.182591,.312249,0]},{ColorSpace:"Lab",Name:"erdc_divLow_icePeach",RGBPoints:[-1,.480048,.817441,.998056,-.87451,.425898,.726921,.883187,-.74902,.366682,.629445,.761936,-.623529,.308756,.531002,.640217,-.498039,.258021,.43705,.523433,-.372549,.219244,.352381,.416348,-.247059,.195127,.281032,.322979,-.121569,.186286,.22627,.246525,.00392157,.192352,.19236,.192364,.129412,.255927,.214469,.191756,.254902,.340459,.254426,.206666,.380392,.444655,.309315,.234029,.505882,.565353,.376004,.270969,.631373,.697917,.450748,.314293,.756863,.836657,.529064,.360227,.882353,.972695,.614884,.413123,1,1,.705904,.472699]},{ColorSpace:"Lab",Name:"erdc_divLow_purpleGreen",RGBPoints:[-1,.956034,.666487,.952663,-.87451,.874457,.572698,.936352,-.74902,.753465,.488253,.909063,-.623529,.63309,.413507,.763833,-.498039,.514491,.345878,.620015,-.372549,.405008,.288141,.484376,-.247059,.311388,.241986,.363556,-.121569,.238722,.209044,.263449,.00392157,.192352,.192366,.192362,.129412,.200379,.233201,.168618,.254902,.230151,.291737,.165227,.380392,.279481,.366076,.178607,.505882,.344927,.453267,.205703,.631373,.421554,.549449,.242643,.756863,.503334,.649999,.284377,.882353,.583497,.749672,.324969,1,.650705,.837228,.356264]},{ColorSpace:"Lab",Name:"Haze_green",RGBPoints:[-1,1,.835294,.886275,-.87451,.937255,.756863,.870443,-.74902,.875817,.666376,.857807,-.623529,.778359,.583007,.808134,-.498039,.676253,.494118,.745098,-.372549,.561365,.390123,.682353,-.247059,.438344,.262745,.621496,-.121569,.321133,.141031,.558751,.00392157,.203922,.0217865,.495861,.129412,.265505,.129412,.433261,.254902,.311692,.255338,.37008,.380392,.356282,.377342,.310821,.505882,.39971,.488889,.258243,.631373,.442556,.604357,.205519,.756863,.48671,.71968,.152941,.882353,.529847,.830356,.100944,1,.572549,.933333,.054902]},{ColorSpace:"Lab",Name:"Haze_lime",RGBPoints:[-1,.704034,.784196,1,-.87451,.633111,.691418,.956078,-.74902,.564021,.600606,.912157,-.623529,.496827,.51189,.868235,-.498039,.43157,.425416,.824314,-.372549,.368248,.341347,.780392,-.247059,.306767,.259855,.736471,-.121569,.246862,.181069,.692549,.00392157,.191619,.109542,.648627,.129412,.257404,.194031,.604706,.254902,.321794,.278775,.560784,.380392,.387909,.364617,.516863,.505882,.456569,.451881,.472941,.631373,.527424,.540773,.42902,.756863,.599759,.631427,.385098,.882353,.673065,.723898,.341176,1,.742751,.812252,.3]},{ColorSpace:"RGB",Name:"Haze",RGBPoints:[-1,1,.835294,.996078,-.00392157,.023529,.141176,.498039,.00392157,.015686,.137255,.494118,1,.984314,.764706,0]},{ColorSpace:"Lab",Name:"Haze_cyan",RGBPoints:[-1,.956863,1,.835294,-.87451,.933188,.921714,.760784,-.74902,.870588,.803486,.671605,-.623529,.807843,.684096,.583297,-.498039,.745098,.569208,.494118,-.372549,.682353,.437763,.390123,-.247059,.621496,.288163,.262745,-.121569,.558751,.144517,.141031,.00392157,.495861,.0217865,.0413943,.129412,.433261,.137255,.129412,.254902,.37008,.263181,.255338,.380392,.306318,.381845,.372694,.505882,.243137,.503994,.494263,.631373,.180392,.629484,.619753,.756863,.117647,.754975,.747131,.882353,.054902,.876398,.866812,1,0,.988235,.976471]},{ColorSpace:"Lab",Name:"nic_Edge",RGBPoints:[-1,.191208,.191208,.191208,-.87451,.239484,.00545035,.614821,-.74902,.220593,.0617459,.863547,-.623529,.17509,.278988,.97794,-.498039,.143526,.576069,.998553,-.372549,.166456,.871883,.96594,-.247059,.376202,.993555,.981833,-.121569,.681996,.991297,.999239,.00392157,.954172,.952734,.94374,.129412,.999735,.99301,.662896,.254902,.979399,.991466,.357973,.380392,.968771,.854967,.162659,.505882,.999245,.556697,.144323,.631373,.973959,.26223,.177946,.756863,.852358,.0526707,.222974,.882353,.593889,.00912724,.238855,1,.191208,.191208,.191208]},{ColorSpace:"Lab",Name:"erdc_iceFire_H",RGBPoints:[-1,405432e-12,0,590122e-11,-.87451,0,.120401,.302675,-.74902,0,.216583,.524574,-.623529,.0552475,.345025,.6595,-.498039,.128047,.492588,.720288,-.372549,.188955,.641309,.792092,-.247059,.327673,.784935,.873434,-.121569,.60824,.892164,.935547,.00392157,.881371,.912178,.818099,.129412,.951407,.835621,.449279,.254902,.904481,.690489,0,.380392,.85407,.510864,0,.505882,.777093,.33018,88199e-8,.631373,.672862,.139087,.00269398,.756863,.508815,0,0,.882353,.299417,366289e-9,547829e-9,1,.0157519,.00332021,455569e-13]},{ColorSpace:"Lab",Name:"erdc_iceFire_L",RGBPoints:[-1,.870485,.913768,.832905,-.87451,.586919,.887865,.934003,-.74902,.31583,.776442,.867858,-.623529,.18302,.632034,.787722,-.498039,.117909,.484134,.713825,-.372549,.0507239,.335979,.654741,-.247059,0,.209874,.511832,-.121569,0,.114689,.28935,.00392157,.0157519,.00332021,455569e-13,.129412,.312914,0,0,.254902,.520865,0,0,.380392,.680105,.15255,.0025996,.505882,.785109,.339479,797922e-9,.631373,.857354,.522494,0,.756863,.910974,.699774,0,.882353,.951921,.842817,.478545,1,.881371,.912178,.818099]},{ColorSpace:"RGB",Name:"hsv",RGBPoints:[-1,1,0,0,-.666666,1,0,1,-.333333,0,0,1,0,0,1,1,.33333,0,1,0,.66666,1,1,0,1,1,0,0]},{ColorSpace:"Lab",Name:"hue_L60",RGBPoints:[-1,.964784,.400592,.349549,-.87451,.964915,.372498,.53785,-.74902,.892353,.401039,.759569,-.623529,.79263,.446956,.903017,-.498039,.682208,.49954,.966673,-.372549,.56392,.553082,.968836,-.247059,.442031,.606396,.901601,-.121569,.305499,.65701,.765784,.00392157,.197251,.687914,.620914,.129412,.193882,.701887,.472654,.254902,.249866,.706123,.320005,.380392,.35132,.697417,.202919,.505882,.498097,.669467,.125232,.631373,.637477,.626239,.107431,.756863,.762115,.56872,.155812,.882353,.889434,.481116,.240445,1,.964784,.400592,.349549]},{IndexedColors:[0,0,0,.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,.6509803921568628,.3372549019607843,.1568627450980392],Name:"Spectrum",NanColor:[.6509803921568628,.3372549019607843,.1568627450980392]},{IndexedColors:[.4745098039215686,.09019607843137255,.09019607843137255,.7098039215686275,.00392156862745098,.00392156862745098,.9372549019607843,.2784313725490196,.09803921568627451,.9764705882352941,.5137254901960784,.1411764705882353,1,.7058823529411765,0,1,.8980392156862745,.02352941176470588],Name:"Warm",NanColor:[1,.8980392156862745,.02352941176470588]},{IndexedColors:[.4588235294117647,.6941176470588235,.00392156862745098,.3450980392156863,.5019607843137255,.1607843137254902,.3137254901960784,.8431372549019608,.7490196078431373,.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.6039215686274509,.407843137254902,1,.3725490196078431,.2,.5019607843137255],Name:"Cool",NanColor:[.3725490196078431,.2,.5019607843137255]},{IndexedColors:[.2313725490196079,.407843137254902,.6705882352941176,.1098039215686274,.5843137254901961,.803921568627451,.3058823529411765,.8509803921568627,.9176470588235294,.4509803921568628,.6039215686274509,.8352941176470589,.2588235294117647,.2392156862745098,.6627450980392157,.3137254901960784,.3294117647058823,.5294117647058824,.06274509803921569,.1647058823529412,.3215686274509804],Name:"Blues",NanColor:[.06274509803921569,.1647058823529412,.3215686274509804]},{IndexedColors:[.1098039215686274,.5843137254901961,.803921568627451,.2313725490196079,.407843137254902,.6705882352941176,.4,.2431372549019608,.7176470588235294,.6352941176470588,.3294117647058823,.8117647058823529,.8705882352941177,.3803921568627451,.807843137254902,.8627450980392157,.3803921568627451,.5843137254901961,.2392156862745098,.06274509803921569,.3215686274509804],Name:"Wild Flower",NanColor:[.2392156862745098,.06274509803921569,.3215686274509804]},{IndexedColors:[.396078431372549,.4862745098039216,.2156862745098039,.4588235294117647,.6941176470588235,.00392156862745098,.6980392156862745,.7294117647058823,.1882352941176471,1,.8980392156862745,.02352941176470588,1,.7058823529411765,0,.9764705882352941,.5137254901960784,.1411764705882353],Name:"Citrus",NanColor:[.9764705882352941,.5137254901960784,.1411764705882353]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (11)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.4980392156862745,.2313725490196079,.03137254901960784,.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333,.1764705882352941,0,.2941176470588235],Name:"Brewer Diverging Purple-Orange (10)",NanColor:[.1764705882352941,0,.2941176470588235]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (9)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.8784313725490196,.5098039215686274,.0784313725490196,.9921568627450981,.7215686274509804,.3882352941176471,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6980392156862745,.6705882352941176,.8235294117647058,.5019607843137255,.4509803921568628,.6745098039215687,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (8)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.9686274509803922,.9686274509803922,.9686274509803922,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (7)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.7019607843137254,.3450980392156863,.02352941176470588,.9450980392156862,.6392156862745098,.2509803921568627,.996078431372549,.8784313725490196,.7137254901960784,.8470588235294118,.8549019607843137,.9215686274509803,.6,.5568627450980392,.7647058823529411,.3294117647058823,.1529411764705882,.5333333333333333],Name:"Brewer Diverging Purple-Orange (6)",NanColor:[.3294117647058823,.1529411764705882,.5333333333333333]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.9686274509803922,.9686274509803922,.9686274509803922,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (5)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9019607843137255,.3803921568627451,.00392156862745098,.9921568627450981,.7215686274509804,.3882352941176471,.6980392156862745,.6705882352941176,.8235294117647058,.3686274509803922,.2352941176470588,.6],Name:"Brewer Diverging Purple-Orange (4)",NanColor:[.3686274509803922,.2352941176470588,.6]},{IndexedColors:[.9450980392156862,.6392156862745098,.2509803921568627,.9686274509803922,.9686274509803922,.9686274509803922,.6,.5568627450980392,.7647058823529411],Name:"Brewer Diverging Purple-Orange (3)",NanColor:[.6,.5568627450980392,.7647058823529411]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (11)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.6196078431372549,.00392156862745098,.2588235294117647,.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353,.3686274509803922,.3098039215686275,.6352941176470588],Name:"Brewer Diverging Spectral (10)",NanColor:[.3686274509803922,.3098039215686275,.6352941176470588]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (9)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9568627450980393,.4274509803921568,.2627450980392157,.9921568627450981,.6823529411764706,.3803921568627451,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6705882352941176,.8666666666666667,.6431372549019608,.4,.7607843137254902,.6470588235294118,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (8)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,1,1,.7490196078431373,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (7)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8352941176470589,.2431372549019608,.3098039215686275,.9882352941176471,.5529411764705883,.3490196078431372,.996078431372549,.8784313725490196,.5450980392156862,.9019607843137255,.9607843137254902,.596078431372549,.6,.8352941176470589,.5803921568627451,.196078431372549,.5333333333333333,.7411764705882353],Name:"Brewer Diverging Spectral (6)",NanColor:[.196078431372549,.5333333333333333,.7411764705882353]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,1,1,.7490196078431373,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (5)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.8431372549019608,.09803921568627451,.1098039215686274,.9921568627450981,.6823529411764706,.3803921568627451,.6705882352941176,.8666666666666667,.6431372549019608,.1686274509803922,.5137254901960784,.7294117647058823],Name:"Brewer Diverging Spectral (4)",NanColor:[.1686274509803922,.5137254901960784,.7294117647058823]},{IndexedColors:[.9882352941176471,.5529411764705883,.3490196078431372,1,1,.7490196078431373,.6,.8352941176470589,.5803921568627451],Name:"Brewer Diverging Spectral (3)",NanColor:[.6,.8352941176470589,.5803921568627451]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (11)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.3294117647058823,.1882352941176471,.0196078431372549,.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922,0,.2352941176470588,.1882352941176471],Name:"Brewer Diverging Brown-Blue-Green (10)",NanColor:[0,.2352941176470588,.1882352941176471]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (9)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.7490196078431373,.5058823529411764,.1764705882352941,.8745098039215686,.7607843137254902,.4901960784313725,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.5019607843137255,.803921568627451,.7568627450980392,.207843137254902,.592156862745098,.5607843137254902,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (8)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.9607843137254902,.9607843137254902,.9607843137254902,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (7)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.5490196078431373,.3176470588235294,.0392156862745098,.8470588235294118,.7019607843137254,.396078431372549,.9647058823529412,.9098039215686274,.7647058823529411,.7803921568627451,.9176470588235294,.8980392156862745,.3529411764705883,.7058823529411765,.6745098039215687,.00392156862745098,.4,.3686274509803922],Name:"Brewer Diverging Brown-Blue-Green (6)",NanColor:[.00392156862745098,.4,.3686274509803922]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.9607843137254902,.9607843137254902,.9607843137254902,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (5)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.6509803921568628,.3803921568627451,.1019607843137255,.8745098039215686,.7607843137254902,.4901960784313725,.5019607843137255,.803921568627451,.7568627450980392,.00392156862745098,.5215686274509804,.4431372549019608],Name:"Brewer Diverging Brown-Blue-Green (4)",NanColor:[.00392156862745098,.5215686274509804,.4431372549019608]},{IndexedColors:[.8470588235294118,.7019607843137254,.396078431372549,.9607843137254902,.9607843137254902,.9607843137254902,.3529411764705883,.7058823529411765,.6745098039215687],Name:"Brewer Diverging Brown-Blue-Green (3)",NanColor:[.3529411764705883,.7058823529411765,.6745098039215687]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.4274509803921568,.1725490196078431,0,.2666666666666667,.1058823529411765],Name:"Brewer Sequential Blue-Green (9)",NanColor:[0,.2666666666666667,.1058823529411765]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8980392156862745,.9607843137254902,.9764705882352941,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (8)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.8,.9254901960784314,.9019607843137255,.4,.7607843137254902,.6431372549019608,.2549019607843137,.6823529411764706,.4627450980392157,.1372549019607843,.5450980392156862,.2705882352941176,0,.3450980392156863,.1411764705882353],Name:"Brewer Sequential Blue-Green (7)",NanColor:[0,.3450980392156863,.1411764705882353]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.8,.9254901960784314,.9019607843137255,.6,.8470588235294118,.788235294117647,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (6)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1725490196078431,.6352941176470588,.3725490196078431,0,.4274509803921568,.1725490196078431],Name:"Brewer Sequential Blue-Green (5)",NanColor:[0,.4274509803921568,.1725490196078431]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.6980392156862745,.8862745098039215,.8862745098039215,.4,.7607843137254902,.6431372549019608,.1372549019607843,.5450980392156862,.2705882352941176],Name:"Brewer Sequential Blue-Green (4)",NanColor:[.1372549019607843,.5450980392156862,.2705882352941176]},{IndexedColors:[.8980392156862745,.9607843137254902,.9764705882352941,.6,.8470588235294118,.788235294117647,.1725490196078431,.6352941176470588,.3725490196078431],Name:"Brewer Sequential Blue-Green (3)",NanColor:[.1725490196078431,.6352941176470588,.3725490196078431]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.6,.203921568627451,.01568627450980392,.4,.1450980392156863,.02352941176470588],Name:"Brewer Sequential Yellow-Orange-Brown (9)",NanColor:[.4,.1450980392156863,.02352941176470588]},{IndexedColors:[1,1,.8980392156862745,1,.9686274509803922,.7372549019607844,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (8)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.9254901960784314,.4392156862745098,.0784313725490196,.8,.2980392156862745,.00784313725490196,.5490196078431373,.1764705882352941,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (7)",NanColor:[.5490196078431373,.1764705882352941,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8901960784313725,.5686274509803921,.996078431372549,.7686274509803922,.3098039215686275,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (6)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8509803921568627,.3725490196078431,.05490196078431372,.6,.203921568627451,.01568627450980392],Name:"Brewer Sequential Yellow-Orange-Brown (5)",NanColor:[.6,.203921568627451,.01568627450980392]},{IndexedColors:[1,1,.8313725490196079,.996078431372549,.8509803921568627,.5568627450980392,.996078431372549,.6,.1607843137254902,.8,.2980392156862745,.00784313725490196],Name:"Brewer Sequential Yellow-Orange-Brown (4)",NanColor:[.8,.2980392156862745,.00784313725490196]},{IndexedColors:[1,.9686274509803922,.7372549019607844,.996078431372549,.7686274509803922,.3098039215686275,.8509803921568627,.3725490196078431,.05490196078431372],Name:"Brewer Sequential Yellow-Orange-Brown (3)",NanColor:[.8509803921568627,.3725490196078431,.05490196078431372]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.5058823529411764,.05882352941176471,.4862745098039216,.3019607843137255,0,.2941176470588235],Name:"Brewer Sequential Blue-Purple (9)",NanColor:[.3019607843137255,0,.2941176470588235]},{IndexedColors:[.9686274509803922,.9882352941176471,.9921568627450981,.8784313725490196,.9254901960784314,.9568627450980393,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (8)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5490196078431373,.4196078431372549,.6941176470588235,.5333333333333333,.2549019607843137,.615686274509804,.4313725490196079,.00392156862745098,.4196078431372549],Name:"Brewer Sequential Blue-Purple (7)",NanColor:[.4313725490196079,.00392156862745098,.4196078431372549]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7490196078431373,.8274509803921568,.9019607843137255,.6196078431372549,.7372549019607844,.8549019607843137,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (6)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.3372549019607843,.6549019607843137,.5058823529411764,.05882352941176471,.4862745098039216],Name:"Brewer Sequential Blue-Purple (5)",NanColor:[.5058823529411764,.05882352941176471,.4862745098039216]},{IndexedColors:[.9294117647058824,.9725490196078431,.984313725490196,.7019607843137254,.803921568627451,.8901960784313725,.5490196078431373,.5882352941176471,.7764705882352941,.5333333333333333,.2549019607843137,.615686274509804],Name:"Brewer Sequential Blue-Purple (4)",NanColor:[.5333333333333333,.2549019607843137,.615686274509804]},{IndexedColors:[.8784313725490196,.9254901960784314,.9568627450980393,.6196078431372549,.7372549019607844,.8549019607843137,.5333333333333333,.3372549019607843,.6549019607843137],Name:"Brewer Sequential Blue-Purple (3)",NanColor:[.5333333333333333,.3372549019607843,.6549019607843137]},{IndexedColors:[.4980392156862745,.788235294117647,.4980392156862745,.7450980392156863,.6823529411764706,.8313725490196079,.9921568627450981,.7529411764705882,.5254901960784314,1,1,.6,.2196078431372549,.4235294117647059,.6901960784313725,.9411764705882353,.00784313725490196,.4980392156862745,.7490196078431373,.3568627450980392,.09019607843137255,.4,.4,.4],Name:"Brewer Qualitative Accent",NanColor:[.4,.4,.4]},{IndexedColors:[.1058823529411765,.6196078431372549,.4666666666666667,.8509803921568627,.3725490196078431,.00784313725490196,.4588235294117647,.4392156862745098,.7019607843137254,.9058823529411765,.1607843137254902,.5411764705882353,.4,.6509803921568628,.1176470588235294,.9019607843137255,.6705882352941176,.00784313725490196,.6509803921568628,.4627450980392157,.1137254901960784,.4,.4,.4],Name:"Brewer Qualitative Dark2",NanColor:[.4,.4,.4]},{IndexedColors:[.4,.7607843137254902,.6470588235294118,.9882352941176471,.5529411764705883,.3843137254901961,.5529411764705883,.6274509803921569,.796078431372549,.9058823529411765,.5411764705882353,.7647058823529411,.6509803921568628,.8470588235294118,.3294117647058823,1,.8509803921568627,.1843137254901961,.8980392156862745,.7686274509803922,.5803921568627451,.7019607843137254,.7019607843137254,.7019607843137254],Name:"Brewer Qualitative Set2",NanColor:[.7019607843137254,.7019607843137254,.7019607843137254]},{IndexedColors:[.7019607843137254,.8862745098039215,.803921568627451,.9921568627450981,.803921568627451,.6745098039215687,.796078431372549,.8352941176470589,.9098039215686274,.9568627450980393,.792156862745098,.8941176470588236,.9019607843137255,.9607843137254902,.788235294117647,1,.9490196078431372,.6823529411764706,.9450980392156862,.8862745098039215,.8,.8,.8,.8],Name:"Brewer Qualitative Pastel2",NanColor:[.8,.8,.8]},{IndexedColors:[.984313725490196,.7058823529411765,.6823529411764706,.7019607843137254,.803921568627451,.8901960784313725,.8,.9215686274509803,.7725490196078432,.8705882352941177,.796078431372549,.8941176470588236,.996078431372549,.8509803921568627,.6509803921568628,1,1,.8,.8980392156862745,.8470588235294118,.7411764705882353,.9921568627450981,.8549019607843137,.9254901960784314,.9490196078431372,.9490196078431372,.9490196078431372],Name:"Brewer Qualitative Pastel1",NanColor:[.9490196078431372,.9490196078431372,.9490196078431372]},{IndexedColors:[.8941176470588236,.1019607843137255,.1098039215686274,.2156862745098039,.4941176470588236,.7215686274509804,.3019607843137255,.6862745098039216,.2901960784313726,.596078431372549,.3058823529411765,.6392156862745098,1,.4980392156862745,0,1,1,.2,.6509803921568628,.3372549019607843,.1568627450980392,.9686274509803922,.5058823529411764,.7490196078431373,.6,.6,.6],Name:"Brewer Qualitative Set1",NanColor:[.6,.6,.6]},{IndexedColors:[.6509803921568628,.807843137254902,.8901960784313725,.1215686274509804,.4705882352941176,.7058823529411765,.6980392156862745,.8745098039215686,.5411764705882353,.2,.6274509803921569,.1725490196078431,.984313725490196,.6039215686274509,.6,.8901960784313725,.1019607843137255,.1098039215686274,.9921568627450981,.7490196078431373,.4352941176470588,1,.4980392156862745,0,.792156862745098,.6980392156862745,.8392156862745098,.4156862745098039,.2392156862745098,.6039215686274509,1,1,.6],Name:"Brewer Qualitative Paired",NanColor:[1,1,.6]},{IndexedColors:[.5529411764705883,.8274509803921568,.7803921568627451,1,1,.7019607843137254,.7450980392156863,.7294117647058823,.8549019607843137,.984313725490196,.5019607843137255,.4470588235294118,.5019607843137255,.6941176470588235,.8274509803921568,.9921568627450981,.7058823529411765,.3843137254901961,.7019607843137254,.8705882352941177,.4117647058823529,.9882352941176471,.803921568627451,.8980392156862745,.8509803921568627,.8509803921568627,.8509803921568627,.7372549019607844,.5019607843137255,.7411764705882353,.8,.9215686274509803,.7725490196078432,1,.9294117647058824,.4352941176470588],Name:"Brewer Qualitative Set3",NanColor:[1,.9294117647058824,.4352941176470588]},{IndexedColors:[1,0,0,1,.862745,0,0,.695201,0],Name:"Traffic Lights",NanColor:[.803922,0,.803922]},{IndexedColors:[.908659,.604013,.581857,1,.862745,0,0,.695201,0],Name:"Traffic Lights For Deuteranopes",NanColor:[.803922,0,.803922]},{IndexedColors:[.4196078431372549,0,.07058823529411765,.9019607843137255,.9411764705882353,.0196078431372549,.01568627450980392,.6196078431372549,.00784313725490196],Name:"Traffic Lights For Deuteranopes 2",NanColor:[.803922,0,.803922]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Muted Blue-Green",NanColor:[.25,0,0],RGBPoints:[0,.109804,.27451,.301961,.02,.129412,.309804,.341176,.05,.14902,.341176,.380392,.1,.188235,.403922,.458824,.15,.227451,.447059,.521569,.2,.290196,.494118,.588235,.25,.368627,.552941,.670588,.3,.458824,.619608,.74902,.35,.588235,.713725,.85098,.4,.72549,.815686,.941176,.45,.831373,.882353,.980392,.475,.909804,.933333,1,.5,.980392,.984314,1,.5,.996078,1,.94902,.5,1,1,.980392,.5,.980392,.984314,1,.525,.972549,.988235,.890196,.55,.917647,.960784,.835294,.6,.835294,.921569,.772549,.65,.768627,.901961,.737255,.7,.670588,.831373,.654902,.75,.576471,.760784,.584314,.8,.498039,.678431,.521569,.85,.392157,.560784,.427451,.9,.294118,.45098,.333333,.95,.211765,.34902,.254902,1,.152941,.278431,.196078]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Green-Blue Asymmetric Divergent (62Blbc)",NanColor:[.25,0,0],RGBPoints:[0,.121569,.2,.145098,.05,.196078,.301961,.223529,.1,.258824,.4,.278431,.2,.341176,.54902,.341176,.25,.419608,.619608,.376471,.3,.545098,.701961,.392157,.35,.643137,.780392,.403922,.4,.729412,.819608,.45098,.45,.811765,.870588,.521569,.5,.898039,.909804,.564706,.55,.941176,.92549,.686275,.6,.960784,.94902,.776471,.64,1,1,1,.65,.890196,.988235,.972549,.7,.721569,.894118,.901961,.75,.631373,.823529,.839216,.8,.517647,.662745,.701961,.85,.384314,.494118,.54902,.9,.298039,.360784,.45098,.95,.223529,.25098,.34902,.99,.156863,.172549,.25098,1,.137255,.137255,.188235]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Asymmtrical Earth Tones (6_21b)",NanColor:[.25,0,0],RGBPoints:[0,.141176,.14902,.2,.05,.215686,.258824,.321569,.1,.243137,.368627,.380392,.15,.27451,.439216,.4,.2,.32549,.501961,.384314,.25,.403922,.6,.419608,.3,.486275,.701961,.454902,.35,.556863,.74902,.494118,.4,.670588,.8,.545098,.5,.854902,.901961,.631373,.55,.92549,.941176,.694118,.6,.960784,.94902,.776471,.65,.988235,.968627,.909804,.7,.839216,.815686,.772549,.75,.701961,.662745,.615686,.8,.6,.529412,.478431,.85,.501961,.403922,.360784,.9,.439216,.313725,.290196,1,.301961,.164706,.176471]},{ColorSpace:"Lab",Creator:"Francesca Samsel",Name:"Yellow 15",NanColor:[.25,0,0],RGBPoints:[0,1,1,.988235,.002,1,1,.988235,.05,.984314,.988235,.843137,.1,.988235,.988235,.741176,.15,.980392,.968627,.654902,.2,.980392,.945098,.576471,.25,.968627,.905882,.486275,.3,.968627,.862745,.388235,.35,.960784,.803922,.286275,.4,.94902,.741176,.219608,.45,.941176,.678431,.14902,.5,.929412,.607843,.094118,.55,.921569,.545098,.054902,.6,.909804,.486275,.035294,.65,.890196,.411765,.019608,.7,.8,.305882,0,.75,.760784,.239216,0,.8,.678431,.180392,.011765,.85,.6,.121569,.023529,.9,.501961,.054902,.031373,.95,.4,.039216,.058824,1,.301961,.047059,.090196]},{ColorSpace:"Diverging",Name:"Magma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002258,.001295,.018331,.007843,.003279,.002305,.023708,.011765,.004512,.00349,.029965,.015686,.00595,.004843,.03713,.019608,.007588,.006356,.044973,.023529,.009426,.008022,.052844,.027451,.011465,.009828,.06075,.031373,.013708,.011771,.068667,.035294,.016156,.01384,.076603,.039216,.018815,.016026,.084584,.043137,.021692,.01832,.09261,.047059,.024792,.020715,.100676,.05098,.028123,.023201,.108787,.054902,.031696,.025765,.116965,.058824,.03552,.028397,.125209,.062745,.039608,.03109,.133515,.066667,.04383,.03383,.141886,.070588,.048062,.036607,.150327,.07451,.05232,.039407,.158841,.078431,.056615,.04216,.167446,.082353,.060949,.044794,.176129,.086275,.06533,.047318,.184892,.090196,.069764,.049726,.193735,.094118,.074257,.052017,.20266,.098039,.078815,.054184,.211667,.101961,.083446,.056225,.220755,.105882,.088155,.058133,.229922,.109804,.092949,.059904,.239164,.113725,.097833,.061531,.248477,.117647,.102815,.06301,.257854,.121569,.107899,.064335,.267289,.12549,.113094,.065492,.276784,.129412,.118405,.066479,.286321,.133333,.123833,.067295,.295879,.137255,.12938,.067935,.305443,.141176,.135053,.068391,.315,.145098,.140858,.068654,.324538,.14902,.146785,.068738,.334011,.152941,.152839,.068637,.343404,.156863,.159018,.068354,.352688,.160784,.165308,.067911,.361816,.164706,.171713,.067305,.370771,.168627,.178212,.066576,.379497,.172549,.184801,.065732,.387973,.176471,.19146,.064818,.396152,.180392,.198177,.063862,.404009,.184314,.204935,.062907,.411514,.188235,.211718,.061992,.418647,.192157,.218512,.061158,.425392,.196078,.225302,.060445,.431742,.2,.232077,.059889,.437695,.203922,.238826,.059517,.443256,.207843,.245543,.059352,.448436,.211765,.25222,.059415,.453248,.215686,.258857,.059706,.45771,.219608,.265447,.060237,.46184,.223529,.271994,.060994,.46566,.227451,.278493,.061978,.46919,.231373,.284951,.063168,.472451,.235294,.291366,.064553,.475462,.239216,.29774,.066117,.478243,.243137,.304081,.067835,.480812,.247059,.310382,.069702,.483186,.25098,.316654,.07169,.48538,.254902,.322899,.073782,.487408,.258824,.329114,.075972,.489287,.262745,.335308,.078236,.491024,.266667,.341482,.080564,.492631,.270588,.347636,.082946,.494121,.27451,.353773,.085373,.495501,.278431,.359898,.087831,.496778,.282353,.366012,.090314,.49796,.286275,.372116,.092816,.499053,.290196,.378211,.095332,.500067,.294118,.384299,.097855,.501002,.298039,.390384,.100379,.501864,.301961,.396467,.102902,.502658,.305882,.402548,.10542,.503386,.309804,.408629,.10793,.504052,.313725,.414709,.110431,.504662,.317647,.420791,.11292,.505215,.321569,.426877,.115395,.505714,.32549,.432967,.117855,.50616,.329412,.439062,.120298,.506555,.333333,.445163,.122724,.506901,.337255,.451271,.125132,.507198,.341176,.457386,.127522,.507448,.345098,.463508,.129893,.507652,.34902,.46964,.132245,.507809,.352941,.47578,.134577,.507921,.356863,.481929,.136891,.507989,.360784,.488088,.139186,.508011,.364706,.494258,.141462,.507988,.368627,.500438,.143719,.50792,.372549,.506629,.145958,.507806,.376471,.512831,.148179,.507648,.380392,.519045,.150383,.507443,.384314,.52527,.152569,.507192,.388235,.531507,.154739,.506895,.392157,.537755,.156894,.506551,.396078,.544015,.159033,.506159,.4,.550287,.161158,.505719,.403922,.556571,.163269,.50523,.407843,.562866,.165368,.504692,.411765,.569172,.167454,.504105,.415686,.57549,.16953,.503466,.419608,.581819,.171596,.502777,.423529,.588158,.173652,.502035,.427451,.594508,.175701,.501241,.431373,.600868,.177743,.500394,.435294,.607238,.179779,.499492,.439216,.613617,.181811,.498536,.443137,.620005,.18384,.497524,.447059,.626401,.185867,.496456,.45098,.632805,.187893,.495332,.454902,.639216,.189921,.49415,.458824,.645633,.191952,.49291,.462745,.652056,.193986,.491611,.466667,.658483,.196027,.490253,.470588,.664915,.198075,.488836,.47451,.671349,.200133,.487358,.478431,.677786,.202203,.485819,.482353,.684224,.204286,.484219,.486275,.690661,.206384,.482558,.490196,.697098,.208501,.480835,.494118,.703532,.210638,.479049,.498039,.709962,.212797,.477201,.501961,.716387,.214982,.47529,.505882,.722805,.217194,.473316,.509804,.729216,.219437,.471279,.513725,.735616,.221713,.46918,.517647,.742004,.224025,.467018,.521569,.748378,.226377,.464794,.52549,.754737,.228772,.462509,.529412,.761077,.231214,.460162,.533333,.767398,.233705,.457755,.537255,.773695,.236249,.455289,.541176,.779968,.238851,.452765,.545098,.786212,.241514,.450184,.54902,.792427,.244242,.447543,.552941,.798608,.24704,.444848,.556863,.804752,.249911,.442102,.560784,.810855,.252861,.439305,.564706,.816914,.255895,.436461,.568627,.822926,.259016,.433573,.572549,.828886,.262229,.430644,.576471,.834791,.26554,.427671,.580392,.840636,.268953,.424666,.584314,.846416,.272473,.421631,.588235,.852126,.276106,.418573,.592157,.857763,.279857,.415496,.596078,.86332,.283729,.412403,.6,.868793,.287728,.409303,.603922,.874176,.291859,.406205,.607843,.879464,.296125,.403118,.611765,.884651,.30053,.400047,.615686,.889731,.305079,.397002,.619608,.8947,.309773,.393995,.623529,.899552,.314616,.391037,.627451,.904281,.31961,.388137,.631373,.908884,.324755,.385308,.635294,.913354,.330052,.382563,.639216,.917689,.3355,.379915,.643137,.921884,.341098,.377376,.647059,.925937,.346844,.374959,.65098,.929845,.352734,.372677,.654902,.933606,.358764,.370541,.658824,.937221,.364929,.368567,.662745,.940687,.371224,.366762,.666667,.944006,.377643,.365136,.670588,.94718,.384178,.363701,.67451,.95021,.39082,.362468,.678431,.953099,.397563,.361438,.682353,.955849,.4044,.360619,.686275,.958464,.411324,.360014,.690196,.960949,.418323,.35963,.694118,.96331,.42539,.359469,.698039,.965549,.432519,.359529,.701961,.967671,.439703,.35981,.705882,.96968,.446936,.360311,.709804,.971582,.45421,.36103,.713725,.973381,.46152,.361965,.717647,.975082,.468861,.363111,.721569,.97669,.476226,.364466,.72549,.97821,.483612,.366025,.729412,.979645,.491014,.367783,.733333,.981,.498428,.369734,.737255,.982279,.505851,.371874,.741176,.983485,.51328,.374198,.745098,.984622,.520713,.376698,.74902,.985693,.528148,.379371,.752941,.9867,.535582,.38221,.756863,.987646,.543015,.38521,.760784,.988533,.550446,.388365,.764706,.989363,.557873,.391671,.768627,.990138,.565296,.395122,.772549,.990871,.572706,.398714,.776471,.991558,.580107,.402441,.780392,.992196,.587502,.406299,.784314,.992785,.594891,.410283,.788235,.993326,.602275,.41439,.792157,.993834,.609644,.418613,.796078,.994309,.616999,.42295,.8,.994738,.62435,.427397,.803922,.995122,.631696,.431951,.807843,.99548,.639027,.436607,.811765,.99581,.646344,.441361,.815686,.996096,.653659,.446213,.819608,.996341,.660969,.45116,.823529,.99658,.668256,.456192,.827451,.996775,.675541,.461314,.831373,.996925,.682828,.466526,.835294,.997077,.690088,.471811,.839216,.997186,.697349,.477182,.843137,.997254,.704611,.482635,.847059,.997325,.711848,.488154,.85098,.997351,.719089,.493755,.854902,.997351,.726324,.499428,.858824,.997341,.733545,.505167,.862745,.997285,.740772,.510983,.866667,.997228,.747981,.516859,.870588,.997138,.75519,.522806,.87451,.997019,.762398,.528821,.878431,.996898,.769591,.534892,.882353,.996727,.776795,.541039,.886275,.996571,.783977,.547233,.890196,.996369,.791167,.553499,.894118,.996162,.798348,.55982,.898039,.995932,.805527,.566202,.901961,.99568,.812706,.572645,.905882,.995424,.819875,.57914,.909804,.995131,.827052,.585701,.913725,.994851,.834213,.592307,.917647,.994524,.841387,.598983,.921569,.994222,.84854,.605696,.92549,.993866,.855711,.612482,.929412,.993545,.862859,.619299,.933333,.99317,.870024,.626189,.937255,.992831,.877168,.633109,.941176,.99244,.88433,.640099,.945098,.992089,.89147,.647116,.94902,.991688,.898627,.654202,.952941,.991332,.905763,.661309,.956863,.99093,.912915,.668481,.960784,.99057,.920049,.675675,.964706,.990175,.927196,.682926,.968627,.989815,.934329,.690198,.972549,.989434,.94147,.697519,.976471,.989077,.948604,.704863,.980392,.988717,.955742,.712242,.984314,.988367,.962878,.719649,.988235,.988033,.970012,.727077,.992157,.987691,.977154,.734536,.996078,.987387,.984288,.742002,1,.987053,.991438,.749504]},{ColorSpace:"Diverging",Name:"Inferno (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.001462,466e-6,.013866,.003922,.002267,.00127,.01857,.007843,.003299,.002249,.024239,.011765,.004547,.003392,.030909,.015686,.006006,.004692,.038558,.019608,.007676,.006136,.046836,.023529,.009561,.007713,.055143,.027451,.011663,.009417,.06346,.031373,.013995,.011225,.071862,.035294,.016561,.013136,.080282,.039216,.019373,.015133,.088767,.043137,.022447,.017199,.097327,.047059,.025793,.019331,.10593,.05098,.029432,.021503,.114621,.054902,.033385,.023702,.123397,.058824,.037668,.025921,.132232,.062745,.042253,.028139,.141141,.066667,.046915,.030324,.150164,.070588,.051644,.032474,.159254,.07451,.056449,.034569,.168414,.078431,.06134,.03659,.177642,.082353,.066331,.038504,.186962,.086275,.071429,.040294,.196354,.090196,.076637,.041905,.205799,.094118,.081962,.043328,.215289,.098039,.087411,.044556,.224813,.101961,.09299,.045583,.234358,.105882,.098702,.046402,.243904,.109804,.104551,.047008,.25343,.113725,.110536,.047399,.262912,.117647,.116656,.047574,.272321,.121569,.122908,.047536,.281624,.12549,.129285,.047293,.290788,.129412,.135778,.046856,.299776,.133333,.142378,.046242,.308553,.137255,.149073,.045468,.317085,.141176,.15585,.044559,.325338,.145098,.162689,.043554,.333277,.14902,.169575,.042489,.340874,.152941,.176493,.041402,.348111,.156863,.183429,.040329,.354971,.160784,.190367,.039309,.361447,.164706,.197297,.0384,.367535,.168627,.204209,.037632,.373238,.172549,.211095,.03703,.378563,.176471,.217949,.036615,.383522,.180392,.224763,.036405,.388129,.184314,.231538,.036405,.3924,.188235,.238273,.036621,.396353,.192157,.244967,.037055,.400007,.196078,.25162,.037705,.403378,.2,.258234,.038571,.406485,.203922,.26481,.039647,.409345,.207843,.271347,.040922,.411976,.211765,.27785,.042353,.414392,.215686,.284321,.043933,.416608,.219608,.290763,.045644,.418637,.223529,.297178,.04747,.420491,.227451,.303568,.049396,.422182,.231373,.309935,.051407,.423721,.235294,.316282,.05349,.425116,.239216,.32261,.055634,.426377,.243137,.328921,.057827,.427511,.247059,.335217,.06006,.428524,.25098,.3415,.062325,.429425,.254902,.347771,.064616,.430217,.258824,.354032,.066925,.430906,.262745,.360284,.069247,.431497,.266667,.366529,.071579,.431994,.270588,.372768,.073915,.4324,.27451,.379001,.076253,.432719,.278431,.385228,.078591,.432955,.282353,.391453,.080927,.433109,.286275,.397674,.083257,.433183,.290196,.403894,.08558,.433179,.294118,.410113,.087896,.433098,.298039,.416331,.090203,.432943,.301961,.422549,.092501,.432714,.305882,.428768,.09479,.432412,.309804,.434987,.097069,.432039,.313725,.441207,.099338,.431594,.317647,.447428,.101597,.43108,.321569,.453651,.103848,.430498,.32549,.459875,.106089,.429846,.329412,.4661,.108322,.429125,.333333,.472328,.110547,.428334,.337255,.478558,.112764,.427475,.341176,.484789,.114974,.426548,.345098,.491022,.117179,.425552,.34902,.497257,.119379,.424488,.352941,.503493,.121575,.423356,.356863,.50973,.123769,.422156,.360784,.515967,.12596,.420887,.364706,.522206,.12815,.419549,.368627,.528444,.130341,.418142,.372549,.534683,.132534,.416667,.376471,.54092,.134729,.415123,.380392,.547157,.136929,.413511,.384314,.553392,.139134,.411829,.388235,.559624,.141346,.410078,.392157,.565854,.143567,.408258,.396078,.572081,.145797,.406369,.4,.578304,.148039,.404411,.403922,.584521,.150294,.402385,.407843,.590734,.152563,.40029,.411765,.59694,.154848,.398125,.415686,.603139,.157151,.395891,.419608,.60933,.159474,.393589,.423529,.615513,.161817,.391219,.427451,.621685,.164184,.388781,.431373,.627847,.166575,.386276,.435294,.633998,.168992,.383704,.439216,.640135,.171438,.381065,.443137,.64626,.173914,.378359,.447059,.652369,.176421,.375586,.45098,.658463,.178962,.372748,.454902,.66454,.181539,.369846,.458824,.670599,.184153,.366879,.462745,.676638,.186807,.363849,.466667,.682656,.189501,.360757,.470588,.688653,.192239,.357603,.47451,.694627,.195021,.354388,.478431,.700576,.197851,.351113,.482353,.7065,.200728,.347777,.486275,.712396,.203656,.344383,.490196,.718264,.206636,.340931,.494118,.724103,.20967,.337424,.498039,.729909,.212759,.333861,.501961,.735683,.215906,.330245,.505882,.741423,.219112,.326576,.509804,.747127,.222378,.322856,.513725,.752794,.225706,.319085,.517647,.758422,.229097,.315266,.521569,.76401,.232554,.311399,.52549,.769556,.236077,.307485,.529412,.775059,.239667,.303526,.533333,.780517,.243327,.299523,.537255,.785929,.247056,.295477,.541176,.791293,.250856,.29139,.545098,.796607,.254728,.287264,.54902,.801871,.258674,.283099,.552941,.807082,.262692,.278898,.556863,.812239,.266786,.274661,.560784,.817341,.270954,.27039,.564706,.822386,.275197,.266085,.568627,.827372,.279517,.26175,.572549,.832299,.283913,.257383,.576471,.837165,.288385,.252988,.580392,.841969,.292933,.248564,.584314,.846709,.297559,.244113,.588235,.851384,.30226,.239636,.592157,.855992,.307038,.235133,.596078,.860533,.311892,.230606,.6,.865006,.316822,.226055,.603922,.869409,.321827,.221482,.607843,.873741,.326906,.216886,.611765,.878001,.33206,.212268,.615686,.882188,.337287,.207628,.619608,.886302,.342586,.202968,.623529,.890341,.347957,.198286,.627451,.894305,.353399,.193584,.631373,.898192,.358911,.18886,.635294,.902003,.364492,.184116,.639216,.905735,.37014,.17935,.643137,.90939,.375856,.174563,.647059,.912966,.381636,.169755,.65098,.916462,.387481,.164924,.654902,.919879,.393389,.16007,.658824,.923215,.399359,.155193,.662745,.92647,.405389,.150292,.666667,.929644,.411479,.145367,.670588,.932737,.417627,.140417,.67451,.935747,.423831,.13544,.678431,.938675,.430091,.130438,.682353,.941521,.436405,.125409,.686275,.944285,.442772,.120354,.690196,.946965,.449191,.115272,.694118,.949562,.45566,.110164,.698039,.952075,.462178,.105031,.701961,.954506,.468744,.099874,.705882,.956852,.475356,.094695,.709804,.959114,.482014,.089499,.713725,.961293,.488716,.084289,.717647,.963387,.495462,.079073,.721569,.965397,.502249,.073859,.72549,.967322,.509078,.068659,.729412,.969163,.515946,.063488,.733333,.970919,.522853,.058367,.737255,.97259,.529798,.053324,.741176,.974176,.53678,.048392,.745098,.975677,.543798,.043618,.74902,.977092,.55085,.03905,.752941,.978422,.557937,.034931,.756863,.979666,.565057,.031409,.760784,.980824,.572209,.028508,.764706,.981895,.579392,.02625,.768627,.982881,.586606,.024661,.772549,.983779,.593849,.02377,.776471,.984591,.601122,.023606,.780392,.985315,.608422,.024202,.784314,.985952,.61575,.025592,.788235,.986502,.623105,.027814,.792157,.986964,.630485,.030908,.796078,.987337,.63789,.034916,.8,.987622,.64532,.039886,.803922,.987819,.652773,.045581,.807843,.987926,.66025,.05175,.811765,.987945,.667748,.058329,.815686,.987874,.675267,.065257,.819608,.987714,.682807,.072489,.823529,.987464,.690366,.07999,.827451,.987124,.697944,.087731,.831373,.986694,.70554,.095694,.835294,.986175,.713153,.103863,.839216,.985566,.720782,.112229,.843137,.984865,.728427,.120785,.847059,.984075,.736087,.129527,.85098,.983196,.743758,.138453,.854902,.982228,.751442,.147565,.858824,.981173,.759135,.156863,.862745,.980032,.766837,.166353,.866667,.978806,.774545,.176037,.870588,.977497,.782258,.185923,.87451,.976108,.789974,.196018,.878431,.974638,.797692,.206332,.882353,.973088,.805409,.216877,.886275,.971468,.813122,.227658,.890196,.969783,.820825,.238686,.894118,.968041,.828515,.249972,.898039,.966243,.836191,.261534,.901961,.964394,.843848,.273391,.905882,.962517,.851476,.285546,.909804,.960626,.859069,.29801,.913725,.95872,.866624,.31082,.917647,.956834,.874129,.323974,.921569,.954997,.881569,.337475,.92549,.953215,.888942,.351369,.929412,.951546,.896226,.365627,.933333,.950018,.903409,.380271,.937255,.948683,.910473,.395289,.941176,.947594,.917399,.410665,.945098,.946809,.924168,.426373,.94902,.946392,.930761,.442367,.952941,.946403,.937159,.458592,.956863,.946903,.943348,.47497,.960784,.947937,.949318,.491426,.964706,.949545,.955063,.50786,.968627,.95174,.960587,.524203,.972549,.954529,.965896,.540361,.976471,.957896,.971003,.556275,.980392,.961812,.975924,.571925,.984314,.966249,.980678,.587206,.988235,.971162,.985282,.602154,.992157,.976511,.989753,.61676,.996078,.982257,.994109,.631017,1,.988362,.998364,.644924]},{ColorSpace:"Diverging",Name:"Plasma (matplotlib)",NanColor:[0,1,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Nathaniel J. Smith & Stefan van der Walt",RGBPoints:[0,.050383,.029803,.527975,.003922,.063536,.028426,.533124,.007843,.075353,.027206,.538007,.011765,.086222,.026125,.542658,.015686,.096379,.025165,.547103,.019608,.10598,.024309,.551368,.023529,.115124,.023556,.555468,.027451,.123903,.022878,.559423,.031373,.132381,.022258,.56325,.035294,.140603,.021687,.566959,.039216,.148607,.021154,.570562,.043137,.156421,.020651,.574065,.047059,.16407,.020171,.577478,.05098,.171574,.019706,.580806,.054902,.17895,.019252,.584054,.058824,.186213,.018803,.587228,.062745,.193374,.018354,.59033,.066667,.200445,.017902,.593364,.070588,.207435,.017442,.596333,.07451,.21435,.016973,.599239,.078431,.221197,.016497,.602083,.082353,.227983,.016007,.604867,.086275,.234715,.015502,.607592,.090196,.241396,.014979,.610259,.094118,.248032,.014439,.612868,.098039,.254627,.013882,.615419,.101961,.261183,.013308,.617911,.105882,.267703,.012716,.620346,.109804,.274191,.012109,.622722,.113725,.280648,.011488,.625038,.117647,.287076,.010855,.627295,.121569,.293478,.010213,.62949,.12549,.299855,.009561,.631624,.129412,.30621,.008902,.633694,.133333,.312543,.008239,.6357,.137255,.318856,.007576,.63764,.141176,.32515,.006915,.639512,.145098,.331426,.006261,.641316,.14902,.337683,.005618,.643049,.152941,.343925,.004991,.64471,.156863,.35015,.004382,.646298,.160784,.356359,.003798,.64781,.164706,.362553,.003243,.649245,.168627,.368733,.002724,.650601,.172549,.374897,.002245,.651876,.176471,.381047,.001814,.653068,.180392,.387183,.001434,.654177,.184314,.393304,.001114,.655199,.188235,.399411,859e-6,.656133,.192157,.405503,678e-6,.656977,.196078,.41158,577e-6,.65773,.2,.417642,564e-6,.65839,.203922,.423689,646e-6,.658956,.207843,.429719,831e-6,.659425,.211765,.435734,.001127,.659797,.215686,.441732,.00154,.660069,.219608,.447714,.00208,.66024,.223529,.453677,.002755,.66031,.227451,.459623,.003574,.660277,.231373,.46555,.004545,.660139,.235294,.471457,.005678,.659897,.239216,.477344,.00698,.659549,.243137,.48321,.00846,.659095,.247059,.489055,.010127,.658534,.25098,.494877,.01199,.657865,.254902,.500678,.014055,.657088,.258824,.506454,.016333,.656202,.262745,.512206,.018833,.655209,.266667,.517933,.021563,.654109,.270588,.523633,.024532,.652901,.27451,.529306,.027747,.651586,.278431,.534952,.031217,.650165,.282353,.54057,.03495,.64864,.286275,.546157,.038954,.64701,.290196,.551715,.043136,.645277,.294118,.557243,.047331,.643443,.298039,.562738,.051545,.641509,.301961,.568201,.055778,.639477,.305882,.573632,.060028,.637349,.309804,.579029,.064296,.635126,.313725,.584391,.068579,.632812,.317647,.589719,.072878,.630408,.321569,.595011,.07719,.627917,.32549,.600266,.081516,.625342,.329412,.605485,.085854,.622686,.333333,.610667,.090204,.619951,.337255,.615812,.094564,.61714,.341176,.620919,.098934,.614257,.345098,.625987,.103312,.611305,.34902,.631017,.107699,.608287,.352941,.636008,.112092,.605205,.356863,.640959,.116492,.602065,.360784,.645872,.120898,.598867,.364706,.650746,.125309,.595617,.368627,.65558,.129725,.592317,.372549,.660374,.134144,.588971,.376471,.665129,.138566,.585582,.380392,.669845,.142992,.582154,.384314,.674522,.147419,.578688,.388235,.67916,.151848,.575189,.392157,.683758,.156278,.57166,.396078,.688318,.160709,.568103,.4,.69284,.165141,.564522,.403922,.697324,.169573,.560919,.407843,.701769,.174005,.557296,.411765,.706178,.178437,.553657,.415686,.710549,.182868,.550004,.419608,.714883,.187299,.546338,.423529,.719181,.191729,.542663,.427451,.723444,.196158,.538981,.431373,.72767,.200586,.535293,.435294,.731862,.205013,.531601,.439216,.736019,.209439,.527908,.443137,.740143,.213864,.524216,.447059,.744232,.218288,.520524,.45098,.748289,.222711,.516834,.454902,.752312,.227133,.513149,.458824,.756304,.231555,.509468,.462745,.760264,.235976,.505794,.466667,.764193,.240396,.502126,.470588,.76809,.244817,.498465,.47451,.771958,.249237,.494813,.478431,.775796,.253658,.491171,.482353,.779604,.258078,.487539,.486275,.783383,.2625,.483918,.490196,.787133,.266922,.480307,.494118,.790855,.271345,.476706,.498039,.794549,.27577,.473117,.501961,.798216,.280197,.469538,.505882,.801855,.284626,.465971,.509804,.805467,.289057,.462415,.513725,.809052,.293491,.45887,.517647,.812612,.297928,.455338,.521569,.816144,.302368,.451816,.52549,.819651,.306812,.448306,.529412,.823132,.311261,.444806,.533333,.826588,.315714,.441316,.537255,.830018,.320172,.437836,.541176,.833422,.324635,.434366,.545098,.836801,.329105,.430905,.54902,.840155,.33358,.427455,.552941,.843484,.338062,.424013,.556863,.846788,.342551,.420579,.560784,.850066,.347048,.417153,.564706,.853319,.351553,.413734,.568627,.856547,.356066,.410322,.572549,.85975,.360588,.406917,.576471,.862927,.365119,.403519,.580392,.866078,.36966,.400126,.584314,.869203,.374212,.396738,.588235,.872303,.378774,.393355,.592157,.875376,.383347,.389976,.596078,.878423,.387932,.3866,.6,.881443,.392529,.383229,.603922,.884436,.397139,.37986,.607843,.887402,.401762,.376494,.611765,.89034,.406398,.37313,.615686,.89325,.411048,.369768,.619608,.896131,.415712,.366407,.623529,.898984,.420392,.363047,.627451,.901807,.425087,.359688,.631373,.904601,.429797,.356329,.635294,.907365,.434524,.35297,.639216,.910098,.439268,.34961,.643137,.9128,.444029,.346251,.647059,.915471,.448807,.34289,.65098,.918109,.453603,.339529,.654902,.920714,.458417,.336166,.658824,.923287,.463251,.332801,.662745,.925825,.468103,.329435,.666667,.928329,.472975,.326067,.670588,.930798,.477867,.322697,.67451,.933232,.48278,.319325,.678431,.93563,.487712,.315952,.682353,.93799,.492667,.312575,.686275,.940313,.497642,.309197,.690196,.942598,.502639,.305816,.694118,.944844,.507658,.302433,.698039,.947051,.512699,.299049,.701961,.949217,.517763,.295662,.705882,.951344,.52285,.292275,.709804,.953428,.52796,.288883,.713725,.95547,.533093,.28549,.717647,.957469,.53825,.282096,.721569,.959424,.543431,.278701,.72549,.961336,.548636,.275305,.729412,.963203,.553865,.271909,.733333,.965024,.559118,.268513,.737255,.966798,.564396,.265118,.741176,.968526,.5697,.261721,.745098,.970205,.575028,.258325,.74902,.971835,.580382,.254931,.752941,.973416,.585761,.25154,.756863,.974947,.591165,.248151,.760784,.976428,.596595,.244767,.764706,.977856,.602051,.241387,.768627,.979233,.607532,.238013,.772549,.980556,.613039,.234646,.776471,.981826,.618572,.231287,.780392,.983041,.624131,.227937,.784314,.984199,.629718,.224595,.788235,.985301,.63533,.221265,.792157,.986345,.640969,.217948,.796078,.987332,.646633,.214648,.8,.98826,.652325,.211364,.803922,.989128,.658043,.2081,.807843,.989935,.663787,.204859,.811765,.990681,.669558,.201642,.815686,.991365,.675355,.198453,.819608,.991985,.681179,.195295,.823529,.992541,.68703,.19217,.827451,.993032,.692907,.189084,.831373,.993456,.69881,.186041,.835294,.993814,.704741,.183043,.839216,.994103,.710698,.180097,.843137,.994324,.716681,.177208,.847059,.994474,.722691,.174381,.85098,.994553,.728728,.171622,.854902,.994561,.734791,.168938,.858824,.994495,.74088,.166335,.862745,.994355,.746995,.163821,.866667,.994141,.753137,.161404,.870588,.993851,.759304,.159092,.87451,.993482,.765499,.156891,.878431,.993033,.77172,.154808,.882353,.992505,.777967,.152855,.886275,.991897,.784239,.151042,.890196,.991209,.790537,.149377,.894118,.990439,.796859,.14787,.898039,.989587,.803205,.146529,.901961,.988648,.809579,.145357,.905882,.987621,.815978,.144363,.909804,.986509,.822401,.143557,.913725,.985314,.828846,.142945,.917647,.984031,.835315,.142528,.921569,.982653,.841812,.142303,.92549,.98119,.848329,.142279,.929412,.979644,.854866,.142453,.933333,.977995,.861432,.142808,.937255,.976265,.868016,.143351,.941176,.974443,.874622,.144061,.945098,.97253,.88125,.144923,.94902,.970533,.887896,.145919,.952941,.968443,.894564,.147014,.956863,.966271,.901249,.14818,.960784,.964021,.90795,.14937,.964706,.961681,.914672,.15052,.968627,.959276,.921407,.151566,.972549,.956808,.928152,.152409,.976471,.954287,.934908,.152921,.980392,.951726,.941671,.152925,.984314,.949151,.948435,.152178,.988235,.946602,.95519,.150328,.992157,.944152,.961916,.146861,.996078,.941896,.96859,.140956,1,.940015,.975158,.131326]},{ColorSpace:"Diverging",Name:"Viridis (matplotlib)",NanColor:[1,0,0],Source:"https://github.com/BIDS/colormap/blob/master/colormaps.py",License:"CC0",Creator:"Eric Firing",RGBPoints:[0,.267004,.004874,.329415,.003922,.26851,.009605,.335427,.007843,.269944,.014625,.341379,.011765,.271305,.019942,.347269,.015686,.272594,.025563,.353093,.019608,.273809,.031497,.358853,.023529,.274952,.037752,.364543,.027451,.276022,.044167,.370164,.031373,.277018,.050344,.375715,.035294,.277941,.056324,.381191,.039216,.278791,.062145,.386592,.043137,.279566,.067836,.391917,.047059,.280267,.073417,.397163,.05098,.280894,.078907,.402329,.054902,.281446,.08432,.407414,.058824,.281924,.089666,.412415,.062745,.282327,.094955,.417331,.066667,.282656,.100196,.42216,.070588,.28291,.105393,.426902,.07451,.283091,.110553,.431554,.078431,.283197,.11568,.436115,.082353,.283229,.120777,.440584,.086275,.283187,.125848,.44496,.090196,.283072,.130895,.449241,.094118,.282884,.13592,.453427,.098039,.282623,.140926,.457517,.101961,.28229,.145912,.46151,.105882,.281887,.150881,.465405,.109804,.281412,.155834,.469201,.113725,.280868,.160771,.472899,.117647,.280255,.165693,.476498,.121569,.279574,.170599,.479997,.12549,.278826,.17549,.483397,.129412,.278012,.180367,.486697,.133333,.277134,.185228,.489898,.137255,.276194,.190074,.493001,.141176,.275191,.194905,.496005,.145098,.274128,.199721,.498911,.14902,.273006,.20452,.501721,.152941,.271828,.209303,.504434,.156863,.270595,.214069,.507052,.160784,.269308,.218818,.509577,.164706,.267968,.223549,.512008,.168627,.26658,.228262,.514349,.172549,.265145,.232956,.516599,.176471,.263663,.237631,.518762,.180392,.262138,.242286,.520837,.184314,.260571,.246922,.522828,.188235,.258965,.251537,.524736,.192157,.257322,.25613,.526563,.196078,.255645,.260703,.528312,.2,.253935,.265254,.529983,.203922,.252194,.269783,.531579,.207843,.250425,.27429,.533103,.211765,.248629,.278775,.534556,.215686,.246811,.283237,.535941,.219608,.244972,.287675,.53726,.223529,.243113,.292092,.538516,.227451,.241237,.296485,.539709,.231373,.239346,.300855,.540844,.235294,.237441,.305202,.541921,.239216,.235526,.309527,.542944,.243137,.233603,.313828,.543914,.247059,.231674,.318106,.544834,.25098,.229739,.322361,.545706,.254902,.227802,.326594,.546532,.258824,.225863,.330805,.547314,.262745,.223925,.334994,.548053,.266667,.221989,.339161,.548752,.270588,.220057,.343307,.549413,.27451,.21813,.347432,.550038,.278431,.21621,.351535,.550627,.282353,.214298,.355619,.551184,.286275,.212395,.359683,.55171,.290196,.210503,.363727,.552206,.294118,.208623,.367752,.552675,.298039,.206756,.371758,.553117,.301961,.204903,.375746,.553533,.305882,.203063,.379716,.553925,.309804,.201239,.38367,.554294,.313725,.19943,.387607,.554642,.317647,.197636,.391528,.554969,.321569,.19586,.395433,.555276,.32549,.1941,.399323,.555565,.329412,.192357,.403199,.555836,.333333,.190631,.407061,.556089,.337255,.188923,.41091,.556326,.341176,.187231,.414746,.556547,.345098,.185556,.41857,.556753,.34902,.183898,.422383,.556944,.352941,.182256,.426184,.55712,.356863,.180629,.429975,.557282,.360784,.179019,.433756,.55743,.364706,.177423,.437527,.557565,.368627,.175841,.44129,.557685,.372549,.174274,.445044,.557792,.376471,.172719,.448791,.557885,.380392,.171176,.45253,.557965,.384314,.169646,.456262,.55803,.388235,.168126,.459988,.558082,.392157,.166617,.463708,.558119,.396078,.165117,.467423,.558141,.4,.163625,.471133,.558148,.403922,.162142,.474838,.55814,.407843,.160665,.47854,.558115,.411765,.159194,.482237,.558073,.415686,.157729,.485932,.558013,.419608,.15627,.489624,.557936,.423529,.154815,.493313,.55784,.427451,.153364,.497,.557724,.431373,.151918,.500685,.557587,.435294,.150476,.504369,.55743,.439216,.149039,.508051,.55725,.443137,.147607,.511733,.557049,.447059,.14618,.515413,.556823,.45098,.144759,.519093,.556572,.454902,.143343,.522773,.556295,.458824,.141935,.526453,.555991,.462745,.140536,.530132,.555659,.466667,.139147,.533812,.555298,.470588,.13777,.537492,.554906,.47451,.136408,.541173,.554483,.478431,.135066,.544853,.554029,.482353,.133743,.548535,.553541,.486275,.132444,.552216,.553018,.490196,.131172,.555899,.552459,.494118,.129933,.559582,.551864,.498039,.128729,.563265,.551229,.501961,.127568,.566949,.550556,.505882,.126453,.570633,.549841,.509804,.125394,.574318,.549086,.513725,.124395,.578002,.548287,.517647,.123463,.581687,.547445,.521569,.122606,.585371,.546557,.52549,.121831,.589055,.545623,.529412,.121148,.592739,.544641,.533333,.120565,.596422,.543611,.537255,.120092,.600104,.54253,.541176,.119738,.603785,.5414,.545098,.119512,.607464,.540218,.54902,.119423,.611141,.538982,.552941,.119483,.614817,.537692,.556863,.119699,.61849,.536347,.560784,.120081,.622161,.534946,.564706,.120638,.625828,.533488,.568627,.12138,.629492,.531973,.572549,.122312,.633153,.530398,.576471,.123444,.636809,.528763,.580392,.12478,.640461,.527068,.584314,.126326,.644107,.525311,.588235,.128087,.647749,.523491,.592157,.130067,.651384,.521608,.596078,.132268,.655014,.519661,.6,.134692,.658636,.517649,.603922,.137339,.662252,.515571,.607843,.14021,.665859,.513427,.611765,.143303,.669459,.511215,.615686,.146616,.67305,.508936,.619608,.150148,.676631,.506589,.623529,.153894,.680203,.504172,.627451,.157851,.683765,.501686,.631373,.162016,.687316,.499129,.635294,.166383,.690856,.496502,.639216,.170948,.694384,.493803,.643137,.175707,.6979,.491033,.647059,.180653,.701402,.488189,.65098,.185783,.704891,.485273,.654902,.19109,.708366,.482284,.658824,.196571,.711827,.479221,.662745,.202219,.715272,.476084,.666667,.20803,.718701,.472873,.670588,.214,.722114,.469588,.67451,.220124,.725509,.466226,.678431,.226397,.728888,.462789,.682353,.232815,.732247,.459277,.686275,.239374,.735588,.455688,.690196,.24607,.73891,.452024,.694118,.252899,.742211,.448284,.698039,.259857,.745492,.444467,.701961,.266941,.748751,.440573,.705882,.274149,.751988,.436601,.709804,.281477,.755203,.432552,.713725,.288921,.758394,.428426,.717647,.296479,.761561,.424223,.721569,.304148,.764704,.419943,.72549,.311925,.767822,.415586,.729412,.319809,.770914,.411152,.733333,.327796,.77398,.40664,.737255,.335885,.777018,.402049,.741176,.344074,.780029,.397381,.745098,.35236,.783011,.392636,.74902,.360741,.785964,.387814,.752941,.369214,.788888,.382914,.756863,.377779,.791781,.377939,.760784,.386433,.794644,.372886,.764706,.395174,.797475,.367757,.768627,.404001,.800275,.362552,.772549,.412913,.803041,.357269,.776471,.421908,.805774,.35191,.780392,.430983,.808473,.346476,.784314,.440137,.811138,.340967,.788235,.449368,.813768,.335384,.792157,.458674,.816363,.329727,.796078,.468053,.818921,.323998,.8,.477504,.821444,.318195,.803922,.487026,.823929,.312321,.807843,.496615,.826376,.306377,.811765,.506271,.828786,.300362,.815686,.515992,.831158,.294279,.819608,.525776,.833491,.288127,.823529,.535621,.835785,.281908,.827451,.545524,.838039,.275626,.831373,.555484,.840254,.269281,.835294,.565498,.84243,.262877,.839216,.575563,.844566,.256415,.843137,.585678,.846661,.249897,.847059,.595839,.848717,.243329,.85098,.606045,.850733,.236712,.854902,.616293,.852709,.230052,.858824,.626579,.854645,.223353,.862745,.636902,.856542,.21662,.866667,.647257,.8584,.209861,.870588,.657642,.860219,.203082,.87451,.668054,.861999,.196293,.878431,.678489,.863742,.189503,.882353,.688944,.865448,.182725,.886275,.699415,.867117,.175971,.890196,.709898,.868751,.169257,.894118,.720391,.87035,.162603,.898039,.730889,.871916,.156029,.901961,.741388,.873449,.149561,.905882,.751884,.874951,.143228,.909804,.762373,.876424,.137064,.913725,.772852,.877868,.131109,.917647,.783315,.879285,.125405,.921569,.79376,.880678,.120005,.92549,.804182,.882046,.114965,.929412,.814576,.883393,.110347,.933333,.82494,.88472,.106217,.937255,.83527,.886029,.102646,.941176,.845561,.887322,.099702,.945098,.85581,.888601,.097452,.94902,.866013,.889868,.095953,.952941,.876168,.891125,.09525,.956863,.886271,.892374,.095374,.960784,.89632,.893616,.096335,.964706,.906311,.894855,.098125,.968627,.916242,.896091,.100717,.972549,.926106,.89733,.104071,.976471,.935904,.89857,.108131,.980392,.945636,.899815,.112838,.984314,.9553,.901065,.118128,.988235,.964894,.902323,.123941,.992157,.974417,.90359,.130215,.996078,.983868,.904867,.136897,1,.993248,.906157,.143936]},{ShowIndexedColorActiveValues:1,IndexedColors:[.07,.5,.7,1,1,1,.85,1,1,.8,.5,1,.76,1,0,1,.71,.71,.5,.5,.5,.05,.05,1,1,.05,.05,.7,1,1,.7,.89,.96,.67,.36,.95,.54,1,0,.75,.65,.65,.5,.6,.6,1,.5,0,1,1,.19,.12,.94,.12,.5,.82,.89,.56,.25,.83,.24,1,0,.9,.9,.9,.75,.76,.78,.65,.65,.67,.54,.6,.78,.61,.48,.78,.5,.48,.78,.44,.48,.78,.36,.48,.76,1,.48,.38,.49,.5,.69,.76,.56,.56,.4,.56,.56,.74,.5,.89,1,.63,0,.65,.16,.16,.36,.72,.82,.44,.18,.69,0,1,0,.58,1,1,.58,.88,.88,.45,.76,.79,.33,.71,.71,.23,.62,.62,.14,.56,.56,.04,.49,.55,0,.41,.52,.88,.88,1,1,.85,.56,.65,.46,.45,.4,.5,.5,.62,.39,.71,.83,.48,0,.58,0,.58,.26,.62,.69,.34,.09,.56,0,.79,0,.44,.83,1,1,1,.78,.85,1,.78,.78,1,.78,.64,1,.78,.56,1,.78,.38,1,.78,.27,1,.78,.19,1,.78,.12,1,.78,0,1,.61,0,.9,.46,0,.83,.32,0,.75,.22,0,.67,.14,.3,.76,1,.3,.65,1,.13,.58,.84,.15,.49,.67,.15,.4,.59,.09,.33,.53,.96,.93,.82,.8,.82,.12,.71,.71,.76,.65,.33,.3,.34,.35,.38,.62,.31,.71,.67,.36,0,.46,.31,.27,.26,.51,.59,.26,0,.4,0,.49,0,.44,.67,.98,0,.73,1,0,.63,1,0,.56,1,0,.5,1,0,.42,1,.33,.36,.95,.47,.36,.89,.54,.31,.89,.63,.21,.83,.7,.12,.83,.7,.12,.73,.7,.05,.65,.74,.05,.53,.78,0,.4,.8,0,.35,.82,0,.31,.85,0,.27,.88,0,.22,.9,0,.18,.91,0,.15,.92,0,.14,.93,0,.13,.94,0,.12,.95,0,.11,.96,0,.1,.97,0,.09,.98,0,.08,.99,0,.07,1,0,.06],Annotations:[0,"Xx",1,"H",2,"He",3,"Li",4,"Be",5,"B",6,"C",7,"N",8,"O",9,"F",10,"Ne",11,"Na",12,"Mg",13,"Al",14,"Si",15,"P",16,"S",17,"Cl",18,"Ar",19,"K",20,"Ca",21,"Sc",22,"Ti",23,"V",24,"Cr",25,"Mn",26,"Fe",27,"Co",28,"Ni",29,"Cu",30,"Zn",31,"Ga",32,"Ge",33,"As",34,"Se",35,"Br",36,"Kr",37,"Rb",38,"Sr",39,"Y",40,"Zr",41,"Nb",42,"Mo",43,"Tc",44,"Ru",45,"Rh",46,"Pd",47,"Ag",48,"Cd",49,"In",50,"Sn",51,"Sb",52,"Te",53,"I",54,"Xe",55,"Cs",56,"Ba",57,"La",58,"Ce",59,"Pr",60,"Nd",61,"Pm",62,"Sm",63,"Eu",64,"Gd",65,"Tb",66,"Dy",67,"Ho",68,"Er",69,"Tm",70,"Yb",71,"Lu",72,"Hf",73,"Ta",74,"W",75,"Re",76,"Os",77,"Ir",78,"Pt",79,"Au",80,"Hg",81,"Tl",82,"Pb",83,"Bi",84,"Po",85,"At",86,"Rn",87,"Fr",88,"Ra",89,"Ac",90,"Th",91,"Pa",92,"U",93,"Np",94,"Pu",95,"Am",96,"Cm",97,"Bk",98,"Cf",99,"Es",100,"Fm",101,"Md",102,"No",103,"Lr",104,"Rf",105,"Db",106,"Sg",107,"Bh",108,"Hs",109,"Mt",110,"Ds",111,"Rg",112,"Cn",113,"Uut",114,"Uuq",115,"Uup",116,"Uuh",117,"Uus",118,"Uuo"],Name:"BlueObeliskElements"}];const Xu=Object.create(null);GJ.filter(t=>t.RGBPoints).filter(t=>t.ColorSpace!=="CIELAB").forEach(t=>{Xu[t.Name]=t});const Yu=Object.keys(Xu);Yu.sort();function WJ(t){return Xu[t]}function zJ(t){!t.RGBPoints||t.ColorSpace==="CIELAB"||(Xu[t.Name]||(Yu.push(t.Name),Yu.sort()),Xu[t.Name]=t)}function $J(t){const e=Yu.indexOf(t);e>-1&&Yu.splice(e,1),delete Xu[t]}var U1={addPreset:zJ,removePresetByName:$J,getPresetByName:WJ,rgbPresetNames:Yu};function gr(t){return bd.get(t)}function _i(){return bd.getAll()}const B1=t=>t&&typeof t=="object"&&Object.prototype.toString.call(t)!=="[object RegExp]"&&Object.prototype.toString.call(t)!=="[object Date]",jJ=t=>Array.isArray(t)?[]:{},Nd=(t,e)=>e&&e.clone===!0&&B1(t)?Zr(jJ(t),t,e):t,h8=(t,e,r)=>{const n=t.slice();return e.forEach(function(i,o){typeof n[o]>"u"?n[o]=Nd(i,r):B1(i)?n[o]=Zr(t[o],i,r):t.indexOf(i)===-1&&(n[o]=Nd(i,r))}),n},HJ=(t,e,r)=>{const n={};return B1(t)&&Object.keys(t).forEach(function(i){n[i]=Nd(t[i],r)}),Object.keys(e).forEach(function(i){!B1(e[i])||!t[i]?n[i]=Nd(e[i],r):n[i]=Zr(t[i],e[i],r)}),n},Zr=(t={},e={},r=void 0)=>{const n=Array.isArray(e),o=(r||{arrayMerge:h8}).arrayMerge||h8;return n?Array.isArray(t)?o(t,e,r):Nd(e,r):HJ(t,e,r)};/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: Apache-2.0 - */const NO=Symbol("Comlink.proxy"),GJ=Symbol("Comlink.endpoint"),PO=Symbol("Comlink.releaseProxy"),Rv=Symbol("Comlink.finalizer"),Rp=Symbol("Comlink.thrown"),AO=t=>typeof t=="object"&&t!==null||typeof t=="function",WJ={canHandle:t=>AO(t)&&t[NO],serialize(t){const{port1:e,port2:r}=new MessageChannel;return VO(t,e),[r,[r]]},deserialize(t){return t.start(),X5(t)}},zJ={canHandle:t=>AO(t)&&Rp in t,serialize({value:t}){let e;return t instanceof Error?e={isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:e={isError:!1,value:t},[e,[]]},deserialize(t){throw t.isError?Object.assign(new Error(t.value.message),t.value):t.value}},kO=new Map([["proxy",WJ],["throw",zJ]]);function $J(t,e){for(const r of t)if(e===r||r==="*"||r instanceof RegExp&&r.test(e))return!0;return!1}function VO(t,e=globalThis,r=["*"]){e.addEventListener("message",function n(i){if(!i||!i.data)return;if(!$J(r,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}const{id:o,type:a,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Lc);let l;try{const f=s.slice(0,-1).reduce((d,h)=>d[h],t),u=s.reduce((d,h)=>d[h],t);switch(a){case"GET":l=u;break;case"SET":f[s.slice(-1)[0]]=Lc(i.data.value),l=!0;break;case"APPLY":l=u.apply(f,c);break;case"CONSTRUCT":{const d=new u(...c);l=GO(d)}break;case"ENDPOINT":{const{port1:d,port2:h}=new MessageChannel;VO(t,h),l=XJ(d,[d])}break;case"RELEASE":l=void 0;break;default:return}}catch(f){l={value:f,[Rp]:0}}Promise.resolve(l).catch(f=>({value:f,[Rp]:0})).then(f=>{const[u,d]=G1(f);e.postMessage(Object.assign(Object.assign({},u),{id:o}),d),a==="RELEASE"&&(e.removeEventListener("message",n),FO(e),Rv in t&&typeof t[Rv]=="function"&&t[Rv]())}).catch(f=>{const[u,d]=G1({value:new TypeError("Unserializable return value"),[Rp]:0});e.postMessage(Object.assign(Object.assign({},u),{id:o}),d)})}),e.start&&e.start()}function jJ(t){return t.constructor.name==="MessagePort"}function FO(t){jJ(t)&&t.close()}function X5(t,e){return Y5(t,[],e)}function wg(t){if(t)throw new Error("Proxy has been released and is not useable")}function UO(t){return $l(t,{type:"RELEASE"}).then(()=>{FO(t)})}const U1=new WeakMap,B1="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{const e=(U1.get(t)||0)-1;U1.set(t,e),e===0&&UO(t)});function HJ(t,e){const r=(U1.get(e)||0)+1;U1.set(e,r),B1&&B1.register(t,e,t)}function KJ(t){B1&&B1.unregister(t)}function Y5(t,e=[],r=function(){}){let n=!1;const i=new Proxy(r,{get(o,a){if(wg(n),a===PO)return()=>{KJ(i),UO(t),n=!0};if(a==="then"){if(e.length===0)return{then:()=>i};const s=$l(t,{type:"GET",path:e.map(c=>c.toString())}).then(Lc);return s.then.bind(s)}return Y5(t,[...e,a])},set(o,a,s){wg(n);const[c,l]=G1(s);return $l(t,{type:"SET",path:[...e,a].map(f=>f.toString()),value:c},l).then(Lc)},apply(o,a,s){wg(n);const c=e[e.length-1];if(c===GJ)return $l(t,{type:"ENDPOINT"}).then(Lc);if(c==="bind")return Y5(t,e.slice(0,-1));const[l,f]=f8(s);return $l(t,{type:"APPLY",path:e.map(u=>u.toString()),argumentList:l},f).then(Lc)},construct(o,a){wg(n);const[s,c]=f8(a);return $l(t,{type:"CONSTRUCT",path:e.map(l=>l.toString()),argumentList:s},c).then(Lc)}});return HJ(i,t),i}function qJ(t){return Array.prototype.concat.apply([],t)}function f8(t){const e=t.map(G1);return[e.map(r=>r[0]),qJ(e.map(r=>r[1]))]}const BO=new WeakMap;function XJ(t,e){return BO.set(t,e),t}function GO(t){return Object.assign(t,{[NO]:!0})}function G1(t){for(const[e,r]of kO)if(r.canHandle(t)){const[n,i]=r.serialize(t);return[{type:"HANDLER",name:e,value:n},i]}return[{type:"RAW",value:t},BO.get(t)||[]]}function Lc(t){switch(t.type){case"HANDLER":return kO.get(t.name).deserialize(t.value);case"RAW":return t.value}}function $l(t,e,r){return new Promise(n=>{const i=YJ();t.addEventListener("message",function o(a){!a.data||!a.data.id||a.data.id!==i||(t.removeEventListener("message",o),n(a.data))}),t.start&&t.start(),t.postMessage(Object.assign({id:i},e),r)})}function YJ(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}class Kw{constructor(e){this.numRequests={[dt.Interaction]:0,[dt.Thumbnail]:0,[dt.Prefetch]:0,[dt.Compute]:0},this.id=e||wn(),this.requestPool={[dt.Interaction]:{0:[]},[dt.Thumbnail]:{0:[]},[dt.Prefetch]:{0:[]},[dt.Compute]:{0:[]}},this.grabDelay=5,this.awake=!1,this.numRequests={[dt.Interaction]:0,[dt.Thumbnail]:0,[dt.Prefetch]:0,[dt.Compute]:0},this.maxNumRequests={[dt.Interaction]:6,[dt.Thumbnail]:6,[dt.Prefetch]:5,[dt.Compute]:1e3}}setMaxSimultaneousRequests(e,r){this.maxNumRequests[e]=r}getMaxSimultaneousRequests(e){return this.maxNumRequests[e]}destroy(){this.timeoutHandle&&window.clearTimeout(this.timeoutHandle)}addRequest(e,r,n,i=0){const o={requestFn:e,type:r,additionalDetails:n};this.requestPool[r][i]===void 0&&(this.requestPool[r][i]=[]),this.requestPool[r][i].push(o),this.startGrabbing()}filterRequests(e){Object.keys(this.requestPool).forEach(r=>{const n=this.requestPool[r];Object.keys(n).forEach(i=>{n[i]=n[i].filter(o=>e(o))})})}clearRequestStack(e){if(!this.requestPool[e])throw new Error(`No category for the type ${e} found`);this.requestPool[e]={0:[]}}sendRequests(e){const r=this.maxNumRequests[e]-this.numRequests[e];let n=0;for(let i=0;i{this.numRequests[e]--,this.startAgain()}):(this.numRequests[e]--,n++)}}return n&&this.startAgain(),!0}getNextRequest(e){const r=this.getSortedPriorityGroups(e);for(const n of r)if(this.requestPool[e][n].length)return this.requestPool[e][n].shift();return null}startGrabbing(){const e=this.sendRequests(dt.Interaction),r=this.sendRequests(dt.Thumbnail),n=this.sendRequests(dt.Prefetch),i=this.sendRequests(dt.Compute);!e&&!r&&!n&&!i&&(this.awake=!1)}startAgain(){this.awake&&(this.grabDelay!==void 0?this.timeoutHandle||(this.timeoutHandle=window.setTimeout(()=>{this.timeoutHandle=null,this.startGrabbing()},this.grabDelay)):this.startGrabbing())}getSortedPriorityGroups(e){return Object.keys(this.requestPool[e]).map(Number).filter(n=>this.requestPool[e][n].length).sort((n,i)=>n-i)}getRequestPool(){return this.requestPool}}class WO{constructor(){this.workerRegistry={},this.workerPoolManager=new Kw("webworker")}registerWorker(e,r,n={}){var c;const{maxWorkerInstances:i=1,overwrite:o=!1,autoTerminateOnIdle:a={enabled:!1,idleTimeThreshold:3e3}}=n;if(this.workerRegistry[e]&&!o){console.warn(`Worker type '${e}' is already registered...`);return}o&&((c=this.workerRegistry[e])!=null&&c.idleCheckIntervalId)&&clearInterval(this.workerRegistry[e].idleCheckIntervalId);const s={workerFn:null,instances:[],loadCounters:[],lastActiveTime:[],nativeWorkers:[],autoTerminateOnIdle:a.enabled,idleCheckIntervalId:null,idleTimeThreshold:a.idleTimeThreshold};s.loadCounters=Array(i).fill(0),s.lastActiveTime=Array(i).fill(null);for(let l=0;la!==null);let i=0,o=r.loadCounters[0]||0;for(let a=1;a{const f=async()=>{const{api:u,index:d}=this.getNextWorkerAPI(e);if(!u){const h=new Error(`No available worker instance for '${e}'`);console.error(h),l(h);return}try{let h=[];s.length&&(h=s.map(v=>GO(v)));const g=this.workerRegistry[e];g.processing=!0;const p=await u[r](n,...h);g.processing=!1,g.lastActiveTime[d]=Date.now(),g.autoTerminateOnIdle&&!g.idleCheckIntervalId&&g.idleTimeThreshold&&(g.idleCheckIntervalId=setInterval(()=>{this.terminateIdleWorkers(e,g.idleTimeThreshold)},g.idleTimeThreshold)),c(p)}catch(h){console.error(`Error executing method '${r}' on worker '${e}':`,h),l(h)}finally{this.workerRegistry[e].loadCounters[d]--}};this.workerPoolManager.addRequest(f,i,a,o)})}terminateIdleWorkers(e,r){const n=this.workerRegistry[e];if(n.processing)return;const i=Date.now();n.instances.forEach((o,a)=>{const s=n.lastActiveTime[a],c=s!==null&&n.loadCounters[a]>0,l=i-s;!c&&l>r&&this.terminateWorkerInstance(e,a)})}terminate(e){const r=this.workerRegistry[e];if(!r){console.error(`Worker type '${e}' is not registered.`);return}r.instances.forEach((n,i)=>{this.terminateWorkerInstance(e,i)})}terminateWorkerInstance(e,r){const n=this.workerRegistry[e],i=n.instances[r];i!==null&&(i[PO](),n.nativeWorkers[r].terminate(),n.instances[r]=null,n.lastActiveTime[r]=null)}}let Df=!1;const J5={gpuTier:{tier:2},isMobile:!1,rendering:{useCPURendering:!1,preferSizeOverAccuracy:!1,strictZSpacingForVolumeViewport:!0},peerImport:t=>null};let Uc={...J5,rendering:{...J5.rendering}},$f=null;function JJ(){const t=document.createElement("canvas");return t.getContext("webgl2")||t.getContext("webgl")||t.getContext("experimental-webgl")}function ZJ(){const t=JJ();return t instanceof WebGLRenderingContext||t instanceof WebGL2RenderingContext}function zO(){return/iPad|iPhone|iPod/.test(navigator.platform)?!0:navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&navigator.platform.includes("MacIntel")}function QJ(t=Uc){var r;return Df||(Uc=Qr(J5,t),zO()&&((r=t.rendering)!=null&&r.preferSizeOverAccuracy?Uc.rendering.preferSizeOverAccuracy=!0:console.log("norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits")),ZJ()?console.log("CornerstoneRender: using GPU rendering"):(console.log("CornerstoneRender: GPU not detected, using CPU rendering"),Uc.rendering.useCPURendering=!0),Df=!0,$f||($f=new WO),Df)}function qw(){return!zO()}function jf(){return Uc.rendering.useCPURendering}function eZ(){return Df}function Xw(){return Uc}function sc(){return $f||($f=new WO),$f}function tZ(t){return Uc.peerImport(t)}function $O(t,e,r){return Math.abs(t-e)<=r}function nZ(t,e,r=1e-5){if(t.length!==e.length)return!1;for(let n=0;n0&&typeof t[0]=="number"}function mt(t,e,r=1e-5){return typeof t!=typeof e||t===null||e===null?!1:d8(t)&&d8(e)?$O(t,e,r):h8(t)&&h8(e)?nZ(t,e,r):!1}const jO=t=>typeof t=="number"?-t:t!=null&&t.map?t.map(jO):!t,Z5=t=>typeof t=="number"?Math.abs(t):t!=null&&t.map?t.map(Z5):t,HO=(t,e,r=void 0)=>mt(t,jO(e),r),rZ=(t,e,r=void 0)=>mt(Z5(t),Z5(e),r),Yw=new Map;function iZ(t){Yw.set(t.Name,t)}function Ld(t){return Yw.get(t)}function KO(){return Array.from(Yw.keys())}function Jw(t,e){const r=V1.rgbPresetNames.map(s=>V1.getPresetByName(s)),n=KO().map(s=>Ld(s)),o=r.concat(n).find(s=>{const{RGBPoints:c}=s;if(c.length!==t.length)return!1;for(let l=0;ll-f/4*Math.log((1-c)/c),a=Array.from({length:e},(c,l)=>(l+1)/(e+2)).flatMap(c=>[i(c,n,r),c,c,c,.5,0]),s=Xs.newInstance();return s.buildFunctionFromArray(tt.newInstance({values:a,numberOfComponents:6})),s}function Gn(t,e){return t.worldToIndex(e).map(Math.round)}function W1(t){const e=t.getSize(),r=[];for(let n=0;n{t.addRGBPoint(...r)}))}const sZ=Object.freeze(Object.defineProperty({__proto__:null,getTransferFunctionNodes:W1,setTransferFunctionNodes:a2},Symbol.toStringTag,{value:"Module"})),{InterpolationType:bf,OpacityMode:cZ}=$I,{vtkErrorMacro:Lv}=W,Lp=4;function lZ(t,e){e.classHierarchy.push("vtkVolumeProperty"),t.getMTime=()=>{let i=e.mtime,o;for(let a=0;ao?i:o):e.componentData[a].colorChannels===3&&e.componentData[a].rGBTransferFunction&&(o=e.componentData[a].rGBTransferFunction.getMTime(),i=i>o?i:o),e.componentData[a].scalarOpacity&&(o=e.componentData[a].scalarOpacity.getMTime(),i=i>o?i:o),e.componentData[a].gradientOpacity&&(e.componentData[a].disableGradientOpacity||(o=e.componentData[a].gradientOpacity.getMTime(),i=i>o?i:o));return i},t.getColorChannels=i=>i<0||i>3?(Lv("Bad index - must be between 0 and 3"),0):e.componentData[i].colorChannels,t.setGrayTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,a=!1;return e.componentData[i].grayTransferFunction!==o&&(e.componentData[i].grayTransferFunction=o,a=!0),e.componentData[i].colorChannels!==1&&(e.componentData[i].colorChannels=1,a=!0),a&&t.modified(),a},t.getGrayTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].grayTransferFunction===null&&(e.componentData[i].grayTransferFunction=ju.newInstance(),e.componentData[i].grayTransferFunction.addPoint(0,0),e.componentData[i].grayTransferFunction.addPoint(1024,1),e.componentData[i].colorChannels!==1&&(e.componentData[i].colorChannels=1),t.modified()),e.componentData[i].grayTransferFunction},t.setRGBTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,a=!1;return e.componentData[i].rGBTransferFunction!==o&&(e.componentData[i].rGBTransferFunction=o,a=!0),e.componentData[i].colorChannels!==3&&(e.componentData[i].colorChannels=3,a=!0),a&&t.modified(),a},t.getRGBTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].rGBTransferFunction===null&&(e.componentData[i].rGBTransferFunction=Xs.newInstance(),e.componentData[i].rGBTransferFunction.addRGBPoint(0,0,0,0),e.componentData[i].rGBTransferFunction.addRGBPoint(1024,1,1,1),e.componentData[i].colorChannels!==3&&(e.componentData[i].colorChannels=3),t.modified()),e.componentData[i].rGBTransferFunction},t.setScalarOpacity=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.componentData[i].scalarOpacity!==o?(e.componentData[i].scalarOpacity=o,t.modified(),!0):!1},t.getScalarOpacity=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].scalarOpacity===null&&(e.componentData[i].scalarOpacity=ju.newInstance(),e.componentData[i].scalarOpacity.addPoint(0,1),e.componentData[i].scalarOpacity.addPoint(1024,1),t.modified()),e.componentData[i].scalarOpacity},t.setComponentWeight=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(i<0||i>=Lp)return Lv("Invalid index"),!1;const a=Math.min(1,Math.max(0,o));return e.componentData[i].componentWeight!==a?(e.componentData[i].componentWeight=a,t.modified(),!0):!1},t.getComponentWeight=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return i<0||i>=Lp?(Lv("Invalid index"),0):e.componentData[i].componentWeight},t.setInterpolationTypeToNearest=()=>t.setInterpolationType(bf.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(bf.LINEAR),t.setInterpolationTypeToFastLinear=()=>t.setInterpolationType(bf.FAST_LINEAR),t.getInterpolationTypeAsString=()=>W.enumToString(bf,e.interpolationType),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(i=>{const o=W.capitalize(i);t[`set${o}`]=(a,s)=>e.componentData[a][`${i}`]!==s?(e.componentData[a][`${i}`]=s,t.modified(),!0):!1}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(i=>{const o=W.capitalize(i);t[`get${o}`]=a=>e.componentData[a][`${i}`]})}const uZ={colorMixPreset:null,independentComponents:!0,interpolationType:bf.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1};function qO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,uZ,r),W.obj(t,e),!e.componentData){e.componentData=[];for(let n=0;nt,t.makeProperty=dZ.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const r=e.mapper.getBounds();if(!r||r.length!==6)return r;if(r[0]>r[1])return e.mapperBounds=r.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),r;const n=i=>i[0].map((o,a)=>i.map(s=>s[a]));if(!e.mapperBounds||!n([r,e.mapperBounds]).reduce((i,o)=>i&&o[0]===o[1],!0)||t.getMTime()>e.boundsMTime.getMTime()){hZ("Recomputing bounds..."),e.mapperBounds=r.map(a=>a);const i=[];Xt.getCorners(r,i),t.computeMatrix();const o=new Float64Array(16);St(o,e.matrix),i.forEach(a=>et(a,a,o)),e.bounds[0]=e.bounds[2]=e.bounds[4]=Number.MAX_VALUE,e.bounds[1]=e.bounds[3]=e.bounds[5]=-Number.MAX_VALUE,e.bounds=e.bounds.map((a,s)=>s%2===0?i.reduce((c,l)=>c>l[s/2]?l[s/2]:c,a):i.reduce((c,l)=>c{let r=e.mtime;if(e.property!==null){const n=e.property.getMTime();r=n>r?n:r}return r},t.getRedrawMTime=()=>{let r=e.mtime;if(e.mapper!==null){let n=e.mapper.getMTime();r=n>r?n:r,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),n=e.mapper.getInput().getMTime(),r=n>r?n:r)}return r}}const pZ={mapper:null,property:null,bounds:[1,-1,1,-1,1,-1]};function XO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pZ,r),jw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["mapper"]),W.getArray(t,e,["bounds"],6),gZ(t,e)}const mZ=W.newInstance(XO,"vtkVolume");var vZ={newInstance:mZ,extend:XO};const{vtkErrorMacro:yZ}=W;class xZ{constructor(){this.segmentMapping={},this.segments=[null],this.faces=[]}addSegment(e){const r=e[0],n=e[e.length-1];if(r===n||e.length<2)return;const i=this.segmentMapping[r],o=this.segmentMapping[n];if(i!==void 0&&o!==void 0)if(Math.abs(i)===Math.abs(o)){const a=i0)for(let c=1;c0){const a=this.segments[i];for(let s=1;s0){const a=this.segments[o];for(let s=1;s{const i=r[0];if(!i){yZ("Invalid or missing input");return}const o=dr.newInstance();o.shallowCopy(i);const a=new xZ,s=i.getLines().getData();let c=0;for(;c2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CZ,r),W.obj(t,e),W.algo(t,e,1,1),wZ(t,e)}const SZ=W.newInstance(YO,"vtkClosedPolyLineToSurfaceFilter");var TZ={newInstance:SZ,extend:YO};const{vtkErrorMacro:g8}=Gr;function _Z(t){const e=t.getPolys().getData(),r=t.getStrips().getData(),n={cellSize:0,cell:[],done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next(){if(n.polyIdx{let i=r.getMTime();return e.cutFunction&&(i=Math.max(i,e.cutFunction.getMTime())),i};function n(i,o){const a=i.getPoints(),s=a.getData(),c=a.getNumberOfPoints(),l=[],f=[],u=[];(!e.cutScalars||e.cutScalars.length0;let C=!0;for(let _=1;_0!==w){C=!1;break}if(C)continue;const S=[];for(let _=0;_0;if(x[E]>0===D)continue;let I=_,R=E,M=x[R]-x[I];M<=0&&(I=E,R=_,M*=-1);let L=0;M!==0&&(L=(e.cutValue-x[I])/M);const A=y.cell[I],G=y.cell[R];p[0]=s[A*3],p[1]=s[A*3+1],p[2]=s[A*3+2],v[0]=s[G*3],v[1]=s[G*3+1],v[2]=s[G*3+2];const P=[p[0]+L*(v[0]-p[0]),p[1]+L*(v[1]-p[1]),p[2]+L*(v[2]-p[2])];S.push({pointEdge1:A,pointEdge2:G,intersectedPoint:P,newPointID:-1})}for(let _=0;_2&&(u.push(T),S.forEach(_=>{u.push(_.newPointID)}))}o.getPoints().setData($m(a.getDataType(),l),3),f.length!==0&&o.getLines().setData(Uint16Array.from(f)),u.length!==0&&o.getPolys().setData(Uint16Array.from(u))}t.requestData=(i,o)=>{const a=i[0];if(!a){g8("Invalid or missing input");return}if(!e.cutFunction){g8("Missing cut function");return}const s=dr.newInstance();n(a,s),o[0]=s}}const DZ={cutFunction:null,cutScalars:null,cutValue:0};function JO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,DZ,r),fn(t,e),Hx(t,e,1,1),Jn(t,e,["cutFunction","cutValue"]),EZ(t,e)}const bZ=Bt(JO,"vtkCutter");var IZ={newInstance:bZ,extend:JO};const OZ=[2,0,1,2,2,3,2,4,5,2,6,7,2,0,2,2,1,3,2,4,6,2,5,7,2,0,4,2,1,5,2,2,6,2,3,7],MZ=[4,0,1,3,2,4,4,6,7,5,4,8,10,11,9,4,12,13,15,14,4,16,18,19,17,4,20,21,23,22];function RZ(t,e){e.classHierarchy.push("vtkCubeSource");function r(n,i){if(e.deleted)return;const o=dr.newInstance();i[0]=o;const a=24,s=W.newTypedArray(e.pointType,a*3);o.getPoints().setData(s,3);const c=W.newTypedArray(e.pointType,a*3),l=tt.newInstance({name:"Normals",values:c,numberOfComponents:3});o.getPointData().setNormals(l);let f=2;e.generate3DTextureCoordinates===!0&&(f=3);const u=W.newTypedArray(e.pointType,a*f),d=tt.newInstance({name:"TextureCoordinates",values:u,numberOfComponents:f});o.getPointData().setTCoords(d);const h=[0,0,0],g=[0,0,0],p=[0,0];let v=0;h[0]=-e.xLength/2,g[0]=-1,g[1]=0,g[2]=0;for(let x=0;x<2;x++){h[1]=-e.yLength/2;for(let m=0;m<2;m++){p[1]=h[1]+.5,h[2]=-e.zLength/2;for(let y=0;y<2;y++)p[0]=(h[2]+.5)*(1-2*x),s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*x-1,u[v*f+1]=2*m-1,u[v*f+2]=2*y-1),v++,h[2]+=e.zLength;h[1]+=e.yLength}h[0]+=e.xLength,g[0]+=2}h[1]=-e.yLength/2,g[1]=-1,g[0]=0,g[2]=0;for(let x=0;x<2;x++){h[0]=-e.xLength/2;for(let m=0;m<2;m++){p[0]=(h[0]+.5)*(2*x-1),h[2]=-e.zLength/2;for(let y=0;y<2;y++)p[1]=(h[2]+.5)*-1,s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*m-1,u[v*f+1]=2*x-1,u[v*f+2]=2*y-1),v++,h[2]+=e.zLength;h[0]+=e.xLength}h[1]+=e.yLength,g[1]+=2}h[2]=-e.zLength/2,g[2]=-1,g[0]=0,g[1]=0;for(let x=0;x<2;x++){h[1]=-e.yLength/2;for(let m=0;m<2;m++){p[1]=h[1]+.5,h[0]=-e.xLength/2;for(let y=0;y<2;y++)p[0]=(h[0]+.5)*(2*x-1),s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*y-1,u[v*f+1]=2*m-1,u[v*f+2]=2*x-1),v++,h[0]+=e.xLength;h[1]+=e.yLength}h[2]+=e.zLength,g[2]+=2}if(e.rotations&&Ir.buildFromDegree().rotateX(e.rotations[0]).rotateY(e.rotations[1]).rotateZ(e.rotations[2]).apply(s).apply(c),e.center&&Ir.buildFromRadian().translate(...e.center).apply(s),e.matrix){Ir.buildFromRadian().setMatrix(e.matrix).apply(s);const x=[e.matrix[0],e.matrix[1],e.matrix[2],0,e.matrix[4],e.matrix[5],e.matrix[6],0,e.matrix[8],e.matrix[9],e.matrix[10],0,0,0,0,1];Ir.buildFromRadian().setMatrix(x).apply(c)}e.generateFaces?o.getPolys().deepCopy(e._polys):o.getPolys().initialize(),e.generateLines?(o.getLines().deepCopy(e._lineCells),o.getPointData().setNormals(null)):o.getLines().initialize(),o.modified()}t.setBounds=function(){let n=[];if(Array.isArray(arguments.length<=0?void 0:arguments[0]))n=arguments.length<=0?void 0:arguments[0];else for(let i=0;i2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,LZ,r),W.obj(t,e),W.setGet(t,e,["xLength","yLength","zLength","generate3DTextureCoordinates","generateFaces","generateLines"]),W.setGetArray(t,e,["center","rotations"],3),W.setGetArray(t,e,["matrix"],16),e._polys=ll.newInstance({values:Uint16Array.from(MZ)}),e._lineCells=ll.newInstance({values:Uint16Array.from(OZ)}),W.moveToProtected(t,e,["polys","lineCells"]),W.algo(t,e,0,1),RZ(t,e)}const NZ=W.newInstance(ZO,"vtkCubeSource");var QO={newInstance:NZ,extend:ZO};const{vtkErrorMacro:p8}=W;function PZ(t,e){e.classHierarchy.push("vtkImageDataOutlineFilter");const r={...t};t.requestData=(n,i)=>{const o=n[0];if(!o||!o.isA("vtkImageData")){p8("Invalid or missing input");return}const a=o.getSpatialExtent();if(!a){p8("Unable to fetch spatial extents of input image.");return}e._cubeSource.setBounds(a),e._cubeSource.setMatrix(o.getIndexToWorld()),i[0]=e._cubeSource.getOutputData()},t.getMTime=()=>Math.max(r.getMTime(),e._cubeSource.getMTime()),t.setGenerateFaces=e._cubeSource.setGenerateFaces,t.setGenerateLines=e._cubeSource.setGenerateLines,t.getGenerateFaces=e._cubeSource.getGenerateFaces,t.getGenerateLines=e._cubeSource.getGenerateLines}const AZ={};function eM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,AZ,r),W.obj(t,e),W.algo(t,e,1,1),e._cubeSource=QO.newInstance(),W.moveToProtected(t,e,["cubeSource","tmpOut"]),PZ(t,e)}const kZ=W.newInstance(eM,"vtkImageDataOutlineFilter");var VZ={newInstance:kZ,extend:eM};let Qw;function FZ(t,e){e.classHierarchy.push("vtkAbstractTransform","vtkHomogeneousTransform","vtkTransform"),t.transformPoint=(r,n)=>(et(n,r,e.matrix),n),t.transformPoints=(r,n)=>{const i=new Float64Array(3),o=new Float64Array(3);for(let a=0;a{t.setPreMultiplyFlag(!0)},t.postMultiply=()=>{t.setPreMultiplyFlag(!1)},t.transformMatrix=(r,n)=>(e.preMultiplyFlag?bt(n,e.matrix,r):bt(n,r,e.matrix),n),t.transformMatrices=(r,n)=>{const i=new Float64Array(16),o=new Float64Array(16),a=e.preMultiplyFlag?()=>bt(o,e.matrix,i):()=>bt(o,i,e.matrix);for(let s=0;sQw({matrix:nt.invertMatrix(Array.from(e.matrix),[],4),preMultiplyFlag:e.preMultiplyFlag})}const UZ={preMultiplyFlag:!1,matrix:[...nw]};function tM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,UZ,r),W.obj(t,e),W.setGet(t,e,["preMultiplyFlag"]),W.setGetArray(t,e,["matrix"],16),FZ(t,e)}Qw=W.newInstance(tM,"vtkTransform");var BZ={newInstance:Qw,extend:tM},GZ=`//VTK::System::Dec + */const FO=Symbol("Comlink.proxy"),KJ=Symbol("Comlink.endpoint"),UO=Symbol("Comlink.releaseProxy"),Nv=Symbol("Comlink.finalizer"),Np=Symbol("Comlink.thrown"),BO=t=>typeof t=="object"&&t!==null||typeof t=="function",qJ={canHandle:t=>BO(t)&&t[FO],serialize(t){const{port1:e,port2:r}=new MessageChannel;return WO(t,e),[r,[r]]},deserialize(t){return t.start(),Z5(t)}},XJ={canHandle:t=>BO(t)&&Np in t,serialize({value:t}){let e;return t instanceof Error?e={isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:e={isError:!1,value:t},[e,[]]},deserialize(t){throw t.isError?Object.assign(new Error(t.value.message),t.value):t.value}},GO=new Map([["proxy",qJ],["throw",XJ]]);function YJ(t,e){for(const r of t)if(e===r||r==="*"||r instanceof RegExp&&r.test(e))return!0;return!1}function WO(t,e=globalThis,r=["*"]){e.addEventListener("message",function n(i){if(!i||!i.data)return;if(!YJ(r,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}const{id:o,type:a,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(Nc);let l;try{const f=s.slice(0,-1).reduce((d,h)=>d[h],t),u=s.reduce((d,h)=>d[h],t);switch(a){case"GET":l=u;break;case"SET":f[s.slice(-1)[0]]=Nc(i.data.value),l=!0;break;case"APPLY":l=u.apply(f,c);break;case"CONSTRUCT":{const d=new u(...c);l=HO(d)}break;case"ENDPOINT":{const{port1:d,port2:h}=new MessageChannel;WO(t,h),l=tZ(d,[d])}break;case"RELEASE":l=void 0;break;default:return}}catch(f){l={value:f,[Np]:0}}Promise.resolve(l).catch(f=>({value:f,[Np]:0})).then(f=>{const[u,d]=z1(f);e.postMessage(Object.assign(Object.assign({},u),{id:o}),d),a==="RELEASE"&&(e.removeEventListener("message",n),zO(e),Nv in t&&typeof t[Nv]=="function"&&t[Nv]())}).catch(f=>{const[u,d]=z1({value:new TypeError("Unserializable return value"),[Np]:0});e.postMessage(Object.assign(Object.assign({},u),{id:o}),d)})}),e.start&&e.start()}function JJ(t){return t.constructor.name==="MessagePort"}function zO(t){JJ(t)&&t.close()}function Z5(t,e){return Q5(t,[],e)}function Sg(t){if(t)throw new Error("Proxy has been released and is not useable")}function $O(t){return Kl(t,{type:"RELEASE"}).then(()=>{zO(t)})}const G1=new WeakMap,W1="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{const e=(G1.get(t)||0)-1;G1.set(t,e),e===0&&$O(t)});function ZJ(t,e){const r=(G1.get(e)||0)+1;G1.set(e,r),W1&&W1.register(t,e,t)}function QJ(t){W1&&W1.unregister(t)}function Q5(t,e=[],r=function(){}){let n=!1;const i=new Proxy(r,{get(o,a){if(Sg(n),a===UO)return()=>{QJ(i),$O(t),n=!0};if(a==="then"){if(e.length===0)return{then:()=>i};const s=Kl(t,{type:"GET",path:e.map(c=>c.toString())}).then(Nc);return s.then.bind(s)}return Q5(t,[...e,a])},set(o,a,s){Sg(n);const[c,l]=z1(s);return Kl(t,{type:"SET",path:[...e,a].map(f=>f.toString()),value:c},l).then(Nc)},apply(o,a,s){Sg(n);const c=e[e.length-1];if(c===KJ)return Kl(t,{type:"ENDPOINT"}).then(Nc);if(c==="bind")return Q5(t,e.slice(0,-1));const[l,f]=g8(s);return Kl(t,{type:"APPLY",path:e.map(u=>u.toString()),argumentList:l},f).then(Nc)},construct(o,a){Sg(n);const[s,c]=g8(a);return Kl(t,{type:"CONSTRUCT",path:e.map(l=>l.toString()),argumentList:s},c).then(Nc)}});return ZJ(i,t),i}function eZ(t){return Array.prototype.concat.apply([],t)}function g8(t){const e=t.map(z1);return[e.map(r=>r[0]),eZ(e.map(r=>r[1]))]}const jO=new WeakMap;function tZ(t,e){return jO.set(t,e),t}function HO(t){return Object.assign(t,{[FO]:!0})}function z1(t){for(const[e,r]of GO)if(r.canHandle(t)){const[n,i]=r.serialize(t);return[{type:"HANDLER",name:e,value:n},i]}return[{type:"RAW",value:t},jO.get(t)||[]]}function Nc(t){switch(t.type){case"HANDLER":return GO.get(t.name).deserialize(t.value);case"RAW":return t.value}}function Kl(t,e,r){return new Promise(n=>{const i=nZ();t.addEventListener("message",function o(a){!a.data||!a.data.id||a.data.id!==i||(t.removeEventListener("message",o),n(a.data))}),t.start&&t.start(),t.postMessage(Object.assign({id:i},e),r)})}function nZ(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}class Xw{constructor(e){this.numRequests={[ht.Interaction]:0,[ht.Thumbnail]:0,[ht.Prefetch]:0,[ht.Compute]:0},this.id=e||wn(),this.requestPool={[ht.Interaction]:{0:[]},[ht.Thumbnail]:{0:[]},[ht.Prefetch]:{0:[]},[ht.Compute]:{0:[]}},this.grabDelay=5,this.awake=!1,this.numRequests={[ht.Interaction]:0,[ht.Thumbnail]:0,[ht.Prefetch]:0,[ht.Compute]:0},this.maxNumRequests={[ht.Interaction]:6,[ht.Thumbnail]:6,[ht.Prefetch]:5,[ht.Compute]:1e3}}setMaxSimultaneousRequests(e,r){this.maxNumRequests[e]=r}getMaxSimultaneousRequests(e){return this.maxNumRequests[e]}destroy(){this.timeoutHandle&&window.clearTimeout(this.timeoutHandle)}addRequest(e,r,n,i=0){const o={requestFn:e,type:r,additionalDetails:n};this.requestPool[r][i]===void 0&&(this.requestPool[r][i]=[]),this.requestPool[r][i].push(o),this.startGrabbing()}filterRequests(e){Object.keys(this.requestPool).forEach(r=>{const n=this.requestPool[r];Object.keys(n).forEach(i=>{n[i]=n[i].filter(o=>e(o))})})}clearRequestStack(e){if(!this.requestPool[e])throw new Error(`No category for the type ${e} found`);this.requestPool[e]={0:[]}}sendRequests(e){const r=this.maxNumRequests[e]-this.numRequests[e];let n=0;for(let i=0;i{this.numRequests[e]--,this.startAgain()}):(this.numRequests[e]--,n++)}}return n&&this.startAgain(),!0}getNextRequest(e){const r=this.getSortedPriorityGroups(e);for(const n of r)if(this.requestPool[e][n].length)return this.requestPool[e][n].shift();return null}startGrabbing(){const e=this.sendRequests(ht.Interaction),r=this.sendRequests(ht.Thumbnail),n=this.sendRequests(ht.Prefetch),i=this.sendRequests(ht.Compute);!e&&!r&&!n&&!i&&(this.awake=!1)}startAgain(){this.awake&&(this.grabDelay!==void 0?this.timeoutHandle||(this.timeoutHandle=window.setTimeout(()=>{this.timeoutHandle=null,this.startGrabbing()},this.grabDelay)):this.startGrabbing())}getSortedPriorityGroups(e){return Object.keys(this.requestPool[e]).map(Number).filter(n=>this.requestPool[e][n].length).sort((n,i)=>n-i)}getRequestPool(){return this.requestPool}}class KO{constructor(){this.workerRegistry={},this.workerPoolManager=new Xw("webworker")}registerWorker(e,r,n={}){var c;const{maxWorkerInstances:i=1,overwrite:o=!1,autoTerminateOnIdle:a={enabled:!1,idleTimeThreshold:3e3}}=n;if(this.workerRegistry[e]&&!o){console.warn(`Worker type '${e}' is already registered...`);return}o&&((c=this.workerRegistry[e])!=null&&c.idleCheckIntervalId)&&clearInterval(this.workerRegistry[e].idleCheckIntervalId);const s={workerFn:null,instances:[],loadCounters:[],lastActiveTime:[],nativeWorkers:[],autoTerminateOnIdle:a.enabled,idleCheckIntervalId:null,idleTimeThreshold:a.idleTimeThreshold};s.loadCounters=Array(i).fill(0),s.lastActiveTime=Array(i).fill(null);for(let l=0;la!==null);let i=0,o=r.loadCounters[0]||0;for(let a=1;a{const f=async()=>{const{api:u,index:d}=this.getNextWorkerAPI(e);if(!u){const h=new Error(`No available worker instance for '${e}'`);console.error(h),l(h);return}try{let h=[];s.length&&(h=s.map(v=>HO(v)));const g=this.workerRegistry[e];g.processing=!0;const p=await u[r](n,...h);g.processing=!1,g.lastActiveTime[d]=Date.now(),g.autoTerminateOnIdle&&!g.idleCheckIntervalId&&g.idleTimeThreshold&&(g.idleCheckIntervalId=setInterval(()=>{this.terminateIdleWorkers(e,g.idleTimeThreshold)},g.idleTimeThreshold)),c(p)}catch(h){console.error(`Error executing method '${r}' on worker '${e}':`,h),l(h)}finally{this.workerRegistry[e].loadCounters[d]--}};this.workerPoolManager.addRequest(f,i,a,o)})}terminateIdleWorkers(e,r){const n=this.workerRegistry[e];if(n.processing)return;const i=Date.now();n.instances.forEach((o,a)=>{const s=n.lastActiveTime[a],c=s!==null&&n.loadCounters[a]>0,l=i-s;!c&&l>r&&this.terminateWorkerInstance(e,a)})}terminate(e){const r=this.workerRegistry[e];if(!r){console.error(`Worker type '${e}' is not registered.`);return}r.instances.forEach((n,i)=>{this.terminateWorkerInstance(e,i)})}terminateWorkerInstance(e,r){const n=this.workerRegistry[e],i=n.instances[r];i!==null&&(i[UO](),n.nativeWorkers[r].terminate(),n.instances[r]=null,n.lastActiveTime[r]=null)}}let If=!1;const e3={gpuTier:{tier:2},isMobile:!1,rendering:{useCPURendering:!1,preferSizeOverAccuracy:!1,strictZSpacingForVolumeViewport:!0},peerImport:t=>null};let Bc={...e3,rendering:{...e3.rendering}},Hf=null;function rZ(){const t=document.createElement("canvas");return t.getContext("webgl2")||t.getContext("webgl")||t.getContext("experimental-webgl")}function iZ(){const t=rZ();return t instanceof WebGLRenderingContext||t instanceof WebGL2RenderingContext}function qO(){return/iPad|iPhone|iPod/.test(navigator.platform)?!0:navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&navigator.platform.includes("MacIntel")}function oZ(t=Bc){var r;return If||(Bc=Zr(e3,t),qO()&&((r=t.rendering)!=null&&r.preferSizeOverAccuracy?Bc.rendering.preferSizeOverAccuracy=!0:console.log("norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits")),iZ()?console.log("CornerstoneRender: using GPU rendering"):(console.log("CornerstoneRender: GPU not detected, using CPU rendering"),Bc.rendering.useCPURendering=!0),If=!0,Hf||(Hf=new KO),If)}function Yw(){return!qO()}function Kf(){return Bc.rendering.useCPURendering}function aZ(){return If}function Jw(){return Bc}function cc(){return Hf||(Hf=new KO),Hf}function sZ(t){return Bc.peerImport(t)}function XO(t,e,r){return Math.abs(t-e)<=r}function cZ(t,e,r=1e-5){if(t.length!==e.length)return!1;for(let n=0;n0&&typeof t[0]=="number"}function pt(t,e,r=1e-5){return typeof t!=typeof e||t===null||e===null?!1:p8(t)&&p8(e)?XO(t,e,r):m8(t)&&m8(e)?cZ(t,e,r):!1}const YO=t=>typeof t=="number"?-t:t!=null&&t.map?t.map(YO):!t,t3=t=>typeof t=="number"?Math.abs(t):t!=null&&t.map?t.map(t3):t,JO=(t,e,r=void 0)=>pt(t,YO(e),r),lZ=(t,e,r=void 0)=>pt(t3(t),t3(e),r),Zw=new Map;function uZ(t){Zw.set(t.Name,t)}function Pd(t){return Zw.get(t)}function ZO(){return Array.from(Zw.keys())}function Qw(t,e){const r=U1.rgbPresetNames.map(s=>U1.getPresetByName(s)),n=ZO().map(s=>Pd(s)),o=r.concat(n).find(s=>{const{RGBPoints:c}=s;if(c.length!==t.length)return!1;for(let l=0;ll-f/4*Math.log((1-c)/c),a=Array.from({length:e},(c,l)=>(l+1)/(e+2)).flatMap(c=>[i(c,n,r),c,c,c,.5,0]),s=Ys.newInstance();return s.buildFunctionFromArray(tt.newInstance({values:a,numberOfComponents:6})),s}function Gn(t,e){return t.worldToIndex(e).map(Math.round)}function $1(t){const e=t.getSize(),r=[];for(let n=0;n{t.addRGBPoint(...r)}))}const hZ=Object.freeze(Object.defineProperty({__proto__:null,getTransferFunctionNodes:$1,setTransferFunctionNodes:c2},Symbol.toStringTag,{value:"Module"})),{InterpolationType:Of,OpacityMode:gZ}=XI,{vtkErrorMacro:Pv}=W,Pp=4;function pZ(t,e){e.classHierarchy.push("vtkVolumeProperty"),t.getMTime=()=>{let i=e.mtime,o;for(let a=0;ao?i:o):e.componentData[a].colorChannels===3&&e.componentData[a].rGBTransferFunction&&(o=e.componentData[a].rGBTransferFunction.getMTime(),i=i>o?i:o),e.componentData[a].scalarOpacity&&(o=e.componentData[a].scalarOpacity.getMTime(),i=i>o?i:o),e.componentData[a].gradientOpacity&&(e.componentData[a].disableGradientOpacity||(o=e.componentData[a].gradientOpacity.getMTime(),i=i>o?i:o));return i},t.getColorChannels=i=>i<0||i>3?(Pv("Bad index - must be between 0 and 3"),0):e.componentData[i].colorChannels,t.setGrayTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,a=!1;return e.componentData[i].grayTransferFunction!==o&&(e.componentData[i].grayTransferFunction=o,a=!0),e.componentData[i].colorChannels!==1&&(e.componentData[i].colorChannels=1,a=!0),a&&t.modified(),a},t.getGrayTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].grayTransferFunction===null&&(e.componentData[i].grayTransferFunction=qu.newInstance(),e.componentData[i].grayTransferFunction.addPoint(0,0),e.componentData[i].grayTransferFunction.addPoint(1024,1),e.componentData[i].colorChannels!==1&&(e.componentData[i].colorChannels=1),t.modified()),e.componentData[i].grayTransferFunction},t.setRGBTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,a=!1;return e.componentData[i].rGBTransferFunction!==o&&(e.componentData[i].rGBTransferFunction=o,a=!0),e.componentData[i].colorChannels!==3&&(e.componentData[i].colorChannels=3,a=!0),a&&t.modified(),a},t.getRGBTransferFunction=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].rGBTransferFunction===null&&(e.componentData[i].rGBTransferFunction=Ys.newInstance(),e.componentData[i].rGBTransferFunction.addRGBPoint(0,0,0,0),e.componentData[i].rGBTransferFunction.addRGBPoint(1024,1,1,1),e.componentData[i].colorChannels!==3&&(e.componentData[i].colorChannels=3),t.modified()),e.componentData[i].rGBTransferFunction},t.setScalarOpacity=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return e.componentData[i].scalarOpacity!==o?(e.componentData[i].scalarOpacity=o,t.modified(),!0):!1},t.getScalarOpacity=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[i].scalarOpacity===null&&(e.componentData[i].scalarOpacity=qu.newInstance(),e.componentData[i].scalarOpacity.addPoint(0,1),e.componentData[i].scalarOpacity.addPoint(1024,1),t.modified()),e.componentData[i].scalarOpacity},t.setComponentWeight=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(i<0||i>=Pp)return Pv("Invalid index"),!1;const a=Math.min(1,Math.max(0,o));return e.componentData[i].componentWeight!==a?(e.componentData[i].componentWeight=a,t.modified(),!0):!1},t.getComponentWeight=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return i<0||i>=Pp?(Pv("Invalid index"),0):e.componentData[i].componentWeight},t.setInterpolationTypeToNearest=()=>t.setInterpolationType(Of.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(Of.LINEAR),t.setInterpolationTypeToFastLinear=()=>t.setInterpolationType(Of.FAST_LINEAR),t.getInterpolationTypeAsString=()=>W.enumToString(Of,e.interpolationType),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(i=>{const o=W.capitalize(i);t[`set${o}`]=(a,s)=>e.componentData[a][`${i}`]!==s?(e.componentData[a][`${i}`]=s,t.modified(),!0):!1}),["useGradientOpacity","scalarOpacityUnitDistance","gradientOpacityMinimumValue","gradientOpacityMinimumOpacity","gradientOpacityMaximumValue","gradientOpacityMaximumOpacity","opacityMode","forceNearestInterpolation"].forEach(i=>{const o=W.capitalize(i);t[`get${o}`]=a=>e.componentData[a][`${i}`]})}const mZ={colorMixPreset:null,independentComponents:!0,interpolationType:Of.FAST_LINEAR,shade:!1,ambient:.1,diffuse:.7,specular:.2,specularPower:10,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1};function QO(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,mZ,r),W.obj(t,e),!e.componentData){e.componentData=[];for(let n=0;nt,t.makeProperty=yZ.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const r=e.mapper.getBounds();if(!r||r.length!==6)return r;if(r[0]>r[1])return e.mapperBounds=r.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),r;const n=i=>i[0].map((o,a)=>i.map(s=>s[a]));if(!e.mapperBounds||!n([r,e.mapperBounds]).reduce((i,o)=>i&&o[0]===o[1],!0)||t.getMTime()>e.boundsMTime.getMTime()){xZ("Recomputing bounds..."),e.mapperBounds=r.map(a=>a);const i=[];qt.getCorners(r,i),t.computeMatrix();const o=new Float64Array(16);St(o,e.matrix),i.forEach(a=>et(a,a,o)),e.bounds[0]=e.bounds[2]=e.bounds[4]=Number.MAX_VALUE,e.bounds[1]=e.bounds[3]=e.bounds[5]=-Number.MAX_VALUE,e.bounds=e.bounds.map((a,s)=>s%2===0?i.reduce((c,l)=>c>l[s/2]?l[s/2]:c,a):i.reduce((c,l)=>c{let r=e.mtime;if(e.property!==null){const n=e.property.getMTime();r=n>r?n:r}return r},t.getRedrawMTime=()=>{let r=e.mtime;if(e.mapper!==null){let n=e.mapper.getMTime();r=n>r?n:r,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),n=e.mapper.getInput().getMTime(),r=n>r?n:r)}return r}}const CZ={mapper:null,property:null,bounds:[1,-1,1,-1,1,-1]};function eM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,CZ,r),Kw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["mapper"]),W.getArray(t,e,["bounds"],6),wZ(t,e)}const SZ=W.newInstance(eM,"vtkVolume");var TZ={newInstance:SZ,extend:eM};const{vtkErrorMacro:_Z}=W;class EZ{constructor(){this.segmentMapping={},this.segments=[null],this.faces=[]}addSegment(e){const r=e[0],n=e[e.length-1];if(r===n||e.length<2)return;const i=this.segmentMapping[r],o=this.segmentMapping[n];if(i!==void 0&&o!==void 0)if(Math.abs(i)===Math.abs(o)){const a=i0)for(let c=1;c0){const a=this.segments[i];for(let s=1;s0){const a=this.segments[o];for(let s=1;s{const i=r[0];if(!i){_Z("Invalid or missing input");return}const o=hr.newInstance();o.shallowCopy(i);const a=new EZ,s=i.getLines().getData();let c=0;for(;c2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bZ,r),W.obj(t,e),W.algo(t,e,1,1),DZ(t,e)}const IZ=W.newInstance(tM,"vtkClosedPolyLineToSurfaceFilter");var OZ={newInstance:IZ,extend:tM};const{vtkErrorMacro:v8}=Br;function MZ(t){const e=t.getPolys().getData(),r=t.getStrips().getData(),n={cellSize:0,cell:[],done:!1,polyIdx:0,stripIdx:0,remainingStripLength:0,next(){if(n.polyIdx{let i=r.getMTime();return e.cutFunction&&(i=Math.max(i,e.cutFunction.getMTime())),i};function n(i,o){const a=i.getPoints(),s=a.getData(),c=a.getNumberOfPoints(),l=[],f=[],u=[];(!e.cutScalars||e.cutScalars.length0;let C=!0;for(let _=1;_0!==w){C=!1;break}if(C)continue;const S=[];for(let _=0;_0;if(x[E]>0===D)continue;let I=_,R=E,M=x[R]-x[I];M<=0&&(I=E,R=_,M*=-1);let L=0;M!==0&&(L=(e.cutValue-x[I])/M);const A=y.cell[I],G=y.cell[R];p[0]=s[A*3],p[1]=s[A*3+1],p[2]=s[A*3+2],v[0]=s[G*3],v[1]=s[G*3+1],v[2]=s[G*3+2];const P=[p[0]+L*(v[0]-p[0]),p[1]+L*(v[1]-p[1]),p[2]+L*(v[2]-p[2])];S.push({pointEdge1:A,pointEdge2:G,intersectedPoint:P,newPointID:-1})}for(let _=0;_2&&(u.push(T),S.forEach(_=>{u.push(_.newPointID)}))}o.getPoints().setData(Hm(a.getDataType(),l),3),f.length!==0&&o.getLines().setData(Uint16Array.from(f)),u.length!==0&&o.getPolys().setData(Uint16Array.from(u))}t.requestData=(i,o)=>{const a=i[0];if(!a){v8("Invalid or missing input");return}if(!e.cutFunction){v8("Missing cut function");return}const s=hr.newInstance();n(a,s),o[0]=s}}const LZ={cutFunction:null,cutScalars:null,cutValue:0};function nM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,LZ,r),un(t,e),qx(t,e,1,1),Jn(t,e,["cutFunction","cutValue"]),RZ(t,e)}const NZ=Bt(nM,"vtkCutter");var PZ={newInstance:NZ,extend:nM};const AZ=[2,0,1,2,2,3,2,4,5,2,6,7,2,0,2,2,1,3,2,4,6,2,5,7,2,0,4,2,1,5,2,2,6,2,3,7],kZ=[4,0,1,3,2,4,4,6,7,5,4,8,10,11,9,4,12,13,15,14,4,16,18,19,17,4,20,21,23,22];function VZ(t,e){e.classHierarchy.push("vtkCubeSource");function r(n,i){if(e.deleted)return;const o=hr.newInstance();i[0]=o;const a=24,s=W.newTypedArray(e.pointType,a*3);o.getPoints().setData(s,3);const c=W.newTypedArray(e.pointType,a*3),l=tt.newInstance({name:"Normals",values:c,numberOfComponents:3});o.getPointData().setNormals(l);let f=2;e.generate3DTextureCoordinates===!0&&(f=3);const u=W.newTypedArray(e.pointType,a*f),d=tt.newInstance({name:"TextureCoordinates",values:u,numberOfComponents:f});o.getPointData().setTCoords(d);const h=[0,0,0],g=[0,0,0],p=[0,0];let v=0;h[0]=-e.xLength/2,g[0]=-1,g[1]=0,g[2]=0;for(let x=0;x<2;x++){h[1]=-e.yLength/2;for(let m=0;m<2;m++){p[1]=h[1]+.5,h[2]=-e.zLength/2;for(let y=0;y<2;y++)p[0]=(h[2]+.5)*(1-2*x),s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*x-1,u[v*f+1]=2*m-1,u[v*f+2]=2*y-1),v++,h[2]+=e.zLength;h[1]+=e.yLength}h[0]+=e.xLength,g[0]+=2}h[1]=-e.yLength/2,g[1]=-1,g[0]=0,g[2]=0;for(let x=0;x<2;x++){h[0]=-e.xLength/2;for(let m=0;m<2;m++){p[0]=(h[0]+.5)*(2*x-1),h[2]=-e.zLength/2;for(let y=0;y<2;y++)p[1]=(h[2]+.5)*-1,s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*m-1,u[v*f+1]=2*x-1,u[v*f+2]=2*y-1),v++,h[2]+=e.zLength;h[0]+=e.xLength}h[1]+=e.yLength,g[1]+=2}h[2]=-e.zLength/2,g[2]=-1,g[0]=0,g[1]=0;for(let x=0;x<2;x++){h[1]=-e.yLength/2;for(let m=0;m<2;m++){p[1]=h[1]+.5,h[0]=-e.xLength/2;for(let y=0;y<2;y++)p[0]=(h[0]+.5)*(2*x-1),s[v*3]=h[0],s[v*3+1]=h[1],s[v*3+2]=h[2],c[v*3]=g[0],c[v*3+1]=g[1],c[v*3+2]=g[2],f===2?(u[v*f]=p[0],u[v*f+1]=p[1]):(u[v*f]=2*y-1,u[v*f+1]=2*m-1,u[v*f+2]=2*x-1),v++,h[0]+=e.xLength;h[1]+=e.yLength}h[2]+=e.zLength,g[2]+=2}if(e.rotations&&br.buildFromDegree().rotateX(e.rotations[0]).rotateY(e.rotations[1]).rotateZ(e.rotations[2]).apply(s).apply(c),e.center&&br.buildFromRadian().translate(...e.center).apply(s),e.matrix){br.buildFromRadian().setMatrix(e.matrix).apply(s);const x=[e.matrix[0],e.matrix[1],e.matrix[2],0,e.matrix[4],e.matrix[5],e.matrix[6],0,e.matrix[8],e.matrix[9],e.matrix[10],0,0,0,0,1];br.buildFromRadian().setMatrix(x).apply(c)}e.generateFaces?o.getPolys().deepCopy(e._polys):o.getPolys().initialize(),e.generateLines?(o.getLines().deepCopy(e._lineCells),o.getPointData().setNormals(null)):o.getLines().initialize(),o.modified()}t.setBounds=function(){let n=[];if(Array.isArray(arguments.length<=0?void 0:arguments[0]))n=arguments.length<=0?void 0:arguments[0];else for(let i=0;i2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,FZ,r),W.obj(t,e),W.setGet(t,e,["xLength","yLength","zLength","generate3DTextureCoordinates","generateFaces","generateLines"]),W.setGetArray(t,e,["center","rotations"],3),W.setGetArray(t,e,["matrix"],16),e._polys=ul.newInstance({values:Uint16Array.from(kZ)}),e._lineCells=ul.newInstance({values:Uint16Array.from(AZ)}),W.moveToProtected(t,e,["polys","lineCells"]),W.algo(t,e,0,1),VZ(t,e)}const UZ=W.newInstance(rM,"vtkCubeSource");var iM={newInstance:UZ,extend:rM};const{vtkErrorMacro:y8}=W;function BZ(t,e){e.classHierarchy.push("vtkImageDataOutlineFilter");const r={...t};t.requestData=(n,i)=>{const o=n[0];if(!o||!o.isA("vtkImageData")){y8("Invalid or missing input");return}const a=o.getSpatialExtent();if(!a){y8("Unable to fetch spatial extents of input image.");return}e._cubeSource.setBounds(a),e._cubeSource.setMatrix(o.getIndexToWorld()),i[0]=e._cubeSource.getOutputData()},t.getMTime=()=>Math.max(r.getMTime(),e._cubeSource.getMTime()),t.setGenerateFaces=e._cubeSource.setGenerateFaces,t.setGenerateLines=e._cubeSource.setGenerateLines,t.getGenerateFaces=e._cubeSource.getGenerateFaces,t.getGenerateLines=e._cubeSource.getGenerateLines}const GZ={};function oM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,GZ,r),W.obj(t,e),W.algo(t,e,1,1),e._cubeSource=iM.newInstance(),W.moveToProtected(t,e,["cubeSource","tmpOut"]),BZ(t,e)}const WZ=W.newInstance(oM,"vtkImageDataOutlineFilter");var zZ={newInstance:WZ,extend:oM};let tC;function $Z(t,e){e.classHierarchy.push("vtkAbstractTransform","vtkHomogeneousTransform","vtkTransform"),t.transformPoint=(r,n)=>(et(n,r,e.matrix),n),t.transformPoints=(r,n)=>{const i=new Float64Array(3),o=new Float64Array(3);for(let a=0;a{t.setPreMultiplyFlag(!0)},t.postMultiply=()=>{t.setPreMultiplyFlag(!1)},t.transformMatrix=(r,n)=>(e.preMultiplyFlag?bt(n,e.matrix,r):bt(n,r,e.matrix),n),t.transformMatrices=(r,n)=>{const i=new Float64Array(16),o=new Float64Array(16),a=e.preMultiplyFlag?()=>bt(o,e.matrix,i):()=>bt(o,i,e.matrix);for(let s=0;stC({matrix:nt.invertMatrix(Array.from(e.matrix),[],4),preMultiplyFlag:e.preMultiplyFlag})}const jZ={preMultiplyFlag:!1,matrix:[...iw]};function aM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jZ,r),W.obj(t,e),W.setGet(t,e,["preMultiplyFlag"]),W.setGetArray(t,e,["matrix"],16),$Z(t,e)}tC=W.newInstance(aM,"vtkTransform");var HZ={newInstance:tC,extend:aM},KZ=`//VTK::System::Dec /*========================================================================= @@ -2735,7 +2735,7 @@ void main() //VTK::Picking::Impl } -`,WZ=`//VTK::System::Dec +`,qZ=`//VTK::System::Dec /*========================================================================= @@ -2802,12 +2802,12 @@ void main() //VTK::RenderPassFragmentShader::Impl } -`;const{vtkErrorMacro:gc}=Gr;function m8(t,e,r){return e.identity(r),t.reduce((n,i,o)=>o===0?i?e.copy(n,i):e.identity(n):i?e.multiply(n,n,i):n,r)}function zZ(t,e){e.classHierarchy.push("vtkOpenGLImageResliceMapper");function r(i){[e._scalars,e._colorTransferFunc,e._pwFunc].forEach(o=>i.unregisterGraphicsResourceUser(o,t))}t.buildPass=i=>{if(i){e.currentRenderPass=null,e._openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const o=e._openGLRenderer.getRenderable();e._openGLCamera=e._openGLRenderer.getViewNodeFor(o.getActiveCamera());const a=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),a&&!a.isDeleted()&&a!==e._openGLRenderWindow&&r(a),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow)}},t.translucentPass=(i,o)=>{i&&(e.currentRenderPass=o,t.render())},t.zBufferPass=i=>{i&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=i=>t.zBufferPass(i),t.opaquePass=i=>{i&&t.render()},t.getCoincidentParameters=(i,o)=>e.renderable.getResolveCoincidentTopology()==Ao.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const i=e._openGLImageSlice.getRenderable(),o=e._openGLRenderer.getRenderable();t.renderPiece(o,i)},t.renderPiece=(i,o)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getInputData(),!e.currentInput){gc("No input!");return}t.updateResliceGeometry(),t.renderPieceStart(i,o),t.renderPieceDraw(i,o),t.renderPieceFinish(i,o),t.invokeEvent({type:"EndEvent"})},t.renderPieceStart=(i,o)=>{t.updateBufferObjects(i,o),o.getProperty().getInterpolationType()===qc.NEAREST?(e.openGLTexture.setMinificationFilter(Je.NEAREST),e.openGLTexture.setMagnificationFilter(Je.NEAREST),e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST),e.pwfTexture.setMinificationFilter(Je.NEAREST),e.pwfTexture.setMagnificationFilter(Je.NEAREST)):(e.openGLTexture.setMinificationFilter(Je.LINEAR),e.openGLTexture.setMagnificationFilter(Je.LINEAR),e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR),e.pwfTexture.setMinificationFilter(Je.LINEAR),e.pwfTexture.setMagnificationFilter(Je.LINEAR)),e.lastBoundBO=null},t.renderPieceDraw=(i,o)=>{const a=e.context;e.openGLTexture.activate(),e.colorTexture.activate(),e.pwfTexture.activate(),t.updateShaders(e.tris,i,o),a.drawArrays(a.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.openGLTexture.deactivate(),e.colorTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(i,o)=>{},t.updateBufferObjects=(i,o)=>{t.getNeedToRebuildBufferObjects(i,o)&&t.buildBufferObjects(i,o)},t.getNeedToRebuildBufferObjects=(i,o)=>{var a,s,c;return e.VBOBuildTime.getMTime(){var T,_,E,D;const a=e.currentInput;if(!a)return;const s=(T=a.getPointData())==null?void 0:T.getScalars();if(!s)return;const c=s.getNumberOfComponents();let l=Bw(a,s);const f=e._openGLRenderWindow.getGraphicsResourceForObject(s);if(!((_=f==null?void 0:f.oglObject)!=null&&_.getHandle())||(f==null?void 0:f.hash)!==l){e.openGLTexture=yn.newInstance(),e.openGLTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const b=a.getDimensions();e.openGLTexture.setOglNorm16Ext(e.context.getExtension("EXT_texture_norm16")),e.openGLTexture.resetFormatAndType(),e.openGLTexture.create3DFilterableFromDataArray(b[0],b[1],b[2],s),e._openGLRenderWindow.setGraphicsResourceForObject(s,e.openGLTexture,l),s!==e._scalars&&(e._openGLRenderWindow.registerGraphicsResourceUser(s,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._scalars,t)),e._scalars=s}else e.openGLTexture=f.oglObject;const d=o.getProperty(),h=d.getIndependentComponents(),g=h?c:1,p=h?2*g:1,v=d.getRGBTransferFunction();l=aa(v,h,g);const x=e._openGLRenderWindow.getGraphicsResourceForObject(v);if(!((E=x==null?void 0:x.oglObject)!=null&&E.getHandle())||(x==null?void 0:x.hash)!==l){const I=1024*p*3,R=new Uint8ClampedArray(I);if(e.colorTexture=yn.newInstance(),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow),v){const M=new Float32Array(3072);for(let L=0;L0){const M=e.resliceGeom.getPointData().getNormals();M?R.normals=M:gc("Slab mode requested without normals")}e.tris.getCABO().createVBO(I,"polys",Vr.SURFACE,R)}e.VBOBuildString=S,e.VBOBuildTime.modified()},t.updateShaders=(i,o,a)=>{if(e.lastBoundBO=i,t.getNeedToRebuildShaders(i,o,a)){const s={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(s,o,a);const c=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(s.Vertex,s.Fragment,s.Geometry);c!==i.getProgram()&&(i.setProgram(c),i.getVAO().releaseGraphicsResources()),i.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(i.getProgram());i.getVAO().bind(),t.setMapperShaderParameters(i,o,a),t.setCameraShaderParameters(i,o,a),t.setPropertyShaderParameters(i,o,a)},t.setMapperShaderParameters=(i,o,a)=>{const s=i.getProgram();if(i.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>i.getAttributeUpdateTime().getMTime()||i.getShaderSourceTime().getMTime()>i.getAttributeUpdateTime().getMTime())){s.isUniformUsed("texture1")&&s.setUniformi("texture1",e.openGLTexture.getTextureUnit()),s.isAttributeUsed("vertexWC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"vertexWC",i.getCABO().getVertexOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||gc("Error setting vertexWC in shader VAO.")),s.isAttributeUsed("normalWC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"normalWC",i.getCABO().getNormalOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||gc("Error setting normalWC in shader VAO.")),s.isUniformUsed("slabThickness")&&s.setUniformf("slabThickness",e.renderable.getSlabThickness()),s.isUniformUsed("spacing")&&s.setUniform3fv("spacing",e.currentInput.getSpacing()),s.isUniformUsed("slabType")&&s.setUniformi("slabType",e.renderable.getSlabType()),s.isUniformUsed("slabType")&&s.setUniformi("slabType",e.renderable.getSlabType()),s.isUniformUsed("slabTrapezoid")&&s.setUniformi("slabTrapezoid",e.renderable.getSlabTrapezoidIntegration());const l=i.getCABO().getCoordShiftAndScaleEnabled()?i.getCABO().getInverseShiftAndScaleMatrix():null;if(s.isUniformUsed("WCTCMatrix")){const f=e.currentInput,u=f.getDimensions();En(e.tmpMat4,f.getIndexToWorld()),rn(e.tmpMat4,e.tmpMat4,[-.5,-.5,-.5]),ja(e.tmpMat4,e.tmpMat4,u),$n(e.tmpMat4,e.tmpMat4),l&&bt(e.tmpMat4,e.tmpMat4,l),s.setUniformMatrix("WCTCMatrix",e.tmpMat4)}s.isUniformUsed("vboScaling")&&s.setUniform3fv("vboScaling",i.getCABO().getCoordScale()??[1,1,1]),i.getAttributeUpdateTime().modified()}if(e.haveSeenDepthRequest&&i.getProgram().setUniformi("depthRequest",e.renderDepth?1:0),i.getProgram().isUniformUsed("coffset")){const c=t.getCoincidentParameters(o,a);i.getProgram().setUniformf("coffset",c.offset),i.getProgram().isUniformUsed("cfactor")&&i.getProgram().setUniformf("cfactor",c.factor)}},t.setCameraShaderParameters=(i,o,a)=>{const s=e._openGLCamera.getKeyMatrices(o),c=e._openGLImageSlice.getKeyMatrices(),f=i.getCABO().getCoordShiftAndScaleEnabled()?i.getCABO().getInverseShiftAndScaleMatrix():null,u=i.getProgram();u.isUniformUsed("MCPCMatrix")&&(qe(e.tmpMat4),u.setUniformMatrix("MCPCMatrix",m8([s.wcpc,c.mcwc,f],bd,e.tmpMat4))),u.isUniformUsed("MCVCMatrix")&&(qe(e.tmpMat4),u.setUniformMatrix("MCVCMatrix",m8([s.wcvc,c.mcwc,f],bd,e.tmpMat4)))},t.setPropertyShaderParameters=(i,o,a)=>{const s=i.getProgram(),c=a.getProperty(),l=c.getOpacity();s.setUniformf("opacity",l);const f=e.openGLTexture.getComponents(),u=c.getIndependentComponents();if(u)for(let p=0;p{var h;const s=e.openGLTexture.getComponents(),c=a.getProperty().getIndependentComponents(),l=e.renderable.getSlabThickness(),f=e.renderable.getSlabType(),u=e.renderable.getSlabTrapezoidIntegration();let d=!1;return(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(d=!0),d||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||((h=i.getProgram())==null?void 0:h.getHandle())===0||e.lastTextureComponents!==s||e.lastIndependentComponents!==c||e.lastSlabThickness!==l||e.lastSlabType!==f||e.lastSlabTrapezoidIntegration!==u?(e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=s,e.lastIndependentComponents=c,e.lastSlabThickness=l,e.lastSlabType=f,e.lastSlabTrapezoidIntegration=u,!0):!1},t.getShaderTemplate=(i,o,a)=>{i.Vertex=GZ,i.Fragment=WZ,i.Geometry=""},t.replaceShaderValues=(i,o,a)=>{if(t.replaceShaderTCoord(i,o,a),t.replaceShaderPositionVC(i,o,a),e.haveSeenDepthRequest){let s=i.Fragment;s=ce.substitute(s,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,i.Fragment=s}t.replaceShaderCoincidentOffset(i,o,a)},t.replaceShaderTCoord=(i,o,a)=>{let s=i.Vertex;const c=i.Geometry;let l=i.Fragment;const f=["uniform mat4 WCTCMatrix;","out vec3 fragTexCoord;"],u=e.renderable.getSlabThickness();s=ce.substitute(s,"//VTK::TCoord::Dec",f).result;const d=["fragTexCoord = (WCTCMatrix * vertexWC).xyz;"];s=ce.substitute(s,"//VTK::TCoord::Impl",d).result;const h=e.openGLTexture.getComponents(),g=a.getProperty().getIndependentComponents();let p=["in vec3 fragTexCoord;","uniform highp sampler3D texture1;","uniform mat4 WCTCMatrix;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;","uniform vec4 backgroundColor;"];if(g){for(let x=1;x0&&(p=p.concat(["uniform vec3 spacing;","uniform float slabThickness;","uniform int slabType;","uniform int slabTrapezoid;","uniform vec3 vboScaling;"]),p=p.concat(["vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)","{"," vec4 retVal = vec4(1.0);"," if (slabType == 0) // min"," {"," retVal = min(currVal, valToComp);"," }"," else if (slabType == 1) // max"," {"," retVal = max(currVal, valToComp);"," }"," else if (slabType == 3) // sum"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," else // mean"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," return retVal;","}"])),l=ce.substitute(l,"//VTK::TCoord::Dec",p).result;let v=["if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))","{"," // set the background color and exit"," gl_FragData[0] = backgroundColor;"," return;","}","vec4 tvalue = texture(texture1, fragTexCoord);"];if(u>0&&(v=v.concat(["// Get the first and last samples","int numSlices = 1;","float scaling = min(min(spacing.x, spacing.y), spacing.z) * 0.5;","vec3 normalxspacing = scaling * normalWCVSOutput;","float distTraveled = length(normalxspacing);","int trapezoid = 0;","while (distTraveled < slabThickness * 0.5)","{"," distTraveled += length(normalxspacing);"," float fnumSlices = float(numSlices);"," if (distTraveled > slabThickness * 0.5)"," {"," // Before stepping outside the slab, sample at the boundaries"," normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;"," trapezoid = slabTrapezoid;"," }"," vec3 fragTCoordNeg = (WCTCMatrix * vec4(vertexWCVSOutput.xyz - fnumSlices * normalxspacing * vboScaling, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordNeg);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }"," vec3 fragTCoordPos = (WCTCMatrix * vec4(vertexWCVSOutput.xyz + fnumSlices * normalxspacing * vboScaling, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordPos);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }","}","// Finally, if slab type is *mean*, divide the sum by the numSlices","if (slabType == 2)","{"," tvalue = tvalue / float(numSlices);","}"])),g){const x=["r","g","b","a"];for(let m=0;m{let s=i.Vertex;const c=i.Geometry;let l=i.Fragment;const f=e.renderable.getSlabThickness();let u=["attribute vec4 vertexWC;"];u=u.concat([`//${t.getMTime()}${e.resliceGeomUpdateString}`]),f>0&&(u=u.concat(["attribute vec3 normalWC;","varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),s=ce.substitute(s,"//VTK::PositionVC::Dec",u).result;let d=["gl_Position = MCPCMatrix * vertexWC;"];f>0&&(d=d.concat(["normalWCVSOutput = normalWC;","vertexWCVSOutput = vertexWC;"])),s=ce.substitute(s,"//VTK::PositionVC::Impl",d).result,s=ce.substitute(s,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result;let h=[];f>0&&(h=h.concat(["varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),l=ce.substitute(l,"//VTK::PositionVC::Dec",h).result,i.Vertex=s,i.Geometry=c,i.Fragment=l};function n(i){nt.normalize(i);const o=[0,0,0];for(let a=0;a<3;++a){q$(o),o[a]=1;const s=nt.dot(i,o);if(s<-.999||s>.999)return[!0,a]}return[!1,2]}t.updateResliceGeometry=()=>{var u;let i="";const o=e.currentInput,a=o==null?void 0:o.getBounds();let s=!0,c=2;const l=e.renderable.getSlicePolyData(),f=e.renderable.getSlicePlane();if(l)i=i.concat(`PolyData${l.getMTime()}`);else if(f){i=i.concat(`Plane${f.getMTime()}`);const d=fw();o&&(i=i.concat(`Image${o.getMTime()}`),$7(d,...o.getDirection()),mh(d,d));const h=[...f.getNormal()];_p(h,h,d),[s,c]=n(h)}else{const d=Yr.newInstance();d.setNormal(0,0,1);let h=[0,1,0,1,0,1];o&&(h=a),d.setOrigin(h[0],h[2],.5*(h[5]+h[4])),e.renderable.setSlicePlane(d),i=i.concat(`Plane${f==null?void 0:f.getMTime()}`),o&&(i=i.concat(`Image${o.getMTime()}`))}if(!e.resliceGeom||e.resliceGeomUpdateString!==i){if(l)e.resliceGeom||(e.resliceGeom=dr.newInstance()),e.resliceGeom.getPoints().setData(l.getPoints().getData(),3),e.resliceGeom.getPolys().setData(l.getPolys().getData(),1),e.resliceGeom.getPointData().setNormals(l.getPointData().getNormals());else if(f)if(s){const d=new Float32Array(12),h=o.worldToIndex(f.getOrigin(),[0,0,0]),g=[(c+1)%3,(c+2)%3].sort(),p=o.getSpatialExtent();let v=0;for(let C=0;C<2;++C)for(let S=0;S<2;++S)d[v+c]=h[c],d[v+g[0]]=p[2*g[0]+S],d[v+g[1]]=p[2*g[1]+C],v+=3;e.transform.setMatrix(o.getIndexToWorld()),e.transform.transformPoints(d,d);const x=new Uint16Array(8);x[0]=3,x[1]=0,x[2]=1,x[3]=3,x[4]=3,x[5]=0,x[6]=3,x[7]=2;const m=f.getNormal();nt.normalize(m);const y=new Float32Array(12);for(let C=0;C<4;++C)y[3*C]=m[0],y[3*C+1]=m[1],y[3*C+2]=m[2];e.resliceGeom||(e.resliceGeom=dr.newInstance()),e.resliceGeom.getPoints().setData(d,3),e.resliceGeom.getPolys().setData(x,1);const w=tt.newInstance({numberOfComponents:3,values:y,name:"Normals"});e.resliceGeom.getPointData().setNormals(w)}else{e.outlineFilter.setInputData(o),e.cutter.setInputConnection(e.outlineFilter.getOutputPort()),e.cutter.setCutFunction(f),e.lineToSurfaceFilter.setInputConnection(e.cutter.getOutputPort()),e.lineToSurfaceFilter.update(),e.resliceGeom||(e.resliceGeom=dr.newInstance());const d=e.lineToSurfaceFilter.getOutputData();e.resliceGeom.getPoints().setData(d.getPoints().getData(),3),e.resliceGeom.getPolys().setData(d.getPolys().getData(),1),e.resliceGeom.getPointData().setNormals(d.getPointData().getNormals());const h=f.getNormal(),g=e.resliceGeom.getNumberOfPoints();nt.normalize(h);const p=new Float32Array(g*3);for(let x=0;x{i&&(e.openGLTexture=i,e._externalOpenGLTexture=!0)},t.delete=dh(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const $Z={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastTextureComponents:0,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,openGLTexture:null,colorTextureString:null,pwfTextureString:null,resliceGeom:null,resliceGeomUpdateString:null,tris:null,colorTexture:null,pwfTexture:null,_externalOpenGLTexture:!1};function jZ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$Z,r),nn.extend(t,e,r),oa.implementReplaceShaderCoincidentOffset(t,e,r),oa.implementBuildShadersWithReplacements(t,e,r),e.tris=ua.newInstance(),e.openGLTexture=null,e.colorTexture=null,e.pwfTexture=null,e.VBOBuildTime={},fn(e.VBOBuildTime),e.tmpMat4=qe(new Float64Array(16)),e.outlineFilter=VZ.newInstance(),e.outlineFilter.setGenerateFaces(!0),e.outlineFilter.setGenerateLines(!1),e.cubePolyData=dr.newInstance(),e.cutter=IZ.newInstance(),e.lineToSurfaceFilter=TZ.newInstance(),e.transform=BZ.newInstance(),gi(t,e,["openGLTexture"]),zZ(t,e)}const HZ=Bt(jZ,"vtkOpenGLImageResliceMapper");ir("vtkImageResliceMapper",HZ);const pc={MAX:0,MIN:1,AVERAGE:2},{vtkErrorMacro:Cg}=W;function KZ(t,e){e.classHierarchy.push("vtkOpenGLImageCPRMapper");function r(n){[e._scalars,e._colorTransferFunc,e._pwFunc].forEach(i=>n.unregisterGraphicsResourceUser(i,t))}t.buildPass=n=>{if(n){e.currentRenderPass=null,e.openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const i=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),i&&!i.isDeleted()&&i!==e._openGLRenderWindow&&r(i),e.context=e._openGLRenderWindow.getContext(),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow)}},t.opaquePass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.opaqueZBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.getCoincidentParameters=(n,i)=>e.renderable.getResolveCoincidentTopology()===Ao.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const n=e.openGLImageSlice.getRenderable(),i=e._openGLRenderer.getRenderable();t.renderPiece(i,n)},t.renderPiece=(n,i)=>{t.invokeEvent({type:"StartEvent"}),e.renderable.update(),t.invokeEvent({type:"EndEvent"}),e.renderable.preRenderCheck()&&(e.currentImageDataInput=e.renderable.getInputData(0),e.currentCenterlineInput=e.renderable.getOrientedCenterline(),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i))},t.renderPieceStart=(n,i)=>{t.updateBufferObjects(n,i)},t.renderPieceDraw=(n,i)=>{const o=e.context;e.volumeTexture.activate(),e.colorTexture.activate(),e.pwfTexture.activate(),e.tris.getCABO().getElementCount()&&(t.updateShaders(e.tris,n,i),o.drawArrays(o.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release()),e.volumeTexture.deactivate(),e.colorTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(n,i)=>{},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i),i.getProperty().getInterpolationType()===qc.NEAREST?(e.volumeTexture.setMinificationFilter(Je.NEAREST),e.volumeTexture.setMagnificationFilter(Je.NEAREST),e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST),e.pwfTexture.setMinificationFilter(Je.NEAREST),e.pwfTexture.setMagnificationFilter(Je.NEAREST)):(e.volumeTexture.setMinificationFilter(Je.LINEAR),e.volumeTexture.setMagnificationFilter(Je.LINEAR),e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR),e.pwfTexture.setMinificationFilter(Je.LINEAR),e.pwfTexture.setMagnificationFilter(Je.LINEAR))},t.getNeedToRebuildBufferObjects=(n,i)=>{var a;const o=e.VBOBuildTime.getMTime();return o{var _,E,D,b;const o=e.currentImageDataInput,a=e.currentCenterlineInput,s=(_=o==null?void 0:o.getPointData())==null?void 0:_.getScalars();if(!s)return;const c=e._openGLRenderWindow.getGraphicsResourceForObject(s),l=Bw(o,s);if(!((E=c==null?void 0:c.oglObject)!=null&&E.getHandle())||(c==null?void 0:c.hash)!==l){e.volumeTexture=yn.newInstance(),e.volumeTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const I=o.getDimensions();e.volumeTexture.setOglNorm16Ext(e.context.getExtension("EXT_texture_norm16")),e.volumeTexture.resetFormatAndType(),e.volumeTexture.create3DFilterableFromDataArray(I[0],I[1],I[2],s,e.renderable.getPreferSizeOverAccuracy()),e._openGLRenderWindow.setGraphicsResourceForObject(s,e.volumeTexture,l),s!==e._scalars&&(e._openGLRenderWindow.registerGraphicsResourceUser(s,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._scalars,t)),e._scalars=s}else e.volumeTexture=c.oglObject;const u=s.getNumberOfComponents(),d=i.getProperty(),h=d.getIndependentComponents(),g=h?u:1,p=h?2*g:1,v=d.getRGBTransferFunction(),x=aa(v,h,g),m=e._openGLRenderWindow.getGraphicsResourceForObject(v);if(!((D=m==null?void 0:m.oglObject)!=null&&D.getHandle())||(m==null?void 0:m.hash)!==x){const R=1024*p*3,M=new Uint8ClampedArray(R);if(e.colorTexture=yn.newInstance(),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow),v){const L=new Float32Array(3072);for(let A=0;A{const a=e.volumeTexture.getComponents(),s=o.getProperty().getIndependentComponents(),c=!!e.renderable.getCenterPoint(),l=e.renderable.getUseUniformOrientation(),f=e.renderable.isProjectionEnabled()&&e.renderable.getProjectionMode();return n.getProgram()===0||e.lastUseCenterPoint!==c||e.lastUseUniformOrientation!==l||e.lastProjectionMode!==f||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||e.lastTextureComponents!==a||e.lastIndependentComponents!==s?(e.lastUseCenterPoint=c,e.lastUseUniformOrientation=l,e.lastProjectionMode=f,e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=a,e.lastIndependentComponents=s,!0):!1},t.buildShaders=(n,i,o)=>{t.getShaderTemplate(n,i,o),t.replaceShaderValues(n,i,o)},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;const c=["vec3 applyQuaternionToVec(vec4 q, vec3 v) {"," float uvx = q.y * v.z - q.z * v.y;"," float uvy = q.z * v.x - q.x * v.z;"," float uvz = q.x * v.y - q.y * v.x;"," float uuvx = q.y * uvz - q.z * uvy;"," float uuvy = q.z * uvx - q.x * uvz;"," float uuvz = q.x * uvy - q.y * uvx;"," float w2 = q.w * 2.0;"," uvx *= w2;"," uvy *= w2;"," uvz *= w2;"," uuvx *= 2.0;"," uuvy *= 2.0;"," uuvz *= 2.0;"," return vec3(v.x + uvx + uuvx, v.y + uvy + uuvy, v.z + uvz + uuvz);","}"];a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result;const l=["attribute vec3 centerlinePosition;","attribute float quadIndex;","uniform float width;","out vec2 quadOffsetVSOutput;","out vec3 centerlinePosVSOutput;"],f=e.renderable.isProjectionEnabled(),u=e.renderable.getUseUniformOrientation();u?(l.push("out vec3 samplingDirVSOutput;","uniform vec4 centerlineOrientation;","uniform vec3 tangentDirection;",...c),f&&l.push("out vec3 projectionDirVSOutput;","uniform vec3 bitangentDirection;")):l.push("out vec4 centerlineTopOrientationVSOutput;","out vec4 centerlineBotOrientationVSOutput;","attribute vec4 centerlineTopOrientation;","attribute vec4 centerlineBotOrientation;"),a=ce.substitute(a,"//VTK::Color::Dec",l).result;const d=["quadOffsetVSOutput = vec2(width * (mod(quadIndex, 2.0) == 0.0 ? -0.5 : 0.5), quadIndex > 1.0 ? 0.0 : 1.0);","centerlinePosVSOutput = centerlinePosition;"];u?(d.push("samplingDirVSOutput = applyQuaternionToVec(centerlineOrientation, tangentDirection);"),f&&d.push("projectionDirVSOutput = applyQuaternionToVec(centerlineOrientation, bitangentDirection);")):d.push("centerlineTopOrientationVSOutput = centerlineTopOrientation;","centerlineBotOrientationVSOutput = centerlineBotOrientation;"),a=ce.substitute(a,"//VTK::Color::Impl",d).result;const h=e.volumeTexture.getComponents(),g=o.getProperty().getIndependentComponents();let p=["uniform mat4 MCTCMatrix; // Model coordinates to texture coordinates","in vec2 quadOffsetVSOutput;","in vec3 centerlinePosVSOutput;","uniform highp sampler3D volumeTexture;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;","uniform vec4 backgroundColor;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;"];f&&p.push("uniform vec3 volumeSizeMC;","uniform int projectionSlabNumberOfSamples;","uniform float projectionConstantOffset;","uniform float projectionStepLength;"),u?(p.push("in vec3 samplingDirVSOutput;"),f&&p.push("in vec3 projectionDirVSOutput;")):(p.push("uniform vec3 tangentDirection;","in vec4 centerlineTopOrientationVSOutput;","in vec4 centerlineBotOrientationVSOutput;",...c),f&&p.push("uniform vec3 bitangentDirection;"));const v=e.renderable.getCenterPoint();if(v&&p.push("uniform vec3 globalCenterPoint;"),g){for(let m=1;m 0.999 || qCosAngle < -0.999) {"," // Use LERP instead of SLERP when the two quaternions are close or opposite"," interpolatedOrientation = normalize(mix(q0, q1, quadOffsetVSOutput.y));","} else {"," float omega = acos(qCosAngle);"," interpolatedOrientation = normalize(sin((1.0 - quadOffsetVSOutput.y) * omega) * q0 + sin(quadOffsetVSOutput.y * omega) * q1);","}","vec3 samplingDirection = applyQuaternionToVec(interpolatedOrientation, tangentDirection);"),f&&x.push("vec3 projectionDirection = applyQuaternionToVec(interpolatedOrientation, bitangentDirection);")),v?x.push("float baseOffset = dot(samplingDirection, globalCenterPoint - centerlinePosVSOutput);","float horizontalOffset = quadOffsetVSOutput.x + baseOffset;"):x.push("float horizontalOffset = quadOffsetVSOutput.x;"),x.push("vec3 volumePosMC = centerlinePosVSOutput + horizontalOffset * samplingDirection;","vec3 volumePosTC = (MCTCMatrix * vec4(volumePosMC, 1.0)).xyz;","if (any(lessThan(volumePosTC, vec3(0.0))) || any(greaterThan(volumePosTC, vec3(1.0))))","{"," // set the background color and exit"," gl_FragData[0] = backgroundColor;"," return;","}"),f){const m=e.renderable.getProjectionMode();switch(m){case pc.MIN:x.push("const vec4 initialProjectionTextureValue = vec4(1.0);");break;case pc.MAX:case pc.AVERAGE:default:x.push("const vec4 initialProjectionTextureValue = vec4(0.0);");break}switch(x.push("vec3 projectionScaledDirection = projectionDirection / volumeSizeMC;","vec3 projectionStep = projectionStepLength * projectionScaledDirection;","vec3 projectionStartPosition = volumePosTC + projectionConstantOffset * projectionScaledDirection;","vec4 tvalue = initialProjectionTextureValue;","for (int projectionSampleIdx = 0; projectionSampleIdx < projectionSlabNumberOfSamples; ++projectionSampleIdx) {"," vec3 projectionSamplePosition = projectionStartPosition + float(projectionSampleIdx) * projectionStep;"," vec4 sampledTextureValue = texture(volumeTexture, projectionSamplePosition);"),m){case pc.MAX:x.push(" tvalue = max(tvalue, sampledTextureValue);");break;case pc.MIN:x.push(" tvalue = min(tvalue, sampledTextureValue);");break;case pc.AVERAGE:default:x.push(" tvalue = tvalue + sampledTextureValue;");break}x.push("}"),m===pc.AVERAGE&&x.push("tvalue = tvalue / float(projectionSlabNumberOfSamples);")}else x.push("vec4 tvalue = texture(volumeTexture, volumePosTC);");if(g){const m=["r","g","b","a"];for(let y=0;y{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){let c=e.renderable.getNumberOfClippingPlanes();c>6&&(W.vtkErrorMacro("OpenGL has a limit of 6 clipping planes"),c=6),a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=ce.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,s=ce.substitute(s,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getShaderTemplate=(n,i,o)=>{n.Vertex=Uw,n.Fragment=yh,n.Geometry=""},t.setMapperShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=n.getCABO();s.getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(a.isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(a,s,"vertexMC",s.getVertexOffset(),s.getStride(),e.context.FLOAT,3,e.context.FALSE)||Cg("Error setting vertexMC in shader VAO.")),n.getCABO().getCustomData().forEach(h=>{h&&a.isAttributeUsed(h.name)&&!n.getVAO().addAttributeArray(a,s,h.name,h.offset,s.getStride(),e.context.FLOAT,h.components,e.context.FALSE)&&Cg(`Error setting ${h.name} in shader VAO.`)}),n.getAttributeUpdateTime().modified());const c=e.volumeTexture.getTextureUnit();if(a.setUniformi("volumeTexture",c),a.setUniformf("width",e.renderable.getWidth()),n.getProgram().setUniform4fv("backgroundColor",e.renderable.getBackgroundColor()),a.isUniformUsed("tangentDirection")){const h=e.renderable.getTangentDirection();n.getProgram().setUniform3fArray("tangentDirection",h)}if(a.isUniformUsed("bitangentDirection")){const h=e.renderable.getBitangentDirection();n.getProgram().setUniform3fArray("bitangentDirection",h)}if(a.isUniformUsed("centerlineOrientation")){const h=e.renderable.getUniformOrientation();n.getProgram().setUniform4fv("centerlineOrientation",h)}if(a.isUniformUsed("globalCenterPoint")){const h=e.renderable.getCenterPoint();a.setUniform3fArray("globalCenterPoint",h)}if(e.renderable.isProjectionEnabled()){const h=e.currentImageDataInput,g=h.getSpacing(),p=h.getDimensions(),v=e.renderable.getProjectionSlabThickness(),x=e.renderable.getProjectionSlabNumberOfSamples(),m=X$([],g,p);a.setUniform3fArray("volumeSizeMC",m),a.setUniformi("projectionSlabNumberOfSamples",x);const y=-.5*v;a.setUniformf("projectionConstantOffset",y);const w=v/(x-1);a.setUniformf("projectionStepLength",w)}const l=e.currentImageDataInput,f=l.getWorldToIndex(),u=vw(new Float32Array(16),eb([],l.getDimensions())),d=b1(u,u,f);if(a.setUniformMatrix("MCTCMatrix",d),e.haveSeenDepthRequest&&n.getProgram().setUniformi("depthRequest",e.renderDepth?1:0),e.renderable.getNumberOfClippingPlanes()){let h=e.renderable.getNumberOfClippingPlanes();h>6&&(W.vtkErrorMacro("OpenGL has a limit of 6 clipping planes"),h=6);const p=s.getCoordShiftAndScaleEnabled()?s.getInverseShiftAndScaleMatrix():null,v=p?En(e.imagematinv,o.getMatrix()):o.getMatrix();p&&(St(v,v),bt(v,v,p),St(v,v)),St(e.imagemat,e.currentImageDataInput.getIndexToWorld()),bt(e.imagematinv,v,e.imagemat);const x=[];for(let m=0;m{const a=e.openGLImageSlice.getKeyMatrices().mcwc,s=e.openGLCamera.getKeyMatrices(i).wcpc;if(bt(e.imagemat,s,a),n.getCABO().getCoordShiftAndScaleEnabled()){const c=n.getCABO().getInverseShiftAndScaleMatrix();bt(e.imagemat,e.imagemat,c)}n.getProgram().setUniformMatrix("MCPCMatrix",e.imagemat)},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=o.getProperty(),c=s.getOpacity();a.setUniformf("opacity",c);const l=e.volumeTexture.getComponents(),f=s.getIndependentComponents();if(f)for(let g=0;g{if(t.getNeedToRebuildShaders(n,i,o)){const a={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(a,i,o);const s=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);s!==n.getProgram()&&(n.setProgram(s),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),t.setMapperShaderParameters(n,i,o),t.setCameraShaderParameters(n,i,o),t.setPropertyShaderParameters(n,i,o)},t.delete=W.chain(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const qZ={currentRenderPass:null,volumeTexture:null,colorTexture:null,pwfTexture:null,tris:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0,lastIndependentComponents:0,imagemat:null,imagematinv:null};function XZ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qZ,r),nn.extend(t,e,r),oa.implementReplaceShaderCoincidentOffset(t,e,r),W.algo(t,e,2,0),e.tris=ua.newInstance(),e.volumeTexture=null,e.colorTexture=null,e.pwfTexture=null,e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.VBOBuildTime={},W.obj(e.VBOBuildTime,{mtime:0}),KZ(t,e)}const YZ=W.newInstance(XZ,"vtkOpenGLImageCPRMapper");ir("vtkImageCPRMapper",YZ);const nM=Object.create(null);function lo(t,e){nM[t]=e}function JZ(t,e){e.classHierarchy.push("vtkWebGPUViewNodeFactory")}const ZZ={};function QZ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZZ,r),e.overrides=nM,lw.extend(t,e,r),JZ(t,e)}W.newInstance(QZ,"vtkWebGPUViewNodeFactory");function eQ(t,e){e.classHierarchy.push("vtkWebGPUCamera"),t.getProjectionMatrix=(r,n,i,o)=>{if(qe(r),e.renderable.getParallelProjection()){const a=e.renderable.getParallelScale(),s=a*n,c=a,l=(o[0]-1)*s,f=(o[0]+1)*s,u=(o[1]-1)*c,d=(o[1]+1)*c,h=1/(f-l),g=1/(d-u);r[0]=2*h,r[5]=2*g,r[10]=1/(i[1]-i[0]),r[12]=(f+l)*h,r[13]=(d+u)*g,r[14]=i[1]/(i[1]-i[0])}else{const a=Math.tan(Math.PI*e.renderable.getViewAngle()/360);let s,c;e.renderable.getUseHorizontalViewAngle()===!0?(s=i[0]*a,c=i[0]*a/n):(s=i[0]*a*n,c=i[0]*a);const l=(o[0]-1)*s,f=(o[0]+1)*s,u=(o[1]-1)*c,d=(o[1]+1)*c;r[0]=2*i[0]/(f-l),r[5]=2*i[0]/(d-u),r[12]=(l+f)/(f-l),r[13]=(u+d)/(d-u),r[10]=0,r[14]=i[0],r[11]=-1,r[15]=0}},t.convertToOpenGLDepth=r=>{if(e.renderable.getParallelProjection())return 1-r;const n=e.renderable.getClippingRangeByReference();let i=-n[0]/r;return i=(n[0]+n[1])/(n[1]-n[0])+2*n[0]*n[1]/(i*(n[1]-n[0])),.5*i+.5},t.getKeyMatrices=r=>{const n=r.getRenderable(),i=r.getParent();if(Math.max(i.getMTime(),t.getMTime(),n.getMTime(),e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatrixTime.getMTime()){const o=e.renderable.getViewMatrix();En(e.keyMatrices.normalMatrix,o),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.wcvc,o);const a=r.getStabilizedCenterByReference();rn(e.keyMatrices.scvc,e.keyMatrices.wcvc,a);const s=r.getAspectRatio(),c=e.renderable.getClippingRangeByReference();t.getProjectionMatrix(e.keyMatrices.vcpc,s,c,e.renderable.getWindowCenterByReference()),bt(e.keyMatrices.scpc,e.keyMatrices.vcpc,e.keyMatrices.scvc),$n(e.keyMatrices.pcsc,e.keyMatrices.scpc),e.keyMatrixTime.modified()}return e.keyMatrices}}const tQ={keyMatrixTime:null,keyMatrices:null};function nQ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tQ,r),nn.extend(t,e,r),e.keyMatrixTime={},W.obj(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},W.setGet(t,e,["keyMatrixTime"]),eQ(t,e)}const rQ=W.newInstance(nQ);lo("vtkCamera",rQ);function iQ(t,e){e.classHierarchy.push("vtkWebGPUBindGroup"),t.setBindables=r=>{if(e.bindables.length===r.length){let n=!0;for(let i=0;i{const n=[];for(let i=0;i{let n=t.getMTime();for(let o=0;on?a:n}if(n{const n=[],i=r.getBindGroupLayoutCount(e.label);for(let o=0;o2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oQ,r),W.obj(t,e),e.bindables=[],e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","handle","sizeInBytes","usage"]),W.setGet(t,e,["label","device","arrayInformation"]),iQ(t,e)}const aQ=W.newInstance(rM);var iM={newInstance:aQ,extend:rM};function sQ(t,e){e.classHierarchy.push("vtkWebGPUShaderModule"),t.initialize=(r,n)=>{e.device=r,e.handle=e.device.getHandle().createShaderModule({code:n.getCode()})}}const cQ={device:null,handle:null};function oM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cQ,r),W.obj(t,e),W.get(t,e,["lastCameraMTime"]),W.setGet(t,e,["device","handle"]),sQ(t,e)}const lQ=W.newInstance(oM,"vtkWebGPUShaderModule");var uQ={newInstance:lQ,extend:oM};function fQ(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const i=Array.isArray(r)?r.join(` -`):r;let o=!1;t.search(e)!==-1&&(o=!0);let a="";n&&(a="g");const s=new RegExp(e,a),c=t.replace(s,i);return{replace:o,result:c}}function dQ(t,e){e.classHierarchy.push("vtkWebGPUShaderCache"),t.getShaderModule=r=>{const n=r.getType(),i=r.getHash(),o=e._shaderModules.keys();for(let s=0;s2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,hQ,r),e._shaderModules=new Map,W.obj(t,e),W.setGet(t,e,["device","window"]),dQ(t,e)}const gQ=W.newInstance(aM,"vtkWebGPUShaderCache");var Qt={newInstance:gQ,extend:aM,substitute:fQ};function pQ(t,e){e.classHierarchy.push("vtkWebGPUPipeline"),t.getShaderDescriptions=()=>e.shaderDescriptions,t.initialize=(r,n)=>{e.pipelineDescription=e.renderEncoder.getPipelineSettings(),e.pipelineDescription.primitive.topology=e.topology,e.pipelineDescription.vertex=e.vertexState,e.pipelineDescription.label=n;const i=[];for(let o=0;o{for(let n=0;n{r&&e.layouts.push({layout:r.getBindGroupLayout(e.device),label:r.getLabel()})},t.getBindGroupLayout=r=>e.layouts[r].layout,t.getBindGroupLayoutCount=r=>{for(let n=0;n{n.bindBuffers(r)}}const mQ={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function sM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,mQ,r),fn(t,e),e.layouts=[],e.shaderDescriptions=[],gi(t,e,["handle","pipelineDescription"]),Jn(t,e,["device","renderEncoder","topology","vertexState"]),pQ(t,e)}const vQ=Bt(sM,"vtkWebGPUPipeline");var yQ={newInstance:vQ,extend:sM};function xQ(t,e){e.classHierarchy.push("vtkWebGPUShaderDescription"),t.hasOutput=r=>e.outputNames.includes(r),t.addOutput=function(r,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;e.outputTypes.push(r),e.outputNames.push(n),e.outputInterpolations.push(i)},t.addBuiltinOutput=(r,n)=>{e.builtinOutputTypes.push(r),e.builtinOutputNames.push(n)},t.addBuiltinInput=(r,n)=>{e.builtinInputTypes.push(r),e.builtinInputNames.push(n)},t.replaceShaderCode=(r,n)=>{const i=[];let o=[];if(n&&i.push(n.getShaderCode()),r||e.builtinInputNames.length){const a=[];if(a.push(`struct ${e.type}Input -{`),r){const s=r.getOutputNamesByReference(),c=r.getOutputTypesByReference(),l=r.getOutputInterpolationsByReference();for(let f=0;f1&&(a.push("};"),o=a,i[i.length-1]+=",",i.push(`input: ${e.type}Input`))}if(i.length&&(e.code=Qt.substitute(e.code,"//VTK::IOStructs::Input",i).result),e.outputNames.length+e.builtinOutputNames.length){const a=[`struct ${e.type}Output -{`];for(let s=0;s ${e.type}Output`]).result}e.code=Qt.substitute(e.code,"//VTK::IOStructs::Dec",o).result}}const wQ={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function cM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,wQ,r),e.outputNames=[],e.outputTypes=[],e.outputInterpolations=[],e.builtinOutputNames=[],e.builtinOutputTypes=[],e.builtinInputNames=[],e.builtinInputTypes=[],W.obj(t,e),W.setGet(t,e,["type","hash","code"]),W.getArray(t,e,["outputTypes","outputNames","outputInterpolations"]),xQ(t,e)}const CQ=W.newInstance(cM,"vtkWebGPUShaderDescription");var v8={newInstance:CQ,extend:cM};const y8={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};function SQ(t){return!t||t.length<6?0:t in y8?y8[t]:(Dt(`unknown format ${t}`),null)}function TQ(t){if(!t||t.length<5)return 0;let e=1;t[t.length-2]==="x"&&(e=Number(t[t.length-1]));const r=e===1?t.length-1:t.length-3,n=Number(t[r]);if(Number.isNaN(n))return Dt(`unknown format ${t}`),0;const i=5-n/2;return e*i}function _Q(t){if(!t||t.length<5)return 0;let e=1;return t[t.length-2]==="x"&&(e=Number(t[t.length-1])),e}function EQ(t){if(!t||t.length<5)return 0;let e;if(t[0]==="f")e="Float";else if(t[0]==="s")e="Int";else if(t[0]==="u")e="Uint";else{Dt(`unknown format ${t}`);return}const r=t.split("x")[0],n=Number(r[r.length-1]);if(Number.isNaN(n)){Dt(`unknown format ${t}`);return}return e+=8*(5-n/2),e+="Array",e}function DQ(t){let e;if(t[0]==="f"||t[1]==="n")e="f32";else if(t[0]==="s"&&t[1]==="i")e="i32";else if(t[0]==="u"&&t[1]==="i")e="u32";else{Dt(`unknown format ${t}`);return}let r=1;return t[t.length-2]==="x"&&(r=Number(t[t.length-1])),r===4?`vec4<${e}>`:r===3?`vec3<${e}>`:r===2?`vec2<${e}>`:e}function bQ(t){if(!t)return 0;let e=1;return t.substring(0,3)==="vec"?e=Number(t[3]):t.substring(0,3)==="mat"&&(e=t[3]*t[5]),e*4}function IQ(t){if(t){if(t.includes("f32"))return"Float32Array";if(t.includes("i32"))return"Int32Array";if(t.includes("u32"))return"Uint32Array";Dt(`unknown format ${t}`)}}var kr={getDetailsFromTextureFormat:SQ,getByteStrideFromBufferFormat:TQ,getNumberOfComponentsFromBufferFormat:_Q,getNativeTypeFromBufferFormat:EQ,getShaderTypeFromBufferFormat:DQ,getByteStrideFromShaderFormat:bQ,getNativeTypeFromShaderFormat:IQ};function OQ(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:"vertex",o=n;Array.isArray(o)||(o=[o]);for(let a=0;aa.names[0]s.names[0]?1:0)},t.removeBufferIfPresent=r=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{for(let n=0;n{let r="",n=0;for(let i=0;i0&&(r+=`, -`),r=`${r} @location(${n}) ${e.inputs[i].names[o]} : ${s}`,n++}return r},t.getVertexInputInformation=()=>{const r={};if(e.inputs.length){const n=[];let i=0;for(let o=0;o{for(let n=0;n{},t.releaseGraphicsResources=()=>{e.created&&(e.inputs=[],e.bindingDescriptions=[],e.attributeDescriptions=[])}}const RQ={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function lM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,RQ,r),fn(t,e),e.bindingDescriptions=[],e.attributeDescriptions=[],e.inputs=[],Jn(t,e,["created","device","handle","indexBuffer"]),MQ(t,e)}const LQ=Bt(lM,"vtkWebGPUVertexInput");var NQ={newInstance:LQ,extend:lM};const PQ=` +`;const{vtkErrorMacro:pc}=Br;function x8(t,e,r){return e.identity(r),t.reduce((n,i,o)=>o===0?i?e.copy(n,i):e.identity(n):i?e.multiply(n,n,i):n,r)}function XZ(t,e){e.classHierarchy.push("vtkOpenGLImageResliceMapper");function r(i){[e._scalars,e._colorTransferFunc,e._pwFunc].forEach(o=>i.unregisterGraphicsResourceUser(o,t))}t.buildPass=i=>{if(i){e.currentRenderPass=null,e._openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const o=e._openGLRenderer.getRenderable();e._openGLCamera=e._openGLRenderer.getViewNodeFor(o.getActiveCamera());const a=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),a&&!a.isDeleted()&&a!==e._openGLRenderWindow&&r(a),e.context=e._openGLRenderWindow.getContext(),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow)}},t.translucentPass=(i,o)=>{i&&(e.currentRenderPass=o,t.render())},t.zBufferPass=i=>{i&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.opaqueZBufferPass=i=>t.zBufferPass(i),t.opaquePass=i=>{i&&t.render()},t.getCoincidentParameters=(i,o)=>e.renderable.getResolveCoincidentTopology()==ko.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const i=e._openGLImageSlice.getRenderable(),o=e._openGLRenderer.getRenderable();t.renderPiece(o,i)},t.renderPiece=(i,o)=>{if(t.invokeEvent({type:"StartEvent"}),e.renderable.update(),e.currentInput=e.renderable.getInputData(),!e.currentInput){pc("No input!");return}t.updateResliceGeometry(),t.renderPieceStart(i,o),t.renderPieceDraw(i,o),t.renderPieceFinish(i,o),t.invokeEvent({type:"EndEvent"})},t.renderPieceStart=(i,o)=>{t.updateBufferObjects(i,o),o.getProperty().getInterpolationType()===Xc.NEAREST?(e.openGLTexture.setMinificationFilter(Je.NEAREST),e.openGLTexture.setMagnificationFilter(Je.NEAREST),e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST),e.pwfTexture.setMinificationFilter(Je.NEAREST),e.pwfTexture.setMagnificationFilter(Je.NEAREST)):(e.openGLTexture.setMinificationFilter(Je.LINEAR),e.openGLTexture.setMagnificationFilter(Je.LINEAR),e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR),e.pwfTexture.setMinificationFilter(Je.LINEAR),e.pwfTexture.setMagnificationFilter(Je.LINEAR)),e.lastBoundBO=null},t.renderPieceDraw=(i,o)=>{const a=e.context;e.openGLTexture.activate(),e.colorTexture.activate(),e.pwfTexture.activate(),t.updateShaders(e.tris,i,o),a.drawArrays(a.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release(),e.openGLTexture.deactivate(),e.colorTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(i,o)=>{},t.updateBufferObjects=(i,o)=>{t.getNeedToRebuildBufferObjects(i,o)&&t.buildBufferObjects(i,o)},t.getNeedToRebuildBufferObjects=(i,o)=>{var a,s,c;return e.VBOBuildTime.getMTime(){var T,_,E,D;const a=e.currentInput;if(!a)return;const s=(T=a.getPointData())==null?void 0:T.getScalars();if(!s)return;const c=s.getNumberOfComponents();let l=Ww(a,s);const f=e._openGLRenderWindow.getGraphicsResourceForObject(s);if(!((_=f==null?void 0:f.oglObject)!=null&&_.getHandle())||(f==null?void 0:f.hash)!==l){e.openGLTexture=yn.newInstance(),e.openGLTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const b=a.getDimensions();e.openGLTexture.setOglNorm16Ext(e.context.getExtension("EXT_texture_norm16")),e.openGLTexture.resetFormatAndType(),e.openGLTexture.create3DFilterableFromDataArray(b[0],b[1],b[2],s),e._openGLRenderWindow.setGraphicsResourceForObject(s,e.openGLTexture,l),s!==e._scalars&&(e._openGLRenderWindow.registerGraphicsResourceUser(s,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._scalars,t)),e._scalars=s}else e.openGLTexture=f.oglObject;const d=o.getProperty(),h=d.getIndependentComponents(),g=h?c:1,p=h?2*g:1,v=d.getRGBTransferFunction();l=sa(v,h,g);const x=e._openGLRenderWindow.getGraphicsResourceForObject(v);if(!((E=x==null?void 0:x.oglObject)!=null&&E.getHandle())||(x==null?void 0:x.hash)!==l){const I=1024*p*3,R=new Uint8ClampedArray(I);if(e.colorTexture=yn.newInstance(),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow),v){const M=new Float32Array(3072);for(let L=0;L0){const M=e.resliceGeom.getPointData().getNormals();M?R.normals=M:pc("Slab mode requested without normals")}e.tris.getCABO().createVBO(I,"polys",kr.SURFACE,R)}e.VBOBuildString=S,e.VBOBuildTime.modified()},t.updateShaders=(i,o,a)=>{if(e.lastBoundBO=i,t.getNeedToRebuildShaders(i,o,a)){const s={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(s,o,a);const c=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(s.Vertex,s.Fragment,s.Geometry);c!==i.getProgram()&&(i.setProgram(c),i.getVAO().releaseGraphicsResources()),i.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(i.getProgram());i.getVAO().bind(),t.setMapperShaderParameters(i,o,a),t.setCameraShaderParameters(i,o,a),t.setPropertyShaderParameters(i,o,a)},t.setMapperShaderParameters=(i,o,a)=>{const s=i.getProgram();if(i.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>i.getAttributeUpdateTime().getMTime()||i.getShaderSourceTime().getMTime()>i.getAttributeUpdateTime().getMTime())){s.isUniformUsed("texture1")&&s.setUniformi("texture1",e.openGLTexture.getTextureUnit()),s.isAttributeUsed("vertexWC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"vertexWC",i.getCABO().getVertexOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||pc("Error setting vertexWC in shader VAO.")),s.isAttributeUsed("normalWC")&&(i.getVAO().addAttributeArray(s,i.getCABO(),"normalWC",i.getCABO().getNormalOffset(),i.getCABO().getStride(),e.context.FLOAT,3,e.context.FALSE)||pc("Error setting normalWC in shader VAO.")),s.isUniformUsed("slabThickness")&&s.setUniformf("slabThickness",e.renderable.getSlabThickness()),s.isUniformUsed("spacing")&&s.setUniform3fv("spacing",e.currentInput.getSpacing()),s.isUniformUsed("slabType")&&s.setUniformi("slabType",e.renderable.getSlabType()),s.isUniformUsed("slabType")&&s.setUniformi("slabType",e.renderable.getSlabType()),s.isUniformUsed("slabTrapezoid")&&s.setUniformi("slabTrapezoid",e.renderable.getSlabTrapezoidIntegration());const l=i.getCABO().getCoordShiftAndScaleEnabled()?i.getCABO().getInverseShiftAndScaleMatrix():null;if(s.isUniformUsed("WCTCMatrix")){const f=e.currentInput,u=f.getDimensions();_n(e.tmpMat4,f.getIndexToWorld()),nn(e.tmpMat4,e.tmpMat4,[-.5,-.5,-.5]),Ha(e.tmpMat4,e.tmpMat4,u),$n(e.tmpMat4,e.tmpMat4),l&&bt(e.tmpMat4,e.tmpMat4,l),s.setUniformMatrix("WCTCMatrix",e.tmpMat4)}s.isUniformUsed("vboScaling")&&s.setUniform3fv("vboScaling",i.getCABO().getCoordScale()??[1,1,1]),i.getAttributeUpdateTime().modified()}if(e.haveSeenDepthRequest&&i.getProgram().setUniformi("depthRequest",e.renderDepth?1:0),i.getProgram().isUniformUsed("coffset")){const c=t.getCoincidentParameters(o,a);i.getProgram().setUniformf("coffset",c.offset),i.getProgram().isUniformUsed("cfactor")&&i.getProgram().setUniformf("cfactor",c.factor)}},t.setCameraShaderParameters=(i,o,a)=>{const s=e._openGLCamera.getKeyMatrices(o),c=e._openGLImageSlice.getKeyMatrices(),f=i.getCABO().getCoordShiftAndScaleEnabled()?i.getCABO().getInverseShiftAndScaleMatrix():null,u=i.getProgram();u.isUniformUsed("MCPCMatrix")&&(qe(e.tmpMat4),u.setUniformMatrix("MCPCMatrix",x8([s.wcpc,c.mcwc,f],Od,e.tmpMat4))),u.isUniformUsed("MCVCMatrix")&&(qe(e.tmpMat4),u.setUniformMatrix("MCVCMatrix",x8([s.wcvc,c.mcwc,f],Od,e.tmpMat4)))},t.setPropertyShaderParameters=(i,o,a)=>{const s=i.getProgram(),c=a.getProperty(),l=c.getOpacity();s.setUniformf("opacity",l);const f=e.openGLTexture.getComponents(),u=c.getIndependentComponents();if(u)for(let p=0;p{var h;const s=e.openGLTexture.getComponents(),c=a.getProperty().getIndependentComponents(),l=e.renderable.getSlabThickness(),f=e.renderable.getSlabType(),u=e.renderable.getSlabTrapezoidIntegration();let d=!1;return(!e.currentRenderPass&&e.lastRenderPassShaderReplacement||e.currentRenderPass&&e.currentRenderPass.getShaderReplacement()!==e.lastRenderPassShaderReplacement)&&(d=!0),d||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||((h=i.getProgram())==null?void 0:h.getHandle())===0||e.lastTextureComponents!==s||e.lastIndependentComponents!==c||e.lastSlabThickness!==l||e.lastSlabType!==f||e.lastSlabTrapezoidIntegration!==u?(e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=s,e.lastIndependentComponents=c,e.lastSlabThickness=l,e.lastSlabType=f,e.lastSlabTrapezoidIntegration=u,!0):!1},t.getShaderTemplate=(i,o,a)=>{i.Vertex=KZ,i.Fragment=qZ,i.Geometry=""},t.replaceShaderValues=(i,o,a)=>{if(t.replaceShaderTCoord(i,o,a),t.replaceShaderPositionVC(i,o,a),e.haveSeenDepthRequest){let s=i.Fragment;s=ce.substitute(s,"//VTK::ZBuffer::Dec","uniform int depthRequest;").result,s=ce.substitute(s,"//VTK::ZBuffer::Impl",["if (depthRequest == 1) {","float iz = floor(gl_FragCoord.z*65535.0 + 0.1);","float rf = floor(iz/256.0)/255.0;","float gf = mod(iz,256.0)/255.0;","gl_FragData[0] = vec4(rf, gf, 0.0, 1.0); }"]).result,i.Fragment=s}t.replaceShaderCoincidentOffset(i,o,a)},t.replaceShaderTCoord=(i,o,a)=>{let s=i.Vertex;const c=i.Geometry;let l=i.Fragment;const f=["uniform mat4 WCTCMatrix;","out vec3 fragTexCoord;"],u=e.renderable.getSlabThickness();s=ce.substitute(s,"//VTK::TCoord::Dec",f).result;const d=["fragTexCoord = (WCTCMatrix * vertexWC).xyz;"];s=ce.substitute(s,"//VTK::TCoord::Impl",d).result;const h=e.openGLTexture.getComponents(),g=a.getProperty().getIndependentComponents();let p=["in vec3 fragTexCoord;","uniform highp sampler3D texture1;","uniform mat4 WCTCMatrix;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;","uniform vec4 backgroundColor;"];if(g){for(let x=1;x0&&(p=p.concat(["uniform vec3 spacing;","uniform float slabThickness;","uniform int slabType;","uniform int slabTrapezoid;","uniform vec3 vboScaling;"]),p=p.concat(["vec4 compositeValue(vec4 currVal, vec4 valToComp, int trapezoid)","{"," vec4 retVal = vec4(1.0);"," if (slabType == 0) // min"," {"," retVal = min(currVal, valToComp);"," }"," else if (slabType == 1) // max"," {"," retVal = max(currVal, valToComp);"," }"," else if (slabType == 3) // sum"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," else // mean"," {"," retVal = currVal + (trapezoid > 0 ? 0.5 * valToComp : valToComp); "," }"," return retVal;","}"])),l=ce.substitute(l,"//VTK::TCoord::Dec",p).result;let v=["if (any(greaterThan(fragTexCoord, vec3(1.0))) || any(lessThan(fragTexCoord, vec3(0.0))))","{"," // set the background color and exit"," gl_FragData[0] = backgroundColor;"," return;","}","vec4 tvalue = texture(texture1, fragTexCoord);"];if(u>0&&(v=v.concat(["// Get the first and last samples","int numSlices = 1;","float scaling = min(min(spacing.x, spacing.y), spacing.z) * 0.5;","vec3 normalxspacing = scaling * normalWCVSOutput;","float distTraveled = length(normalxspacing);","int trapezoid = 0;","while (distTraveled < slabThickness * 0.5)","{"," distTraveled += length(normalxspacing);"," float fnumSlices = float(numSlices);"," if (distTraveled > slabThickness * 0.5)"," {"," // Before stepping outside the slab, sample at the boundaries"," normalxspacing = normalWCVSOutput * slabThickness * 0.5 / fnumSlices;"," trapezoid = slabTrapezoid;"," }"," vec3 fragTCoordNeg = (WCTCMatrix * vec4(vertexWCVSOutput.xyz - fnumSlices * normalxspacing * vboScaling, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordNeg);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }"," vec3 fragTCoordPos = (WCTCMatrix * vec4(vertexWCVSOutput.xyz + fnumSlices * normalxspacing * vboScaling, 1.0)).xyz;"," if (!any(greaterThan(fragTCoordNeg, vec3(1.0))) && !any(lessThan(fragTCoordNeg, vec3(0.0))))"," {"," vec4 newVal = texture(texture1, fragTCoordPos);"," tvalue = compositeValue(tvalue, newVal, trapezoid);"," numSlices += 1;"," }","}","// Finally, if slab type is *mean*, divide the sum by the numSlices","if (slabType == 2)","{"," tvalue = tvalue / float(numSlices);","}"])),g){const x=["r","g","b","a"];for(let m=0;m{let s=i.Vertex;const c=i.Geometry;let l=i.Fragment;const f=e.renderable.getSlabThickness();let u=["attribute vec4 vertexWC;"];u=u.concat([`//${t.getMTime()}${e.resliceGeomUpdateString}`]),f>0&&(u=u.concat(["attribute vec3 normalWC;","varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),s=ce.substitute(s,"//VTK::PositionVC::Dec",u).result;let d=["gl_Position = MCPCMatrix * vertexWC;"];f>0&&(d=d.concat(["normalWCVSOutput = normalWC;","vertexWCVSOutput = vertexWC;"])),s=ce.substitute(s,"//VTK::PositionVC::Impl",d).result,s=ce.substitute(s,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;","uniform mat4 MCVCMatrix;"]).result;let h=[];f>0&&(h=h.concat(["varying vec3 normalWCVSOutput;","varying vec4 vertexWCVSOutput;"])),l=ce.substitute(l,"//VTK::PositionVC::Dec",h).result,i.Vertex=s,i.Geometry=c,i.Fragment=l};function n(i){nt.normalize(i);const o=[0,0,0];for(let a=0;a<3;++a){ej(o),o[a]=1;const s=nt.dot(i,o);if(s<-.999||s>.999)return[!0,a]}return[!1,2]}t.updateResliceGeometry=()=>{var u;let i="";const o=e.currentInput,a=o==null?void 0:o.getBounds();let s=!0,c=2;const l=e.renderable.getSlicePolyData(),f=e.renderable.getSlicePlane();if(l)i=i.concat(`PolyData${l.getMTime()}`);else if(f){i=i.concat(`Plane${f.getMTime()}`);const d=hw();o&&(i=i.concat(`Image${o.getMTime()}`),X7(d,...o.getDirection()),yh(d,d));const h=[...f.getNormal()];Dp(h,h,d),[s,c]=n(h)}else{const d=Xr.newInstance();d.setNormal(0,0,1);let h=[0,1,0,1,0,1];o&&(h=a),d.setOrigin(h[0],h[2],.5*(h[5]+h[4])),e.renderable.setSlicePlane(d),i=i.concat(`Plane${f==null?void 0:f.getMTime()}`),o&&(i=i.concat(`Image${o.getMTime()}`))}if(!e.resliceGeom||e.resliceGeomUpdateString!==i){if(l)e.resliceGeom||(e.resliceGeom=hr.newInstance()),e.resliceGeom.getPoints().setData(l.getPoints().getData(),3),e.resliceGeom.getPolys().setData(l.getPolys().getData(),1),e.resliceGeom.getPointData().setNormals(l.getPointData().getNormals());else if(f)if(s){const d=new Float32Array(12),h=o.worldToIndex(f.getOrigin(),[0,0,0]),g=[(c+1)%3,(c+2)%3].sort(),p=o.getSpatialExtent();let v=0;for(let C=0;C<2;++C)for(let S=0;S<2;++S)d[v+c]=h[c],d[v+g[0]]=p[2*g[0]+S],d[v+g[1]]=p[2*g[1]+C],v+=3;e.transform.setMatrix(o.getIndexToWorld()),e.transform.transformPoints(d,d);const x=new Uint16Array(8);x[0]=3,x[1]=0,x[2]=1,x[3]=3,x[4]=3,x[5]=0,x[6]=3,x[7]=2;const m=f.getNormal();nt.normalize(m);const y=new Float32Array(12);for(let C=0;C<4;++C)y[3*C]=m[0],y[3*C+1]=m[1],y[3*C+2]=m[2];e.resliceGeom||(e.resliceGeom=hr.newInstance()),e.resliceGeom.getPoints().setData(d,3),e.resliceGeom.getPolys().setData(x,1);const w=tt.newInstance({numberOfComponents:3,values:y,name:"Normals"});e.resliceGeom.getPointData().setNormals(w)}else{e.outlineFilter.setInputData(o),e.cutter.setInputConnection(e.outlineFilter.getOutputPort()),e.cutter.setCutFunction(f),e.lineToSurfaceFilter.setInputConnection(e.cutter.getOutputPort()),e.lineToSurfaceFilter.update(),e.resliceGeom||(e.resliceGeom=hr.newInstance());const d=e.lineToSurfaceFilter.getOutputData();e.resliceGeom.getPoints().setData(d.getPoints().getData(),3),e.resliceGeom.getPolys().setData(d.getPolys().getData(),1),e.resliceGeom.getPointData().setNormals(d.getPointData().getNormals());const h=f.getNormal(),g=e.resliceGeom.getNumberOfPoints();nt.normalize(h);const p=new Float32Array(g*3);for(let x=0;x{i&&(e.openGLTexture=i,e._externalOpenGLTexture=!0)},t.delete=gh(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const YZ={VBOBuildTime:{},VBOBuildString:null,haveSeenDepthRequest:!1,lastHaveSeenDepthRequest:!1,lastIndependentComponents:!1,lastTextureComponents:0,lastSlabThickness:0,lastSlabTrapezoidIntegration:0,lastSlabType:-1,openGLTexture:null,colorTextureString:null,pwfTextureString:null,resliceGeom:null,resliceGeomUpdateString:null,tris:null,colorTexture:null,pwfTexture:null,_externalOpenGLTexture:!1};function JZ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,YZ,r),tn.extend(t,e,r),aa.implementReplaceShaderCoincidentOffset(t,e,r),aa.implementBuildShadersWithReplacements(t,e,r),e.tris=fa.newInstance(),e.openGLTexture=null,e.colorTexture=null,e.pwfTexture=null,e.VBOBuildTime={},un(e.VBOBuildTime),e.tmpMat4=qe(new Float64Array(16)),e.outlineFilter=zZ.newInstance(),e.outlineFilter.setGenerateFaces(!0),e.outlineFilter.setGenerateLines(!1),e.cubePolyData=hr.newInstance(),e.cutter=PZ.newInstance(),e.lineToSurfaceFilter=OZ.newInstance(),e.transform=HZ.newInstance(),gi(t,e,["openGLTexture"]),XZ(t,e)}const ZZ=Bt(JZ,"vtkOpenGLImageResliceMapper");ir("vtkImageResliceMapper",ZZ);const mc={MAX:0,MIN:1,AVERAGE:2},{vtkErrorMacro:Tg}=W;function QZ(t,e){e.classHierarchy.push("vtkOpenGLImageCPRMapper");function r(n){[e._scalars,e._colorTransferFunc,e._pwFunc].forEach(i=>n.unregisterGraphicsResourceUser(i,t))}t.buildPass=n=>{if(n){e.currentRenderPass=null,e.openGLImageSlice=t.getFirstAncestorOfType("vtkOpenGLImageSlice"),e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer");const i=e._openGLRenderWindow;e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),i&&!i.isDeleted()&&i!==e._openGLRenderWindow&&r(i),e.context=e._openGLRenderWindow.getContext(),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()),e.tris.setOpenGLRenderWindow(e._openGLRenderWindow)}},t.opaquePass=(n,i)=>{n&&(e.currentRenderPass=i,t.render())},t.opaqueZBufferPass=n=>{n&&(e.haveSeenDepthRequest=!0,e.renderDepth=!0,t.render(),e.renderDepth=!1)},t.getCoincidentParameters=(n,i)=>e.renderable.getResolveCoincidentTopology()===ko.PolygonOffset?e.renderable.getCoincidentTopologyPolygonOffsetParameters():null,t.render=()=>{const n=e.openGLImageSlice.getRenderable(),i=e._openGLRenderer.getRenderable();t.renderPiece(i,n)},t.renderPiece=(n,i)=>{t.invokeEvent({type:"StartEvent"}),e.renderable.update(),t.invokeEvent({type:"EndEvent"}),e.renderable.preRenderCheck()&&(e.currentImageDataInput=e.renderable.getInputData(0),e.currentCenterlineInput=e.renderable.getOrientedCenterline(),t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i))},t.renderPieceStart=(n,i)=>{t.updateBufferObjects(n,i)},t.renderPieceDraw=(n,i)=>{const o=e.context;e.volumeTexture.activate(),e.colorTexture.activate(),e.pwfTexture.activate(),e.tris.getCABO().getElementCount()&&(t.updateShaders(e.tris,n,i),o.drawArrays(o.TRIANGLES,0,e.tris.getCABO().getElementCount()),e.tris.getVAO().release()),e.volumeTexture.deactivate(),e.colorTexture.deactivate(),e.pwfTexture.deactivate()},t.renderPieceFinish=(n,i)=>{},t.updateBufferObjects=(n,i)=>{t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i),i.getProperty().getInterpolationType()===Xc.NEAREST?(e.volumeTexture.setMinificationFilter(Je.NEAREST),e.volumeTexture.setMagnificationFilter(Je.NEAREST),e.colorTexture.setMinificationFilter(Je.NEAREST),e.colorTexture.setMagnificationFilter(Je.NEAREST),e.pwfTexture.setMinificationFilter(Je.NEAREST),e.pwfTexture.setMagnificationFilter(Je.NEAREST)):(e.volumeTexture.setMinificationFilter(Je.LINEAR),e.volumeTexture.setMagnificationFilter(Je.LINEAR),e.colorTexture.setMinificationFilter(Je.LINEAR),e.colorTexture.setMagnificationFilter(Je.LINEAR),e.pwfTexture.setMinificationFilter(Je.LINEAR),e.pwfTexture.setMagnificationFilter(Je.LINEAR))},t.getNeedToRebuildBufferObjects=(n,i)=>{var a;const o=e.VBOBuildTime.getMTime();return o{var _,E,D,b;const o=e.currentImageDataInput,a=e.currentCenterlineInput,s=(_=o==null?void 0:o.getPointData())==null?void 0:_.getScalars();if(!s)return;const c=e._openGLRenderWindow.getGraphicsResourceForObject(s),l=Ww(o,s);if(!((E=c==null?void 0:c.oglObject)!=null&&E.getHandle())||(c==null?void 0:c.hash)!==l){e.volumeTexture=yn.newInstance(),e.volumeTexture.setOpenGLRenderWindow(e._openGLRenderWindow);const I=o.getDimensions();e.volumeTexture.setOglNorm16Ext(e.context.getExtension("EXT_texture_norm16")),e.volumeTexture.resetFormatAndType(),e.volumeTexture.create3DFilterableFromDataArray(I[0],I[1],I[2],s,e.renderable.getPreferSizeOverAccuracy()),e._openGLRenderWindow.setGraphicsResourceForObject(s,e.volumeTexture,l),s!==e._scalars&&(e._openGLRenderWindow.registerGraphicsResourceUser(s,t),e._openGLRenderWindow.unregisterGraphicsResourceUser(e._scalars,t)),e._scalars=s}else e.volumeTexture=c.oglObject;const u=s.getNumberOfComponents(),d=i.getProperty(),h=d.getIndependentComponents(),g=h?u:1,p=h?2*g:1,v=d.getRGBTransferFunction(),x=sa(v,h,g),m=e._openGLRenderWindow.getGraphicsResourceForObject(v);if(!((D=m==null?void 0:m.oglObject)!=null&&D.getHandle())||(m==null?void 0:m.hash)!==x){const R=1024*p*3,M=new Uint8ClampedArray(R);if(e.colorTexture=yn.newInstance(),e.colorTexture.setOpenGLRenderWindow(e._openGLRenderWindow),v){const L=new Float32Array(3072);for(let A=0;A{const a=e.volumeTexture.getComponents(),s=o.getProperty().getIndependentComponents(),c=!!e.renderable.getCenterPoint(),l=e.renderable.getUseUniformOrientation(),f=e.renderable.isProjectionEnabled()&&e.renderable.getProjectionMode();return n.getProgram()===0||e.lastUseCenterPoint!==c||e.lastUseUniformOrientation!==l||e.lastProjectionMode!==f||e.lastHaveSeenDepthRequest!==e.haveSeenDepthRequest||e.lastTextureComponents!==a||e.lastIndependentComponents!==s?(e.lastUseCenterPoint=c,e.lastUseUniformOrientation=l,e.lastProjectionMode=f,e.lastHaveSeenDepthRequest=e.haveSeenDepthRequest,e.lastTextureComponents=a,e.lastIndependentComponents=s,!0):!1},t.buildShaders=(n,i,o)=>{t.getShaderTemplate(n,i,o),t.replaceShaderValues(n,i,o)},t.replaceShaderValues=(n,i,o)=>{let a=n.Vertex,s=n.Fragment;const c=["vec3 applyQuaternionToVec(vec4 q, vec3 v) {"," float uvx = q.y * v.z - q.z * v.y;"," float uvy = q.z * v.x - q.x * v.z;"," float uvz = q.x * v.y - q.y * v.x;"," float uuvx = q.y * uvz - q.z * uvy;"," float uuvy = q.z * uvx - q.x * uvz;"," float uuvz = q.x * uvy - q.y * uvx;"," float w2 = q.w * 2.0;"," uvx *= w2;"," uvy *= w2;"," uvz *= w2;"," uuvx *= 2.0;"," uuvy *= 2.0;"," uuvz *= 2.0;"," return vec3(v.x + uvx + uuvx, v.y + uvy + uuvy, v.z + uvz + uuvz);","}"];a=ce.substitute(a,"//VTK::Camera::Dec",["uniform mat4 MCPCMatrix;"]).result,a=ce.substitute(a,"//VTK::PositionVC::Impl",[" gl_Position = MCPCMatrix * vertexMC;"]).result;const l=["attribute vec3 centerlinePosition;","attribute float quadIndex;","uniform float width;","out vec2 quadOffsetVSOutput;","out vec3 centerlinePosVSOutput;"],f=e.renderable.isProjectionEnabled(),u=e.renderable.getUseUniformOrientation();u?(l.push("out vec3 samplingDirVSOutput;","uniform vec4 centerlineOrientation;","uniform vec3 tangentDirection;",...c),f&&l.push("out vec3 projectionDirVSOutput;","uniform vec3 bitangentDirection;")):l.push("out vec4 centerlineTopOrientationVSOutput;","out vec4 centerlineBotOrientationVSOutput;","attribute vec4 centerlineTopOrientation;","attribute vec4 centerlineBotOrientation;"),a=ce.substitute(a,"//VTK::Color::Dec",l).result;const d=["quadOffsetVSOutput = vec2(width * (mod(quadIndex, 2.0) == 0.0 ? -0.5 : 0.5), quadIndex > 1.0 ? 0.0 : 1.0);","centerlinePosVSOutput = centerlinePosition;"];u?(d.push("samplingDirVSOutput = applyQuaternionToVec(centerlineOrientation, tangentDirection);"),f&&d.push("projectionDirVSOutput = applyQuaternionToVec(centerlineOrientation, bitangentDirection);")):d.push("centerlineTopOrientationVSOutput = centerlineTopOrientation;","centerlineBotOrientationVSOutput = centerlineBotOrientation;"),a=ce.substitute(a,"//VTK::Color::Impl",d).result;const h=e.volumeTexture.getComponents(),g=o.getProperty().getIndependentComponents();let p=["uniform mat4 MCTCMatrix; // Model coordinates to texture coordinates","in vec2 quadOffsetVSOutput;","in vec3 centerlinePosVSOutput;","uniform highp sampler3D volumeTexture;","uniform sampler2D colorTexture1;","uniform sampler2D pwfTexture1;","uniform float opacity;","uniform vec4 backgroundColor;","uniform float cshift0;","uniform float cscale0;","uniform float pwfshift0;","uniform float pwfscale0;"];f&&p.push("uniform vec3 volumeSizeMC;","uniform int projectionSlabNumberOfSamples;","uniform float projectionConstantOffset;","uniform float projectionStepLength;"),u?(p.push("in vec3 samplingDirVSOutput;"),f&&p.push("in vec3 projectionDirVSOutput;")):(p.push("uniform vec3 tangentDirection;","in vec4 centerlineTopOrientationVSOutput;","in vec4 centerlineBotOrientationVSOutput;",...c),f&&p.push("uniform vec3 bitangentDirection;"));const v=e.renderable.getCenterPoint();if(v&&p.push("uniform vec3 globalCenterPoint;"),g){for(let m=1;m 0.999 || qCosAngle < -0.999) {"," // Use LERP instead of SLERP when the two quaternions are close or opposite"," interpolatedOrientation = normalize(mix(q0, q1, quadOffsetVSOutput.y));","} else {"," float omega = acos(qCosAngle);"," interpolatedOrientation = normalize(sin((1.0 - quadOffsetVSOutput.y) * omega) * q0 + sin(quadOffsetVSOutput.y * omega) * q1);","}","vec3 samplingDirection = applyQuaternionToVec(interpolatedOrientation, tangentDirection);"),f&&x.push("vec3 projectionDirection = applyQuaternionToVec(interpolatedOrientation, bitangentDirection);")),v?x.push("float baseOffset = dot(samplingDirection, globalCenterPoint - centerlinePosVSOutput);","float horizontalOffset = quadOffsetVSOutput.x + baseOffset;"):x.push("float horizontalOffset = quadOffsetVSOutput.x;"),x.push("vec3 volumePosMC = centerlinePosVSOutput + horizontalOffset * samplingDirection;","vec3 volumePosTC = (MCTCMatrix * vec4(volumePosMC, 1.0)).xyz;","if (any(lessThan(volumePosTC, vec3(0.0))) || any(greaterThan(volumePosTC, vec3(1.0))))","{"," // set the background color and exit"," gl_FragData[0] = backgroundColor;"," return;","}"),f){const m=e.renderable.getProjectionMode();switch(m){case mc.MIN:x.push("const vec4 initialProjectionTextureValue = vec4(1.0);");break;case mc.MAX:case mc.AVERAGE:default:x.push("const vec4 initialProjectionTextureValue = vec4(0.0);");break}switch(x.push("vec3 projectionScaledDirection = projectionDirection / volumeSizeMC;","vec3 projectionStep = projectionStepLength * projectionScaledDirection;","vec3 projectionStartPosition = volumePosTC + projectionConstantOffset * projectionScaledDirection;","vec4 tvalue = initialProjectionTextureValue;","for (int projectionSampleIdx = 0; projectionSampleIdx < projectionSlabNumberOfSamples; ++projectionSampleIdx) {"," vec3 projectionSamplePosition = projectionStartPosition + float(projectionSampleIdx) * projectionStep;"," vec4 sampledTextureValue = texture(volumeTexture, projectionSamplePosition);"),m){case mc.MAX:x.push(" tvalue = max(tvalue, sampledTextureValue);");break;case mc.MIN:x.push(" tvalue = min(tvalue, sampledTextureValue);");break;case mc.AVERAGE:default:x.push(" tvalue = tvalue + sampledTextureValue;");break}x.push("}"),m===mc.AVERAGE&&x.push("tvalue = tvalue / float(projectionSlabNumberOfSamples);")}else x.push("vec4 tvalue = texture(volumeTexture, volumePosTC);");if(g){const m=["r","g","b","a"];for(let y=0;y{let a=n.Vertex,s=n.Fragment;if(e.renderable.getNumberOfClippingPlanes()){let c=e.renderable.getNumberOfClippingPlanes();c>6&&(W.vtkErrorMacro("OpenGL has a limit of 6 clipping planes"),c=6),a=ce.substitute(a,"//VTK::Clip::Dec",["uniform int numClipPlanes;","uniform vec4 clipPlanes[6];","varying float clipDistancesVSOutput[6];"]).result,a=ce.substitute(a,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," clipDistancesVSOutput[planeNum] = dot(clipPlanes[planeNum], vertexMC);"," }"]).result,s=ce.substitute(s,"//VTK::Clip::Dec",["uniform int numClipPlanes;","varying float clipDistancesVSOutput[6];"]).result,s=ce.substitute(s,"//VTK::Clip::Impl",["for (int planeNum = 0; planeNum < 6; planeNum++)"," {"," if (planeNum >= numClipPlanes)"," {"," break;"," }"," if (clipDistancesVSOutput[planeNum] < 0.0) discard;"," }"]).result}n.Vertex=a,n.Fragment=s},t.getShaderTemplate=(n,i,o)=>{n.Vertex=Gw,n.Fragment=wh,n.Geometry=""},t.setMapperShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=n.getCABO();s.getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())&&(a.isAttributeUsed("vertexMC")&&(n.getVAO().addAttributeArray(a,s,"vertexMC",s.getVertexOffset(),s.getStride(),e.context.FLOAT,3,e.context.FALSE)||Tg("Error setting vertexMC in shader VAO.")),n.getCABO().getCustomData().forEach(h=>{h&&a.isAttributeUsed(h.name)&&!n.getVAO().addAttributeArray(a,s,h.name,h.offset,s.getStride(),e.context.FLOAT,h.components,e.context.FALSE)&&Tg(`Error setting ${h.name} in shader VAO.`)}),n.getAttributeUpdateTime().modified());const c=e.volumeTexture.getTextureUnit();if(a.setUniformi("volumeTexture",c),a.setUniformf("width",e.renderable.getWidth()),n.getProgram().setUniform4fv("backgroundColor",e.renderable.getBackgroundColor()),a.isUniformUsed("tangentDirection")){const h=e.renderable.getTangentDirection();n.getProgram().setUniform3fArray("tangentDirection",h)}if(a.isUniformUsed("bitangentDirection")){const h=e.renderable.getBitangentDirection();n.getProgram().setUniform3fArray("bitangentDirection",h)}if(a.isUniformUsed("centerlineOrientation")){const h=e.renderable.getUniformOrientation();n.getProgram().setUniform4fv("centerlineOrientation",h)}if(a.isUniformUsed("globalCenterPoint")){const h=e.renderable.getCenterPoint();a.setUniform3fArray("globalCenterPoint",h)}if(e.renderable.isProjectionEnabled()){const h=e.currentImageDataInput,g=h.getSpacing(),p=h.getDimensions(),v=e.renderable.getProjectionSlabThickness(),x=e.renderable.getProjectionSlabNumberOfSamples(),m=tj([],g,p);a.setUniform3fArray("volumeSizeMC",m),a.setUniformi("projectionSlabNumberOfSamples",x);const y=-.5*v;a.setUniformf("projectionConstantOffset",y);const w=v/(x-1);a.setUniformf("projectionStepLength",w)}const l=e.currentImageDataInput,f=l.getWorldToIndex(),u=xw(new Float32Array(16),ob([],l.getDimensions())),d=O1(u,u,f);if(a.setUniformMatrix("MCTCMatrix",d),e.haveSeenDepthRequest&&n.getProgram().setUniformi("depthRequest",e.renderDepth?1:0),e.renderable.getNumberOfClippingPlanes()){let h=e.renderable.getNumberOfClippingPlanes();h>6&&(W.vtkErrorMacro("OpenGL has a limit of 6 clipping planes"),h=6);const p=s.getCoordShiftAndScaleEnabled()?s.getInverseShiftAndScaleMatrix():null,v=p?_n(e.imagematinv,o.getMatrix()):o.getMatrix();p&&(St(v,v),bt(v,v,p),St(v,v)),St(e.imagemat,e.currentImageDataInput.getIndexToWorld()),bt(e.imagematinv,v,e.imagemat);const x=[];for(let m=0;m{const a=e.openGLImageSlice.getKeyMatrices().mcwc,s=e.openGLCamera.getKeyMatrices(i).wcpc;if(bt(e.imagemat,s,a),n.getCABO().getCoordShiftAndScaleEnabled()){const c=n.getCABO().getInverseShiftAndScaleMatrix();bt(e.imagemat,e.imagemat,c)}n.getProgram().setUniformMatrix("MCPCMatrix",e.imagemat)},t.setPropertyShaderParameters=(n,i,o)=>{const a=n.getProgram(),s=o.getProperty(),c=s.getOpacity();a.setUniformf("opacity",c);const l=e.volumeTexture.getComponents(),f=s.getIndependentComponents();if(f)for(let g=0;g{if(t.getNeedToRebuildShaders(n,i,o)){const a={Vertex:null,Fragment:null,Geometry:null};t.buildShaders(a,i,o);const s=e._openGLRenderWindow.getShaderCache().readyShaderProgramArray(a.Vertex,a.Fragment,a.Geometry);s!==n.getProgram()&&(n.setProgram(s),n.getVAO().releaseGraphicsResources()),n.getShaderSourceTime().modified()}else e._openGLRenderWindow.getShaderCache().readyShaderProgram(n.getProgram());n.getVAO().bind(),t.setMapperShaderParameters(n,i,o),t.setCameraShaderParameters(n,i,o),t.setPropertyShaderParameters(n,i,o)},t.delete=W.chain(()=>{e._openGLRenderWindow&&r(e._openGLRenderWindow)},t.delete)}const eQ={currentRenderPass:null,volumeTexture:null,colorTexture:null,pwfTexture:null,tris:null,lastHaveSeenDepthRequest:!1,haveSeenDepthRequest:!1,lastTextureComponents:0,lastIndependentComponents:0,imagemat:null,imagematinv:null};function tQ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eQ,r),tn.extend(t,e,r),aa.implementReplaceShaderCoincidentOffset(t,e,r),W.algo(t,e,2,0),e.tris=fa.newInstance(),e.volumeTexture=null,e.colorTexture=null,e.pwfTexture=null,e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.VBOBuildTime={},W.obj(e.VBOBuildTime,{mtime:0}),QZ(t,e)}const nQ=W.newInstance(tQ,"vtkOpenGLImageCPRMapper");ir("vtkImageCPRMapper",nQ);const sM=Object.create(null);function uo(t,e){sM[t]=e}function rQ(t,e){e.classHierarchy.push("vtkWebGPUViewNodeFactory")}const iQ={};function oQ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,iQ,r),e.overrides=sM,fw.extend(t,e,r),rQ(t,e)}W.newInstance(oQ,"vtkWebGPUViewNodeFactory");function aQ(t,e){e.classHierarchy.push("vtkWebGPUCamera"),t.getProjectionMatrix=(r,n,i,o)=>{if(qe(r),e.renderable.getParallelProjection()){const a=e.renderable.getParallelScale(),s=a*n,c=a,l=(o[0]-1)*s,f=(o[0]+1)*s,u=(o[1]-1)*c,d=(o[1]+1)*c,h=1/(f-l),g=1/(d-u);r[0]=2*h,r[5]=2*g,r[10]=1/(i[1]-i[0]),r[12]=(f+l)*h,r[13]=(d+u)*g,r[14]=i[1]/(i[1]-i[0])}else{const a=Math.tan(Math.PI*e.renderable.getViewAngle()/360);let s,c;e.renderable.getUseHorizontalViewAngle()===!0?(s=i[0]*a,c=i[0]*a/n):(s=i[0]*a*n,c=i[0]*a);const l=(o[0]-1)*s,f=(o[0]+1)*s,u=(o[1]-1)*c,d=(o[1]+1)*c;r[0]=2*i[0]/(f-l),r[5]=2*i[0]/(d-u),r[12]=(l+f)/(f-l),r[13]=(u+d)/(d-u),r[10]=0,r[14]=i[0],r[11]=-1,r[15]=0}},t.convertToOpenGLDepth=r=>{if(e.renderable.getParallelProjection())return 1-r;const n=e.renderable.getClippingRangeByReference();let i=-n[0]/r;return i=(n[0]+n[1])/(n[1]-n[0])+2*n[0]*n[1]/(i*(n[1]-n[0])),.5*i+.5},t.getKeyMatrices=r=>{const n=r.getRenderable(),i=r.getParent();if(Math.max(i.getMTime(),t.getMTime(),n.getMTime(),e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatrixTime.getMTime()){const o=e.renderable.getViewMatrix();_n(e.keyMatrices.normalMatrix,o),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.wcvc,o);const a=r.getStabilizedCenterByReference();nn(e.keyMatrices.scvc,e.keyMatrices.wcvc,a);const s=r.getAspectRatio(),c=e.renderable.getClippingRangeByReference();t.getProjectionMatrix(e.keyMatrices.vcpc,s,c,e.renderable.getWindowCenterByReference()),bt(e.keyMatrices.scpc,e.keyMatrices.vcpc,e.keyMatrices.scvc),$n(e.keyMatrices.pcsc,e.keyMatrices.scpc),e.keyMatrixTime.modified()}return e.keyMatrices}}const sQ={keyMatrixTime:null,keyMatrices:null};function cQ(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sQ,r),tn.extend(t,e,r),e.keyMatrixTime={},W.obj(e.keyMatrixTime),e.keyMatrices={normalMatrix:new Float64Array(16),vcpc:new Float64Array(16),pcsc:new Float64Array(16),wcvc:new Float64Array(16),scpc:new Float64Array(16),scvc:new Float64Array(16)},W.setGet(t,e,["keyMatrixTime"]),aQ(t,e)}const lQ=W.newInstance(cQ);uo("vtkCamera",lQ);function uQ(t,e){e.classHierarchy.push("vtkWebGPUBindGroup"),t.setBindables=r=>{if(e.bindables.length===r.length){let n=!0;for(let i=0;i{const n=[];for(let i=0;i{let n=t.getMTime();for(let o=0;on?a:n}if(n{const n=[],i=r.getBindGroupLayoutCount(e.label);for(let o=0;o2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,fQ,r),W.obj(t,e),e.bindables=[],e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","handle","sizeInBytes","usage"]),W.setGet(t,e,["label","device","arrayInformation"]),uQ(t,e)}const dQ=W.newInstance(cM);var lM={newInstance:dQ,extend:cM};function hQ(t,e){e.classHierarchy.push("vtkWebGPUShaderModule"),t.initialize=(r,n)=>{e.device=r,e.handle=e.device.getHandle().createShaderModule({code:n.getCode()})}}const gQ={device:null,handle:null};function uM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gQ,r),W.obj(t,e),W.get(t,e,["lastCameraMTime"]),W.setGet(t,e,["device","handle"]),hQ(t,e)}const pQ=W.newInstance(uM,"vtkWebGPUShaderModule");var mQ={newInstance:pQ,extend:uM};function vQ(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const i=Array.isArray(r)?r.join(` +`):r;let o=!1;t.search(e)!==-1&&(o=!0);let a="";n&&(a="g");const s=new RegExp(e,a),c=t.replace(s,i);return{replace:o,result:c}}function yQ(t,e){e.classHierarchy.push("vtkWebGPUShaderCache"),t.getShaderModule=r=>{const n=r.getType(),i=r.getHash(),o=e._shaderModules.keys();for(let s=0;s2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xQ,r),e._shaderModules=new Map,W.obj(t,e),W.setGet(t,e,["device","window"]),yQ(t,e)}const wQ=W.newInstance(fM,"vtkWebGPUShaderCache");var Zt={newInstance:wQ,extend:fM,substitute:vQ};function CQ(t,e){e.classHierarchy.push("vtkWebGPUPipeline"),t.getShaderDescriptions=()=>e.shaderDescriptions,t.initialize=(r,n)=>{e.pipelineDescription=e.renderEncoder.getPipelineSettings(),e.pipelineDescription.primitive.topology=e.topology,e.pipelineDescription.vertex=e.vertexState,e.pipelineDescription.label=n;const i=[];for(let o=0;o{for(let n=0;n{r&&e.layouts.push({layout:r.getBindGroupLayout(e.device),label:r.getLabel()})},t.getBindGroupLayout=r=>e.layouts[r].layout,t.getBindGroupLayoutCount=r=>{for(let n=0;n{n.bindBuffers(r)}}const SQ={handle:null,layouts:null,renderEncoder:null,shaderDescriptions:null,vertexState:null,topology:null,pipelineDescription:null};function dM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,SQ,r),un(t,e),e.layouts=[],e.shaderDescriptions=[],gi(t,e,["handle","pipelineDescription"]),Jn(t,e,["device","renderEncoder","topology","vertexState"]),CQ(t,e)}const TQ=Bt(dM,"vtkWebGPUPipeline");var _Q={newInstance:TQ,extend:dM};function EQ(t,e){e.classHierarchy.push("vtkWebGPUShaderDescription"),t.hasOutput=r=>e.outputNames.includes(r),t.addOutput=function(r,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;e.outputTypes.push(r),e.outputNames.push(n),e.outputInterpolations.push(i)},t.addBuiltinOutput=(r,n)=>{e.builtinOutputTypes.push(r),e.builtinOutputNames.push(n)},t.addBuiltinInput=(r,n)=>{e.builtinInputTypes.push(r),e.builtinInputNames.push(n)},t.replaceShaderCode=(r,n)=>{const i=[];let o=[];if(n&&i.push(n.getShaderCode()),r||e.builtinInputNames.length){const a=[];if(a.push(`struct ${e.type}Input +{`),r){const s=r.getOutputNamesByReference(),c=r.getOutputTypesByReference(),l=r.getOutputInterpolationsByReference();for(let f=0;f1&&(a.push("};"),o=a,i[i.length-1]+=",",i.push(`input: ${e.type}Input`))}if(i.length&&(e.code=Zt.substitute(e.code,"//VTK::IOStructs::Input",i).result),e.outputNames.length+e.builtinOutputNames.length){const a=[`struct ${e.type}Output +{`];for(let s=0;s ${e.type}Output`]).result}e.code=Zt.substitute(e.code,"//VTK::IOStructs::Dec",o).result}}const DQ={type:null,hash:null,code:null,outputNames:null,outputTypes:null};function hM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,DQ,r),e.outputNames=[],e.outputTypes=[],e.outputInterpolations=[],e.builtinOutputNames=[],e.builtinOutputTypes=[],e.builtinInputNames=[],e.builtinInputTypes=[],W.obj(t,e),W.setGet(t,e,["type","hash","code"]),W.getArray(t,e,["outputTypes","outputNames","outputInterpolations"]),EQ(t,e)}const bQ=W.newInstance(hM,"vtkWebGPUShaderDescription");var w8={newInstance:bQ,extend:hM};const C8={r8unorm:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"float"},r8snorm:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"float"},r8uint:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},r8sint:{numComponents:1,nativeType:Int8Array,stride:1,elementSize:1,sampleType:"sint"},r16uint:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"uint"},r16sint:{numComponents:1,nativeType:Int16Array,stride:2,elementSize:2,sampleType:"sint"},r16float:{numComponents:1,nativeType:Float32Array,stride:2,elementSize:2,sampleType:"float"},rg8unorm:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"float"},rg8snorm:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"float"},rg8uint:{numComponents:2,nativeType:Uint8Array,stride:2,elementSize:1,sampleType:"uint"},rg8sint:{numComponents:2,nativeType:Int8Array,stride:2,elementSize:1,sampleType:"sint"},r32uint:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:4,sampleType:"uint"},r32sint:{numComponents:1,nativeType:Int32Array,stride:4,elementSize:4,sampleType:"sint"},r32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"unfilterable-float"},rg16uint:{numComponents:2,nativeType:Uint16Array,stride:4,elementSize:2,sampleType:"uint"},rg16sint:{numComponents:2,nativeType:Int16Array,stride:4,elementSize:2,sampleType:"sint"},rg16float:{numComponents:2,nativeType:Float32Array,stride:4,elementSize:2,sampleType:"float"},rgba8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"rgba8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgba8snorm:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"float"},rgba8uint:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"uint"},rgba8sint:{numComponents:4,nativeType:Int8Array,stride:4,elementSize:1,sampleType:"sint"},bgra8unorm:{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},"bgra8unorm-srgb":{numComponents:4,nativeType:Uint8Array,stride:4,elementSize:1,sampleType:"float"},rgb9e5ufloat:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rgb10a2unorm:{numComponents:4,nativeType:Uint32Array,stride:4,sampleType:"float"},rg11b10ufloat:{numComponents:4,nativeType:Float32Array,stride:4,sampleType:"float"},rg32uint:{numComponents:2,nativeType:Uint32Array,stride:8,elementSize:4,sampleType:"uint"},rg32sint:{numComponents:2,nativeType:Int32Array,stride:8,elementSize:4,sampleType:"sint"},rg32float:{numComponents:2,nativeType:Float32Array,stride:8,elementSize:4,sampleType:"unfilterable-float"},rgba16uint:{numComponents:4,nativeType:Uint16Array,stride:8,elementSize:2,sampleType:"uint"},rgba16sint:{numComponents:4,nativeType:Int16Array,stride:8,elementSize:2,sampleType:"sint"},rgba16float:{numComponents:4,nativeType:Float32Array,stride:8,elementSize:2,sampleType:"float"},rgba32uint:{numComponents:4,nativeType:Uint32Array,stride:16,elementSize:4,sampleType:"uint"},rgba32sint:{numComponents:4,nativeType:Int32Array,stride:16,elementSize:4,sampleType:"sint"},rgba32float:{numComponents:4,nativeType:Float32Array,stride:16,elementSize:4,sampleType:"unfilterable-float"},stencil8:{numComponents:1,nativeType:Uint8Array,stride:1,elementSize:1,sampleType:"uint"},depth16unorm:{numComponents:1,nativeType:Uint16Array,stride:2,elementSize:2,sampleType:"depth"},depth24plus:{numComponents:1,nativeType:Uint32Array,stride:4,elementSize:3,sampleType:"depth"},"depth24plus-stencil8":{numComponents:2,nativeType:Uint32Array,stride:4,sampleType:"mixed"},depth32float:{numComponents:1,nativeType:Float32Array,stride:4,elementSize:4,sampleType:"depth"}};function IQ(t){return!t||t.length<6?0:t in C8?C8[t]:(Dt(`unknown format ${t}`),null)}function OQ(t){if(!t||t.length<5)return 0;let e=1;t[t.length-2]==="x"&&(e=Number(t[t.length-1]));const r=e===1?t.length-1:t.length-3,n=Number(t[r]);if(Number.isNaN(n))return Dt(`unknown format ${t}`),0;const i=5-n/2;return e*i}function MQ(t){if(!t||t.length<5)return 0;let e=1;return t[t.length-2]==="x"&&(e=Number(t[t.length-1])),e}function RQ(t){if(!t||t.length<5)return 0;let e;if(t[0]==="f")e="Float";else if(t[0]==="s")e="Int";else if(t[0]==="u")e="Uint";else{Dt(`unknown format ${t}`);return}const r=t.split("x")[0],n=Number(r[r.length-1]);if(Number.isNaN(n)){Dt(`unknown format ${t}`);return}return e+=8*(5-n/2),e+="Array",e}function LQ(t){let e;if(t[0]==="f"||t[1]==="n")e="f32";else if(t[0]==="s"&&t[1]==="i")e="i32";else if(t[0]==="u"&&t[1]==="i")e="u32";else{Dt(`unknown format ${t}`);return}let r=1;return t[t.length-2]==="x"&&(r=Number(t[t.length-1])),r===4?`vec4<${e}>`:r===3?`vec3<${e}>`:r===2?`vec2<${e}>`:e}function NQ(t){if(!t)return 0;let e=1;return t.substring(0,3)==="vec"?e=Number(t[3]):t.substring(0,3)==="mat"&&(e=t[3]*t[5]),e*4}function PQ(t){if(t){if(t.includes("f32"))return"Float32Array";if(t.includes("i32"))return"Int32Array";if(t.includes("u32"))return"Uint32Array";Dt(`unknown format ${t}`)}}var Ar={getDetailsFromTextureFormat:IQ,getByteStrideFromBufferFormat:OQ,getNumberOfComponentsFromBufferFormat:MQ,getNativeTypeFromBufferFormat:RQ,getShaderTypeFromBufferFormat:LQ,getByteStrideFromShaderFormat:NQ,getNativeTypeFromShaderFormat:PQ};function AQ(t,e){if(t===e)return!0;if(t==null||e==null||t.length!==e.length)return!1;for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:"vertex",o=n;Array.isArray(o)||(o=[o]);for(let a=0;aa.names[0]s.names[0]?1:0)},t.removeBufferIfPresent=r=>{for(let n=0;n{for(let n=0;n{for(let n=0;n{for(let n=0;n{let r="",n=0;for(let i=0;i0&&(r+=`, +`),r=`${r} @location(${n}) ${e.inputs[i].names[o]} : ${s}`,n++}return r},t.getVertexInputInformation=()=>{const r={};if(e.inputs.length){const n=[];let i=0;for(let o=0;o{for(let n=0;n{},t.releaseGraphicsResources=()=>{e.created&&(e.inputs=[],e.bindingDescriptions=[],e.attributeDescriptions=[])}}const VQ={inputs:null,bindingDescriptions:!1,attributeDescriptions:null,indexBuffer:null};function gM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VQ,r),un(t,e),e.bindingDescriptions=[],e.attributeDescriptions=[],e.inputs=[],Jn(t,e,["created","device","handle","indexBuffer"]),kQ(t,e)}const FQ=Bt(gM,"vtkWebGPUVertexInput");var UQ={newInstance:FQ,extend:gM};const BQ=` //VTK::Renderer::Dec //VTK::Color::Dec @@ -2844,7 +2844,7 @@ fn main( return output; } -`,AQ=` +`,GQ=` //VTK::Renderer::Dec //VTK::Color::Dec @@ -2884,7 +2884,7 @@ fn main( //VTK::RenderEncoder::Impl return output; } -`;function kQ(t,e){e.classHierarchy.push("vtkWebGPUSimpleMapper"),t.generateShaderDescriptions=(r,n,i)=>{const o=v8.newInstance({type:"vertex",hash:r,code:e.vertexShaderTemplate}),a=v8.newInstance({type:"fragment",hash:r,code:e.fragmentShaderTemplate}),s=n.getShaderDescriptions();s.push(o),s.push(a);const c=e.vertexShaderTemplate+e.fragmentShaderTemplate,l=new RegExp("//VTK::[^:]*::","g"),u=c.match(l).filter((d,h,g)=>g.indexOf(d)===h).map(d=>`replaceShader${d.substring(7,d.length-2)}`);for(let d=0;d{const o=n.getShaderDescription("vertex");o.replaceShaderCode(null,i),n.getShaderDescription("fragment").replaceShaderCode(o)},t.replaceShaderRenderEncoder=(r,n,i)=>{e.renderEncoder.replaceShaderCode(n)},e.shaderReplacements.set("replaceShaderRenderEncoder",t.replaceShaderRenderEncoder),t.replaceShaderRenderer=(r,n,i)=>{if(!e.WebGPURenderer)return;const o=e.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription("vertex");let s=a.getCode();s=Qt.substitute(s,"//VTK::Renderer::Dec",[o]).result,a.setCode(s);const c=n.getShaderDescription("fragment");s=c.getCode(),s=Qt.substitute(s,"//VTK::Renderer::Dec",[o]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderRenderer",t.replaceShaderRenderer),t.replaceShaderMapper=(r,n,i)=>{const o=e.bindGroup.getShaderCode(n),a=n.getShaderDescription("vertex");let s=a.getCode();s=Qt.substitute(s,"//VTK::Mapper::Dec",[o]).result,a.setCode(s);const c=n.getShaderDescription("fragment");c.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),s=c.getCode(),s=Qt.substitute(s,"//VTK::Mapper::Dec",[o]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderMapper",t.replaceShaderMapper),t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position");let a=o.getCode();a=Qt.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderTCoord=(r,n,i)=>{n.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.addTextureView=r=>{e.textureViews.includes(r)||e.textureViews.push(r)},t.prepareToDraw=r=>{e.renderEncoder=r,t.updateInput(),t.updateBuffers(),t.updateBindings(),t.updatePipeline()},t.updateInput=()=>{},t.updateBuffers=()=>{},t.updateBindings=()=>{e.bindGroup.setBindables(t.getBindables())},t.computePipelineHash=()=>{},t.registerDrawCallback=r=>{r.registerDrawCallback(e.pipeline,t.draw)},t.prepareAndDraw=r=>{t.prepareToDraw(r),r.setPipeline(e.pipeline),t.draw(r)},t.draw=r=>{const n=r.getBoundPipeline();r.activateBindGroup(e.bindGroup),e.WebGPURenderer&&e.WebGPURenderer.bindUBO(r),n.bindVertexInput(r,e.vertexInput);const i=e.vertexInput.getIndexBuffer();i?r.drawIndexed(i.getIndexCount(),e.numberOfInstances,0,0,0):r.draw(e.numberOfVertices,e.numberOfInstances,0,0)},t.getBindables=()=>{const r=[...e.additionalBindables];e.UBO&&r.push(e.UBO),e.SSBO&&r.push(e.SSBO);for(let n=0;n{t.computePipelineHash(),e.pipeline=e.device.getPipeline(e.pipelineHash),e.pipeline||(e.pipeline=yQ.newInstance(),e.pipeline.setDevice(e.device),e.WebGPURenderer&&e.pipeline.addBindGroupLayout(e.WebGPURenderer.getBindGroup()),e.pipeline.addBindGroupLayout(e.bindGroup),t.generateShaderDescriptions(e.pipelineHash,e.pipeline,e.vertexInput),e.pipeline.setTopology(e.topology),e.pipeline.setRenderEncoder(e.renderEncoder),e.pipeline.setVertexState(e.vertexInput.getVertexInputInformation()),e.device.createPipeline(e.pipelineHash,e.pipeline))}}const VQ={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function uM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,VQ,r),nn.extend(t,e,r),e.textureViews=[],e.vertexInput=NQ.newInstance(),e.bindGroup=iM.newInstance({label:"mapperBG"}),e.additionalBindables=[],e.fragmentShaderTemplate=e.fragmentShaderTemplate||AQ,e.vertexShaderTemplate=e.vertexShaderTemplate||PQ,e.shaderReplacements=new Map,W.get(t,e,["pipeline","vertexInput"]),W.setGet(t,e,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),kQ(t,e)}const FQ=W.newInstance(uM,"vtkWebGPUSimpleMapper");var fM={newInstance:FQ,extend:uM};function UQ(t,e){e.classHierarchy.push("vtkWebGPUFullScreenQuad"),t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position"),o.addOutput("vec4","vertexVC");let a=o.getCode();a=Qt.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);","output.vertexVC = vec4(vertexBC, 1);"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.updateBuffers=()=>{const r=e.device.getBufferManager().getFullScreenQuadBuffer();e.vertexInput.addBuffer(r,["vertexBC"]),e.numberOfVertices=6}}const BQ={};function dM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,BQ,r),fM.extend(t,e,r),UQ(t,e)}const GQ=W.newInstance(dM,"vtkWebGPUFullScreenQuad");var Q5={newInstance:GQ,extend:dM};const WQ={Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},zQ={Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6};var xh={BufferUsage:WQ,PrimitiveTypes:zQ};const Nv=["getMappedRange","mapAsync","unmap"];function $Q(t,e,r,n){const i=n.byteLength,o=t.createBuffer({size:i,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),a=o.getMappedRange(0,i);new Uint8Array(a).set(new Uint8Array(n)),o.unmap();const s=t.createCommandEncoder();s.copyBufferToBuffer(o,0,e,r,i);const c=s.finish();t.queue.submit([c]),o.destroy()}function jQ(t,e){e.classHierarchy.push("vtkWebGPUBuffer"),t.create=(r,n)=>{e.handle=e.device.getHandle().createBuffer({size:r,usage:n,label:e.label}),e.sizeInBytes=r,e.usage=n},t.write=r=>{$Q(e.device.getHandle(),e.handle,0,r.buffer)},t.createAndWrite=(r,n)=>{e.handle=e.device.getHandle().createBuffer({size:r.byteLength,usage:n,mappedAtCreation:!0,label:e.label}),e.sizeInBytes=r.byteLength,e.usage=n,new Uint8Array(e.handle.getMappedRange()).set(new Uint8Array(r.buffer)),e.handle.unmap()};for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,HQ,r),W.obj(t,e),W.get(t,e,["handle","sizeInBytes","usage"]),W.setGet(t,e,["strideInBytes","device","arrayInformation","label","sourceTime"]),jQ(t,e)}const KQ=W.newInstance(hM);var e3={newInstance:KQ,extend:hM,...xh};const{Representation:x8}=m0,{PrimitiveTypes:ys}=xh;class qQ{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let r=0;r2)for(let o=0;o2){for(let o=0;o{const n=r.cells,i=r.primitiveType,o=r.representation,a=r.cellOffset,s=n.getData(),c=s.length,l=XQ(i),f=r.numberOfPoints,u={provokedPointIds:new Uint8Array(f),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new qQ};let d=null;o===x8.POINTS||i===ys.Points?d=Pv.anythingToPoints:o===x8.WIREFRAME||i===ys.Lines?d=Pv[`${l}ToWireframe`]:d=Pv[`${l}ToSurface`],Sa=JQ;let h=a||0;for(let g=0;g2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,QQ,r),e3.extend(t,e,r),W.setGet(t,e,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),ZQ(t,e)}const eee=W.newInstance(gM);var tee={newInstance:eee,extend:gM,...xh};const{BufferUsage:ls}=xh,{vtkErrorMacro:nee}=Gr,{VtkDataTypes:mc}=tt,ree={};function iee(t){let e;switch(t.getDataType()){case mc.UNSIGNED_CHAR:e="uint8";break;case mc.FLOAT:e="float32";break;case mc.UNSIGNED_INT:e="uint32";break;case mc.INT:e="sint32";break;case mc.DOUBLE:e="float32";break;case mc.UNSIGNED_SHORT:e="uint16";break;case mc.SHORT:e="sin16";break;default:e="float32";break}switch(t.getNumberOfComponents()){case 2:e+="x2";break;case 3:e.includes("32")||nee(`unsupported x3 type for ${e}`),e+="x3";break;case 4:e+="x4";break}return e}function C8(t,e,r,n,i){const o={},a=t.getFlatSize();if(!a)return o;let s=[0,0,0,0];i.shift&&(i.shift.length?s=i.shift:s.fill(i.shift));let c=[1,1,1,1];i.scale&&(i.scale.length?c=i.scale:c.fill(i.scale));const l=Object.prototype.hasOwnProperty.call(i,"packExtra")?i.packExtra:!1;let f,u=0;const d=r+(l?1:0),h=h0(n,a*d);let g=t.getFlatIdToPointId();i.cellData&&(g=t.getFlatIdToCellId()),r===1?f=function(v){h[u++]=c[0]*e[v]+s[0]}:r===2?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1]}:r===3&&!l?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2]}:r===3&&l?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2],h[u++]=c[3]*1+s[3]}:r===4&&(f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2],h[u++]=c[3]*e[v+3]+s[3]});for(let p=0;pe.device.hasCachedObject(n),t.getBuffer=n=>n.hash?e.device.getCachedObject(n.hash,r,n):r(n),t.getBufferForPointArray=(n,i)=>{const o=iee(n),a={hash:`${n.getMTime()}I${i.getMTime()}${o}`,usage:ls.PointArray,format:o,dataArray:n,indexBuffer:i};return t.getBuffer(a)},t.getFullScreenQuadBuffer=()=>{if(e.fullScreenQuadBuffer)return e.fullScreenQuadBuffer;e.fullScreenQuadBuffer=e3.newInstance(),e.fullScreenQuadBuffer.setDevice(e.device);const n=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return e.fullScreenQuadBuffer.createAndWrite(n,GPUBufferUsage.VERTEX),e.fullScreenQuadBuffer.setStrideInBytes(12),e.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),e.fullScreenQuadBuffer}}const cee={device:null,fullScreenQuadBuffer:null};function pM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,cee,r),fn(t,e),Jn(t,e,["device"]),see(t,e)}const lee=Bt(pM);var C0={newInstance:lee,extend:pM,...ree,...xh};const{BufferUsage:uee}=C0,{vtkErrorMacro:kl}=W;function fee(t,e){e.classHierarchy.push("vtkWebGPUStorageBuffer"),t.addEntry=(r,n)=>{if(e._bufferEntryNames.has(r)){kl(`entry named ${r} already exists`);return}e._bufferEntryNames.set(r,e.bufferEntries.length);const i=kr.getByteStrideFromShaderFormat(n);e.bufferEntries.push({name:r,type:n,sizeInBytes:i,offset:e.sizeInBytes,nativeType:kr.getNativeTypeFromShaderFormat(n)}),e.sizeInBytes+=i},t.send=r=>{if(!e._buffer){const n={nativeArray:e.Float32Array,usage:uee.Storage,label:e.label};e._buffer=r.getBufferManager().getBuffer(n),e.bindGroupTime.modified(),e._sendTime.modified();return}r.getHandle().queue.writeBuffer(e._buffer.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes*e.numberOfInstances),e._sendTime.modified()},t.createView=r=>{r in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes*e.numberOfInstances)),e[r]=W.newTypedArray(r,e.arrayBuffer))},t.setValue=(r,n,i)=>{const o=e._bufferEntryNames.get(r);if(o===void 0){kl(`entry named ${r} not found in UBO`);return}const a=e.bufferEntries[o];t.createView(a.nativeType);const s=e[a.nativeType];s[(a.offset+n*e.sizeInBytes)/s.BYTES_PER_ELEMENT]=i},t.setArray=(r,n,i)=>{const o=e._bufferEntryNames.get(r);if(o===void 0){kl(`entry named ${r} not found in UBO`);return}const a=e.bufferEntries[o];t.createView(a.nativeType);const s=e[a.nativeType],c=(a.offset+n*e.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let l=0;l{const i=e._bufferEntryNames.get(r);if(i===void 0){kl(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=n.length/e.numberOfInstances;for(let c=0;c{const i=e._bufferEntryNames.get(r);if(i===void 0){kl(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=n.length/e.numberOfInstances;for(let c=0;c{const i=e._bufferEntryNames.get(r);if(i===void 0){kl(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=9;for(let c=0;ce._sendTime.getMTime(),t.getShaderCode=(r,n)=>{const i=[`struct ${e.label}StructEntry +`;function WQ(t,e){e.classHierarchy.push("vtkWebGPUSimpleMapper"),t.generateShaderDescriptions=(r,n,i)=>{const o=w8.newInstance({type:"vertex",hash:r,code:e.vertexShaderTemplate}),a=w8.newInstance({type:"fragment",hash:r,code:e.fragmentShaderTemplate}),s=n.getShaderDescriptions();s.push(o),s.push(a);const c=e.vertexShaderTemplate+e.fragmentShaderTemplate,l=new RegExp("//VTK::[^:]*::","g"),u=c.match(l).filter((d,h,g)=>g.indexOf(d)===h).map(d=>`replaceShader${d.substring(7,d.length-2)}`);for(let d=0;d{const o=n.getShaderDescription("vertex");o.replaceShaderCode(null,i),n.getShaderDescription("fragment").replaceShaderCode(o)},t.replaceShaderRenderEncoder=(r,n,i)=>{e.renderEncoder.replaceShaderCode(n)},e.shaderReplacements.set("replaceShaderRenderEncoder",t.replaceShaderRenderEncoder),t.replaceShaderRenderer=(r,n,i)=>{if(!e.WebGPURenderer)return;const o=e.WebGPURenderer.getBindGroup().getShaderCode(n),a=n.getShaderDescription("vertex");let s=a.getCode();s=Zt.substitute(s,"//VTK::Renderer::Dec",[o]).result,a.setCode(s);const c=n.getShaderDescription("fragment");s=c.getCode(),s=Zt.substitute(s,"//VTK::Renderer::Dec",[o]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderRenderer",t.replaceShaderRenderer),t.replaceShaderMapper=(r,n,i)=>{const o=e.bindGroup.getShaderCode(n),a=n.getShaderDescription("vertex");let s=a.getCode();s=Zt.substitute(s,"//VTK::Mapper::Dec",[o]).result,a.setCode(s);const c=n.getShaderDescription("fragment");c.addBuiltinInput("bool","@builtin(front_facing) frontFacing"),s=c.getCode(),s=Zt.substitute(s,"//VTK::Mapper::Dec",[o]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderMapper",t.replaceShaderMapper),t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position");let a=o.getCode();a=Zt.substitute(a,"//VTK::Position::Impl",[" output.Position = rendererUBO.SCPCMatrix*vertexBC;"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderTCoord=(r,n,i)=>{n.getShaderDescription("vertex").addOutput("vec2","tcoordVS")},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.addTextureView=r=>{e.textureViews.includes(r)||e.textureViews.push(r)},t.prepareToDraw=r=>{e.renderEncoder=r,t.updateInput(),t.updateBuffers(),t.updateBindings(),t.updatePipeline()},t.updateInput=()=>{},t.updateBuffers=()=>{},t.updateBindings=()=>{e.bindGroup.setBindables(t.getBindables())},t.computePipelineHash=()=>{},t.registerDrawCallback=r=>{r.registerDrawCallback(e.pipeline,t.draw)},t.prepareAndDraw=r=>{t.prepareToDraw(r),r.setPipeline(e.pipeline),t.draw(r)},t.draw=r=>{const n=r.getBoundPipeline();r.activateBindGroup(e.bindGroup),e.WebGPURenderer&&e.WebGPURenderer.bindUBO(r),n.bindVertexInput(r,e.vertexInput);const i=e.vertexInput.getIndexBuffer();i?r.drawIndexed(i.getIndexCount(),e.numberOfInstances,0,0,0):r.draw(e.numberOfVertices,e.numberOfInstances,0,0)},t.getBindables=()=>{const r=[...e.additionalBindables];e.UBO&&r.push(e.UBO),e.SSBO&&r.push(e.SSBO);for(let n=0;n{t.computePipelineHash(),e.pipeline=e.device.getPipeline(e.pipelineHash),e.pipeline||(e.pipeline=_Q.newInstance(),e.pipeline.setDevice(e.device),e.WebGPURenderer&&e.pipeline.addBindGroupLayout(e.WebGPURenderer.getBindGroup()),e.pipeline.addBindGroupLayout(e.bindGroup),t.generateShaderDescriptions(e.pipelineHash,e.pipeline,e.vertexInput),e.pipeline.setTopology(e.topology),e.pipeline.setRenderEncoder(e.renderEncoder),e.pipeline.setVertexState(e.vertexInput.getVertexInputInformation()),e.device.createPipeline(e.pipelineHash,e.pipeline))}}const zQ={additionalBindables:void 0,bindGroup:null,device:null,fragmentShaderTemplate:null,numberOfInstances:1,numberOfVertices:0,pipelineHash:null,shaderReplacements:null,SSBO:null,textureViews:null,topology:"triangle-list",UBO:null,vertexShaderTemplate:null,WebGPURenderer:null};function pM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zQ,r),tn.extend(t,e,r),e.textureViews=[],e.vertexInput=UQ.newInstance(),e.bindGroup=lM.newInstance({label:"mapperBG"}),e.additionalBindables=[],e.fragmentShaderTemplate=e.fragmentShaderTemplate||GQ,e.vertexShaderTemplate=e.vertexShaderTemplate||BQ,e.shaderReplacements=new Map,W.get(t,e,["pipeline","vertexInput"]),W.setGet(t,e,["additionalBindables","device","fragmentShaderTemplate","interpolate","numberOfInstances","numberOfVertices","pipelineHash","shaderReplacements","SSBO","textureViews","topology","UBO","vertexShaderTemplate","WebGPURenderer"]),WQ(t,e)}const $Q=W.newInstance(pM,"vtkWebGPUSimpleMapper");var mM={newInstance:$Q,extend:pM};function jQ(t,e){e.classHierarchy.push("vtkWebGPUFullScreenQuad"),t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position"),o.addOutput("vec4","vertexVC");let a=o.getCode();a=Zt.substitute(a,"//VTK::Position::Impl",["output.tcoordVS = vec2(vertexBC.x * 0.5 + 0.5, 1.0 - vertexBC.y * 0.5 - 0.5);","output.Position = vec4(vertexBC, 1.0);","output.vertexVC = vec4(vertexBC, 1);"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.updateBuffers=()=>{const r=e.device.getBufferManager().getFullScreenQuadBuffer();e.vertexInput.addBuffer(r,["vertexBC"]),e.numberOfVertices=6}}const HQ={};function vM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,HQ,r),mM.extend(t,e,r),jQ(t,e)}const KQ=W.newInstance(vM,"vtkWebGPUFullScreenQuad");var n3={newInstance:KQ,extend:vM};const qQ={Verts:0,Lines:1,Triangles:2,Strips:3,LinesFromStrips:4,LinesFromTriangles:5,Points:6,UniformArray:7,PointArray:8,NormalsFromPoints:9,Texture:10,RawVertex:11,Storage:12,Index:13},XQ={Start:0,Points:0,Lines:1,Triangles:2,TriangleStrips:3,TriangleEdges:4,TriangleStripEdges:5,End:6};var Ch={BufferUsage:qQ,PrimitiveTypes:XQ};const Av=["getMappedRange","mapAsync","unmap"];function YQ(t,e,r,n){const i=n.byteLength,o=t.createBuffer({size:i,usage:GPUBufferUsage.COPY_SRC,mappedAtCreation:!0}),a=o.getMappedRange(0,i);new Uint8Array(a).set(new Uint8Array(n)),o.unmap();const s=t.createCommandEncoder();s.copyBufferToBuffer(o,0,e,r,i);const c=s.finish();t.queue.submit([c]),o.destroy()}function JQ(t,e){e.classHierarchy.push("vtkWebGPUBuffer"),t.create=(r,n)=>{e.handle=e.device.getHandle().createBuffer({size:r,usage:n,label:e.label}),e.sizeInBytes=r,e.usage=n},t.write=r=>{YQ(e.device.getHandle(),e.handle,0,r.buffer)},t.createAndWrite=(r,n)=>{e.handle=e.device.getHandle().createBuffer({size:r.byteLength,usage:n,mappedAtCreation:!0,label:e.label}),e.sizeInBytes=r.byteLength,e.usage=n,new Uint8Array(e.handle.getMappedRange()).set(new Uint8Array(r.buffer)),e.handle.unmap()};for(let r=0;r2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,ZQ,r),W.obj(t,e),W.get(t,e,["handle","sizeInBytes","usage"]),W.setGet(t,e,["strideInBytes","device","arrayInformation","label","sourceTime"]),JQ(t,e)}const QQ=W.newInstance(yM);var r3={newInstance:QQ,extend:yM,...Ch};const{Representation:S8}=x0,{PrimitiveTypes:xs}=Ch;class eee{constructor(){this.keys=new Uint32Array(10),this.values=new Uint32Array(10),this.count=0}clear(){this.count=0}has(e){for(let r=0;r2)for(let o=0;o2){for(let o=0;o{const n=r.cells,i=r.primitiveType,o=r.representation,a=r.cellOffset,s=n.getData(),c=s.length,l=tee(i),f=r.numberOfPoints,u={provokedPointIds:new Uint8Array(f),extraPoints:0,iboSize:0,flatId:0,iboId:0,cellProvokedMap:new eee};let d=null;o===S8.POINTS||i===xs.Points?d=kv.anythingToPoints:o===S8.WIREFRAME||i===xs.Lines?d=kv[`${l}ToWireframe`]:d=kv[`${l}ToSurface`],Ta=ree;let h=a||0;for(let g=0;g2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oee,r),r3.extend(t,e,r),W.setGet(t,e,["flatIdToPointId","flatIdToCellId","flatSize","indexCount"]),iee(t,e)}const aee=W.newInstance(xM);var see={newInstance:aee,extend:xM,...Ch};const{BufferUsage:us}=Ch,{vtkErrorMacro:cee}=Br,{VtkDataTypes:vc}=tt,lee={};function uee(t){let e;switch(t.getDataType()){case vc.UNSIGNED_CHAR:e="uint8";break;case vc.FLOAT:e="float32";break;case vc.UNSIGNED_INT:e="uint32";break;case vc.INT:e="sint32";break;case vc.DOUBLE:e="float32";break;case vc.UNSIGNED_SHORT:e="uint16";break;case vc.SHORT:e="sin16";break;default:e="float32";break}switch(t.getNumberOfComponents()){case 2:e+="x2";break;case 3:e.includes("32")||cee(`unsupported x3 type for ${e}`),e+="x3";break;case 4:e+="x4";break}return e}function _8(t,e,r,n,i){const o={},a=t.getFlatSize();if(!a)return o;let s=[0,0,0,0];i.shift&&(i.shift.length?s=i.shift:s.fill(i.shift));let c=[1,1,1,1];i.scale&&(i.scale.length?c=i.scale:c.fill(i.scale));const l=Object.prototype.hasOwnProperty.call(i,"packExtra")?i.packExtra:!1;let f,u=0;const d=r+(l?1:0),h=m0(n,a*d);let g=t.getFlatIdToPointId();i.cellData&&(g=t.getFlatIdToCellId()),r===1?f=function(v){h[u++]=c[0]*e[v]+s[0]}:r===2?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1]}:r===3&&!l?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2]}:r===3&&l?f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2],h[u++]=c[3]*1+s[3]}:r===4&&(f=function(v){h[u++]=c[0]*e[v]+s[0],h[u++]=c[1]*e[v+1]+s[1],h[u++]=c[2]*e[v+2]+s[2],h[u++]=c[3]*e[v+3]+s[3]});for(let p=0;pe.device.hasCachedObject(n),t.getBuffer=n=>n.hash?e.device.getCachedObject(n.hash,r,n):r(n),t.getBufferForPointArray=(n,i)=>{const o=uee(n),a={hash:`${n.getMTime()}I${i.getMTime()}${o}`,usage:us.PointArray,format:o,dataArray:n,indexBuffer:i};return t.getBuffer(a)},t.getFullScreenQuadBuffer=()=>{if(e.fullScreenQuadBuffer)return e.fullScreenQuadBuffer;e.fullScreenQuadBuffer=r3.newInstance(),e.fullScreenQuadBuffer.setDevice(e.device);const n=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,-1,0,1,1,0,-1,1,0]);return e.fullScreenQuadBuffer.createAndWrite(n,GPUBufferUsage.VERTEX),e.fullScreenQuadBuffer.setStrideInBytes(12),e.fullScreenQuadBuffer.setArrayInformation([{offset:0,format:"float32x3"}]),e.fullScreenQuadBuffer}}const gee={device:null,fullScreenQuadBuffer:null};function wM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,gee,r),un(t,e),Jn(t,e,["device"]),hee(t,e)}const pee=Bt(wM);var _0={newInstance:pee,extend:wM,...lee,...Ch};const{BufferUsage:mee}=_0,{vtkErrorMacro:Ul}=W;function vee(t,e){e.classHierarchy.push("vtkWebGPUStorageBuffer"),t.addEntry=(r,n)=>{if(e._bufferEntryNames.has(r)){Ul(`entry named ${r} already exists`);return}e._bufferEntryNames.set(r,e.bufferEntries.length);const i=Ar.getByteStrideFromShaderFormat(n);e.bufferEntries.push({name:r,type:n,sizeInBytes:i,offset:e.sizeInBytes,nativeType:Ar.getNativeTypeFromShaderFormat(n)}),e.sizeInBytes+=i},t.send=r=>{if(!e._buffer){const n={nativeArray:e.Float32Array,usage:mee.Storage,label:e.label};e._buffer=r.getBufferManager().getBuffer(n),e.bindGroupTime.modified(),e._sendTime.modified();return}r.getHandle().queue.writeBuffer(e._buffer.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes*e.numberOfInstances),e._sendTime.modified()},t.createView=r=>{r in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes*e.numberOfInstances)),e[r]=W.newTypedArray(r,e.arrayBuffer))},t.setValue=(r,n,i)=>{const o=e._bufferEntryNames.get(r);if(o===void 0){Ul(`entry named ${r} not found in UBO`);return}const a=e.bufferEntries[o];t.createView(a.nativeType);const s=e[a.nativeType];s[(a.offset+n*e.sizeInBytes)/s.BYTES_PER_ELEMENT]=i},t.setArray=(r,n,i)=>{const o=e._bufferEntryNames.get(r);if(o===void 0){Ul(`entry named ${r} not found in UBO`);return}const a=e.bufferEntries[o];t.createView(a.nativeType);const s=e[a.nativeType],c=(a.offset+n*e.sizeInBytes)/s.BYTES_PER_ELEMENT;for(let l=0;l{const i=e._bufferEntryNames.get(r);if(i===void 0){Ul(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=n.length/e.numberOfInstances;for(let c=0;c{const i=e._bufferEntryNames.get(r);if(i===void 0){Ul(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=n.length/e.numberOfInstances;for(let c=0;c{const i=e._bufferEntryNames.get(r);if(i===void 0){Ul(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType],s=9;for(let c=0;ce._sendTime.getMTime(),t.getShaderCode=(r,n)=>{const i=[`struct ${e.label}StructEntry {`];for(let o=0;o ${e.label}: ${e.label}Struct; `),i.join(` -`)},t.getBindGroupEntry=()=>({resource:{buffer:e._buffer.getHandle()}}),t.clearData=()=>{e.numberOfInstances=0,e.sizeInBytes=0,e.bufferEntries=[],e._bufferEntryNames=new Map,e._buffer=null,delete e.arrayBuffer,delete e.Float32Array}}const dee={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function mM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,dee,r),W.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e._sendTime={},W.obj(e._sendTime,{mtime:0}),e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},W.get(t,e,["bindGroupTime"]),W.setGet(t,e,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),fee(t,e)}const hee=W.newInstance(mM,"vtkWebGPUStorageBuffer");var gee={newInstance:hee,extend:mM};const{BufferUsage:pee}=C0,{vtkErrorMacro:Av}=W;function mee(t,e){e.classHierarchy.push("vtkWebGPUUniformBuffer"),t.addEntry=(r,n)=>{if(e._bufferEntryNames.has(r)){Av(`entry named ${r} already exists`);return}e.sortDirty=!0,e._bufferEntryNames.set(r,e.bufferEntries.length),e.bufferEntries.push({name:r,type:n,sizeInBytes:kr.getByteStrideFromShaderFormat(n),offset:-1,nativeType:kr.getNativeTypeFromShaderFormat(n),packed:!1})},t.sortBufferEntries=()=>{if(!e.sortDirty)return;let r=0;const n=[];let i=4;for(let o=0;o4&&(a.packed=!0,a.offset=r,n.push(a),r+=a.sizeInBytes)}for(let o=0;o{if(!e.UBO){const n={nativeArray:e.Float32Array,usage:pee.UniformArray,label:e.label};e.UBO=r.getBufferManager().getBuffer(n),e.bindGroupTime.modified(),e.sendDirty=!1}e.sendDirty&&(r.getHandle().queue.writeBuffer(e.UBO.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes),e.sendDirty=!1),e.sendTime.modified()},t.createView=r=>{r in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes)),e[r]=W.newTypedArray(r,e.arrayBuffer))},t.setValue=(r,n)=>{t.sortBufferEntries();const i=e._bufferEntryNames.get(r);if(i===void 0){Av(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType];o.lastValue!==n&&(a[o.offset/a.BYTES_PER_ELEMENT]=n,e.sendDirty=!0),o.lastValue=n},t.setArray=(r,n)=>{t.sortBufferEntries();const i=e._bufferEntryNames.get(r);if(i===void 0){Av(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType];let s=!1;for(let c=0;c({resource:{buffer:e.UBO.getHandle()}}),t.getSendTime=()=>e.sendTime.getMTime(),t.getShaderCode=(r,n)=>{t.sortBufferEntries();const i=[`struct ${e.label}Struct +`)},t.getBindGroupEntry=()=>({resource:{buffer:e._buffer.getHandle()}}),t.clearData=()=>{e.numberOfInstances=0,e.sizeInBytes=0,e.bufferEntries=[],e._bufferEntryNames=new Map,e._buffer=null,delete e.arrayBuffer,delete e.Float32Array}}const yee={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,numberOfInstances:1};function CM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,yee,r),W.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e._sendTime={},W.obj(e._sendTime,{mtime:0}),e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"read-only-storage"}},W.get(t,e,["bindGroupTime"]),W.setGet(t,e,["device","bindGroupLayoutEntry","label","numberOfInstances","sizeInBytes"]),vee(t,e)}const xee=W.newInstance(CM,"vtkWebGPUStorageBuffer");var wee={newInstance:xee,extend:CM};const{BufferUsage:Cee}=_0,{vtkErrorMacro:Vv}=W;function See(t,e){e.classHierarchy.push("vtkWebGPUUniformBuffer"),t.addEntry=(r,n)=>{if(e._bufferEntryNames.has(r)){Vv(`entry named ${r} already exists`);return}e.sortDirty=!0,e._bufferEntryNames.set(r,e.bufferEntries.length),e.bufferEntries.push({name:r,type:n,sizeInBytes:Ar.getByteStrideFromShaderFormat(n),offset:-1,nativeType:Ar.getNativeTypeFromShaderFormat(n),packed:!1})},t.sortBufferEntries=()=>{if(!e.sortDirty)return;let r=0;const n=[];let i=4;for(let o=0;o4&&(a.packed=!0,a.offset=r,n.push(a),r+=a.sizeInBytes)}for(let o=0;o{if(!e.UBO){const n={nativeArray:e.Float32Array,usage:Cee.UniformArray,label:e.label};e.UBO=r.getBufferManager().getBuffer(n),e.bindGroupTime.modified(),e.sendDirty=!1}e.sendDirty&&(r.getHandle().queue.writeBuffer(e.UBO.getHandle(),0,e.arrayBuffer,0,e.sizeInBytes),e.sendDirty=!1),e.sendTime.modified()},t.createView=r=>{r in e||(e.arrayBuffer||(e.arrayBuffer=new ArrayBuffer(e.sizeInBytes)),e[r]=W.newTypedArray(r,e.arrayBuffer))},t.setValue=(r,n)=>{t.sortBufferEntries();const i=e._bufferEntryNames.get(r);if(i===void 0){Vv(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType];o.lastValue!==n&&(a[o.offset/a.BYTES_PER_ELEMENT]=n,e.sendDirty=!0),o.lastValue=n},t.setArray=(r,n)=>{t.sortBufferEntries();const i=e._bufferEntryNames.get(r);if(i===void 0){Vv(`entry named ${r} not found in UBO`);return}const o=e.bufferEntries[i];t.createView(o.nativeType);const a=e[o.nativeType];let s=!1;for(let c=0;c({resource:{buffer:e.UBO.getHandle()}}),t.getSendTime=()=>e.sendTime.getMTime(),t.getShaderCode=(r,n)=>{t.sortBufferEntries();const i=[`struct ${e.label}Struct {`];for(let o=0;o ${e.label}: ${e.label}Struct;`),i.join(` -`)}}const vee={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function vM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,vee,r),W.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"uniform"}},e.sendTime={},W.obj(e.sendTime,{mtime:0}),e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),e.sendDirty=!0,e.sortDirty=!0,W.get(t,e,["binding","bindGroupTime"]),W.setGet(t,e,["bindGroupLayoutEntry","device","label","sizeInBytes"]),mee(t,e)}const yee=W.newInstance(vM,"vtkWebGPUUniformBuffer");var _u={newInstance:yee,extend:vM};const{vtkDebugMacro:xee}=Gr,S8=` +`)}}const Tee={bufferEntries:null,bufferEntryNames:null,sizeInBytes:0,label:null,bindGroupLayoutEntry:null,bindGroupEntry:null};function SM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Tee,r),W.obj(t,e),e._bufferEntryNames=new Map,e.bufferEntries=[],e.bindGroupLayoutEntry=e.bindGroupLayoutEntry||{buffer:{type:"uniform"}},e.sendTime={},W.obj(e.sendTime,{mtime:0}),e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),e.sendDirty=!0,e.sortDirty=!0,W.get(t,e,["binding","bindGroupTime"]),W.setGet(t,e,["bindGroupLayoutEntry","device","label","sizeInBytes"]),See(t,e)}const _ee=W.newInstance(SM,"vtkWebGPUUniformBuffer");var bu={newInstance:_ee,extend:SM};const{vtkDebugMacro:Eee}=Br,E8=` //VTK::Renderer::Dec //VTK::Mapper::Dec @@ -2920,7 +2920,7 @@ fn main( //VTK::RenderEncoder::Impl return output; } -`,wee=` +`,Dee=` fn vecToRectCoord(dir: vec3) -> vec2 { var tau: f32 = 6.28318530718; var pi: f32 = 3.14159265359; @@ -2962,7 +2962,7 @@ fn main( //VTK::RenderEncoder::Impl return output; } -`,Tg=new Float64Array(16),T8=new Float64Array(16);function Cee(t){return t.getPositional()?t.getConeAngle()>=90?0:2:1}function See(t,e){e.classHierarchy.push("vtkWebGPURenderer"),t.buildPass=r=>{if(r){if(!e.renderable)return;e.camera=e.renderable.getActiveCamera(),t.updateLights(),t.prepareNodes(),t.addMissingNode(e.camera),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes(),e.webgpuCamera=t.getViewNodeFor(e.camera),t.updateStabilizedMatrix()}},t.updateStabilizedMatrix=()=>{const r=e.camera.getClippingRange(),n=e.camera.getPositionByReference(),i=e.camera.getDirectionOfProjectionByReference(),o=[],a=[];cr(a,i,.5*(r[0]+r[1])),xn(o,n,a),en(a,o,e.stabilizedCenter),Od(a)/(r[1]-r[0])>e.recenterThreshold&&(e.stabilizedCenter=o,e.stabilizedTime.modified())},t.updateLights=()=>{let r=0;const n=e.renderable.getLightsByReference();for(let i=0;i0&&r++;return r||(xee("No lights are on, creating one."),e.renderable.createLight()),r},t.updateUBO=()=>{var n;const r=e.UBO.getSendTime();if(e._parent.getMTime()>r||t.getMTime()>r||e.camera.getMTime()>r||e.renderable.getMTime()>r){const i=e.webgpuCamera.getKeyMatrices(t);e.UBO.setArray("WCVCMatrix",i.wcvc),e.UBO.setArray("SCPCMatrix",i.scpc),e.UBO.setArray("PCSCMatrix",i.pcsc),e.UBO.setArray("SCVCMatrix",i.scvc),e.UBO.setArray("VCPCMatrix",i.vcpc),e.UBO.setArray("WCVCNormals",i.normalMatrix),e.UBO.setValue("LightCount",e.renderable.getLights().length),e.UBO.setValue("MaxEnvironmentMipLevel",(n=e.renderable.getEnvironmentTexture())==null?void 0:n.getMipLevel()),e.UBO.setValue("BackgroundDiffuseStrength",e.renderable.getEnvironmentTextureDiffuseStrength()),e.UBO.setValue("BackgroundSpecularStrength",e.renderable.getEnvironmentTextureSpecularStrength());const o=t.getYInvertedTiledSizeAndOrigin();e.UBO.setArray("viewportSize",[o.usize,o.vsize]),e.UBO.setValue("cameraParallel",e.camera.getParallelProjection());const a=e._parent.getDevice();e.UBO.sendIfNeeded(a)}},t.updateSSBO=()=>{const r=e.renderable.getLights(),n=e.webgpuCamera.getKeyMatrices(t);let i=`${e.renderable.getMTime()}`;for(let o=0;o"),e.SSBO.addEntry("LightDir","vec4"),e.SSBO.addEntry("LightColor","vec4"),e.SSBO.addEntry("LightData","vec4"),e.SSBO.setAllInstancesFromArray("LightPos",o),e.SSBO.setAllInstancesFromArray("LightDir",a),e.SSBO.setAllInstancesFromArray("LightColor",s),e.SSBO.setAllInstancesFromArray("LightData",c);const l=e._parent.getDevice();e.SSBO.send(l)}e.lightTimeString=i},t.scissorAndViewport=r=>{const n=t.getYInvertedTiledSizeAndOrigin();r.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),r.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},t.bindUBO=r=>{r.activateBindGroup(e.bindGroup)},t.opaquePass=r=>{r?(e.renderEncoder.begin(e._parent.getCommandEncoder()),t.updateUBO(),t.updateSSBO()):(t.scissorAndViewport(e.renderEncoder),t.clear(),e.renderEncoder.end())},t.clear=()=>{var o;if(e.renderable.getTransparent()||e.suppressClear)return;const r=e._parent.getDevice();if(!e.clearFSQ){e.clearFSQ=Q5.newInstance(),e.clearFSQ.setDevice(r),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(S8);const a=_u.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a),e.backgroundTex=e.renderable.getEnvironmentTexture()}if(e.clearFSQ.getPipelineHash()!=="clearfsqwithtexture"&&e.renderable.getUseEnvironmentTextureAsBackground()&&((o=e.backgroundTex)!=null&&o.getImageLoaded())){e.clearFSQ.setFragmentShaderTemplate(wee);const a=_u.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a);const s=r.getTextureManager().getTextureForVTKTexture(e.backgroundTex);if(s.getReady()){const c=s.createView("EnvironmentTexture");e.clearFSQ.setTextureViews([c]),e.backgroundTexLoaded=!0;const l=e.backgroundTex.getInterpolate()?"linear":"nearest";c.addSampler(r,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:l,magFilter:l,mipmapFilter:"linear"})}e.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if(e.clearFSQ.getPipelineHash()==="clearfsqwithtexture"&&!e.renderable.getUseEnvironmentTextureAsBackground()){e.clearFSQ=Q5.newInstance(),e.clearFSQ.setDevice(r),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(S8);const a=_u.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a)}const n=e.webgpuCamera.getKeyMatrices(t),i=e.renderable.getBackgroundByReference();e.clearFSQ.getUBO().setArray("BackgroundColor",i),St(T8,n.normalMatrix),b1(Tg,n.scvc,n.pcsc),b1(Tg,T8,Tg),e.clearFSQ.getUBO().setArray("FSQMatrix",Tg),e.clearFSQ.getUBO().sendIfNeeded(r),e.clearFSQ.prepareAndDraw(e.renderEncoder)},t.translucentPass=r=>{r?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.volumeDepthRangePass=r=>{r?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.getAspectRatio=()=>{const r=e._parent.getSizeByReference(),n=e.renderable.getViewportByReference();return r[0]*(n[2]-n[0])/((n[3]-n[1])*r[1])},t.convertToOpenGLDepth=r=>e.webgpuCamera.convertToOpenGLDepth(r),t.getYInvertedTiledSizeAndOrigin=()=>{const r=t.getTiledSizeAndOrigin(),n=e._parent.getSizeByReference();return r.lowerLeftV=n[1]-r.vsize-r.lowerLeftV,r},t.getTiledSizeAndOrigin=()=>{const r=e.renderable.getViewportByReference(),n=[0,0,1,1],i=r[0]-n[0],o=r[1]-n[1],a=e._parent.normalizedDisplayToDisplay(i,o),s=Math.round(a[0]),c=Math.round(a[1]),l=r[2]-n[0],f=r[3]-n[1],u=e._parent.normalizedDisplayToDisplay(l,f);let d=Math.round(u[0])-s,h=Math.round(u[1])-c;return d<0&&(d=0),h<0&&(h=0),{usize:d,vsize:h,lowerLeftU:s,lowerLeftV:c}},t.getPropFromID=r=>{for(let n=0;ne.stabilizedTime.getMTime(),t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources()}}const Tee={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function _ee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Tee,r),nn.extend(t,e,r),e.UBO=_u.newInstance({label:"rendererUBO"}),e.UBO.addEntry("WCVCMatrix","mat4x4"),e.UBO.addEntry("SCPCMatrix","mat4x4"),e.UBO.addEntry("PCSCMatrix","mat4x4"),e.UBO.addEntry("SCVCMatrix","mat4x4"),e.UBO.addEntry("VCPCMatrix","mat4x4"),e.UBO.addEntry("WCVCNormals","mat4x4"),e.UBO.addEntry("viewportSize","vec2"),e.UBO.addEntry("LightCount","i32"),e.UBO.addEntry("MaxEnvironmentMipLevel","f32"),e.UBO.addEntry("BackgroundDiffuseStrength","f32"),e.UBO.addEntry("BackgroundSpecularStrength","f32"),e.UBO.addEntry("cameraParallel","u32"),e.SSBO=gee.newInstance({label:"rendererLightSSBO"}),e.lightTimeString="",e.bindGroup=iM.newInstance({label:"rendererBG"}),e.bindGroup.setBindables([e.UBO,e.SSBO]),e.tmpMat4=qe(new Float64Array(16)),e.stabilizedTime={},fn(e.stabilizedTime,{mtime:0}),gi(t,e,["bindGroup","stabilizedTime"]),g0(t,e,["stabilizedCenter"]),Jn(t,e,["renderEncoder","selector","suppressClear","UBO"]),See(t,e)}const Eee=Bt(_ee,"vtkWebGPURenderer");lo("vtkRenderer",Eee);function Dee(t,e){e.classHierarchy.push("vtkWebGPUSampler"),t.create=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.device=r,e.options.addressModeU=n.addressModeU?n.addressModeU:"clamp-to-edge",e.options.addressModeV=n.addressModeV?n.addressModeV:"clamp-to-edge",e.options.addressModeW=n.addressModeW?n.addressModeW:"clamp-to-edge",e.options.magFilter=n.magFilter?n.magFilter:"nearest",e.options.minFilter=n.minFilter?n.minFilter:"nearest",e.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:"nearest",e.options.label=e.label,e.handle=e.device.getHandle().createSampler(e.options),e.bindGroupTime.modified()},t.getShaderCode=(r,n)=>`@binding(${r}) @group(${n}) var ${e.label}: sampler;`,t.getBindGroupEntry=()=>({resource:e.handle})}const bee={device:null,handle:null,label:null,options:null};function yM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,bee,r),W.obj(t,e),e.options={},e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","handle","options"]),W.setGet(t,e,["bindGroupLayoutEntry","device","label"]),Dee(t,e)}const Iee=W.newInstance(yM);var xM={newInstance:Iee,extend:yM};const{SlicingMode:_8}=i2,Oee=` +`,Eg=new Float64Array(16),D8=new Float64Array(16);function bee(t){return t.getPositional()?t.getConeAngle()>=90?0:2:1}function Iee(t,e){e.classHierarchy.push("vtkWebGPURenderer"),t.buildPass=r=>{if(r){if(!e.renderable)return;e.camera=e.renderable.getActiveCamera(),t.updateLights(),t.prepareNodes(),t.addMissingNode(e.camera),t.addMissingNodes(e.renderable.getViewPropsWithNestedProps()),t.removeUnusedNodes(),e.webgpuCamera=t.getViewNodeFor(e.camera),t.updateStabilizedMatrix()}},t.updateStabilizedMatrix=()=>{const r=e.camera.getClippingRange(),n=e.camera.getPositionByReference(),i=e.camera.getDirectionOfProjectionByReference(),o=[],a=[];lr(a,i,.5*(r[0]+r[1])),xn(o,n,a),Qt(a,o,e.stabilizedCenter),Rd(a)/(r[1]-r[0])>e.recenterThreshold&&(e.stabilizedCenter=o,e.stabilizedTime.modified())},t.updateLights=()=>{let r=0;const n=e.renderable.getLightsByReference();for(let i=0;i0&&r++;return r||(Eee("No lights are on, creating one."),e.renderable.createLight()),r},t.updateUBO=()=>{var n;const r=e.UBO.getSendTime();if(e._parent.getMTime()>r||t.getMTime()>r||e.camera.getMTime()>r||e.renderable.getMTime()>r){const i=e.webgpuCamera.getKeyMatrices(t);e.UBO.setArray("WCVCMatrix",i.wcvc),e.UBO.setArray("SCPCMatrix",i.scpc),e.UBO.setArray("PCSCMatrix",i.pcsc),e.UBO.setArray("SCVCMatrix",i.scvc),e.UBO.setArray("VCPCMatrix",i.vcpc),e.UBO.setArray("WCVCNormals",i.normalMatrix),e.UBO.setValue("LightCount",e.renderable.getLights().length),e.UBO.setValue("MaxEnvironmentMipLevel",(n=e.renderable.getEnvironmentTexture())==null?void 0:n.getMipLevel()),e.UBO.setValue("BackgroundDiffuseStrength",e.renderable.getEnvironmentTextureDiffuseStrength()),e.UBO.setValue("BackgroundSpecularStrength",e.renderable.getEnvironmentTextureSpecularStrength());const o=t.getYInvertedTiledSizeAndOrigin();e.UBO.setArray("viewportSize",[o.usize,o.vsize]),e.UBO.setValue("cameraParallel",e.camera.getParallelProjection());const a=e._parent.getDevice();e.UBO.sendIfNeeded(a)}},t.updateSSBO=()=>{const r=e.renderable.getLights(),n=e.webgpuCamera.getKeyMatrices(t);let i=`${e.renderable.getMTime()}`;for(let o=0;o"),e.SSBO.addEntry("LightDir","vec4"),e.SSBO.addEntry("LightColor","vec4"),e.SSBO.addEntry("LightData","vec4"),e.SSBO.setAllInstancesFromArray("LightPos",o),e.SSBO.setAllInstancesFromArray("LightDir",a),e.SSBO.setAllInstancesFromArray("LightColor",s),e.SSBO.setAllInstancesFromArray("LightData",c);const l=e._parent.getDevice();e.SSBO.send(l)}e.lightTimeString=i},t.scissorAndViewport=r=>{const n=t.getYInvertedTiledSizeAndOrigin();r.getHandle().setViewport(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize,0,1),r.getHandle().setScissorRect(n.lowerLeftU,n.lowerLeftV,n.usize,n.vsize)},t.bindUBO=r=>{r.activateBindGroup(e.bindGroup)},t.opaquePass=r=>{r?(e.renderEncoder.begin(e._parent.getCommandEncoder()),t.updateUBO(),t.updateSSBO()):(t.scissorAndViewport(e.renderEncoder),t.clear(),e.renderEncoder.end())},t.clear=()=>{var o;if(e.renderable.getTransparent()||e.suppressClear)return;const r=e._parent.getDevice();if(!e.clearFSQ){e.clearFSQ=n3.newInstance(),e.clearFSQ.setDevice(r),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(E8);const a=bu.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a),e.backgroundTex=e.renderable.getEnvironmentTexture()}if(e.clearFSQ.getPipelineHash()!=="clearfsqwithtexture"&&e.renderable.getUseEnvironmentTextureAsBackground()&&((o=e.backgroundTex)!=null&&o.getImageLoaded())){e.clearFSQ.setFragmentShaderTemplate(Dee);const a=bu.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a);const s=r.getTextureManager().getTextureForVTKTexture(e.backgroundTex);if(s.getReady()){const c=s.createView("EnvironmentTexture");e.clearFSQ.setTextureViews([c]),e.backgroundTexLoaded=!0;const l=e.backgroundTex.getInterpolate()?"linear":"nearest";c.addSampler(r,{addressModeU:"repeat",addressModeV:"clamp-to-edge",addressModeW:"repeat",minFilter:l,magFilter:l,mipmapFilter:"linear"})}e.clearFSQ.setPipelineHash("clearfsqwithtexture")}else if(e.clearFSQ.getPipelineHash()==="clearfsqwithtexture"&&!e.renderable.getUseEnvironmentTextureAsBackground()){e.clearFSQ=n3.newInstance(),e.clearFSQ.setDevice(r),e.clearFSQ.setPipelineHash("clearfsq"),e.clearFSQ.setFragmentShaderTemplate(E8);const a=bu.newInstance({label:"mapperUBO"});a.addEntry("FSQMatrix","mat4x4"),a.addEntry("BackgroundColor","vec4"),e.clearFSQ.setUBO(a)}const n=e.webgpuCamera.getKeyMatrices(t),i=e.renderable.getBackgroundByReference();e.clearFSQ.getUBO().setArray("BackgroundColor",i),St(D8,n.normalMatrix),O1(Eg,n.scvc,n.pcsc),O1(Eg,D8,Eg),e.clearFSQ.getUBO().setArray("FSQMatrix",Eg),e.clearFSQ.getUBO().sendIfNeeded(r),e.clearFSQ.prepareAndDraw(e.renderEncoder)},t.translucentPass=r=>{r?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.volumeDepthRangePass=r=>{r?e.renderEncoder.begin(e._parent.getCommandEncoder()):(t.scissorAndViewport(e.renderEncoder),e.renderEncoder.end())},t.getAspectRatio=()=>{const r=e._parent.getSizeByReference(),n=e.renderable.getViewportByReference();return r[0]*(n[2]-n[0])/((n[3]-n[1])*r[1])},t.convertToOpenGLDepth=r=>e.webgpuCamera.convertToOpenGLDepth(r),t.getYInvertedTiledSizeAndOrigin=()=>{const r=t.getTiledSizeAndOrigin(),n=e._parent.getSizeByReference();return r.lowerLeftV=n[1]-r.vsize-r.lowerLeftV,r},t.getTiledSizeAndOrigin=()=>{const r=e.renderable.getViewportByReference(),n=[0,0,1,1],i=r[0]-n[0],o=r[1]-n[1],a=e._parent.normalizedDisplayToDisplay(i,o),s=Math.round(a[0]),c=Math.round(a[1]),l=r[2]-n[0],f=r[3]-n[1],u=e._parent.normalizedDisplayToDisplay(l,f);let d=Math.round(u[0])-s,h=Math.round(u[1])-c;return d<0&&(d=0),h<0&&(h=0),{usize:d,vsize:h,lowerLeftU:s,lowerLeftV:c}},t.getPropFromID=r=>{for(let n=0;ne.stabilizedTime.getMTime(),t.releaseGraphicsResources=()=>{e.selector!==null&&e.selector.releaseGraphicsResources()}}const Oee={bindGroup:null,selector:null,renderEncoder:null,recenterThreshold:20,suppressClear:!1,stabilizedCenter:[0,0,0]};function Mee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Oee,r),tn.extend(t,e,r),e.UBO=bu.newInstance({label:"rendererUBO"}),e.UBO.addEntry("WCVCMatrix","mat4x4"),e.UBO.addEntry("SCPCMatrix","mat4x4"),e.UBO.addEntry("PCSCMatrix","mat4x4"),e.UBO.addEntry("SCVCMatrix","mat4x4"),e.UBO.addEntry("VCPCMatrix","mat4x4"),e.UBO.addEntry("WCVCNormals","mat4x4"),e.UBO.addEntry("viewportSize","vec2"),e.UBO.addEntry("LightCount","i32"),e.UBO.addEntry("MaxEnvironmentMipLevel","f32"),e.UBO.addEntry("BackgroundDiffuseStrength","f32"),e.UBO.addEntry("BackgroundSpecularStrength","f32"),e.UBO.addEntry("cameraParallel","u32"),e.SSBO=wee.newInstance({label:"rendererLightSSBO"}),e.lightTimeString="",e.bindGroup=lM.newInstance({label:"rendererBG"}),e.bindGroup.setBindables([e.UBO,e.SSBO]),e.tmpMat4=qe(new Float64Array(16)),e.stabilizedTime={},un(e.stabilizedTime,{mtime:0}),gi(t,e,["bindGroup","stabilizedTime"]),v0(t,e,["stabilizedCenter"]),Jn(t,e,["renderEncoder","selector","suppressClear","UBO"]),Iee(t,e)}const Ree=Bt(Mee,"vtkWebGPURenderer");uo("vtkRenderer",Ree);function Lee(t,e){e.classHierarchy.push("vtkWebGPUSampler"),t.create=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.device=r,e.options.addressModeU=n.addressModeU?n.addressModeU:"clamp-to-edge",e.options.addressModeV=n.addressModeV?n.addressModeV:"clamp-to-edge",e.options.addressModeW=n.addressModeW?n.addressModeW:"clamp-to-edge",e.options.magFilter=n.magFilter?n.magFilter:"nearest",e.options.minFilter=n.minFilter?n.minFilter:"nearest",e.options.mipmapFilter=n.mipmapFilter?n.mipmapFilter:"nearest",e.options.label=e.label,e.handle=e.device.getHandle().createSampler(e.options),e.bindGroupTime.modified()},t.getShaderCode=(r,n)=>`@binding(${r}) @group(${n}) var ${e.label}: sampler;`,t.getBindGroupEntry=()=>({resource:e.handle})}const Nee={device:null,handle:null,label:null,options:null};function TM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Nee,r),W.obj(t,e),e.options={},e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,sampler:{}},e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","handle","options"]),W.setGet(t,e,["bindGroupLayoutEntry","device","label"]),Lee(t,e)}const Pee=W.newInstance(TM);var _M={newInstance:Pee,extend:TM};const{SlicingMode:b8}=a2,Aee=` //VTK::Renderer::Dec //VTK::Mapper::Dec @@ -2991,7 +2991,7 @@ fn main( return output; } -`;function Mee(t,e,r){if(e.apply(t)){const i=t.getIndependentComponents();return`${t.getMTime()}-${i}-${r}`}return"0"}const Ii=new Float64Array(16),Uo=new Float64Array(16),_g=new Float64Array(16),va=new Float64Array(4),sr=new Float64Array(4);function Ree(t,e){e.classHierarchy.push("vtkWebGPUImageMapper"),t.buildPass=i=>{if(i){e.WebGPUImageSlice=t.getFirstAncestorOfType("vtkWebGPUImageSlice"),e.WebGPURenderer=e.WebGPUImageSlice.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.device=e.WebGPURenderWindow.getDevice();const o=e.WebGPURenderer.getRenderable();e.renderable.getSliceAtFocalPoint()&&e.renderable.setSliceFromCamera(o.getActiveCamera())}},t.translucentPass=i=>{i&&t.render()},t.opaquePass=i=>{i&&t.render()},t.render=()=>{e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw)},t.computePipelineHash=()=>{const i=e.currentInput.getExtent();i[0]===i[1]||i[2]===i[3]||i[4]===i[5]?(e.dimensions=2,e.pipelineHash="img2"):(e.dimensions=3,e.pipelineHash="img3")},t.updateUBO=()=>{const i=e.UBO.getSendTime(),o=e.WebGPUImageSlice.getRenderable(),a=o.getMapper();if(t.getMTime()>i||e.renderable.getMTime()>i||o.getProperty().getMTime()>i){const s=a.getInputData(),c=e.WebGPURenderer.getStabilizedCenterByReference();qe(Ii),rn(Ii,Ii,c);const l=o.getMatrix();St(Uo,l),$n(Uo,Uo),bt(Ii,Uo,Ii);const f=s.getWorldToIndex();bt(Ii,f,Ii),$n(_g,Ii),Xm(Uo,[.5,.5,.5]),bt(Ii,Uo,Ii);const u=s.getDimensions();qe(Uo),ja(Uo,Uo,[1/u[0],1/u[1],1/u[2]]),bt(Ii,Uo,Ii),e.UBO.setArray("SCTCMatrix",Ii);const d=e.currentInput.getExtent(),{ijkMode:h}=e.renderable.getClosestIJKAxis();let g=e.renderable.getSlice();h!==e.renderable.getSlicingMode()&&(g=e.renderable.getSliceAtPosition(g));let p=2,v=0,x=1;h===_8.I?(p=0,v=1,x=2):h===_8.J&&(p=1,v=2,x=0),va[p]=g,va[v]=d[v*2]-.5,va[x]=d[x*2]-.5,va[3]=1,Is(va,va,_g),e.UBO.setArray("Origin",va),sr[p]=g,sr[v]=d[v*2+1]+.5,sr[x]=d[x*2]-.5,sr[3]=1,Is(sr,sr,_g),MT(sr,sr,va),sr[3]=1,e.UBO.setArray("Axis1",sr),sr[p]=g,sr[v]=d[v*2]-.5,sr[x]=d[x*2+1]+.5,sr[3]=1,Is(sr,sr,_g),MT(sr,sr,va),sr[3]=1,e.UBO.setArray("Axis2",sr);const m=[1,1,1,1],y=[0,0,0,0],w=e.textureViews[0],C=w.getTexture().getScale(),S=w.getTexture().getNumberOfComponents();for(let T=0;T{const i=e.WebGPUImageSlice.getRenderable().getProperty();t.getTextureViews()[0].getTexture().getNumberOfComponents();const a=1,s=Mee(i,i.getRGBTransferFunction,a);if(e.colorTextureString!==s){e.numRows=a;const c=new Uint8ClampedArray(e.numRows*2*e.rowLength*4);let l=i.getRGBTransferFunction();if(l){const f=new Float32Array(e.rowLength*3);for(let u=0;u{r();const i=e.device.getTextureManager().getTextureForImageData(e.currentInput),o=e.textureViews;if(!o[0]||o[0].getTexture()!==i){const c=i.createView("imgTexture");o[0]=c}t.updateLUTImage(),t.updateUBO();const s=e.WebGPUImageSlice.getRenderable().getProperty().getInterpolationType()===qc.NEAREST?"nearest":"linear";(!e.clampSampler||s!==e.clampSampler.getOptions().minFilter)&&(e.clampSampler=xM.newInstance({label:"clampSampler"}),e.clampSampler.create(e.device,{minFilter:s,magFilter:s}),e.additionalBindables=[e.clampSampler])};const n=t.getShaderReplacements();t.replaceShaderPosition=(i,o,a)=>{const s=o.getShaderDescription("vertex");s.addBuiltinOutput("vec4","@builtin(position) Position");let c=s.getCode();const l=["var pos: vec4 = mapperUBO.Origin +"," (vertexBC.x * 0.5 + 0.5) * mapperUBO.Axis1 + (vertexBC.y * 0.5 + 0.5) * mapperUBO.Axis2;","pos.w = 1.0;"];e.dimensions===2?l.push("var tcoord : vec2 = (mapperUBO.SCTCMatrix * pos).xy;"):l.push("var tcoord : vec3 = (mapperUBO.SCTCMatrix * pos).xyz;"),l.push("output.tcoordVS = tcoord;","output.Position = rendererUBO.SCPCMatrix * pos;"),c=Qt.substitute(c,"//VTK::Position::Impl",l).result,s.setCode(c)},n.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderTCoord=(i,o,a)=>{const s=o.getShaderDescription("vertex");e.dimensions===2?s.addOutput("vec2","tcoordVS"):s.addOutput("vec3","tcoordVS")},n.set("replaceShaderTCoord",t.replaceShaderTCoord),t.replaceShaderImage=(i,o,a)=>{const s=o.getShaderDescription("fragment");let c=s.getCode();e.dimensions===3?c=Qt.substitute(c,"//VTK::Image::Sample",[" var computedColor: vec4 ="," textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);","//VTK::Image::Sample"]).result:c=Qt.substitute(c,"//VTK::Image::Sample",[" var computedColor: vec4 ="," textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);","//VTK::Image::Sample"]).result,c=Qt.substitute(c,"//VTK::Image::Sample",[" var coord: vec2 ="," vec2(computedColor.r * mapperUBO.cScale.r + mapperUBO.cShift.r, 0.5);"," computedColor = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);"]).result,s.setCode(c)},n.set("replaceShaderImage",t.replaceShaderImage)}const Lee={rowLength:1024};function Nee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Lee,r),Q5.extend(t,e,r),t.setFragmentShaderTemplate(Oee),e.UBO=_u.newInstance({label:"mapperUBO"}),e.UBO.addEntry("SCTCMatrix","mat4x4"),e.UBO.addEntry("Origin","vec4"),e.UBO.addEntry("Axis2","vec4"),e.UBO.addEntry("Axis1","vec4"),e.UBO.addEntry("cScale","vec4"),e.UBO.addEntry("cShift","vec4"),e.lutBuildTime={},fn(e.lutBuildTime,{mtime:0}),e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.VBOBuildTime={},fn(e.VBOBuildTime),Ree(t,e)}const Pee=Bt(Nee,"vtkWebGPUImageMapper");lo("vtkImageMapper",Pee);function Aee(t,e){e.classHierarchy.push("vtkWebGPUImageSlice"),t.buildPass=r=>{if(!(!e.renderable||!e.renderable.getVisibility())&&r){if(!e.renderable)return;e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes()}},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const n=e.renderable.getMatrix(),i=r.getStabilizedCenterByReference();e.bufferShift[0]=n[3]-i[0],e.bufferShift[1]=n[7]-i[1],e.bufferShift[2]=n[11]-i[2],St(e.keyMatrices.bcwc,n),e.renderable.getIsIdentity()?qe(e.keyMatrices.normalMatrix):(En(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),rn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),rn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-i[0],-i[1],-i[2]]),e.keyMatricesTime.modified()}return e.keyMatrices}}const kee={bufferShift:void 0,keyMatrixTime:null,keyMatrices:null,propID:void 0};function Vee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,kee,r),nn.extend(t,e,r),e.keyMatricesTime={},fn(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},e.keyMatrixTime={},fn(e.keyMatrixTime,{mtime:0}),e.keyMatrices={mcwc:qe(new Float64Array(16))},e.bufferShift=[0,0,0,0],gi(t,e,["propID","keyMatricesTime"]),Aee(t,e)}const Fee=Bt(Vee,"vtkWebGPUImageSlice");lo("vtkImageSlice",Fee);function Uee(t,e){e.classHierarchy.push("vtkWebGPUVolume"),t.buildPass=i=>{!e.renderable||!e.renderable.getVisibility()||i&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),e.renderable.getMapper().update())},t.queryPass=(i,o)=>{if(i){if(!e.renderable||!e.renderable.getVisibility())return;const a=e.renderable.getMapper().getBounds();if(!a||a.length!==6||a[0]>a[1])return;o.addVolume(t)}};const r=new Float64Array(3),n=new Float64Array(3);t.getBoundingCubePoints=(i,o)=>{const a=e.renderable.getMapper().getInputData();if(!a)return;const s=a.getExtent(),c=e.renderable.getMatrix();let l=0;for(let f=4;f<6;f++){r[2]=s[f];for(let u=2;u<4;u++){r[1]=s[u];for(let d=0;d<2;d++){r[0]=s[d],a.indexToWorld(r,n);let h=o+l*3;i[h++]=c[0]*n[0]+c[1]*n[1]+c[2]*n[2]+c[3],i[h++]=c[4]*n[0]+c[5]*n[1]+c[6]*n[2]+c[7],i[h++]=c[8]*n[0]+c[9]*n[1]+c[10]*n[2]+c[11],l++}}}},t.getKeyMatrices=i=>{if(Math.max(e.renderable.getMTime(),i.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const o=e.renderable.getMatrix(),a=i.getStabilizedCenterByReference();St(e.keyMatrices.bcwc,o),rn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-a[0],-a[1],-a[2]]),e.keyMatricesTime.modified()}return e.keyMatrices}}const Bee={propID:void 0,keyMatricesTime:null};function Gee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Bee,r),nn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),Uee(t,e)}const Wee=W.newInstance(Gee,"vtkWebGPUVolume");lo("vtkVolume",Wee);function zee(t,e){e.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),t.opaquePass=(r,n)=>{e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent();const i=e.WebGPURenderer.getAspectRatio(),o=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,a=e.WebGPURenderer.getTiledSizeAndOrigin(),s=null;e.renderable.getUseZValues(),e.renderable.invokeCallback(e.renderable.getInputData(),o,i,a,s)}}const $ee={};function jee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,$ee,r),nn.extend(t,e,r),zee(t,e)}const Hee=W.newInstance(jee,"vtkWebGPUPixelSpaceCallbackMapper");lo("vtkPixelSpaceCallbackMapper",Hee);class wM{constructor(e,r,n=1){this.rows=new Map,this.height=1,this.width=1,this.depth=1,this.jMultiple=1,this.kMultiple=1,this.numberOfComponents=1,this.defaultValue=0,this.pixelDataConstructor=Uint8Array,this.get=i=>{const o=i%this.jMultiple,a=(i-o)/this.jMultiple,s=this.getRLE(o,a);return(s==null?void 0:s.value)||this.defaultValue},this.getRun=(i,o)=>{const a=i+o*this.height;return this.rows.get(a)},this.set=(i,o)=>{if(o===void 0)throw new Error(`Can't set undefined at ${i%this.width}`);const a=i%this.width,s=(i-a)/this.width,c=this.rows.get(s);if(!c){this.rows.set(s,[{start:a,end:a+1,value:o}]);return}const l=this.findIndex(c,a),f=c[l],u=c[l-1];if(!f){if(!u||u.value!==o||u.end!==a){c[l]={start:a,end:a+1,value:o};return}u.end++;return}const{start:d,end:h,value:g}=f;if(o===g&&a>=d)return;const p={start:a,end:a+1,value:o},v=a>d,x=v?l+1:l,m=v?f:u;let y=v?c[l+1]:f;if((m==null?void 0:m.value)===o&&m.end===a){m.end++,(y==null?void 0:y.value)===o&&y.start===a+1?(m.end=y.end,c.splice(l,1)):(y==null?void 0:y.start)===a&&(y.start++,y.start===y.end&&(c.splice(l,1),y=c[l],(y==null?void 0:y.start)===a+1&&y.value===o&&(m.end=y.end,c.splice(l,1))));return}if((y==null?void 0:y.value)===o&&y.start===a+1){y.start--,(m==null?void 0:m.end)>a&&(m.end=a,m.end===m.start&&c.splice(l,1));return}if((y==null?void 0:y.start)===a&&y.end===a+1){y.value=o;const w=c[l+1];(w==null?void 0:w.start)==a+1&&(w==null?void 0:w.value)===o&&(c.splice(l+1,1),y.end=w.end);return}a===(y==null?void 0:y.start)&&y.start++,v&&h>a+1?c.splice(x,0,p,{start:a+1,end:m.end,value:m.value}):c.splice(x,0,p),(m==null?void 0:m.end)>a&&(m.end=a)},this.width=e,this.height=r,this.depth=n,this.jMultiple=e,this.kMultiple=this.jMultiple*r}getRLE(e,r,n=0){const i=this.rows.get(r+n*this.height);if(!i)return;const o=this.findIndex(i,e),a=i[o];return e>=(a==null?void 0:a.start)?a:void 0}findIndex(e,r){for(let n=0;n{const s=this.toIndex([i,o,a]);return this._get(s)},this.setAtIJK=(i,o,a,s)=>{const c=this.toIndex([i,o,a]),l=this._set(c,s);return l!==!1&&(this.modifiedSlices.add(a),_r.addBounds(this.boundsIJK,[i,o,a])),l},this.getAtIJKPoint=([i,o,a])=>this.getAtIJK(i,o,a),this.setAtIJKPoint=([i,o,a],s)=>{this.setAtIJK(i,o,a,s)},this.getAtIndex=i=>this._get(i),this.setAtIndex=(i,o)=>{const a=this._set(i,o);if(a!==!1){const s=this.toIJK(i);this.modifiedSlices.add(s[2]),_r.addBounds(this.boundsIJK,s)}return a},this.getMiddleSliceData=()=>{const i=Math.floor(this.dimensions[2]/2);return this.getSliceData({sliceIndex:i,slicePlane:2})},this.forEach=(i,o={})=>{const a=o.boundsIJK||this.getBoundsIJK(),s=o.isInObject||this.isInObject||(()=>!0),c=o.returnPoints||!1,l=o.imageData,f=Math.min(a[0][0],a[0][1]),u=Math.max(a[0][0],a[0][1]),d=Math.min(a[1][0],a[1][1]),h=Math.max(a[1][0],a[1][1]),g=Math.min(a[2][0],a[2][1]),p=Math.max(a[2][0],a[2][1]),v=[];if(l){const{imageData:x}=o,m=x.getDirection(),y=m.slice(0,3),w=m.slice(3,6),C=m.slice(6,9),S=x.getSpacing(),[T,_,E]=S,D=Ye(f,d,g),b=x.indexToWorld(D),I=Ye(y[0]*T,y[1]*T,y[2]*T),R=Ye(w[0]*_,w[1]*_,w[2]*_),M=Ye(C[0]*E,C[1]*E,C[2]*E),L=Su(b);for(let A=g;A<=p;A++){const G=Su(L);for(let P=d;P<=h;P++){const N=Su(L);for(let V=f;V<=u;V++){const $=[V,P,A];if(s(L,$)){const j=this.toIndex($),Y=this._get(j);c&&v.push({value:Y,index:j,pointIJK:$,pointLPS:L.slice()}),i&&i({value:Y,index:j,pointIJK:$,pointLPS:L})}xn(L,L,I)}Id(L,N),xn(L,L,R)}Id(L,G),xn(L,L,M)}return v}if(this.map){for(const x of this.map.keys()){const m=this.toIJK(x);if(!s(null,m))continue;const y=this._get(x);c&&v.push({value:y,index:x,pointIJK:m,pointLPS:null}),i({value:y,index:x,pointIJK:m,pointLPS:null})}return v}else{for(let x=g;x<=p;x++){const m=x*this.frameSize;for(let y=d;y<=h;y++){const w=m+y*this.width;for(let C=f,S=w+C;C<=u;C++,S++){const T=this.getAtIndex(S),_=[C,y,x];s(null,_)&&(c&&v.push({value:T,index:S,pointIJK:_,pointLPS:null}),i({value:T,index:S,pointIJK:[C,y,x],pointLPS:null}))}}}return v}},this.getSliceData=({sliceIndex:i,slicePlane:o})=>{const[a,s,c]=this.dimensions,l=a*s,f=i*l;let u;const d=this.getConstructor();function h(p){return typeof p=="function"}if(!h(d))return new Uint8Array(0);let g;switch(o){case 0:u=s*c,g=new d(u);for(let p=0;p[0,e-1])}getBoundsIJK(){return this.boundsIJK[0][0]{r[0]=1/0,r[1]=-1/0}),this.modifiedSlices.clear(),(e=this.points)==null||e.clear()}getConstructor(){return this.scalarData?this.scalarData.constructor:this._getConstructor?this._getConstructor():(console.warn("No scalar data available or can be used to get the constructor"),Float32Array)}getArrayOfModifiedSlices(){return Array.from(this.modifiedSlices)}resetModifiedSlices(){this.modifiedSlices.clear()}static addBounds(e,r){e||(e=[[1/0,-1/0],[1/0,-1/0],[1/0,-1/0]]),e[0][0]=Math.min(r[0],e[0][0]),e[0][1]=Math.max(r[0],e[0][1]),e[1][0]=Math.min(r[1],e[1][0]),e[1][1]=Math.max(r[1],e[1][1]),e[2][0]=Math.min(r[2],e[2][0]),e[2][1]=Math.max(r[2],e[2][1])}addPoint(e){const r=Array.isArray(e)?e[0]+this.width*e[1]+this.frameSize*e[2]:e;this.points||(this.points=new Set),this.points.add(r)}getPoints(){return this.points?[...this.points].map(e=>this.toIJK(e)):[]}setSliceDataValue(e,r,n){if(Array.isArray(n))for(let i=0;i(o*=n,[r[o++],r[o++],r[o++]]),(o,a)=>{o*=3;const s=!mt(r[o],a);return r[o++]=a[0],r[o++]=a[1],r[o++]=a[2],s});return i.numberOfComponents=n,i.scalarData=r,i}static createImageVolumeVoxelManager({dimensions:e,imageIds:r,numberOfComponents:n=1}){const i=e[0]*e[1];function o(l){const f=Math.floor(l/i),u=r[f];if(!u)return console.warn(`ImageId not found for sliceIndex: ${f}`),{pixelData:null,pixelIndex:null};const d=Te.getImage(u);if(!d)return console.warn(`Image not found for imageId: ${u}`),{pixelData:null,pixelIndex:null};const h=d.voxelManager.getScalarData(),g=l%i*n;return{pixelData:h,pixelIndex:g}}function a(l){const{pixelData:f,pixelIndex:u}=o(l);return!f||u===null?null:n===1?f[u]:[f[u],f[u+1],f[u+2]]}function s(l,f){const{pixelData:u,pixelIndex:d}=o(l);if(!u||d===null)return!1;let h=!1;if(n===1)u[d]!==f&&(u[d]=f,h=!0);else{const g=f;for(let p=0;pa(l),(l,f)=>s(l,f));return c.numberOfComponents=n,c._getConstructor=()=>{const l=o(0);return l.pixelData?l.pixelData.constructor:null},c.getMiddleSliceData=()=>{const l=Math.floor(e[2]/2);return c.getSliceData({sliceIndex:l,slicePlane:2})},c.getRange=()=>{let l=1/0,f=-1/0;for(const u of r){const d=Te.getImage(u);d.minPixelValuef&&(f=d.maxPixelValue)}return[l,f]},c._getScalarDataLength=()=>{const{pixelData:l}=o(0);return l.length*e[2]},c.getCompleteScalarDataArray=()=>{const l=c._getConstructor();if(!l)return new Uint8Array(0);const f=c.getScalarDataLength(),u=new l(f),d=e[0]*e[1]*n;for(let h=0;h{const f=e[0]*e[1]*n,u=c._getConstructor();let d=1/0,h=-1/0;for(let g=0;g4||n<1||n===2))throw new Error(`Number of components ${n} must be 1, 3 or 4`);return n>1?_r._createRGBScalarVolumeVoxelManager({dimensions:e,scalarData:r,numberOfComponents:n}):_r._createNumberVolumeVoxelManager({dimensions:e,scalarData:r})}static createScalarDynamicVolumeVoxelManager({imageIdGroups:e,dimensions:r,timePoint:n=0,numberOfComponents:i=1}){if(!i){const s=Te.getImage(e[0][0]);if(!s)throw new Error("Unable to determine number of components: No image found");if(i=s.getPixelData().length/(r[0]*r[1]),i>4||i<1||i===2)throw new Error(`Number of components ${i} must be 1, 3 or 4`)}const o=e.map(s=>_r.createImageVolumeVoxelManager({dimensions:r,imageIds:s,numberOfComponents:i})),a=new _r(r,s=>o[n]._get(s),(s,c)=>o[n]._set(s,c));return a.numberOfComponents=i,a.getScalarDataLength=()=>o[n].getScalarDataLength(),a.getConstructor=()=>o[n].getConstructor(),a.getRange=()=>o[n].getRange(),a.getMiddleSliceData=()=>o[n].getMiddleSliceData(),a.setTimePoint=s=>{n=s,a._get=c=>o[n]._get(c),a._set=(c,l)=>o[n]._set(c,l)},a.getAtIndexAndTimePoint=(s,c)=>o[c]._get(s),a.getTimePointScalarData=s=>o[s].getCompleteScalarDataArray(),a.getTimePointScalarData=s=>o[s].getCompleteScalarDataArray(),a.getCurrentTimePointScalarData=()=>o[n].getCompleteScalarDataArray(),a}static createImageVoxelManager({width:e,height:r,scalarData:n,numberOfComponents:i=1}){const o=[e,r,1];if(!i&&(i=n.length/e/r,i>4||i<1||i===2))throw new Error(`Number of components ${i} must be 1, 3 or 4`);return i>1?_r._createRGBScalarVolumeVoxelManager({dimensions:o,scalarData:n,numberOfComponents:i}):_r._createNumberVolumeVoxelManager({dimensions:o,scalarData:n})}static _createNumberVolumeVoxelManager({dimensions:e,scalarData:r}){const n=new _r(e,i=>r[i],(i,o)=>{const a=r[i]!==o;return r[i]=o,a});return n.scalarData=r,n.getMiddleSliceData=()=>{const i=Math.floor(e[2]/2);return n.getSliceData({sliceIndex:i,slicePlane:2})},n}static createMapVoxelManager({dimension:e}){const r=new Map,n=new _r(e,r.get.bind(r),(i,o)=>r.set(i,o)&&!0);return n.map=r,n}static createHistoryVoxelManager({sourceVoxelManager:e}){const r=new Map,{dimensions:n}=e,i=new _r(n,o=>r.get(o),function(o,a){if(r.has(o))a===r.get(o)&&r.delete(o);else{const s=this.sourceVoxelManager.getAtIndex(o);if(s===a)return!1;r.set(o,s)}this.sourceVoxelManager.setAtIndex(o,a)});return i.map=r,i.scalarData=e.scalarData,i.sourceVoxelManager=e,i}static createLazyVoxelManager({dimensions:e,planeFactory:r}){const n=new Map,[i,o]=e,a=i*o,s=new _r(e,c=>n.get(Math.floor(c/a))[c%a],(c,l)=>{const f=Math.floor(c/a);let u=n.get(f);return u||(u=r(i,o),n.set(f,u)),u[c%a]=l,!0});return s.map=n,s}static createRLEVoxelManager({dimensions:e}){const[r,n,i]=e,o=new wM(r,n,i),a=new _r(e,s=>o.get(s),(s,c)=>(o.set(s,c),!0));return a.map=o,a.getPixelData=o.getPixelData.bind(o),a}static addInstanceToImage(e){const{width:r,height:n}=e,i=e.voxelManager.getScalarData();if(i.length>=r*n){e.voxelManager=_r.createScalarVolumeVoxelManager({dimensions:[r,n,1],scalarData:i});return}e.voxelManager=_r.createRLEVoxelManager({dimensions:[r,n,1]}),e.getPixelData=e.voxelManager.getPixelData,e.sizeInBytes=Kee}};class wh{constructor(e){this._imageIdsIndexMap=new Map,this._imageURIsIndexMap=new Map,this.cornerstoneImageMetaData=null,this.isPreScaled=!1,this.numTimePoints=null;const{imageIds:r,scaling:n,dimensions:i,spacing:o,origin:a,direction:s,dataType:c,volumeId:l,referencedVolumeId:f,metadata:u,referencedImageIds:d,additionalDetails:h,voxelManager:g,numberOfComponents:p}=e;if(!c)throw new Error('Data type is required, please provide a data type as string such as "Uint8Array", "Float32Array", etc.');let{imageData:v}=e;this.imageIds=r,this.volumeId=l,this.metadata=u,this.dimensions=i,this.spacing=o,this.origin=a,this.direction=s,this.dataType=c,this.vtkOpenGLTexture=gJ.newInstance(),this.vtkOpenGLTexture.setVolumeId(l),this.voxelManager=g??Qa.createImageVolumeVoxelManager({dimensions:i,imageIds:r,numberOfComponents:p}),this.numVoxels=this.dimensions[0]*this.dimensions[1]*this.dimensions[2],v||(v=y0.newInstance(),v.setDimensions(i),v.setSpacing(o),v.setDirection(s),v.setOrigin(a)),v.set({dataType:c,voxelManager:this.voxelManager,id:l,numberOfComponents:p||1}),v.set({hasScalarVolume:!1}),this.imageData=v,this.numFrames=this._getNumFrames(),this._reprocessImageIds(),n&&(this.scaling=n),f&&(this.referencedVolumeId=f),d&&(this.referencedImageIds=d),h&&(this.additionalDetails=h)}get sizeInBytes(){return this.voxelManager.sizeInBytes}get imageIds(){return this._imageIds}set imageIds(e){this._imageIds=e,this._reprocessImageIds()}_reprocessImageIds(){this._imageIdsIndexMap.clear(),this._imageURIsIndexMap.clear(),this._imageIds.forEach((e,r)=>{const n=Pn(e);this._imageIdsIndexMap.set(e,r),this._imageURIsIndexMap.set(n,r)})}isDynamicVolume(){return this.numTimePoints>1}getImageIdIndex(e){return this._imageIdsIndexMap.get(e)}getImageIdByIndex(e){return this._imageIds[e]}getImageURIIndex(e){return this._imageURIsIndexMap.get(e)}load(e){}destroy(){this.imageData.delete(),this.imageData=null,this.voxelManager.clear(),this.vtkOpenGLTexture.releaseGraphicsResources(),this.vtkOpenGLTexture.delete()}invalidate(){for(let e=0;eTe.getImage(r))}}let Q0={};const Os={add:(t,e)=>{Os.addRaw(t,{...e,metadata:structuredClone(e.metadata)})},addRaw:(t,e)=>{const r=e.type;Q0[t]||(Q0[t]={}),Q0[t][r]=e.metadata},get:(t,e)=>{var r;return(r=Q0[e])==null?void 0:r[t]},clear:()=>{Q0={}}};x0(Os.get);const fi=new Kw("imageLoadPool");fi.grabDelay=0;fi.setMaxSimultaneousRequests(dt.Interaction,1e3);fi.setMaxSimultaneousRequests(dt.Thumbnail,1e3);fi.setMaxSimultaneousRequests(dt.Prefetch,1e3);const CM={};let qee;function SM(t,e){const r=Te.getImageLoadObject(t);if(r)return E8(r.promise,t),r;const n=t.split(":")[0],i=CM[n]||qee;if(!i)throw new Error(`loadImageFromImageLoader: No image loader found for scheme '${n}'`);const o=i(t,e);return E8(o.promise,t),o}function E8(t,e){Promise.resolve(t).then(r=>{Xee(r),De(Ce,Se.IMAGE_LOADED,{image:r})}).catch(r=>{const n={imageId:e,error:r};De(Ce,Se.IMAGE_LOAD_FAILED,n)})}function Xee(t){if(!t.voxelManager){const{width:e,height:r,numberOfComponents:n}=t,i=Qa.createImageVoxelManager({scalarData:t.getPixelData(),width:e,height:r,numberOfComponents:n});t.voxelManager=i,t.getPixelData=()=>i.getScalarData(),delete t.imageFrame.pixelData}}function Yee(t,e={priority:0,requestType:"prefetch"}){if(t===void 0)throw new Error("loadImage: parameter imageId must not be undefined");return SM(t,e).promise}function Ys(t,e={priority:0,requestType:"prefetch"}){if(t===void 0)throw new Error("loadAndCacheImage: parameter imageId must not be undefined");const r=SM(t,e);return Te.getImageLoadObject(t)||Te.putImageLoadObject(t,r),r.promise}function Jee(t,e={}){var g;if(t===void 0)throw new Error("createAndCacheDerivedImage: parameter imageId must not be undefined");e.imageId===void 0&&(e.imageId=`derived:${wn()}`);const{imageId:r,skipCreateBuffer:n,onCacheAdd:i}=e,o=Pe("imagePlaneModule",t),a=o.rows*o.columns,{TypedArrayConstructor:s}=Gw((g=e.targetBuffer)==null?void 0:g.type,a),c=new s(n?1:a),l=r,f=Pe("imagePlaneModule",t);Os.add(l,{type:"imagePlaneModule",metadata:f});const u=Pe("generalSeriesModule",t);Os.add(l,{type:"generalSeriesModule",metadata:u}),Os.add(l,{type:"generalImageModule",metadata:{instanceNumber:e.instanceNumber}});const d=Pe("imagePixelModule",t);Os.add(l,{type:"imagePixelModule",metadata:{...d,bitsAllocated:8,bitsStored:8,highBit:7,samplesPerPixel:1,pixelRepresentation:0}});const h=_M(r,{scalarData:c,onCacheAdd:i,skipCreateBuffer:n,targetBuffer:{type:c.constructor.name},dimensions:[o.columns,o.rows],spacing:[o.columnPixelSpacing,o.rowPixelSpacing],origin:o.imagePositionPatient,direction:o.imageOrientationPatient,frameOfReferenceUID:o.frameOfReferenceUID});return h.referencedImageId=t,Te.getImageLoadObject(r)||Te.putImageSync(r,h),h}function TM(t,e={}){if(t.length===0)throw new Error("createAndCacheDerivedImages: parameter imageIds must be list of image Ids");return t.map((n,i)=>{var a;const o={imageId:((a=e==null?void 0:e.getDerivedImageId)==null?void 0:a.call(e,n))||`derived:${wn()}`,...e};return Jee(n,{...o,instanceNumber:i+1})})}function _M(t,e){const{scalarData:r,origin:n,direction:i,targetBuffer:o,skipCreateBuffer:a,onCacheAdd:s,frameOfReferenceUID:c}=e,l=e.dimensions,f=e.spacing;if(!l||!f)throw new Error("createAndCacheLocalImage: dimensions and spacing are required");const u=l[0],d=l[1],h=f[0],g=f[1],p={frameOfReferenceUID:c,rows:d,columns:u,imageOrientationPatient:i??[1,0,0,0,1,0],rowCosines:i?i.slice(0,3):[1,0,0],columnCosines:i?i.slice(3,6):[0,1,0],imagePositionPatient:n??[0,0,0],pixelSpacing:[g,h],rowPixelSpacing:g,columnPixelSpacing:h},v=u*d,x=r.length/v;let m;if(r){if(!(r instanceof Uint8Array||r instanceof Float32Array||r instanceof Uint16Array||r instanceof Int16Array))throw new Error("createAndCacheLocalImage: scalarData must be of type Uint8Array, Uint16Array, Int16Array or Float32Array");m=r}else if(!a){const{numBytes:I,TypedArrayConstructor:R}=Gw(o==null?void 0:o.type,v);m=new R(v)}let y,w,C;if(m instanceof Uint8Array)y=8,w=8,C=7;else if(m instanceof Uint16Array)y=16,w=16,C=15;else if(m instanceof Int16Array)y=16,w=16,C=15;else if(m instanceof Float32Array)y=32,w=32,C=31;else throw new Error("Unsupported scalarData type");const S={samplesPerPixel:1,photometricInterpretation:m.length>l[0]*l[1]?"RGB":"MONOCHROME2",rows:d,columns:u,bitsAllocated:y,bitsStored:w,highBit:C},T={imagePlaneModule:p,imagePixelModule:S};["imagePlaneModule","imagePixelModule"].forEach(I=>{Os.add(t,{type:I,metadata:T[I]||{}})});const _=Qa.createImageVoxelManager({height:d,width:u,numberOfComponents:x,scalarData:m});let E=m[0],D=m[0];for(let I=1;ID&&(D=m[I]);const b={imageId:t,intercept:0,windowCenter:0,windowWidth:0,color:S.photometricInterpretation==="RGB",numberOfComponents:S.samplesPerPixel,dataType:o==null?void 0:o.type,slope:1,minPixelValue:E,maxPixelValue:D,rows:S.rows,columns:S.columns,getCanvas:void 0,height:S.rows,width:S.columns,rgba:void 0,columnPixelSpacing:p.columnPixelSpacing,rowPixelSpacing:p.rowPixelSpacing,FrameOfReferenceUID:p.frameOfReferenceUID,invert:!1,getPixelData:()=>_.getScalarData(),voxelManager:_,sizeInBytes:r.byteLength};return s==null||s(b),Te.putImageSync(b.imageId,b),b}function Np(t,e){CM[t]=e}function EM(t,e={}){return TM(t,{...e,targetBuffer:{type:"Uint8Array"}})}function DM(t){const e=t[0],{pixelRepresentation:r,bitsAllocated:n,bitsStored:i,highBit:o,photometricInterpretation:a,samplesPerPixel:s}=Pe("imagePixelModule",e),c=[],l=Pe("voiLutModule",e);let f;if(l){const{windowWidth:m,windowCenter:y}=l;if(f=l==null?void 0:l.voiLUTFunction,Array.isArray(m))for(let w=0;w({distance:c(v),imageId:v}));g.sort((v,x)=>x.distance-v.distance),a=g.map(v=>v.imageId);const p=g.length;s=Math.abs(g[p-1].distance-g[0].distance)/(p-1)}const{imagePositionPatient:l,sliceThickness:f,spacingBetweenSlices:u}=Pe("imagePlaneModule",a[0]),{strictZSpacingForVolumeViewport:d}=Xw().rendering;return s===0&&!d&&(f&&u?(console.log("Could not calculate zSpacing. Using spacingBetweenSlices"),s=u):f?(console.log("Could not calculate zSpacing and no spacingBetweenSlices. Using sliceThickness"),s=f):(console.log("Could not calculate zSpacing. The VolumeViewport visualization is compromised. Setting zSpacing to 1 to render"),s=1)),{zSpacing:s,origin:l,sortedImageIds:a}}function IM(t){const e=Pe("modalityLutModule",t)||{},r=Pe("generalSeriesModule",t)||{},{modality:n}=r,i={rescaleSlope:e.rescaleSlope||1,rescaleIntercept:e.rescaleIntercept??0,modality:n},o=Pe("scalingModule",t)||{};return{...i,...n==="PT"&&{suvbw:o.suvbw,suvbsa:o.suvbsa,suvlbm:o.suvlbm}}}const eC=t=>Object.values(t).some(r=>typeof r=="number"&&!Number.isInteger(r));function tC(t,e){const r=DM(t),{ImageOrientationPatient:n,PixelSpacing:i,Columns:o,Rows:a}=r,s=Ye(n[0],n[1],n[2]),c=Ye(n[3],n[4],n[5]),l=xe();qt(l,s,c);const{zSpacing:f,origin:u,sortedImageIds:d}=bM(t,l),h=t.length,g=[i[1],i[0],f],p=[o,a,h].map(x=>Math.floor(x)),v=[...s,...c,...l];return{dimensions:p,spacing:g,origin:u,dataType:Zee(d,r),direction:v,metadata:r,imageIds:d,volumeId:e,voxelManager:null,numberOfComponents:r.PhotometricInterpretation==="RGB"?3:1}}function Zee(t,e){const{BitsAllocated:r,PixelRepresentation:n,x:i}=e,o=n===1,a=Math.floor(t.length/2),s=t[a],c=IM(s),l=c.rescaleIntercept<0||c.rescaleSlope<0,f=eC(c),u=qw();switch(r){case 8:if(o)throw new Error("8 Bit signed images are not yet supported by this plugin.");return"Uint8Array";case 16:return u&&f?"Float32Array":o||l?"Int16Array":!o&&!l?"Uint16Array":"Float32Array";case 24:return"Uint8Array";case 32:return"Float32Array";default:throw new Error(`Bits allocated of ${r} is not defined to generate scalarData for the volume.`)}}let z1=class OM{constructor(e){this.name=e||"unknown"}static as(e){if(e.iterator)return e.iterator;const r=new OM("as iterator");return e.then(n=>{try{r.add(n,!0)}catch(i){r.reject(i)}},n=>{r.reject(n)}),r}add(e,r=!1){this.nextValue=e,this.done||(this.done=r),this.waiting&&(this.waiting.resolve(e),this.waiting=void 0)}resolve(){this.done=!0,this.waiting&&(this.waiting.resolve(this.nextValue),this.waiting=void 0)}reject(e){var r;this.rejectReason=e,(r=this.waiting)==null||r.reject(e)}getRecent(){if(this.rejectReason)throw this.rejectReason;return this.nextValue}async*[Symbol.asyncIterator](){for(;!this.done;){if(this.rejectReason)throw this.rejectReason;if(this.nextValue!==void 0&&(yield this.nextValue,this.done))break;this.waiting||(this.waiting={},this.waiting.promise=new Promise((e,r)=>{this.waiting.resolve=e,this.waiting.reject=r})),await this.waiting.promise}yield this.nextValue}async forEach(e,r){let n=0;try{for await(const i of this){const{done:o}=this;try{await e(i,o,n),n++}catch(a){if(!o){console.warn("Caught exception in intermediate value",a);continue}if(r)r(a,o);else throw a}}}catch(i){if(r)r(i,!0);else throw i}}generate(e,r){return e(this,this.reject.bind(this)).then(()=>{this.done||this.resolve()},n=>{this.reject(n),r?r(n):console.warn("Couldn't process because",n)})}async nextPromise(){for await(const e of this)if(e)return e;return this.nextValue}async donePromise(){for await(const e of this);return this.nextValue}getNextPromise(){const e=this.nextPromise();return e.iterator=this,e}getDonePromise(){const e=this.donePromise();return e.iterator=this,e}};const kv=new Map,D8="imageRetrieveConfiguration",Nd={IMAGE_RETRIEVE_CONFIGURATION:D8,clear:()=>{kv.clear()},add:(t,e)=>{kv.set(t,e)},get:(t,...e)=>{if(t===D8)return e.map(r=>kv.get(r)).find(r=>r!==void 0)}};x0(Nd.get.bind(Nd));function Ch(t){const e=_i(),r=[];return e.forEach(n=>{const o=n.getVolumeViewports().filter(a=>a.hasVolumeId(t));r.push(...o)}),r}const t3=t=>{const e=Qee(t);e!=null&&e.length&&e.forEach(({renderingEngine:r,viewportIds:n})=>{r.hasBeenDestroyed||r.renderViewports(n)})};function Qee(t){const e=_i(),r=[];return e.forEach(n=>{const i=Ch(t);i.length&&r.push({renderingEngine:n,viewportIds:i.map(o=>o.id)})}),r}const b8=[{id:"initialImages",retrieveType:"single"}],ete=[{id:"lossySequential",retrieveType:"singleFast"},{id:"finalSequential",retrieveType:"singleFinal"}],Vv=[{offset:-1,imageQualityStatus:Pi.ADJACENT_REPLICATE},{offset:1,imageQualityStatus:Pi.ADJACENT_REPLICATE},{offset:2,imageQualityStatus:Pi.FAR_REPLICATE}],tte=[{id:"initialImages",positions:[.5,0,-1],retrieveType:"default",requestType:dt.Thumbnail,priority:5,nearbyFrames:Vv},{id:"quarterThumb",decimate:4,offset:3,requestType:dt.Thumbnail,retrieveType:"multipleFast",priority:6,nearbyFrames:Vv},{id:"halfThumb",decimate:4,offset:1,priority:7,requestType:dt.Thumbnail,retrieveType:"multipleFast",nearbyFrames:Vv},{id:"quarterFull",decimate:4,offset:2,priority:8,requestType:dt.Thumbnail,retrieveType:"multipleFinal"},{id:"halfFull",decimate:4,offset:0,priority:9,requestType:dt.Thumbnail,retrieveType:"multipleFinal"},{id:"threeQuarterFull",decimate:4,offset:1,priority:10,requestType:dt.Thumbnail,retrieveType:"multipleFinal"},{id:"finalFull",decimate:4,offset:3,priority:11,requestType:dt.Thumbnail,retrieveType:"multipleFinal"},{id:"errorRetrieve"}];function MM(t,e,r=0){const n=[];for(let i=r;i=a)continue;const c={...r,imageId:o,imageQualityStatus:a};Te.setPartialImage(o,c),t.successCallback(o,c)}catch(o){console.warn("Couldn't fill nearby item ",i.itemId,o)}}const fu=class fu{constructor(e){this.stages=e.stages||b8,this.retrieveOptions=e.retrieveOptions||{}}loadImages(e,r){return new rte(this,e,r).loadImages()}};fu.createProgressive=RM,fu.interleavedRetrieveStages={stages:tte},fu.singleRetrieveStages={stages:b8},fu.sequentialRetrieveStages={stages:ete};let $1=fu;class rte{constructor(e,r,n){this.outstandingRequests=0,this.stageStatusMap=new Map,this.displayedIterator=new z1("displayed"),this.stages=e.stages,this.retrieveOptions=e.retrieveOptions,this.imageIds=r,this.listener=n}async loadImages(){const e=this.createStageRequests();this.outstandingRequests=e.length;for(const r of e)this.addRequest(r);return this.outstandingRequests===0?Promise.resolve(null):this.displayedIterator.getDonePromise()}sendRequest(e,r){const{imageId:n,next:i}=e,o=(f,u)=>{this.listener.errorCallback(n,c||!i,f),u&&this.updateStageStatus(e.stage,f)},a=(r.loader||Ys)(n,r),s=z1.as(a);let c=!1;return s.forEach(async(f,u)=>{const d=Te.getImageQuality(n);if(!f){console.warn("No image retrieved",n);return}const{imageQualityStatus:h}=f;if(c||(c=h===Pi.FULL_RESOLUTION),d!==void 0&&d>h){this.updateStageStatus(e.stage,null,!0);return}this.listener.successCallback(n,f),this.displayedIterator.add(f),u&&this.updateStageStatus(e.stage),nte(this.listener,e,f)},o).finally(()=>{if(!c&&i)Te.setPartialImage(n),this.addRequest(i,r.streamingData);else{c||this.listener.errorCallback(n,!0,"Couldn't decode"),this.outstandingRequests--;for(let f=i;f;f=f.next)this.updateStageStatus(f.stage,null,!0)}this.outstandingRequests<=0&&this.displayedIterator.resolve()}),s.getDonePromise().catch(f=>null)}addRequest(e,r={}){const{imageId:n,stage:i}=e,o=this.listener.getLoaderImageOptions(n);if(!o)return;const{retrieveType:a="default"}=i,{retrieveOptions:s}=this,c=s[a]||s.default,l={...o,retrieveType:a,retrieveOptions:c,streamingData:r},f=i.priority??-5,u=i.requestType||dt.Interaction,d={imageId:n};fi.addRequest(this.sendRequest.bind(this,e,l),u,d,f)}updateStageStatus(e,r,n=!1){const{id:i}=e,o=this.stageStatusMap.get(i);if(o&&(o.imageLoadPendingCount--,r?o.imageLoadFailedCount++:n||o.totalImageCount++,!n&&!o.stageStartTime&&(o.stageStartTime=Date.now()),!o.imageLoadPendingCount)){const{imageLoadFailedCount:a,totalImageCount:s,stageStartTime:c=Date.now(),startTime:l}=o,f={stageId:i,numberOfFailures:a,numberOfImages:s,stageDurationInMS:c?Date.now()-c:null,startDurationInMS:Date.now()-l};De(Ce,Se.IMAGE_RETRIEVAL_STAGE,f),this.stageStatusMap.delete(i)}}createStageRequests(){const e=new Array,r=new Map,n=(i,o)=>{const a=o<0?this.imageIds.length+o:o<1?Math.floor((this.imageIds.length-1)*o):o,s=this.imageIds[a];if(!s)throw new Error(`No value found to add to requests at ${o}`);const c={imageId:s,stage:i,index:a,nearbyRequests:this.findNearbyRequests(a,i)};this.addStageStatus(i);const l=r.get(s);l?l.next=c:e.push(c),r.set(s,c)};for(const i of this.stages)(i.positions||MM(this.imageIds,i.decimate||1,i.offset??0)).forEach(a=>{n(i,a)});return e}findNearbyRequests(e,r){const n=new Array;if(!r.nearbyFrames)return n;for(const i of r.nearbyFrames){const o=e+i.offset;o<0||o>=this.imageIds.length||n.push({itemId:this.imageIds[o],imageQualityStatus:i.imageQualityStatus,index:o})}return n}addStageStatus(e){const{id:r}=e,n=this.stageStatusMap.get(r)||{stageId:r,startTime:Date.now(),stageStartTime:null,totalImageCount:0,imageLoadFailedCount:0,imageLoadPendingCount:0};return n.imageLoadPendingCount++,this.stageStatusMap.set(r,n),n}}function RM(t){return new $1(t)}const I8=dt.Prefetch;class ite extends wh{constructor(e,r){super(e),this.framesLoaded=0,this.framesProcessed=0,this.framesUpdated=0,this.autoRenderOnLoad=!0,this.cachedFrames=[],this.reRenderTarget=0,this.reRenderFraction=2,this.imagesLoader=this,this.cancelLoading=()=>{const{loadStatus:n}=this;if(!n||!n.loading)return;n.loading=!1,n.cancelled=!0,this.clearLoadCallbacks();const i=({additionalDetails:o})=>o.volumeId!==this.volumeId;fi.filterRequests(i)},this.loadStatus=r.loadStatus}invalidateVolume(e){const{vtkOpenGLTexture:r}=this,{numFrames:n}=this;for(let i=0;ithis.reRenderTarget||n===i)&&(this.reRenderTarget+=a,t3(o)),n===i){s.callbacks.forEach(u=>u(e));const f={FrameOfReferenceUID:l,volumeId:o};De(Ce,Se.IMAGE_VOLUME_LOADING_COMPLETED,f)}}updateTextureAndTriggerEvents(e,r,n=Pi.FULL_RESOLUTION){const i=this.imageIdIndexToFrameIndex(e),{cachedFrames:o,numFrames:a,totalNumFrames:s}=this,{FrameOfReferenceUID:c}=this.metadata;if(o[i]>n||o[i]===Pi.FULL_RESOLUTION)return;const f=n===Pi.FULL_RESOLUTION;o[e]=n,this.framesUpdated++,f&&(this.framesLoaded++,this.framesProcessed++);const u={FrameOfReferenceUID:c,volumeId:this.volumeId,numberOfFrames:a,framesProcessed:this.framesProcessed};De(Ce,Se.IMAGE_VOLUME_MODIFIED,u),f&&this.framesProcessed===this.totalNumFrames&&(this.loadStatus.loaded=!0,this.loadStatus.loading=!1),this.callLoadStatusCallback({success:!0,imageIdIndex:e,imageId:r,framesLoaded:this.framesLoaded,framesProcessed:this.framesProcessed,framesUpdated:this.framesUpdated,numFrames:a,totalNumFrames:s,complete:f,imageQualityStatus:n}),this.vtkOpenGLTexture.setUpdatedFrame(i),this.loadStatus.loaded&&(this.loadStatus.callbacks=[])}successCallback(e,r){const n=this.getImageIdIndex(e),{imageQualityStatus:i}=r;if(this.loadStatus.cancelled){console.warn("volume load cancelled, returning for imageIdIndex: ",n);return}this.updateTextureAndTriggerEvents(n,e,i),this.isDynamicVolume()&&this.checkTimePointCompletion(n)}errorCallback(e,r,n){if(!r)return;const{totalNumFrames:i,numFrames:o}=this,a=this.getImageIdIndex(e);this.framesProcessed++,this.framesProcessed===i&&(this.loadStatus.loaded=!0,this.loadStatus.loading=!1),this.callLoadStatusCallback({success:!1,imageId:e,imageIdIndex:a,error:n,framesLoaded:this.framesLoaded,framesProcessed:this.framesProcessed,framesUpdated:this.framesUpdated,numFrames:o,totalNumFrames:i}),this.loadStatus.loaded&&(this.loadStatus.callbacks=[]);const s={error:n,imageIdIndex:a,imageId:e};De(Ce,Se.IMAGE_LOAD_ERROR,s)}load(e){const{imageIds:r,loadStatus:n,numFrames:i}=this,{transferSyntaxUID:o}=Pe("transferSyntax",r[0])||{},a=Pe(Nd.IMAGE_RETRIEVE_CONFIGURATION,this.volumeId,o,"volume");if(this.imagesLoader=this.isDynamicVolume()?this:a?(a.create||$1.createProgressive)(a):this,n.loading===!0)return;const{loaded:s}=this.loadStatus,c=r.length;if(s){e&&e({success:!0,framesLoaded:c,framesProcessed:c,numFrames:i,totalNumFrames:c});return}e&&this.loadStatus.callbacks.push(e),this._prefetchImageIds()}getLoaderImageOptions(e){const{transferSyntaxUID:r}=Pe("transferSyntax",e)||{},n=Pe("imagePlaneModule",e)||{},{rows:i,columns:o}=n,a=this.getImageIdIndex(e),s=Pe("modalityLutModule",e)||{},c=Pe("generalSeriesModule",e)||{},l={rescaleSlope:s.rescaleSlope,rescaleIntercept:s.rescaleIntercept,modality:c.modality};if(l.modality==="PT"){const h=Pe("scalingModule",e);h&&(this._addScalingToVolume(h),l.suvbw=h.suvbw)}const f=eC(l),u=qw();if(this.isPreScaled=!0,l&&l.rescaleSlope!==void 0&&l.rescaleIntercept!==void 0){const{rescaleSlope:h,rescaleIntercept:g}=l;this.isPreScaled=typeof h=="number"&&typeof g=="number"}return!u&&f&&(this.isPreScaled=!1),{targetBuffer:{type:this.dataType,rows:i,columns:o},allowFloatRendering:u,preScale:{enabled:this.isPreScaled,scalingParameters:l},transferPixelData:!0,requestType:I8,transferSyntaxUID:r,additionalDetails:{imageId:e,imageIdIndex:a,volumeId:this.volumeId}}}callLoadImage(e,r,n){const{cachedFrames:i}=this;if(i[r]===Pi.FULL_RESOLUTION)return;const o=s=>{const{image:c}=s.detail;c.imageId===e&&(this.vtkOpenGLTexture.setUpdatedFrame(r),Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_ADDED,o))};return Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_ADDED,o),z1.as(Ys(e,n)).forEach(s=>{this.successCallback(e,s)},this.errorCallback.bind(this,r,e))}getImageIdsRequests(e,r){this.totalNumFrames=this.imageIds.length;const n=2;return this.autoRenderOnLoad&&(this.reRenderFraction=this.totalNumFrames*(n/100),this.reRenderTarget=this.reRenderFraction),e.map(o=>{const a=this.getImageIdIndex(o),s=I8,c=r,l=this.getLoaderImageOptions(o);return{callLoadImage:this.callLoadImage.bind(this),imageId:o,imageIdIndex:a,options:l,priority:c,requestType:s,additionalDetails:{volumeId:this.volumeId}}})}getImageLoadRequests(e){throw new Error("Abstract method")}getImageIdsToLoad(){throw new Error("Abstract method")}loadImages(){return this.loadStatus.loading=!0,this.getImageLoadRequests(5).reverse().forEach(r=>{if(!r)return;const{callLoadImage:n,imageId:i,imageIdIndex:o,options:a,priority:s,requestType:c,additionalDetails:l}=r;fi.addRequest(n.bind(this,i,o,a),c,l,s)}),Promise.resolve(!0)}_prefetchImageIds(){this.loadStatus.loading=!0;const e=[...this.getImageIdsToLoad()];this.totalNumFrames=this.imageIds.length;const r=2;return this.autoRenderOnLoad&&(this.reRenderFraction=this.totalNumFrames*(r/100),this.reRenderTarget=this.reRenderFraction),this.imagesLoader.loadImages(e,this).catch(n=>{console.debug("progressive loading failed to complete",n)})}_addScalingToVolume(e){if(this.scaling)return;const{suvbw:r,suvlbm:n,suvbsa:i}=e,o={};n&&(o.suvbwToSuvlbm=n/r),i&&(o.suvbwToSuvbsa=i/r),r&&(o.suvbw=r),this.scaling={PT:o}}checkTimePointCompletion(e){}}class ote extends ite{constructor(e,r){e.imageIds||(e.imageIds=r.imageIds),super(e,r),this.getImageIdsToLoad=()=>{const{imageIds:n}=this;return this.numFrames=n.length,n}}getScalarData(){return this.voxelManager.getScalarData()}getImageLoadRequests(e){const{imageIds:r}=this;return this.getImageIdsRequests(r,e)}}function ate(t,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume");async function r(){if(e.imageIds[0].split(":")[0]==="wadouri"){const[g,p]=[Math.floor(e.imageIds.length/2),e.imageIds.length-1],v=[0,g,p];await Promise.all(v.map(x=>new Promise((m,y)=>{const w=e.imageIds[x];fi.addRequest(async()=>{Yee(w).then(()=>{console.log(`Prefetched imageId: ${w}`),m(!0)}).catch(C=>{y(C)})},dt.Prefetch,{volumeId:t},1)}))).catch(console.error)}const i=tC(e.imageIds,t),{dimensions:o,spacing:a,origin:s,direction:c,metadata:l,imageIds:f,dataType:u,numberOfComponents:d}=i;return new ote({volumeId:t,metadata:l,dimensions:o,spacing:a,origin:s,direction:c,imageIds:f,dataType:u,numberOfComponents:d},{imageIds:f,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}})}const n=r();return{promise:n,decache:()=>{n.then(i=>{i.destroy(),i=null})},cancel:()=>{n.then(i=>{i.cancelLoading()})}}}const LM={};let Pp=ate;function NM(t,e){const r=t.indexOf(":"),n=t.substring(0,r);let i=LM[n];if(i==null){if(Pp==null||typeof Pp!="function")throw new Error(`No volume loader for scheme ${n} has been registered`);i=Pp}const o=i(t,e);return o.promise.then(function(a){De(Ce,Se.VOLUME_LOADED,{volume:a})},function(a){const s={volumeId:t,error:a};De(Ce,Se.VOLUME_LOADED_FAILED,s)}),o}function ste(t,e={imageIds:[]}){if(t===void 0)throw new Error("loadVolume: parameter volumeId must not be undefined");let r=Te.getVolumeLoadObject(t);return r!==void 0?r.promise:(r=NM(t,e),r.promise.then(n=>n))}async function nC(t,e){if(t===void 0)throw new Error("createAndCacheVolume: parameter volumeId must not be undefined");let r=Te.getVolumeLoadObject(t);return r!==void 0||(r=NM(t,e),Te.putVolumeLoadObject(t,r)),r.promise}function cte(t,e){const r=Te.getVolume(t);if(!r)throw new Error(`Cannot created derived volume: Referenced volume with id ${t} does not exist.`);let{volumeId:n}=e;n===void 0&&(n=wn());const{metadata:i,dimensions:o,spacing:a,origin:s,direction:c}=r,l=r.isDynamicVolume()?r.getCurrentTimePointImageIds():r.imageIds??[],f=TM(l,{targetBuffer:e.targetBuffer}),u=f[0].dataType,d=f.map(g=>g.imageId),h=new wh({volumeId:n,dataType:u,metadata:structuredClone(i),dimensions:[o[0],o[1],o[2]],spacing:a,origin:s,direction:c,referencedVolumeId:t,imageIds:d,referencedImageIds:r.imageIds??[]});return Te.putVolumeSync(n,h),h}async function rC(t,e){if(e===void 0)throw new Error("createAndCacheVolumeFromImages: parameter imageIds must not be undefined");if(t===void 0)throw new Error("createAndCacheVolumeFromImages: parameter volumeId must not be undefined");const r=Te.getVolume(t);return r||(e.filter(o=>!Te.getImage(o)).length===0?PM(t,e):await nC(t,{imageIds:e}))}function PM(t,e){if(e===void 0)throw new Error("createAndCacheVolumeFromImagesSync: parameter imageIds must not be undefined");if(t===void 0)throw new Error("createAndCacheVolumeFromImagesSync: parameter volumeId must not be undefined");const r=Te.getVolume(t);if(r)return r;const n=tC(e,t),i=new wh({volumeId:t,dataType:n.dataType,metadata:structuredClone(n.metadata),dimensions:n.dimensions,spacing:n.spacing,origin:n.origin,direction:n.direction,referencedVolumeId:n.referencedVolumeId,imageIds:n.imageIds,referencedImageIds:n.referencedImageIds});return Te.putVolumeSync(t,i),i}function AM(t,e={}){const{metadata:r,dimensions:n,spacing:i,origin:o,direction:a,scalarData:s,targetBuffer:c,preventCache:l=!1}=e,f=Te.getVolume(t);if(f)return f;const u=n[0]*n[1],d=s?s.constructor.name:(c==null?void 0:c.type)??"Float32Array",h=u*n[2];let g;switch(d){case"Uint8Array":case"Int8Array":g=h;break;case"Uint16Array":case"Int16Array":g=h*2;break;case"Float32Array":g=h*4;break}if(!Te.isCacheable(g))throw new Error(`Cannot created derived volume: Volume with id ${t} is not cacheable.`);const v=[];for(let y=0;y{const e="volumeId:",r=t.includes(e)?t.substring(e.length):t,n=r.indexOf("sliceIndex=");return n===-1?r:r.substring(0,n-1)},xte=1+Ro,wte=(t,e)=>e===t.substring(0,Math.min(t.length,e.length)),M8=t=>!!lte().find(e=>wte(t.volumeId,e));function S0(t,e,r,n=!1){const{viewPlaneNormal:i}=e,o=t.getActors();if(!o.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const a=o.map(l=>{const f=l.referencedId??l.uid;return Te.getVolume(f)}).filter(l=>!!l);if(r){const l=fa(r),f=a.findIndex(g=>l.includes(g.volumeId)),u=a[f],{uid:d}=o[f],h=R8(u,i,t,n);return{imageVolume:u,spacingInNormalDirection:h,actorUID:d}}if(!a.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const s={spacingInNormalDirection:1/0,imageVolume:null,actorUID:null},c=a.find(M8);for(let l=0;lg.referencedId===n.volumeId||g.uid===n.volumeId);a||console.warn("No actor found for with actorUID of",n.volumeId);const s=a.actor,c=o2(s,i,o),{min:l,max:f,current:u}=c,d=Math.round((f-l)/r)+1;let h=(u-l)/(f-l)*d;return h=Math.floor(h),h>d-1?h=d-1:h<0&&(h=0),{numberOfSlices:d,imageIndex:h}}const iu={};function Cte(t){iu[t]!==void 0&&delete iu[t]}function Ste(t){const{renderingEngineId:e,viewportId:r}=t.detail,i=hr(e).getViewport(r);if(!("setVolumes"in i))throw new Error("volumeNewImageEventDispatcher: viewport does not have setVolumes method");iu[i.id]===void 0&&(iu[i.id]=0);const o=j1(i);if(!o){console.warn(`volumeNewImageEventDispatcher: sliceData is undefined for viewport ${i.id}`);return}const{numberOfSlices:a,imageIndex:s}=o;if(iu[i.id]===s)return;iu[i.id]=s;const c={imageIndex:s,viewportId:r,renderingEngineId:e,numberOfSlices:a};De(i.element,Se.VOLUME_NEW_IMAGE,c)}function qu(t,e,r){const[n,i,o]=t,[a,s,c]=e,[l,f,u,d]=r,h=a-n,g=s-i,p=c-o,v=-1*(l*n+f*i+u*o-d)/(l*h+f*g+u*p),x=h*v+n,m=g*v+i,y=p*v+o;return[x,m,y]}function Ua(t,e,r=!1){const[n,i,o]=t,a=n*e[0]+i*e[1]+o*e[2];if(r){const s=Math.sqrt(n*n+i*i+o*o);return[n/s,i/s,o/s,a/s]}return[n,i,o,a]}function kM(t,e,r){const[n,i,o,a]=t,[s,c,l,f]=e,[u,d,h,g]=r,p=Sf(n,s,u,i,c,d,o,l,h),v=Sf(a,f,g,i,c,d,o,l,h),x=Sf(n,s,u,a,f,g,o,l,h),m=Sf(n,s,u,i,c,d,a,f,g),y=Ec(v)/Ec(p),w=Ec(x)/Ec(p),C=Ec(m)/Ec(p);return[y,w,C]}function H1(t,e,r=!1){const[n,i,o,a]=t,[s,c,l]=e,f=n*s+i*c+o*l-a,u=Math.abs(f)/Math.sqrt(n*n+i*i+o*o);return(r?Math.sign(f):1)*u}const Tte=Object.freeze(Object.defineProperty({__proto__:null,linePlaneIntersection:qu,planeDistanceToPoint:H1,planeEquation:Ua,threePlaneIntersection:kM},Symbol.toStringTag,{value:"Module"}));function n3(t){return Array.isArray(t)?t.some(e=>Number.isNaN(e)):Number.isNaN(t)}function eo(t){if(t===null||typeof t!="object"||typeof t=="function"||typeof structuredClone=="function")return t;if(Array.isArray(t))return t.map(eo);{const e={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=eo(t[r]));return e}}const rd=class rd{constructor(e){this.insetImageMultiplier=1.1,this.flipHorizontal=!1,this.flipVertical=!1,this.viewportStatus=oi.NO_DATA,this._suppressCameraModifiedEvents=!1,this.hasPixelSpacing=!0,this.getProperties=()=>({}),this.setRotation=r=>{},this.viewportWidgets=new Map,this.addWidget=(r,n)=>{this.viewportWidgets.set(r,n)},this.getWidget=r=>this.viewportWidgets.get(r),this.getWidgets=()=>Array.from(this.viewportWidgets.values()),this.removeWidgets=()=>{this.getWidgets().forEach(n=>{if(n.getEnabled()&&n.setEnabled(!1),n.getActor&&n.getRenderer){const i=n.getActor(),o=n.getRenderer();o&&i&&o.removeActor(i)}})},this.id=e.id,this.renderingEngineId=e.renderingEngineId,this.type=e.type,this.element=e.element,this.canvas=e.canvas,this.sx=e.sx,this.sy=e.sy,this.sWidth=e.sWidth,this.sHeight=e.sHeight,this._actors=new Map,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.defaultOptions=eo(e.defaultOptions),this.suppressEvents=e.defaultOptions.suppressEvents?e.defaultOptions.suppressEvents:!1,this.options=eo(e.defaultOptions),this.isDisabled=!1}static get useCustomRenderingPipeline(){return!1}setRendered(){this.viewportStatus===oi.NO_DATA||this.viewportStatus===oi.LOADING||(this.viewportStatus=oi.RENDERED)}getRenderingEngine(){return Ed.get(this.renderingEngineId)}getRenderer(){var r;const e=this.getRenderingEngine();if(!e||e.hasBeenDestroyed)throw new Error("Rendering engine has been destroyed");return(r=e.offscreenMultiRenderWindow)==null?void 0:r.getRenderer(this.id)}render(){this.getRenderingEngine().renderViewport(this.id)}setOptions(e,r=!1){var n,i;this.options=structuredClone(e),(n=this.options)!=null&&n.displayArea&&this.setDisplayArea((i=this.options)==null?void 0:i.displayArea),r&&this.render()}reset(e=!1){this.options=structuredClone(this.defaultOptions),e&&this.render()}getSliceViewInfo(){throw new Error("Method not implemented.")}flip({flipHorizontal:e,flipVertical:r}){const n=this.getDefaultImageData();if(!n)return;const i=this.getCamera(),{viewPlaneNormal:o,viewUp:a,focalPoint:s,position:c}=i,l=qt(xe(),o,a);let f=Id(xe(),a);const u=Kc(xe(),o),d=Cr(c,s),g=n.getDimensions().map(C=>Math.floor(C/2)),p=[g[0],g[1],g[2]],v=n.indexToWorld(p,xe()),x=this._getFocalPointForResetCamera(v,i,{resetPan:!0,resetToCenter:!1}),m=kt(xe(),s,x),y=ui(m),w=C=>{const S=cr(xe(),C,2*je(m,C));return kt(S,S,m),an(S,S),S};if(e){const C=w(f),S=Vt(xe(),x,C,y),T=Vt(xe(),S,u,d);this.setCamera({viewPlaneNormal:u,position:T,focalPoint:S}),this.flipHorizontal=!this.flipHorizontal}if(r){f=Kc(f,a);const C=w(l),S=Vt(xe(),x,C,y),T=Vt(xe(),S,u,d);this.setCamera({focalPoint:S,viewPlaneNormal:u,viewUp:f,position:T}),this.flipVertical=!this.flipVertical}this.render()}getDefaultImageData(){const e=this.getDefaultActor();if(e&&qo(e))return e.actor.getMapper().getInputData()}getDefaultActor(){return this.getActors()[0]}getActors(){return Array.from(this._actors.values())}getActorUIDs(){return Array.from(this._actors.keys())}getActor(e){return this._actors.get(e)}getImageActor(e){const r=this.getActors();let n=r[0];return e&&(n=r.find(o=>o.referencedId===e)),!n||!qo(n)?null:n.actor}getActorUIDByIndex(e){const r=this.getActors()[e];if(r)return r.uid}getActorByIndex(e){return this.getActors()[e]}setActors(e){this.removeAllActors(),this.addActors(e,{resetCamera:!0})}_removeActor(e){const r=this.getActor(e);if(!r){console.warn(`Actor ${e} does not exist for this viewport`);return}this.getRenderer().removeViewProp(r.actor),this._actors.delete(e)}removeActors(e){e.forEach(r=>{this._removeActor(r)})}addActors(e,r={}){const{resetCamera:n=!1}=r,i=this.getRenderingEngine();if(!i||i.hasBeenDestroyed){console.warn("Viewport::addActors::Rendering engine has not been initialized or has been destroyed");return}e.forEach(s=>{this.addActor(s)});const o=this.getViewPresentation(),a=this.getViewReference();this.resetCamera(),n||(this.setViewReference(a),this.setViewPresentation(o))}addActor(e){const{uid:r,actor:n}=e,i=this.getRenderingEngine();if(!i||i.hasBeenDestroyed){console.warn(`Cannot add actor UID of ${r} Rendering Engine has been destroyed`);return}if(!r||!n)throw new Error("Actors should have uid and vtk Actor properties");if(this.getActor(r)){console.warn(`Actor ${r} already exists for this viewport`);return}const o=this.getRenderer();o==null||o.addActor(n),this._actors.set(r,Object.assign({},e)),this.updateCameraClippingPlanesAndRange()}removeAllActors(){var e;(e=this.getRenderer())==null||e.removeAllViewProps(),this._actors=new Map}resetCameraNoEvent(){this._suppressCameraModifiedEvents=!0,this.resetCamera(),this._suppressCameraModifiedEvents=!1}setCameraNoEvent(e){this._suppressCameraModifiedEvents=!0,this.setCamera(e),this._suppressCameraModifiedEvents=!1}_getViewImageDataIntersections(e,r,n){const i=n[0],o=n[1],a=n[2],s=i*r[0]+o*r[1]+a*r[2],c=e.getBounds(),l=this._getEdges(c),f=[];for(const u of l){const[[d,h,g],[p,v,x]]=u;if(i*(p-d)+o*(v-h)+a*(x-g)===0)continue;const m=qu([d,h,g],[p,v,x],[i,o,a,s]);this._isInBounds(m,c)&&f.push(m)}return f}setInterpolationType(e,r){}setDisplayArea(e,r=!1){var a;if(!e)return;const{storeAsInitialCamera:n,type:i}=e;n&&(this.options.displayArea=e);const{_suppressCameraModifiedEvents:o}=this;if(this._suppressCameraModifiedEvents=!0,this.setCamera(this.fitToCanvasCamera),i==="SCALE"?this.setDisplayAreaScale(e):(this.setInterpolationType(((a=this.getProperties())==null?void 0:a.interpolationType)||Ra.LINEAR),this.setDisplayAreaFit(e)),n&&(this.initialCamera=this.getCamera()),this._suppressCameraModifiedEvents=o,!r&&!o){const s={viewportId:this.id,displayArea:e,storeAsInitialCamera:n};De(this.element,Se.DISPLAY_AREA_MODIFIED,s),this.setCamera(this.getCamera())}}setDisplayAreaScale(e){const{scale:r=1}=e,n=this.canvas,i=n.height,o=n.width;if(i<8||o<8)return;const c=this.getDefaultImageData().getSpacing()[1];this.setInterpolationType(Ra.NEAREST),this.setCamera({parallelScale:i*c/(2*r)}),delete e.imageArea,this.setDisplayAreaFit(e);const{focalPoint:l,position:f,viewUp:u,viewPlaneNormal:d}=this.getCamera(),h=xe();if(n.height%2&&Vt(h,h,u,r*.5*c),n.width%2){const g=qt(xe(),u,d);Vt(h,h,g,r*.5*c)}!h[0]&&!h[1]&&!h[2]||this.setCamera({focalPoint:xn(xe(),l,h),position:xn(xe(),f,h)})}setDisplayAreaFit(e){const{imageArea:r,imageCanvasPoint:n}=e,i=(window==null?void 0:window.devicePixelRatio)||1,o=this.getDefaultImageData();if(!o)return;const a=this.sWidth/i,s=this.sHeight/i,c=o.getDimensions(),l=this.worldToCanvas(o.indexToWorld([0,0,0])),f=this.worldToCanvas(o.indexToWorld([c[0]-1,c[1]-1,c[2]])),u=[Math.abs(f[0]-l[0]),Math.abs(f[1]-l[1])],[d,h]=u;if(r){const[g,p]=r,v=Math.abs(g*d/a),x=Math.abs(p*h/s),m=this.getZoom(),y=this.getZoom(this.fitToCanvasCamera),C=Math.min(1/v,1/x)*m/y;this.setZoom(C,!1)}if(n){const{imagePoint:g,canvasPoint:p=g||[.5,.5]}=n,[v,x]=p,m=a*(v-.5),y=s*(x-.5),[w,C]=g||p,S=1,T=S*d*(.5-w),_=S*h*(.5-C),E=T+m,D=_+y,b=[E,D];Nr(b,b,this.getPan()),this.setPan(b,!1)}}getDisplayArea(){var e;return(e=this.options)==null?void 0:e.displayArea}resetCamera(e){const{resetPan:r=!0,resetZoom:n=!0,resetToCenter:i=!0,storeAsInitialCamera:o=!0}=e||{},a=this.getRenderer();this.setCameraNoEvent({flipHorizontal:!1,flipVertical:!1});const s=this.getCamera(),c=a.computeVisiblePropBounds(),l=[0,0,0],f=this.getDefaultImageData();if(f){const R=f.getSpacing();c[0]=c[0]+R[0]/2,c[1]=c[1]-R[0]/2,c[2]=c[2]+R[1]/2,c[3]=c[3]-R[1]/2,c[4]=c[4]+R[2]/2,c[5]=c[5]-R[2]/2}const u=this.getVtkActiveCamera(),d=u.getViewPlaneNormal(),h=u.getViewUp();if(l[0]=(c[0]+c[1])/2,l[1]=(c[2]+c[3])/2,l[2]=(c[4]+c[5])/2,f){const M=f.getDimensions().map(A=>Math.floor(A/2)),L=[M[0],M[1],M[2]];f.indexToWorld(L,l)}const{widthWorld:g,heightWorld:p}=this._getWorldDistanceViewUpAndViewRight(c,h,d),v=[this.sWidth,this.sHeight],x=g/p,m=v[0]/v[1],y=x/m,w=y<1?this.insetImageMultiplier*p/2:this.insetImageMultiplier*p*y/2,C=rd.boundsRadius(c)*(this.type===mn.VOLUME_3D?10:1),S=this.insetImageMultiplier*C,T=Math.abs(nt.dot(h,d))>.999?[-h[2],h[0],h[1]]:h,_=this._getFocalPointForResetCamera(l,s,{resetPan:r,resetToCenter:i}),E=[_[0]+S*d[0],_[1]+S*d[1],_[2]+S*d[2]];a.resetCameraClippingRange(c);const D=[-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE];u.setPhysicalScale(C),u.setPhysicalTranslation(-_[0],-_[1],-_[2]),this.setCamera({parallelScale:n?w:s.parallelScale,focalPoint:_,position:E,viewAngle:90,viewUp:T,clippingRange:D});const b=this.getCamera();this.setFitToCanvasCamera(this.getCamera()),o&&this.setInitialCamera(b),n&&this.setZoom(1,o);const I={type:"ResetCameraEvent",renderer:a};return a.invokeEvent(I),this.triggerCameraModifiedEventIfNecessary(s,b),f&&this.options.displayArea&&n&&r&&i&&this.setDisplayArea(this.options.displayArea),!0}setInitialCamera(e){this.initialCamera=e}setFitToCanvasCamera(e){this.fitToCanvasCamera=e}getPan(e=this.initialCamera){if(!e)return[0,0];const n=this.getVtkActiveCamera().getFocalPoint(),i=this.canvasToWorld([0,0]),o=this.worldToCanvas(kt([0,0,0],e.focalPoint,i)),a=this.worldToCanvas(kt([0,0,0],n,i));return kn([0,0],o,a)}getCurrentImageIdIndex(){throw new Error("Not implemented")}getSliceIndex(){throw new Error("Not implemented")}getImageData(){throw new Error("Not implemented")}getViewReferenceId(e){return null}setPan(e,r=!1){const n=this.getCamera(),{focalPoint:i,position:o}=n,a=this.canvasToWorld([0,0]),s=kn([0,0],e,this.getPan());if(Math.abs(s[0])<1&&Math.abs(s[1])<1&&!r)return;const c=kt(xe(),this.canvasToWorld(s),a),l=kt(xe(),i,c),f=kt(xe(),o,c);this.setCamera({...n,focalPoint:l,position:f},r)}getZoom(e=this.initialCamera){if(!e)return 1;const r=this.getVtkActiveCamera(),{parallelScale:n}=e;return n/r.getParallelScale()}setZoom(e,r=!1){const n=this.getCamera(),{parallelScale:i}=this.initialCamera,o=i/e;n.parallelScale===o&&!r||this.setCamera({...n,parallelScale:o},r)}_getFocalPointForViewPlaneReset(e){const{focalPoint:r,viewPlaneNormal:n}=this.getCamera(),i=this._getViewImageDataIntersections(e,r,n);let o=0,a=0,s=0;return i.forEach(([l,f,u])=>{o+=l,a+=f,s+=u}),[o/i.length,a/i.length,s/i.length]}getCanvas(){return this.canvas}getVtkActiveCamera(){return this.getRenderer().getActiveCamera()}getCameraNoRotation(){const e=this.getVtkActiveCamera(),r=(s,c)=>s.some(l=>isNaN(l))?c:s,n=r([...e.getViewUp()],[0,1,0]),i=r([...e.getViewPlaneNormal()],[0,0,-1]),o=r([...e.getPosition()],[0,0,1]),a=r([...e.getFocalPoint()],[0,0,0]);return{viewUp:n,viewPlaneNormal:i,position:o,focalPoint:a,parallelProjection:e.getParallelProjection(),parallelScale:e.getParallelScale(),viewAngle:e.getViewAngle(),flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}getCamera(){return{...this.getCameraNoRotation(),rotation:this.getRotation()}}setCamera(e,r=!1){const n=this.getVtkActiveCamera(),i=this.getCamera(),o=Object.assign({},i,e),{viewUp:a,viewPlaneNormal:s,position:c,focalPoint:l,parallelScale:f,viewAngle:u,flipHorizontal:d,flipVertical:h,clippingRange:g}=e;if(d!==void 0){const x=d&&!this.flipHorizontal||!d&&this.flipHorizontal;x&&this.flip({flipHorizontal:x})}if(h!==void 0){const x=h&&!this.flipVertical||!h&&this.flipVertical;x&&this.flip({flipVertical:x})}a!==void 0&&n.setViewUp(a),s!==void 0&&n.setDirectionOfProjection(-s[0],-s[1],-s[2]),c!==void 0&&n.setPosition(...c),l!==void 0&&n.setFocalPoint(...l),f!==void 0&&n.setParallelScale(f),u!==void 0&&n.setViewAngle(u),g!==void 0&&n.setClippingRange(g);const p=i.focalPoint,v=i.viewUp;if(p&&l||v&&a){const x=n.getViewPlaneNormal(),m=n.getViewUp();let y=!1,w=!1;if(l){const C=[l[0]-p[0],l[1]-p[1],l[2]-p[2]];y=Math.abs(nt.dot(C,x))>0}if(a&&(w=!mt(m,v)),y||w){const C=this.getDefaultActor();if(!(C!=null&&C.actor))return;ci(C,"vtkActor")||this.updateClippingPlanesForActors(o),(ci(C,"vtkImageSlice")||this.type===mn.VOLUME_3D)&&this.getRenderer().resetCameraClippingRange()}}r&&this.setInitialCamera(o),this.triggerCameraModifiedEventIfNecessary(i,this.getCamera())}triggerCameraModifiedEventIfNecessary(e,r){if(!this._suppressCameraModifiedEvents&&!this.suppressEvents){const n={previousCamera:e,camera:r,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,n)}}updateCameraClippingPlanesAndRange(){const e=this.getCamera();this.updateClippingPlanesForActors(e),this.getRenderer().resetCameraClippingRange()}async updateClippingPlanesForActors(e){this.getActors().map(n=>{if(!n.actor)return;const i=n.actor.getMapper();let o=n!=null&&n.clippingFilter?n==null?void 0:n.clippingFilter.getClippingPlanes():i.getClippingPlanes();o.length===0&&(n!=null&&n.clippingFilter)&&(o=[Yr.newInstance(),Yr.newInstance()]);let a=er.MINIMUM_SLAB_THICKNESS;n.slabThickness&&(a=n.slabThickness);const{viewPlaneNormal:s,focalPoint:c}=e;this.setOrientationOfClippingPlanes(o,a,s,c),De(this.element,Se.CLIPPING_PLANES_UPDATED,{actorEntry:n,focalPoint:c,vtkPlanes:o,viewport:this})})}setOrientationOfClippingPlanes(e,r,n,i){if(e.length<2)return;const o=[n[0],n[1],n[2]];nt.multiplyScalar(o,r),e[0].setNormal(n);const a=[0,0,0];nt.subtract(i,o,a),e[0].setOrigin(a),e[1].setNormal(-n[0],-n[1],-n[2]);const s=[0,0,0];nt.add(i,o,s),e[1].setOrigin(s)}getClippingPlanesForActor(e){if(e||(e=this.getDefaultActor()),!e.actor)throw new Error("Invalid actor entry: Actor is undefined");const r=e.actor.getMapper();let n=e!=null&&e.clippingFilter?e==null?void 0:e.clippingFilter.getClippingPlanes():r.getClippingPlanes();return n.length===0&&(e!=null&&e.clippingFilter)&&(n=[Yr.newInstance(),Yr.newInstance()]),n}_getWorldDistanceViewUpAndViewRight(e,r,n){const i=this._getCorners(e),o=this._getCorners(e),a=qt(xe(),r,n);let s=Ir.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);i.forEach(d=>s.apply(d));let c=1/0,l=-1/0;for(let d=0;d<8;d++){const h=i[d][0];h>l&&(l=h),hs.apply(d));let f=1/0,u=-1/0;for(let d=0;d<8;d++){const h=o[d][0];h>u&&(u=h),h=0&&this.setRotation(o)}_getCorners(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}_getFocalPointForResetCamera(e,r,{resetPan:n=!0,resetToCenter:i=!0}){if(i&&n)return e;if(i&&!n)return n3(r.focalPoint)?e:r.focalPoint;if(!i&&n){const o=r,a=o.focalPoint,s=o.viewPlaneNormal,c=kt(xe(),e,a),l=je(c,s),f=Vt(xe(),e,s,-1*l);return[f[0],f[1],f[2]]}if(!n&&!i)return n3(r.focalPoint)?e:r.focalPoint}_isInBounds(e,r){const[n,i,o,a,s,c]=r,[l,f,u]=e;return!(li||fa||uc)}_getEdges(e){const[r,n,i,o,a,s,c,l]=this._getCorners(e);return[[r,n],[r,a],[r,i],[n,o],[n,s],[i,o],[i,c],[o,l],[a,c],[a,s],[s,l],[c,l]]}static boundsRadius(e){const r=(e[1]-e[0])**2,n=(e[3]-e[2])**2,i=(e[5]-e[4])**2;return Math.sqrt(r+n+i||1)*.5}setDataIds(e,r){throw new Error("Unsupported operatoin setDataIds")}};rd.CameraViewPresentation={rotation:!0,pan:!0,zoom:!0,displayArea:!0},rd.TransferViewPresentation={windowLevel:!0,paletteLut:!0};let Xu=rd;function VM(t,e,r=!1){const n=t.getCamera(),{focalPoint:i,viewPlaneNormal:o}=n,{spacingInNormalDirection:a,actorUID:s}=S0(t,n,e,r);if(!s)throw new Error(`Could not find image volume with id ${e} in the viewport`);const c=t.getActor(s);if(!c)return console.warn("No actor found for with actorUID of",s),null;const l=c.actor;return{sliceRange:o2(l,o,i),spacingInNormalDirection:a,camera:n}}function Eu(t,e,r=!1){const{sliceRange:n,spacingInNormalDirection:i,camera:o}=VM(t,e,r),{min:a,max:s,current:c}=n,l=Math.round((s-a)/i),u=(c-a)/(s-a)*l,d=Math.round(u);return{numScrollSteps:l,currentStepIndex:d,sliceRangeInfo:{sliceRange:n,spacingInNormalDirection:i,camera:o}}}function FM(t){let e=[];const[r,n]=t.getRange();t.getTable(r,n,1024,e),e=e.filter((h,g)=>g%3===0);const i=[...Array(1024).keys()].map((h,g)=>r+(n-r)/1023*g),o=e[256],a=Math.log((1-o)/o),s=i[256],c=e[256*3],l=Math.log((1-c)/c),f=i[256*3],u=Math.round(4*(f-s)/(a-l)),d=Math.round(s+u*a/4);return[Math.round(d-u/2),Math.round(d+u/2)]}function UM(t,e){const r=e.colorTransfer.split(" ").splice(1).map(parseFloat),{shiftRange:n}=_te(r),i=n[0],o=n[1]-n[0],a=Xs.newInstance(),s=[];for(let w=0;w[o*n+e[0],a,s,c]);return r.removeAllPoints(),i.forEach(([o,a,s,c])=>r.addRGBPoint(o,a,s,c)),i}function Dte(t,e,r){const n=e[1]-e[0],i=t.map(([o,a])=>[o*n+e[0],a]);return r.removeAllPoints(),i.forEach(([o,a])=>r.addPoint(o,a)),i}class Rn extends Xu{constructor(e){if(super(e),this.useCPURendering=!1,this.perVolumeIdDefaultProperties=new Map,this.viewportProperties={},this.volumeIds=new Set,this.setRotation=i=>{const o=this.getPan(this.fitToCanvasCamera),a=this.getPan(),s=this.getCamera(),c=Io([0,0],o,a);this.setPan(c,!1);const{flipVertical:l}=this.getCamera(),f=l?Kc([0,0,0],this.initialViewUp):this.initialViewUp;this.setCameraNoEvent({viewUp:f}),this.rotateCamera(i);const u=this.getPan(),d=this.getPan(this.fitToCanvasCamera),h=Io([0,0],u,d),g=Nr([0,0],o,h);if(this.setPan(g,!1),this._suppressCameraModifiedEvents)return;const p=this.getCamera(),v={previousCamera:s,camera:p,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,v)},this.getDefaultProperties=i=>{let o;return i!==void 0&&(o=this.perVolumeIdDefaultProperties.get(i)),o!==void 0?o:{...this.globalDefaultProperties}},this.getProperties=i=>{var x,m;if(!this._getApplicableVolumeActor(i))return;const{colormap:a,VOILUTFunction:s,interpolationType:c,invert:l,slabThickness:f,preset:u}=this.viewportProperties;if(!Te.getVolume(this.getVolumeId()))return null;const h=this.getActors().map(y=>{var _;const w=y.actor;if(!ci(y,"vtkVolume"))return null;const C=w.getProperty().getRGBTransferFunction(0),[S,T]=((_=this.viewportProperties)==null?void 0:_.VOILUTFunction)==="SIGMOID"?FM(C):C.getRange();return{volumeId:i,voiRange:{lower:S,upper:T}}}).filter(Boolean),g=i?(x=h.find(y=>y.volumeId===i))==null?void 0:x.voiRange:(m=h[0])==null?void 0:m.voiRange,p=this.getColormap(i);return{colormap:i&&p?p:a,voiRange:g,VOILUTFunction:s,interpolationType:c,invert:l,slabThickness:f,preset:u}},this.getColormap=i=>{const o=this._getApplicableVolumeActor(i);if(!o)return;const{volumeActor:a}=o,s=this._getOrCreateColorTransferFunction(i),{nodes:c}=s.getState(),l=c.reduce((u,d)=>(u.push(d.x,d.r,d.g,d.b),u),[]);return Jw(l,a)},this.getRotation=()=>{const{viewUp:i,viewPlaneNormal:o,flipVertical:a}=this.getCameraNoRotation(),s=a?Kc([0,0,0],this.initialViewUp):this.initialViewUp;if(!s)return 0;const c=Cw(s,i)*180/Math.PI,l=qt([0,0,0],s,i);return je(l,o)>=0?c:(360-c)%360},this.getFrameOfReferenceUID=()=>this._FrameOfReferenceUID,this.canvasToWorld=i=>{var g,p;const o=this.getVtkActiveCamera();(g=o.setIsPerformingCoordinateTransformation)==null||g.call(o,!0);const a=this.getRenderer(),c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=window.devicePixelRatio||1,u=[i[0]*f,i[1]*f],d=[u[0]+this.sx,u[1]+this.sy];d[1]=l[1]-d[1];const h=c.displayToWorld(d[0],d[1],0,a);return(p=o.setIsPerformingCoordinateTransformation)==null||p.call(o,!1),[h[0],h[1],h[2]]},this.worldToCanvas=i=>{var g;const o=this.getVtkActiveCamera();(g=o.setIsPerformingCoordinateTransformation)==null||g.call(o,!0);const a=this.getRenderer(),c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=c.worldToDisplay(...i,a);f[1]=l[1]-f[1];const u=[f[0]-this.sx,f[1]-this.sy],d=window.devicePixelRatio||1,h=[u[0]/d,u[1]/d];return o.setIsPerformingCoordinateTransformation(!1),h},this.hasImageURI=i=>this.getActors().filter(a=>ci(a,"vtkVolume")).some(({uid:a,referencedId:s})=>{const c=Te.getVolume(s||a);return c!=null&&c.imageIds?c.imageIds.map(Pn).includes(i):!1}),this.getImageIds=i=>{const o=this._getApplicableVolumeActor(i);if(!o)throw new Error(`No actor found for the given volumeId: ${i}`);const a=o.volumeId,s=Te.getVolume(a);if(!s)throw new Error(`imageVolume with id: ${a} does not exist in cache`);return s.imageIds},this.useCPURendering=jf(),this.useCPURendering)throw new Error("VolumeViewports cannot be used whilst CPU Fallback Rendering is enabled.");const r=this.getRenderer(),n=yJ.newInstance();switch(r.setActiveCamera(n),this.type){case mn.ORTHOGRAPHIC:n.setParallelProjection(!0);break;case mn.VOLUME_3D:n.setParallelProjection(!0);break;case mn.PERSPECTIVE:n.setParallelProjection(!1);break;default:throw new Error(`Unrecognized viewport type: ${this.type}`)}this.initializeVolumeNewImageEventDispatcher()}static get useCustomRenderingPipeline(){return!1}getSliceViewInfo(){throw new Error("Method not implemented.")}applyViewOrientation(e,r=!0){const{viewPlaneNormal:n,viewUp:i}=this._getOrientationVectors(e),o=this.getVtkActiveCamera();o.setDirectionOfProjection(-n[0],-n[1],-n[2]),o.setViewUpFrom(i),this.initialViewUp=i,r&&this.resetCamera()}initializeVolumeNewImageEventDispatcher(){const e=n.bind(this),r=i.bind(this);function n(o){const{viewportId:a}=o.detail;a!==this.id||this.isDisabled||!this.getImageData()||Ste(o)}function i(o){const{viewportId:a}=o.detail;a===this.id&&(this.element.removeEventListener(Se.CAMERA_MODIFIED,e),Ce.removeEventListener(Se.ELEMENT_DISABLED,r),Cte(a))}this.element.removeEventListener(Se.CAMERA_MODIFIED,e),this.element.addEventListener(Se.CAMERA_MODIFIED,e),Ce.addEventListener(Se.ELEMENT_DISABLED,r)}setVOILUTFunction(e,r,n){Object.values(ka).includes(e)||(e=ka.LINEAR);const{voiRange:i}=this.getProperties();this.setVOI(i,r,n),this.viewportProperties.VOILUTFunction=e}setColormap(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i,a=Xs.newInstance();let s=Ld(e.name);const{name:c}=e;if(s||(s=V1.getPresetByName(c)),!s)throw new Error(`Colormap ${e} not found`);const l=o.getProperty().getRGBTransferFunction(0).getRange();if(a.applyColorMap(s),a.setMappingRange(l[0],l[1]),o.getProperty().setRGBTransferFunction(0,a),this.viewportProperties.colormap=e,!n){const f={viewportId:this.id,colormap:e,volumeId:r};De(this.element,Se.VOI_MODIFIED,f),De(this.element,Se.COLORMAP_MODIFIED,f)}}setOpacity(e,r){const n=this._getApplicableVolumeActor(r);if(!n)return;const{volumeActor:i}=n,o=ju.newInstance();if(typeof e.opacity=="number"){const a=i.getProperty().getRGBTransferFunction(0).getRange();o.addPoint(a[0],e.opacity),o.addPoint(a[1],e.opacity)}else e.opacity.forEach(({opacity:a,value:s})=>{o.addPoint(s,a)});i.getProperty().setScalarOpacity(0,o),this.viewportProperties.colormap||(this.viewportProperties.colormap={}),this.viewportProperties.colormap.opacity=e.opacity}setInvert(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const o=i.volumeId,a=this._getOrCreateColorTransferFunction(o);if(Hf(a),this.viewportProperties.invert=e,!n){const s={...this.getVOIModifiedEventDetail(o),invertStateChanged:!0};De(this.element,Se.VOI_MODIFIED,s)}}getVOIModifiedEventDetail(e){const r=this._getApplicableVolumeActor(e);if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);const o=r.volumeActor.getProperty().getRGBTransferFunction(0).getMappingRange(),a=this.getColormap(e),{VOILUTFunction:s,invert:c}=this.getProperties(e);return{viewportId:this.id,range:{lower:o[0],upper:o[1]},volumeId:r.volumeId,VOILUTFunction:s,colormap:a,invert:c}}_getOrCreateColorTransferFunction(e){const r=this._getApplicableVolumeActor(e);if(!r)return null;const{volumeActor:n}=r,i=n.getProperty().getRGBTransferFunction(0);if(i)return i;const o=Xs.newInstance();return n.getProperty().setRGBTransferFunction(0,o),o}setInterpolationType(e,r){const n=this._getApplicableVolumeActor(r);if(!n)return;const{volumeActor:i}=n;i.getProperty().setInterpolationType(e),this.viewportProperties.interpolationType=e}setVOI(e,r,n=!1){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i,a=i.volumeId,s=e;if(typeof s>"u")throw new Error("voiRangeToUse is undefined, need to implement this in the new volume model");const{VOILUTFunction:c}=this.getProperties(a);if(c===ka.SAMPLED_SIGMOID){const l=Zw(s);o.getProperty().setRGBTransferFunction(0,l)}else{const{lower:l,upper:f}=s;o.getProperty().getRGBTransferFunction(0).setRange(l,f)}if(!n){const l={...this.getVOIModifiedEventDetail(a)};De(this.element,Se.VOI_MODIFIED,l)}this.viewportProperties.voiRange=s}rotateCamera(e){const r=e-this.getRotation();this.getVtkActiveCamera().roll(-r)}setDefaultProperties(e,r){r==null?this.globalDefaultProperties=e:this.perVolumeIdDefaultProperties.set(r,e)}clearDefaultProperties(e){e==null?(this.globalDefaultProperties={},this.resetProperties()):(this.perVolumeIdDefaultProperties.delete(e),this.resetToDefaultProperties(e))}getViewReference(e={}){const r=super.getViewReference(e),n=this.getVolumeId(e);if((e==null?void 0:e.forFrameOfReference)!==!1&&(r.volumeId=n),typeof(e==null?void 0:e.sliceIndex)!="number")return r;const{viewPlaneNormal:i}=r,o=(e==null?void 0:e.sliceIndex)-this.getSliceIndex(),{sliceRangeInfo:a}=Eu(this,n,!0),{sliceRange:s,spacingInNormalDirection:c,camera:l}=a,{focalPoint:f,position:u}=l,{newFocalPoint:d}=Tu(f,u,s,i,c,o);return r.cameraFocalPoint=d,r}isReferenceViewable(e,r){if(!e.FrameOfReferenceUID||!super.isReferenceViewable(e,r))return!1;if(r!=null&&r.withNavigation)return!0;const n=this.getSliceIndex(),{sliceIndex:i}=e;return Array.isArray(i)?i[0]<=n&&n<=i[1]:i===void 0||i===n}scroll(e=1){const r=this.getVolumeId(),{sliceRangeInfo:n}=Eu(this,r,!0);if(!n)return;const{sliceRange:i,spacingInNormalDirection:o,camera:a}=n,{focalPoint:s,viewPlaneNormal:c,position:l}=a,{newFocalPoint:f,newPosition:u}=Tu(s,l,i,c,o,e);this.setCamera({focalPoint:f,position:u})}setViewReference(e){if(!e)return;const r=this.getVolumeId(),{viewPlaneNormal:n,FrameOfReferenceUID:i,cameraFocalPoint:o,viewUp:a}=e;let{sliceIndex:s}=e;const{focalPoint:c,viewPlaneNormal:l,position:f}=this.getCamera(),u=HO(l,n),d=mt(l,n);if(typeof s=="number"&&e.volumeId===r&&(u||d)){const{currentStepIndex:h,sliceRangeInfo:g,numScrollSteps:p}=Eu(this,r,!0),{sliceRange:v,spacingInNormalDirection:x}=g;u&&(s=p-s-1);const m=s-h,{newFocalPoint:y,newPosition:w}=Tu(c,f,v,l,x,m);this.setCamera({focalPoint:y,position:w})}else if(i===this.getFrameOfReferenceUID()){if(n&&!u&&!d){this.setOrientation({viewPlaneNormal:n,viewUp:a}),this.setViewReference(e);return}if(o){const h=kt([0,0,0],o,c),g=n??l,p=je(h,g);mt(p,0)||cr(h,g,p);const v=xn([0,0,0],c,h),x=xn([0,0,0],f,h);this.setCamera({focalPoint:v,position:x})}}else throw new Error(`Incompatible view refs: ${i}!==${this.getFrameOfReferenceUID()}`)}setProperties({voiRange:e,VOILUTFunction:r,invert:n,colormap:i,preset:o,interpolationType:a,slabThickness:s}={},c,l=!1){this.globalDefaultProperties==null&&this.setDefaultProperties({voiRange:e,VOILUTFunction:r,invert:n,colormap:i,preset:o,slabThickness:s}),n!==void 0&&this.viewportProperties.invert!==n&&this.setInvert(n,c,l),i!=null&&i.name&&this.setColormap(i,c,l),(i==null?void 0:i.opacity)!=null&&this.setOpacity(i,c),e!==void 0&&this.setVOI(e,c,l),typeof a<"u"&&this.setInterpolationType(a),r!==void 0&&this.setVOILUTFunction(r,c,l),o!==void 0&&this.setPreset(o,c,l),s!==void 0&&(this.setSlabThickness(s),this.viewportProperties.slabThickness=s)}resetToDefaultProperties(e){var n,i;const r=this.globalDefaultProperties;(n=r.colormap)!=null&&n.name&&this.setColormap(r.colormap,e),((i=r.colormap)==null?void 0:i.opacity)!=null&&this.setOpacity(r.colormap,e),r.voiRange!==void 0&&this.setVOI(r.voiRange,e),r.VOILUTFunction!==void 0&&this.setVOILUTFunction(r.VOILUTFunction,e),r.invert!==void 0&&this.setInvert(r.invert,e),r.slabThickness!==void 0&&(this.setSlabThickness(r.slabThickness),this.viewportProperties.slabThickness=r.slabThickness),r.preset!==void 0&&this.setPreset(r.preset,e,!1),r.preset!==void 0&&this.setPreset(r.preset,e,!1),this.render()}setPreset(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i;let a=e;typeof a=="string"&&(a=yD.find(s=>s.name===e)),a&&(UM(o,a),this.viewportProperties.preset=a,this.render(),n||De(this.element,Se.PRESET_MODIFIED,{viewportId:this.id,volumeId:i.volumeId,actor:o,presetName:a.name}))}async setVolumes(e,r=!1,n=!1){const i=Te.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist, you need to create/allocate the volume first`);const o=i.metadata.FrameOfReferenceUID;this._isValidVolumeInputArray(e,o),this._FrameOfReferenceUID=o,e.forEach(s=>{this._addVolumeId(s.volumeId)});const a=[];for(let s=0;s{this._addVolumeId(a.volumeId)});for(let a=0;ao.referencedId===e);return i?{volumeActor:i.actor,volumeId:e,actorUID:i.uid}:void 0}const n=r[0];return{volumeActor:n.actor,volumeId:n.referencedId,actorUID:n.uid}}async _isValidVolumeInputArray(e,r){const n=e.length;for(let i=1;if.referencedId===e);if(!ci(n,"vtkVolume"))return;const i=n.actor,o=Te.getVolume(e),a=i.getMapper().getInputData();return{dimensions:a.getDimensions(),spacing:a.getSpacing(),origin:a.getOrigin(),direction:a.getDirection(),imageData:i.getMapper().getInputData(),metadata:{Modality:(c=o==null?void 0:o.metadata)==null?void 0:c.Modality,FrameOfReferenceUID:(l=o==null?void 0:o.metadata)==null?void 0:l.FrameOfReferenceUID},get scalarData(){var f;return(f=o==null?void 0:o.voxelManager)==null?void 0:f.getScalarData()},scaling:o==null?void 0:o.scaling,hasPixelSpacing:!0,voxelManager:o==null?void 0:o.voxelManager}}setCameraClippingRange(){throw new Error("Method not implemented.")}getSliceIndex(){throw new Error("Method not implemented.")}setCamera(e,r){super.setCamera(e,r),this.setCameraClippingRange()}_setVolumeActors(e){for(let r=0;r{n.slabThickness>r&&(r=n.slabThickness)}),r}getIntensityFromWorld(e){const r=this.getDefaultActor();if(!ci(r,"vtkVolume"))return;const{actor:n}=r,i=n.getMapper().getInputData(),o=Te.getVolume(this.getVolumeId()),a=Gn(i,e);return o.voxelManager.getAtIJKPoint(a)}getVolumeId(e){const r=this.getActors();if(!r)return;if(!(e!=null&&e.volumeId)){const i=r.find(o=>o.actor.getClassName()==="vtkVolume");return(i==null?void 0:i.referencedId)||(i==null?void 0:i.uid)}const n=r.find(i=>i.actor.getClassName()==="vtkVolume"&&i.referencedId===(e==null?void 0:e.volumeId));return(n==null?void 0:n.referencedId)||(n==null?void 0:n.uid)}getViewReferenceId(e={}){var c;let{volumeId:r,sliceIndex:n}=e;if(!r){const l=this.getActors();if(!l)return;r=(c=l.find(f=>f.actor.getClassName()==="vtkVolume"))==null?void 0:c.referencedId}const i=this.getSliceIndex();n??(n=i);const{viewPlaneNormal:o,focalPoint:a}=this.getCamera(),s=r.includes("?")?"&":"?";return`volumeId:${r}${s}sliceIndex=${n}&viewPlaneNormal=${o.join(",")}&focalPoint=${a.join(",")}`}_addVolumeId(e){this.volumeIds.add(e)}getAllVolumeIds(){return Array.from(this.volumeIds)}}function Ts(t,e){const{imageData:r}=t.getImageData(),n=t.canvasToWorld(e);return Gn(r,n)}function K1(t,e){return t.indexToWorld(e)}function bte(t,e){const{imageData:r}=t.getImageData(),n=K1(r,e);return t.worldToCanvas(n)}class sn extends Rn{constructor(e){super(e),this._useAcquisitionPlaneForViewPlane=!1,this.getNumberOfSlices=()=>{const{numberOfSlices:n}=j1(this)||{};return n},this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetRotation:!1,suppressEvents:!0}),this.getCurrentImageIdIndex=n=>{const{viewPlaneNormal:i,focalPoint:o}=this.getCamera(),a=this.getImageData(n);if(!a)return;const{origin:s,direction:c,spacing:l}=a,f=Ka({direction:c,spacing:l},i),u=xe();en(u,o,s);const d=je(u,i);return Math.round(Math.abs(d)/f)},this.getSliceIndex=()=>{const{imageIndex:n}=j1(this)||{};return n},this.getCurrentImageId=()=>{const n=this.getDefaultActor();if(!n||!ci(n,"vtkVolume"))return;const i=Te.getVolume(this.getVolumeId());if(!i)return;const{viewPlaneNormal:o,focalPoint:a}=this.getCamera();return qa(i,a,o)},this.getSlicePlaneCoordinates=()=>{const n=this.getDefaultActor();if(!(n!=null&&n.actor))return console.warn("No image data found for calculating vtkPlanes."),[];const i=this.getVolumeId(),o=Te.getVolume(i),a=this.getCamera(),{focalPoint:s,position:c,viewPlaneNormal:l}=a,f=Ka(o,l),u=o2(n.actor,l,s),d=Math.round((u.current-u.min)/f),h=Math.round((u.max-u.current)/f),g=this.getSliceIndex(),p=[];for(let v=-d;v<=h;v++){const{newFocalPoint:x}=Tu(s,c,u,l,f,v);p.push({sliceIndex:g+v,point:x})}return p};const{orientation:r}=this.options;if(r&&r!==Wu.ACQUISITION){this.applyViewOrientation(r);return}this._useAcquisitionPlaneForViewPlane=!0}async setVolumes(e,r=!1,n=!1){const i=Te.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(i),this._useAcquisitionPlaneForViewPlane=!1),super.setVolumes(e,r,n)}async addVolumes(e,r=!1,n=!1){const i=Te.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(i),this._useAcquisitionPlaneForViewPlane=!1),super.addVolumes(e,r,n)}jumpToWorld(e){const{focalPoint:r}=this.getCamera(),n=[0,0,0];en(n,e,r);const i=this.getCamera(),o=i.viewPlaneNormal,a=je(n,o),s=Ye(o[0],o[1],o[2]);if(cr(s,s,a),Math.abs(s[0])>.001||Math.abs(s[1])>.001||Math.abs(s[2])>.001){const c=[0,0,0],l=[0,0,0];xn(c,i.focalPoint,s),xn(l,i.position,s),this.setCamera({focalPoint:c,position:l}),this.render()}return!0}setOrientation(e,r=!0){let n,i;if(typeof e=="string"){if(Ds[e])({viewPlaneNormal:n,viewUp:i}=Ds[e]);else if(e==="acquisition")({viewPlaneNormal:n,viewUp:i}=this._getAcquisitionPlaneOrientation());else throw new Error(`Invalid orientation: ${e}. Use Enums.OrientationAxis instead.`);this.setCamera({viewPlaneNormal:n,viewUp:i}),this.viewportProperties.orientation=e,this.resetCamera()}else({viewPlaneNormal:n,viewUp:i}=e),this.applyViewOrientation(e);r&&this.render()}setCameraClippingRange(){const e=this.getVtkActiveCamera();e.getParallelProjection()?e.setClippingRange(e.getDistance()-this.getSlabThickness(),e.getDistance()+this.getSlabThickness()):e.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE)}_getAcquisitionPlaneOrientation(){if(!this.getDefaultActor())return;const r=this.getVolumeId(),n=Te.getVolume(r);if(!n)throw new Error(`imageVolume with id: ${r} does not exist in cache`);const{direction:i}=n,o=i.slice(6,9).map(s=>-s),a=i.slice(3,6).map(s=>-s);return{viewPlaneNormal:o,viewUp:a}}_setViewPlaneToAcquisitionPlane(e){let r,n;if(e){const{direction:i}=e;r=i.slice(6,9).map(o=>-o),n=i.slice(3,6).map(o=>-o)}else({viewPlaneNormal:r,viewUp:n}=this._getAcquisitionPlaneOrientation());this.setCamera({viewPlaneNormal:r,viewUp:n}),this.initialViewUp=n,this.resetCamera()}setBlendMode(e,r=[],n=!1){let i=this.getActors();r&&r.length>0&&(i=i.filter(o=>r.includes(o.uid))),i.forEach(o=>{var c;const{actor:a}=o,s=a.getMapper();(c=s.setBlendMode)==null||c.call(s,e)}),n&&this.render()}resetCamera(e){const{resetPan:r=!0,resetZoom:n=!0,resetRotation:i=!0,resetToCenter:o=!0,suppressEvents:a=!1,resetOrientation:s=!0}=e||{},{orientation:c}=this.viewportProperties;c&&s&&this.applyViewOrientation(c,!1),super.resetCamera({resetPan:r,resetZoom:n,resetToCenter:o});const l=this.getVtkActiveCamera(),f=l.getViewPlaneNormal(),u=l.getFocalPoint();if(this.getActors().forEach(h=>{if(!h.actor)return;const g=h.actor.getMapper();if(g.getClippingPlanes().length===0&&!(h!=null&&h.clippingFilter)){const v=Yr.newInstance(),x=Yr.newInstance(),m=[v,x];let y=er.MINIMUM_SLAB_THICKNESS;h.slabThickness&&(y=h.slabThickness),this.setOrientationOfClippingPlanes(m,y,f,u),g.addClippingPlane(v),g.addClippingPlane(x)}}),i&&Ds[this.viewportProperties.orientation]!==void 0){const h=Ds[this.viewportProperties.orientation];this.setCameraNoEvent({viewUp:h.viewUp,viewPlaneNormal:h.viewPlaneNormal})}if(!a){const h={viewportId:this.id,camera:this.getCamera(),renderingEngineId:this.renderingEngineId,element:this.element};De(this.element,Se.CAMERA_RESET,h)}return!0}setSlabThickness(e,r=[]){e<.1&&(e=.1);let n=this.getActors();r&&r.length>0&&(n=n.filter(o=>r.includes(o.uid))),n.forEach(o=>{ci(o,"vtkVolume")&&(o.slabThickness=e)});const i=this.getCamera();this.updateClippingPlanesForActors(i),this.triggerCameraModifiedEventIfNecessary(i,i),this.viewportProperties.slabThickness=e}resetSlabThickness(){this.getActors().forEach(n=>{ci(n,"vtkVolume")&&(n.slabThickness=er.MINIMUM_SLAB_THICKNESS)});const r=this.getCamera();this.updateClippingPlanesForActors(r),this.triggerCameraModifiedEventIfNecessary(r,r),this.viewportProperties.slabThickness=void 0}getSliceViewInfo(){const{width:e,height:r}=this.getCanvas(),n=Ts(this,[0,0]),i=Ts(this,[e-1,0]),o=Ts(this,[0,r-1]),a=en(xe(),i,n),s=en(xe(),o,n),c=qt(xe(),a,s);an(a,a),an(s,s),an(c,c);const{dimensions:l}=this.getImageData(),[f,u,d]=l,p=[[0,0,0],[f-1,0,0],[0,u-1,0],[f-1,u-1,0],[0,0,d-1],[f-1,0,d-1],[0,u-1,d-1],[f-1,u-1,d-1]].map(D=>bte(this,D)).reduce((D,b)=>(D.minX=Math.min(D.minX,b[0]),D.minY=Math.min(D.minY,b[1]),D.maxX=Math.max(D.maxX,b[0]),D.maxY=Math.max(D.maxY,b[1]),D),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}),v=Ts(this,[p.minX,p.minY]),x=hw(a[0],a[1],a[2],0,s[0],s[1],s[2],0,c[0],c[1],c[2],0,v[0],v[1],v[2],1),m=Ts(this,[p.maxX,p.maxY]),y=en(xe(),m,v),w=$n(co(),x),{viewPlaneNormal:C}=this.getCamera();if(C.filter(D=>Math.abs(D)>Ro).length>1)throw new Error("getSliceInfo is not supported for oblique views");const T=C.findIndex(D=>Math.abs(D)>1-Ro);if(T===-1)throw new Error("Unable to determine slice axis");const _=je(a,y)+1,E=je(s,y)+1;return{sliceIndex:this.getSliceIndex(),width:_,height:E,slicePlane:T,sliceToIndexMatrix:x,indexToSliceMatrix:w}}getCurrentSlicePixelData(){const{voxelManager:e}=this.getImageData();return e.getSliceData(this.getSliceViewInfo())}getViewReference(e={}){const r=super.getViewReference(e);if(!(r!=null&&r.volumeId))return;const n=Te.getVolume(r.volumeId);return r.referencedImageId=qa(n,r.cameraFocalPoint,r.viewPlaneNormal),r}resetProperties(e){this._resetProperties(e)}_resetProperties(e){const r=e?this.getActor(e):this.getDefaultActor();if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);r.slabThickness&&(r.slabThickness=er.MINIMUM_SLAB_THICKNESS,this.viewportProperties.slabThickness=void 0,this.updateClippingPlanesForActors(this.getCamera())),e||(e=this.getVolumeId());const n=Te.getVolume(e);if(!n)throw new Error(`imageVolume with id: ${e} does not exist in cache`);if(oC(r.actor,n),qo(r)){const l=r.actor.getProperty().getRGBTransferFunction(0);a2(l,this.initialTransferFunctionNodes)}const i={...super.getVOIModifiedEventDetail(e)};this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetCameraRotation:!0}),De(this.element,Se.VOI_MODIFIED,i)}getSlicesClippingPlanes(){const e=this.getSlicePlaneCoordinates(),{viewPlaneNormal:r}=this.getCamera(),n=er.MINIMUM_SLAB_THICKNESS;return e.map(({point:i,sliceIndex:o})=>{const a=[Yr.newInstance(),Yr.newInstance()];return this.setOrientationOfClippingPlanes(a,n,r,i),{sliceIndex:o,planes:a.map(s=>({normal:s.getNormal(),origin:s.getOrigin()}))}})}}function Ite(t,e){e.classHierarchy.push("vtkAbstractImageMapper"),t.getIsOpaque=()=>!0,t.getCurrentImage=()=>null,t.getBoundsForSlice=()=>(W.vtkErrorMacro("vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED"),Ks())}const Ote={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1]};function Mte(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ote,r),kw.extend(t,e,r),W.setGet(t,e,["slice","useCustomExtents"]),W.setGetArray(t,e,["customDisplayExtent"],6),W.setGetArray(t,e,["backgroundColor"],4),Ite(t,e)}var Rte={extend:Mte};function BM(t,e,r){const n=r.getCurrentImage(),i=n.getExtent(),o=[i[0],i[2],i[4]],{ijkMode:a}=r.getClosestIJKAxis();let s=r.isA("vtkImageArrayMapper")?r.getSubSlice():r.getSlice();a!==r.getSlicingMode()&&(s=r.getSliceAtPosition(s)),o[a]+=s;const c=[0,0,0];n.indexToWorld(o,c),o[a]+=1;const l=[0,0,0];n.indexToWorld(o,l),l[0]-=c[0],l[1]-=c[1],l[2]-=c[2],an(l,l);const f=Yr.intersectWithLine(t,e,c,l);if(f.intersection){const u=f.x,d=[0,0,0];return n.worldToIndex(u,d),{t:f.t,absoluteIJK:d}}return null}function Lte(t,e,r){const n=BM(t,e,r);if(n){const o=r.getCurrentImage().getExtent(),a=[Math.round(n.absoluteIJK[0]),Math.round(n.absoluteIJK[1]),Math.round(n.absoluteIJK[2])];return a[0]o[1]||a[1]o[3]||a[2]o[5]?null:{t:n.t,ijk:a}}return null}function Nte(t,e,r){const n=BM(t,e,r);if(n){const o=r.getCurrentImage().getExtent(),a=n.absoluteIJK,s=[Math.floor(a[0]),Math.floor(a[1]),Math.floor(a[2])];if(s[0]o[1]-1||s[1]o[3]-1||s[2](o[5]?o[5]-1:o[5]))return null;const c=[a[0]-s[0],a[1]-s[1],a[2]-s[2]];return{t:n.t,ijk:s,pCoords:c}}return null}const{staticOffsetAPI:Pte,otherStaticMethods:Ate}=n2,{SlicingMode:Pt}=i2;function kte(t,e){e.classHierarchy.push("vtkImageMapper"),t.getSliceAtPosition=n=>{const i=t.getCurrentImage();let o;if(n.length===3)o=n;else if(Number.isFinite(n)){const f=i.getBounds();switch(e.slicingMode){case Pt.X:o=[n,(f[3]+f[2])/2,(f[5]+f[4])/2];break;case Pt.Y:o=[(f[1]+f[0])/2,n,(f[5]+f[4])/2];break;case Pt.Z:o=[(f[1]+f[0])/2,(f[3]+f[2])/2,n];break}}const a=[0,0,0];i.worldToIndex(o,a);const s=i.getExtent(),{ijkMode:c}=t.getClosestIJKAxis();let l=0;switch(c){case Pt.I:l=Eo(a[0],s[0],s[1]);break;case Pt.J:l=Eo(a[1],s[2],s[3]);break;case Pt.K:l=Eo(a[2],s[4],s[5]);break;default:return 0}return l},t.setSliceFromCamera=n=>{const i=n.getFocalPoint();switch(e.slicingMode){case Pt.I:case Pt.J:case Pt.K:{const o=t.getSliceAtPosition(i);t.setSlice(o)}break;case Pt.X:t.setSlice(i[0]);break;case Pt.Y:t.setSlice(i[1]);break;case Pt.Z:t.setSlice(i[2]);break}},t.setXSlice=n=>{t.setSlicingMode(Pt.X),t.setSlice(n)},t.setYSlice=n=>{t.setSlicingMode(Pt.Y),t.setSlice(n)},t.setZSlice=n=>{t.setSlicingMode(Pt.Z),t.setSlice(n)},t.setISlice=n=>{t.setSlicingMode(Pt.I),t.setSlice(n)},t.setJSlice=n=>{t.setSlicingMode(Pt.J),t.setSlice(n)},t.setKSlice=n=>{t.setSlicingMode(Pt.K),t.setSlice(n)},t.getSlicingModeNormal=()=>{const n=[0,0,0],i=t.getCurrentImage().getDirection();switch(e.slicingMode){case Pt.X:n[0]=1;break;case Pt.Y:n[1]=1;break;case Pt.Z:n[2]=1;break;case Pt.I:Cp(i,[1,0,0],n);break;case Pt.J:Cp(i,[0,1,0],n);break;case Pt.K:Cp(i,[0,0,1],n);break}return n};function r(){let n;switch(e.slicingMode){case Pt.X:n=0;break;case Pt.Y:n=1;break;case Pt.Z:n=2;break;default:e.closestIJKAxis={ijkMode:e.slicingMode,flip:!1};return}const i=t.getCurrentImage().getDirection(),o=R7(i);let a=0;for(;a<3&&o[n+3*a]===0;++a);const s=o[n+3*a]<0;e.closestIJKAxis={ijkMode:a,flip:s}}t.setSlicingMode=n=>{e.slicingMode!==n&&(e.slicingMode=n,t.getCurrentImage()&&r(),t.modified())},t.getClosestIJKAxis=()=>((e.closestIJKAxis===void 0||e.closestIJKAxis.ijkMode===Pt.NONE)&&t.getCurrentImage()&&r(),e.closestIJKAxis),t.getBounds=()=>{const n=t.getCurrentImage();if(!n)return Ks();if(!e.useCustomExtents)return n.getBounds();const i=e.customDisplayExtent.slice(),{ijkMode:o}=t.getClosestIJKAxis();let a=e.slice;switch(o!==e.slicingMode&&(a=t.getSliceAtPosition(e.slice)),o){case Pt.I:i[0]=a,i[1]=a;break;case Pt.J:i[2]=a,i[3]=a;break;case Pt.K:i[4]=a,i[5]=a;break}return n.extentToBounds(i)},t.getBoundsForSlice=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.slice,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const o=t.getCurrentImage();if(!o)return Ks();const a=o.getSpatialExtent(),{ijkMode:s}=t.getClosestIJKAxis();let c=n;switch(s!==e.slicingMode&&(c=t.getSliceAtPosition(n)),s){case Pt.I:a[0]=c-i,a[1]=c+i;break;case Pt.J:a[2]=c-i,a[3]=c+i;break;case Pt.K:a[4]=c-i,a[5]=c+i;break}return o.extentToBounds(a)},t.intersectWithLineForPointPicking=(n,i)=>Lte(n,i,t),t.intersectWithLineForCellPicking=(n,i)=>Nte(n,i,t),t.getCurrentImage=()=>t.getInputData()}const Vte={slicingMode:Pt.NONE,closestIJKAxis:{ijkMode:Pt.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function GM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Vte,r),Rte.extend(t,e,r),W.get(t,e,["slicingMode"]),W.setGet(t,e,["closestIJKAxis","renderToRectangle","sliceAtFocalPoint","preferSizeOverAccuracy"]),n2.implementCoincidentTopologyMethods(t,e),kte(t,e)}const Fte=W.newInstance(GM,"vtkImageMapper");var Ute={newInstance:Fte,extend:GM,...Pte,...Ate,...i2};const{InterpolationType:Ap}=Iq,{vtkErrorMacro:L8}=W,kp=4;function Bte(t,e){e.classHierarchy.push("vtkImageProperty"),t.getMTime=()=>{let r=e.mtime,n;for(let i=0;in?r:n),e.componentData[i].piecewiseFunction&&(n=e.componentData[i].piecewiseFunction.getMTime(),r=r>n?r:n);return r},t.setRGBTransferFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),e.componentData[i].rGBTransferFunction!==o?(e.componentData[i].rGBTransferFunction=o,t.modified(),!0):!1},t.getRGBTransferFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[r].rGBTransferFunction},t.setPiecewiseFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),e.componentData[i].piecewiseFunction!==o?(e.componentData[i].piecewiseFunction=o,t.modified(),!0):!1},t.getPiecewiseFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[r].piecewiseFunction},t.setScalarOpacity=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),t.setPiecewiseFunction(i,o)},t.getScalarOpacity=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return t.getPiecewiseFunction(r)},t.setComponentWeight=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(r<0||r>=kp)return L8("Invalid index"),!1;const i=Math.min(1,Math.max(0,n));return e.componentData[r].componentWeight!==i?(e.componentData[r].componentWeight=i,t.modified(),!0):!1},t.getComponentWeight=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return r<0||r>=kp?(L8("Invalid index"),0):e.componentData[r].componentWeight},t.setInterpolationTypeToNearest=()=>t.setInterpolationType(Ap.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(Ap.LINEAR),t.getInterpolationTypeAsString=()=>W.enumToString(Ap,e.interpolationType)}const Gte={independentComponents:!1,interpolationType:Ap.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1};function WM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,Gte,r),W.obj(t,e),!e.componentData){e.componentData=[];for(let n=0;nt,t.getImages=()=>t,t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.property||t.getProperty();let r=e.property.getOpacity()>=1;return r=r&&(!e.mapper||e.mapper.getIsOpaque()),r},t.hasTranslucentPolygonalGeometry=()=>!1,t.makeProperty=zte.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const r=e.mapper.getBounds();if(!r||r.length!==6)return r;if(r[0]>r[1])return e.mapperBounds=r.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),r;const n=i=>i[0].map((o,a)=>i.map(s=>s[a]));if(!e.mapperBounds||!n([r,e.mapperBounds]).reduce((i,o)=>i&&o[0]===o[1],!0)||t.getMTime()>e.boundsMTime.getMTime()){$te("Recomputing bounds..."),e.mapperBounds=r.map(o=>o),t.computeMatrix();const i=new Float64Array(16);St(i,e.matrix),Xt.transformBounds(r,i,e.bounds),e.boundsMTime.modified()}return e.bounds},t.getBoundsForSlice=(r,n)=>{const i=e.mapper.getBoundsForSlice(r,n);if(!Xt.isValid(i))return i;t.computeMatrix();const o=new Float64Array(16);return St(o,e.matrix),Xt.transformBounds(i,o)},t.getMinXBound=()=>t.getBounds()[0],t.getMaxXBound=()=>t.getBounds()[1],t.getMinYBound=()=>t.getBounds()[2],t.getMaxYBound=()=>t.getBounds()[3],t.getMinZBound=()=>t.getBounds()[4],t.getMaxZBound=()=>t.getBounds()[5],t.getMTime=()=>{let r=e.mtime;if(e.property!==null){const n=e.property.getMTime();r=n>r?n:r}return r},t.getRedrawMTime=()=>{let r=e.mtime;if(e.mapper!==null){let n=e.mapper.getMTime();r=n>r?n:r,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),n=e.mapper.getInput().getMTime(),r=n>r?n:r)}if(e.property!==null){let n=e.property.getMTime();r=n>r?n:r,e.property.getRGBTransferFunction()!==null&&(n=e.property.getRGBTransferFunction().getMTime(),r=n>r?n:r)}return r},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1}const Hte={mapper:null,property:null,bounds:[...Xt.INIT_BOUNDS]};function zM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hte,r),jw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["mapper"]),W.getArray(t,e,["bounds"],6),jte(t,e)}const Kte=W.newInstance(zM,"vtkImageSlice");var qte={newInstance:Kte,extend:zM};function $M(t){const e=Xs.newInstance();let r=0,n=1024;return t.lower!==void 0&&t.upper!==void 0&&(r=t.lower,n=t.upper),e.addRGBPoint(r,0,0,0),e.addRGBPoint(n,1,1,1),e}function c2(t,e){const r=e.voxelManager.getScalarData();if(!t.getPointData)return;const n=t.getPointData().getScalars().getData();if(e.color&&e.rgba){const i=new Uint8Array(e.columns*e.rows*3);for(let o=0;oi,n.set(i)}else n.set(r);t.modified()}function Tt(){return window.performance?performance.now():Date.now()}function Xte(t,e){return function(r){const n=((r-(e-.5))/(t-1)+.5)*255;return Math.min(Math.max(n,0),255)}}function Yte(t){const r=Math.max(...t.lut).toString(2).length-8,n=t.lut[0]>>r,i=t.lut[t.lut.length-1]>>r,o=t.firstValueMapped+t.lut.length-1;return function(a){return a=o?i:t.lut[a-t.firstValueMapped]>>r}}function jM(t,e,r){return r?Yte(r):Xte(t,e)}function Jte(t,e,r,n,i){const o=t.maxPixelValue,a=t.minPixelValue,s=Math.min(a,0);if(t.cachedLut===void 0){const f=o-s+1;t.cachedLut={},t.cachedLut.lutArray=new Uint8ClampedArray(f)}const c=t.cachedLut.lutArray,l=jM(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r,i);if(n)for(let f=a;f<=o;f++)c[f+-s]=255-l(f);else for(let f=a;f<=o;f++)c[f+-s]=l(f);return c}function Zte(t,e,r){let n=Tt();const i=t.voxelManager.getScalarData();t.stats.lastGetPixelDataTime=Tt()-n;const o=t.minPixelValue;let a=0,s=0;const c=i.length;if(n=Tt(),o<0)for(;s0||t.voi.windowWidth!==void 0&&t.voi.windowCenter!==void 0}function N8(t,e){return!t&&!e?!0:!t||!e?!1:t.id===e.id}function cne(t,e){return r=>r*t+e}function lne(t){const e=t.lut[0],r=t.lut[t.lut.length-1],n=t.firstValueMapped+t.lut.length;return i=>i=n?r:t.lut[i]}function une(t,e,r){return r?lne(r):cne(t,e)}function fne(t,e,r,n,i,o){const a=t.maxPixelValue,s=t.minPixelValue,c=Math.min(s,0);if(t.cachedLut===void 0){const d=a-c+1;t.cachedLut={},t.cachedLut.lutArray=new Uint8ClampedArray(d)}const l=t.cachedLut.lutArray,f=une(t.slope,t.intercept,i),u=jM(e,r,o);if(t.isPreScaled)if(n)for(let d=s;d<=a;d++)l[d+-c]=255-u(d);else for(let d=s;d<=a;d++)l[d+-c]=u(d);else if(n)for(let d=s;d<=a;d++)l[d+-c]=255-u(f(d));else for(let d=s;d<=a;d++)l[d+-c]=u(f(d));return l}function HM(t,e,r){return t.cachedLut!==void 0&&t.cachedLut.windowCenter===e.voi.windowCenter&&t.cachedLut.windowWidth===e.voi.windowWidth&&N8(t.cachedLut.modalityLUT,e.modalityLUT)&&N8(t.cachedLut.voiLUT,e.voiLUT)&&t.cachedLut.invert===e.invert&&!r||(ane(e,t),fne(t,e.voi.windowWidth,e.voi.windowCenter,e.invert,e.modalityLUT,e.voiLUT),t.cachedLut.windowWidth=e.voi.windowWidth,t.cachedLut.windowCenter=e.voi.windowCenter,t.cachedLut.invert=e.invert,t.cachedLut.voiLUT=e.voiLUT,t.cachedLut.modalityLUT=e.modalityLUT),t.cachedLut.lutArray}function dne(t,e,r,n=!0){const i=t.renderingTools.lastRenderedIsColor;(!t.renderingTools.renderCanvas||i)&&(t.renderingTools.renderCanvas=document.createElement("canvas"),q1(t,e));const o=t.renderingTools.renderCanvas;if(!sC(t,e)&&!r)return o;(o.width!==e.width||o.height!==e.height)&&q1(t,e),e.stats=e.stats||{};const a=t.renderingTools.renderCanvasData,s=t.renderingTools.renderCanvasContext;let c=Tt();e.stats.lastLutGenerateTime=Tt()-c;const{viewport:l}=t;if(l.modality==="PT"&&e.isPreScaled){const{windowWidth:f,windowCenter:u}=l.voi,d=u-f/2,p=255/(u+f/2-d);let v;l.invert?v=x=>255-(x-d)*p:v=x=>(x-d)*p,ine(e,v,a.data)}else{const f=HM(e,l,r);n?rne(e,f,a.data):one(e,f,a.data)}return c=Tt(),s.putImageData(a,0,0),e.stats.lastPutImageDataTime=Tt()-c,o}function hne(t,e){if(t===void 0)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=t.image;if(r===void 0)throw new Error("drawImage: image must be loaded before it can be drawn");const n=t.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,t.canvas.width,t.canvas.height),n.imageSmoothingEnabled=!t.viewport.pixelReplication,aC(t,n);const i=dne(t,r,e),o=t.viewport.displayedArea.tlhc.x-1,a=t.viewport.displayedArea.tlhc.y-1,s=t.viewport.displayedArea.brhc.x-o,c=t.viewport.displayedArea.brhc.y-a;n.drawImage(i,o,a,s,c,0,0,s,c),t.renderingTools=cC(t)}const r3=0,i3=1,gne=2;function pne(t,e,r){if(t>1)throw new Error("HSVToRGB expects hue < 1");const n=[];if(e===0)return n[0]=r,n[1]=r,n[2]=r,n;const i=Math.floor(t*6),o=6*t-i,a=r*(1-e),s=r*(1-e*o),c=r*(1-e*(1-o));switch(i){case 0:case 6:n[0]=r,n[1]=c,n[2]=a;break;case 1:n[0]=s,n[1]=r,n[2]=a;break;case 2:n[0]=a,n[1]=r,n[2]=c;break;case 3:n[0]=a,n[1]=s,n[2]=r;break;case 4:n[0]=c,n[1]=a,n[2]=r;break;case 5:n[0]=r,n[1]=a,n[2]=s;break}return n}function mne(t,e){let r;return te.Range[1]?r=e.MaxIndex+i3+1.5:r=(t+e.Shift)*e.Scale,Math.floor(r)}class lC{constructor(){this.NumberOfColors=256,this.Ramp="linear",this.TableRange=[0,255],this.HueRange=[0,.66667],this.SaturationRange=[1,1],this.ValueRange=[1,1],this.AlphaRange=[1,1],this.NaNColor=[128,0,0,255],this.BelowRangeColor=[0,0,0,255],this.UseBelowRangeColor=!0,this.AboveRangeColor=[255,255,255,255],this.UseAboveRangeColor=!0,this.InputRange=[0,255],this.Table=[]}setNumberOfTableValues(e){this.NumberOfColors=e}setRamp(e){this.Ramp=e}setTableRange(e,r){this.TableRange[0]=e,this.TableRange[1]=r}setHueRange(e,r){this.HueRange[0]=e,this.HueRange[1]=r}setSaturationRange(e,r){this.SaturationRange[0]=e,this.SaturationRange[1]=r}setValueRange(e,r){this.ValueRange[0]=e,this.ValueRange[1]=r}setRange(e,r){this.InputRange[0]=e,this.InputRange[1]=r}setAlphaRange(e,r){this.AlphaRange[0]=e,this.AlphaRange[1]=r}getColor(e){return this.mapValue(e)}build(e){if(this.Table.length>1&&!e)return;this.Table=[];const r=this.NumberOfColors-1;let n,i,o,a;r?(n=(this.HueRange[1]-this.HueRange[0])/r,i=(this.SaturationRange[1]-this.SaturationRange[0])/r,o=(this.ValueRange[1]-this.ValueRange[0])/r,a=(this.AlphaRange[1]-this.AlphaRange[0])/r):n=i=o=a=0;for(let s=0;s<=r;s++){const c=this.HueRange[0]+s*n,l=this.SaturationRange[0]+s*i,f=this.ValueRange[0]+s*o,u=this.AlphaRange[0]+s*a,d=pne(c,l,f),h=[0,0,0,0];switch(this.Ramp){case"scurve":h[0]=Math.floor(127.5*(1+Math.cos((1-d[0])*Math.PI))),h[1]=Math.floor(127.5*(1+Math.cos((1-d[1])*Math.PI))),h[2]=Math.floor(127.5*(1+Math.cos((1-d[2])*Math.PI))),h[3]=Math.floor(u*255);break;case"linear":h[0]=Math.floor(d[0]*255+.5),h[1]=Math.floor(d[1]*255+.5),h[2]=Math.floor(d[2]*255+.5),h[3]=Math.floor(u*255+.5);break;case"sqrt":h[0]=Math.floor(Math.sqrt(d[0])*255+.5),h[1]=Math.floor(Math.sqrt(d[1])*255+.5),h[2]=Math.floor(Math.sqrt(d[2])*255+.5),h[3]=Math.floor(Math.sqrt(u)*255+.5);break;default:throw new Error(`Invalid Ramp value (${this.Ramp})`)}this.Table.push(h)}this.buildSpecialColors()}buildSpecialColors(){const e=this.NumberOfColors,r=e+r3,n=e+i3,i=e+gne;this.UseBelowRangeColor||e===0?this.Table[r]=this.BelowRangeColor:this.Table[r]=this.Table[0],this.UseAboveRangeColor||e===0?this.Table[n]=this.AboveRangeColor:this.Table[n]=this.Table[e-1],this.Table[i]=this.NaNColor}mapValue(e){const r=this.getIndex(e);if(r<0)return this.NaNColor;if(r===0){if(this.UseBelowRangeColor&&ethis.TableRange[1])return this.AboveRangeColor;return this.Table[r]}getIndex(e){const r={Range:[],MaxIndex:this.NumberOfColors-1,Shift:-this.TableRange[0],Scale:1};if(this.TableRange[1]<=this.TableRange[0]?r.Scale=Number.MAX_VALUE:r.Scale=r.MaxIndex/(this.TableRange[1]-this.TableRange[0]),r.Range[0]=this.TableRange[0],r.Range[1]=this.TableRange[1],isNaN(e))return-1;let n=mne(e,r);return n===this.NumberOfColors+r3?n=0:n===this.NumberOfColors+i3&&(n=this.NumberOfColors-1),n}setTableValue(e,r,n,i,o){let a;if(typeof r=="number"&&n!==void 0&&i!==void 0&&o!==void 0)a=[r,n,i,o];else if(Array.isArray(r))a=r;else throw new Error("Invalid arguments for setTableValue");if(e<0)throw new Error(`Can't set the table value for negative index (${e})`);if(e>=this.NumberOfColors)throw new Error(`Index ${e} is greater than the number of colors ${this.NumberOfColors}`);this.Table[e]=a,(e===0||e===this.NumberOfColors-1)&&this.buildSpecialColors()}}const P8=[0,0,0,0];function vne(t,e,r){r=r===null?100:r;const n=(e-t)/(r-1),i=[];for(;r-- >0;)i.push(t),t+=n;return i[i.length-1]=e,i}function yne(t,e){let r=0,n=t.length-1;for(;r<=n;){const i=r+Math.floor((n-r)/2),o=t[i];if(o===e)return i;e=0&&io3(Math.floor(255-(m-h)*v),0,255):x=m=>o3(Math.floor((m-h)*v),0,255),Tne(e,x,f,s.data)}else{const u=HM(e,t.viewport,r);e.stats=e.stats||{},e.stats.lastLutGenerateTime=Tt()-a,Sne(e,u,f,s.data)}return a=Tt(),c.putImageData(s,0,0),e.stats.lastPutImageDataTime=Tt()-a,n}function Ene(t,e){if(t===void 0)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=t.image;if(r===void 0)throw new Error("drawImage: image must be loaded before it can be drawn");const n=t.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,t.canvas.width,t.canvas.height),n.imageSmoothingEnabled=!t.viewport.pixelReplication,aC(t,n);const i=_ne(t,r,e),o=t.viewport.displayedArea.tlhc.x-1,a=t.viewport.displayedArea.tlhc.y-1,s=t.viewport.displayedArea.brhc.x-o,c=t.viewport.displayedArea.brhc.y-a;n.drawImage(i,o,a,s,c,0,0,s,c),t.renderingTools=cC(t)}function KM(t,e){const r=t.image;if(!t.canvas||!t.image)return;const n=Tt();if(r.stats={lastGetPixelDataTime:-1,lastStoredPixelDataToCanvasImageDataTime:-1,lastPutImageDataTime:-1,lastRenderTime:-1,lastLutGenerateTime:-1},r){let o=r.render;o||(t.viewport.colormap?o=Ene:r.color?o=nne:o=hne),o(t,e)}const i=Tt()-n;r.stats.lastRenderTime=i,t.invalid=!1,t.needsRedraw=!1}function qM(t){return Pd(t)}function Eg(t,e){const r=qM(t);return r.invert(),r.transformPoint(e)}const Dne={viewport:{}};function bne(){return{tlhc:{x:1,y:1},brhc:{x:1,y:1},rowPixelSpacing:1,columnPixelSpacing:1,presentationSizeMode:"NONE"}}function Ine(){const t=bne();return Object.assign({},{scale:1,translation:{x:0,y:0},voi:{windowWidth:void 0,windowCenter:void 0},invert:!1,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:void 0,voiLUT:void 0,colormap:void 0,labelmap:!1,displayedArea:t},Dne.viewport)}function Kf(t,e){if(t==null)throw new Error(e)}function One(t){return!(t==null||t===0||t===180)}function XM(t,e=null){return Kf(t,"getImageSize: parameter image must not be undefined"),Kf(t.width,"getImageSize: parameter image must have width"),Kf(t.height,"getImageSize: parameter image must have height"),One(e)?{height:t.width,width:t.height}:{width:t.width,height:t.height}}function uC(t,e,r=null){Kf(t,"getImageScale: parameter canvas must not be undefined"),Kf(e,"getImageScale: parameter image must not be undefined");const n=XM(e,r),i=e.rowPixelSpacing||1,o=e.columnPixelSpacing||1;let a=1,s=1;i{this._configureRenderingPipeline()},this.resize=()=>{this.useCPURendering&&this._resizeCPU()},this._resizeCPU=()=>{this._cpuFallbackEnabledElement.viewport&&Pne(this._cpuFallbackEnabledElement)},this.getFrameOfReferenceUID=r=>{var n;return(n=this.getImagePlaneReferenceData(r))==null?void 0:n.FrameOfReferenceUID},this.getCornerstoneImage=()=>this.csImage,this.createActorMapper=r=>{const n=Ute.newInstance();n.setInputData(r);const i=qte.newInstance();i.setMapper(n);const{preferSizeOverAccuracy:o}=Xw().rendering;return o&&n.setPreferSizeOverAccuracy(!0),r.getPointData().getScalars().getNumberOfComponents()>1&&i.getProperty().setIndependentComponents(!1),i},this.getNumberOfSlices=()=>this.imageIds.length,this.getDefaultProperties=r=>{let n;return r!==void 0&&(n=this.perImageIdDefaultProperties.get(r)),n!==void 0?n:{...this.globalDefaultProperties}},this.getProperties=()=>{const{colormap:r,voiRange:n,VOILUTFunction:i,interpolationType:o,invert:a,voiUpdatedWithSetProperties:s}=this;return{colormap:r,voiRange:n,VOILUTFunction:i,interpolationType:o,invert:a,isComputedVOI:!s}},this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,suppressEvents:!0}),this.getRotationCPU=()=>{const{viewport:r}=this._cpuFallbackEnabledElement;return r.rotation},this.getRotationGPU=()=>{const{viewUp:r,viewPlaneNormal:n,flipVertical:i}=this.getCameraNoRotation(),o=i?Kc(xe(),this.initialViewUp):this.initialViewUp,a=Cw(o,r)*180/Math.PI,s=qt(xe(),o,r);return je(s,n)>=0?a:(360-a)%360},this.setRotation=r=>{const n=this.getCamera();if(this.useCPURendering?this.setRotationCPU(r):this.setRotationGPU(r),this._suppressCameraModifiedEvents)return;const i=this.getCamera(),o={previousCamera:n,camera:i,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,o)},this.renderImageObject=r=>{this._setCSImage(r),(this.useCPURendering?this._updateToDisplayImageCPU:this._updateActorToDisplayImageId).call(this,r)},this._setCSImage=r=>{var n;r.isPreScaled=(n=r.preScale)==null?void 0:n.scaled,this.csImage=r},this.canvasToWorldCPU=(r,n=[0,0,0])=>{if(!this._cpuFallbackEnabledElement.image)return;const[i,o]=Eg(this._cpuFallbackEnabledElement,r),{origin:a,spacing:s,direction:c}=this.getImageData(),l=c.slice(0,3),f=c.slice(3,6);return Vt(n,a,l,i*s[0]),Vt(n,n,f,o*s[1]),n},this.worldToCanvasCPU=r=>{const{spacing:n,direction:i,origin:o}=this.getImageData(),a=i.slice(0,3),s=i.slice(3,6),c=kt(xe(),r,o),l=[je(c,a)/n[0],je(c,s)/n[1]];return A8(this._cpuFallbackEnabledElement,l)},this.canvasToWorldGPU=r=>{const n=this.getRenderer(),i=this.getVtkActiveCamera(),o=i.getClippingRange(),a=i.getDistance();i.setClippingRange(a,a+.1);const c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=window.devicePixelRatio||1,u=[r[0]*f,r[1]*f],d=[u[0]+this.sx,u[1]+this.sy];d[1]=l[1]-d[1];const h=c.displayToWorld(d[0],d[1],0,n);return i.setClippingRange(o[0],o[1]),[h[0],h[1],h[2]]},this.worldToCanvasGPU=r=>{const n=this.getRenderer(),i=this.getVtkActiveCamera(),o=i.getClippingRange(),a=i.getDistance();i.setClippingRange(a,a+.1);const c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=c.worldToDisplay(...r,n);f[1]=l[1]-f[1];const u=[f[0]-this.sx,f[1]-this.sy];i.setClippingRange(o[0],o[1]);const d=window.devicePixelRatio||1;return[u[0]/d,u[1]/d]},this.getCurrentImageIdIndex=()=>this.currentImageIdIndex,this.getSliceIndex=()=>this.currentImageIdIndex,this.getTargetImageIdIndex=()=>this.targetImageIdIndex,this.getImageIds=()=>this.imageIds,this.getCurrentImageId=()=>this.imageIds[this.currentImageIdIndex],this.hasImageId=r=>this.imageIds.includes(r),this.hasImageURI=r=>{const n=this.imageIds;for(let i=0;i{if(!this.useCPURendering)throw new Error("Custom cpu rendering pipeline should only be hit in CPU rendering mode");return this._cpuFallbackEnabledElement.image?(KM(this._cpuFallbackEnabledElement,this.cpuRenderingInvalidated),this.cpuRenderingInvalidated=!1):this.fillWithBackgroundColor(),{canvas:this.canvas,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,viewportStatus:this.viewportStatus}},this.renderingPipelineFunctions={getImageData:{cpu:this.getImageDataCPU,gpu:this.getImageDataGPU},setColormap:{cpu:this.setColormapCPU,gpu:this.setColormapGPU},getCamera:{cpu:this.getCameraCPU,gpu:super.getCamera},setCamera:{cpu:this.setCameraCPU,gpu:super.setCamera},getPan:{cpu:this.getPanCPU,gpu:super.getPan},setPan:{cpu:this.setPanCPU,gpu:super.setPan},getZoom:{cpu:this.getZoomCPU,gpu:super.getZoom},setZoom:{cpu:this.setZoomCPU,gpu:super.setZoom},setVOI:{cpu:this.setVOICPU,gpu:this.setVOIGPU},getRotation:{cpu:this.getRotationCPU,gpu:this.getRotationGPU},setInterpolationType:{cpu:this.setInterpolationTypeCPU,gpu:this.setInterpolationTypeGPU},setInvertColor:{cpu:this.setInvertColorCPU,gpu:this.setInvertColorGPU},resetCamera:{cpu:(r={})=>{const{resetPan:n=!0,resetZoom:i=!0}=r;return this.resetCameraCPU({resetPan:n,resetZoom:i}),!0},gpu:(r={})=>{const{resetPan:n=!0,resetZoom:i=!0}=r;return this.resetCameraGPU({resetPan:n,resetZoom:i}),!0}},canvasToWorld:{cpu:this.canvasToWorldCPU,gpu:this.canvasToWorldGPU},worldToCanvas:{cpu:this.worldToCanvasCPU,gpu:this.worldToCanvasGPU},getRenderer:{cpu:()=>this.getCPUFallbackError("getRenderer"),gpu:super.getRenderer},getDefaultActor:{cpu:()=>this.getCPUFallbackError("getDefaultActor"),gpu:super.getDefaultActor},getActors:{cpu:()=>this.getCPUFallbackError("getActors"),gpu:super.getActors},getActor:{cpu:()=>this.getCPUFallbackError("getActor"),gpu:super.getActor},setActors:{cpu:()=>this.getCPUFallbackError("setActors"),gpu:super.setActors},addActors:{cpu:()=>this.getCPUFallbackError("addActors"),gpu:super.addActors},addActor:{cpu:()=>this.getCPUFallbackError("addActor"),gpu:super.addActor},removeAllActors:{cpu:()=>this.getCPUFallbackError("removeAllActors"),gpu:super.removeAllActors},unsetColormap:{cpu:this.unsetColormapCPU,gpu:this.unsetColormapGPU}},this.scaling={},this.modality=null,this.useCPURendering=jf(),this._configureRenderingPipeline(),this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport(),this.imageIds=[],this.currentImageIdIndex=0,this.targetImageIdIndex=0,this.resetCamera(),this.initializeElementDisabledHandler()}setUseCPURendering(e){this.useCPURendering=e,this._configureRenderingPipeline(e)}static get useCustomRenderingPipeline(){return jf()}_configureRenderingPipeline(e){this.useCPURendering=e??jf();for(const r in this.renderingPipelineFunctions)if(Object.prototype.hasOwnProperty.call(this.renderingPipelineFunctions,r)){const n=this.renderingPipelineFunctions[r];this[r]=this.useCPURendering?n.cpu:n.gpu}this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport()}_resetCPUFallbackElement(){this._cpuFallbackEnabledElement={canvas:this.canvas,renderingTools:{},transform:new T0,viewport:{rotation:0}}}_resetGPUViewport(){const e=this.getRenderer(),r=Ww.newInstance();e.setActiveCamera(r);const n=[0,0,-1];this.initialViewUp=[0,-1,0],r.setDirectionOfProjection(-n[0],-n[1],-n[2]),r.setViewUp(...this.initialViewUp),r.setParallelProjection(!0),r.setThicknessFromFocalPoint(.1),r.setFreezeFocalPoint(!0)}initializeElementDisabledHandler(){Ce.addEventListener(Se.ELEMENT_DISABLED,function e(){clearTimeout(this.debouncedTimeout),Ce.removeEventListener(Se.ELEMENT_DISABLED,e)})}getImageDataGPU(){const e=this.getDefaultActor();if(!e||!qo(e))return;const{actor:r}=e,n=r.getMapper().getInputData(),i=this.csImage;return{dimensions:n.getDimensions(),spacing:n.getSpacing(),origin:n.getOrigin(),direction:n.getDirection(),get scalarData(){return i==null?void 0:i.voxelManager.getScalarData()},imageData:r.getMapper().getInputData(),metadata:{Modality:this.modality,FrameOfReferenceUID:this.getFrameOfReferenceUID()},scaling:this.scaling,hasPixelSpacing:this.hasPixelSpacing,calibration:{...i==null?void 0:i.calibration,...this.calibration},preScale:{...i==null?void 0:i.preScale},voxelManager:i==null?void 0:i.voxelManager}}getImageDataCPU(){const{metadata:e}=this._cpuFallbackEnabledElement,r=e.spacing,n=this.csImage;return{dimensions:e.dimensions,spacing:r,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:this.getFrameOfReferenceUID()},scaling:this.scaling,imageData:{getDirection:()=>e.direction,getDimensions:()=>e.dimensions,getScalarData:()=>this.cpuImagePixelData,getSpacing:()=>r,worldToIndex:i=>{const o=this.worldToCanvasCPU(i),a=Eg(this._cpuFallbackEnabledElement,o);return[a[0],a[1],0]},indexToWorld:(i,o)=>{const a=A8(this._cpuFallbackEnabledElement,[i[0],i[1]]);return this.canvasToWorldCPU(a,o)}},scalarData:this.cpuImagePixelData,hasPixelSpacing:this.hasPixelSpacing,calibration:{...n==null?void 0:n.calibration,...this.calibration},preScale:{...n==null?void 0:n.preScale},voxelManager:n==null?void 0:n.voxelManager}}buildMetadata(e){const r=e.imageId,{pixelRepresentation:n,bitsAllocated:i,bitsStored:o,highBit:a,photometricInterpretation:s,samplesPerPixel:c}=Pe("imagePixelModule",r),{windowWidth:l,windowCenter:f,voiLUTFunction:u}=e,{modality:d}=Pe("generalSeriesModule",r),h=Pe("scalingModule",r),g=Pe(si.CALIBRATION,r);d==="PT"&&h&&this._addScalingToViewport(h),this.modality=d;const p=this._getValidVOILUTFunction(u);this.VOILUTFunction=p,this.calibration=g;let v=this._getImagePlaneModule(r);return this.useCPURendering||(v=this.calibrateIfNecessary(r,v)),{imagePlaneModule:v,imagePixelModule:{bitsAllocated:i,bitsStored:o,samplesPerPixel:c,highBit:a,photometricInterpretation:s,pixelRepresentation:n,windowWidth:l,windowCenter:f,modality:d,voiLUTFunction:p}}}calibrateIfNecessary(e,r){const n=Pe("calibratedPixelSpacing",e),i=this.calibration!==n,{scale:o}=n||{};return this.hasPixelSpacing=o>0||r.rowPixelSpacing>0,r.calibration=n,i&&(this.calibration=n,this._publishCalibratedEvent=!0,this._calibrationEvent={scale:o,calibration:n}),r}setDefaultProperties(e,r){r==null?this.globalDefaultProperties=e:(this.perImageIdDefaultProperties.set(r,e),this.getCurrentImageId()===r&&this.setProperties(e))}clearDefaultProperties(e){e==null?(this.globalDefaultProperties={},this.resetProperties()):(this.perImageIdDefaultProperties.delete(e),this.resetToDefaultProperties())}setProperties({colormap:e,voiRange:r,VOILUTFunction:n,invert:i,interpolationType:o}={},a=!1){this.viewportStatus=this.csImage?oi.PRE_RENDER:oi.LOADING,this.globalDefaultProperties={colormap:this.globalDefaultProperties.colormap??e,voiRange:this.globalDefaultProperties.voiRange??r,VOILUTFunction:this.globalDefaultProperties.VOILUTFunction??n,invert:this.globalDefaultProperties.invert??i,interpolationType:this.globalDefaultProperties.interpolationType??o},typeof e<"u"&&this.setColormap(e),typeof r<"u"&&this.setVOI(r,{suppressEvents:a,voiUpdatedWithSetProperties:!0}),typeof n<"u"&&this.setVOILUTFunction(n,a),typeof i<"u"&&this.setInvertColor(i),typeof o<"u"&&this.setInterpolationType(o)}resetProperties(){this.cpuRenderingInvalidated=!0,this.voiUpdatedWithSetProperties=!1,this.viewportStatus=oi.PRE_RENDER,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={}),this._resetProperties(),this.render()}_resetProperties(){let e;this._isCurrentImagePTPrescaled()?e=this._getDefaultPTPrescaledVOIRange():e=this._getVOIRangeForCurrentImage(),this.setVOI(e),this.setInvertColor(this.initialInvert),this.setInterpolationType(Ra.LINEAR);const r=this.getTransferFunction();a2(r,this.initialTransferFunctionNodes);const i=W1(r).reduce((s,c)=>(s.push(c[0],c[1],c[2],c[3]),s),[]),o=this.getDefaultActor(),a=Jw(i,o.actor);this.setColormap(a)}resetToDefaultProperties(){var i;this.cpuRenderingInvalidated=!0,this.viewportStatus=oi.PRE_RENDER,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={});const e=this.getCurrentImageId(),r=this.perImageIdDefaultProperties.get(e)||this.globalDefaultProperties;(i=r.colormap)!=null&&i.name&&this.setColormap(r.colormap);let n;r.voiRange==null?n=this._getVOIRangeForCurrentImage():n=r.voiRange,this.setVOI(n),this.setInterpolationType(Ra.LINEAR),this.setInvertColor(!1),this.render()}_getVOIFromCache(){let e;return this.voiUpdatedWithSetProperties?e=this.voiRange:this._isCurrentImagePTPrescaled()?e=this._getDefaultPTPrescaledVOIRange():e=this._getVOIRangeForCurrentImage()??this.voiRange,e}_setPropertiesFromCache(){const e=this._getVOIFromCache(),{interpolationType:r,invert:n}=this;this.setVOI(e),this.setInterpolationType(r),this.setInvertColor(n)}getCameraCPU(){const{metadata:e,viewport:r}=this._cpuFallbackEnabledElement,{direction:n}=e,i=n.slice(6,9).map(u=>-u);let o=n.slice(3,6).map(u=>-u);if(r.rotation){const u=yw(co(),r.rotation*Math.PI/180,i);o=et(xe(),o,u)}const a=[this.element.clientWidth/2,this.element.clientHeight/2],s=this.canvasToWorld(a),c=this.canvasToWorld([0,0]),l=this.canvasToWorld([0,this.element.clientHeight]),f=Cr(c,l)/2;return{parallelProjection:!0,focalPoint:s,position:[0,0,0],parallelScale:f,scale:r.scale,viewPlaneNormal:[i[0],i[1],i[2]],viewUp:[o[0],o[1],o[2]],flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}setCameraCPU(e){const{viewport:r,image:n}=this._cpuFallbackEnabledElement,i=this.getCameraCPU(),{focalPoint:o,parallelScale:a,scale:s,flipHorizontal:c,flipVertical:l}=e,{clientHeight:f}=this.element;if(o){const d=this.worldToCanvasCPU(o),h=Eg(this._cpuFallbackEnabledElement,d),g=this.worldToCanvasCPU(i.focalPoint),p=Eg(this._cpuFallbackEnabledElement,g),v=ot();kn(v,PT(h[0],h[1]),PT(p[0],p[1]));const x=Ane({x:v[0],y:v[1]},r);r.translation.x-=x.x,r.translation.y-=x.y}if(a){const{rowPixelSpacing:d}=n,h=f*d*.5/a;r.scale=h,r.parallelScale=a}if(s){const{rowPixelSpacing:d}=n;r.scale=s,r.parallelScale=f*d*.5/s}(c!==void 0||l!==void 0)&&this.setFlipCPU({flipHorizontal:c,flipVertical:l}),this._cpuFallbackEnabledElement.transform=Pd(this._cpuFallbackEnabledElement);const u={previousCamera:i,camera:this.getCamera(),element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,u)}getPanCPU(){const{viewport:e}=this._cpuFallbackEnabledElement;return[e.translation.x,e.translation.y]}setPanCPU(e){const r=this.getCameraCPU();this.setCameraCPU({...r,focalPoint:[...e.map(n=>-n),0]})}getZoomCPU(){const{viewport:e}=this._cpuFallbackEnabledElement;return e.scale}setZoomCPU(e){const r=this.getCameraCPU();this.setCameraCPU({...r,scale:e})}setFlipCPU({flipHorizontal:e,flipVertical:r}){const{viewport:n}=this._cpuFallbackEnabledElement;e!==void 0&&(n.hflip=e,this.flipHorizontal=n.hflip),r!==void 0&&(n.vflip=r,this.flipVertical=n.vflip)}setVOILUTFunction(e,r){if(this.useCPURendering)throw new Error("VOI LUT function is not supported in CPU rendering");const n=this._getValidVOILUTFunction(e);let i=!1;this.VOILUTFunction!==n&&(i=!0),this.VOILUTFunction=n;const{voiRange:o}=this.getProperties();this.setVOI(o,{suppressEvents:r,forceRecreateLUTFunction:i})}setRotationCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r.rotation=e}setRotationGPU(e){const r=this.getPan(this.fitToCanvasCamera),n=this.getPan(),i=Io([0,0],r,n);this.setPan(i,!1);const{flipVertical:o}=this.getCamera(),a=o?Kc(xe(),this.initialViewUp):this.initialViewUp;this.setCameraNoEvent({viewUp:a}),this.getVtkActiveCamera().roll(-e);const s=this.getPan(),c=this.getPan(this.fitToCanvasCamera),l=Io([0,0],s,c),f=Nr([0,0],r,l);this.setPan(f,!1)}setInterpolationTypeGPU(e){const r=this.getDefaultActor();if(!r||!qo(r))return;const{actor:n}=r;n.getProperty().setInterpolationType(e),this.interpolationType=e}setInterpolationTypeCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r.pixelReplication=e!==Ra.LINEAR,this.interpolationType=e}setInvertColorCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r&&(r.invert=e,this.invert=e)}setInvertColorGPU(e){const r=this.getDefaultActor();if(r&&qo(r)){if(ci(r,"vtkVolume")){const i=r.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&Hf(i),this.invert=e}else if(ci(r,"vtkImageSlice")){const i=r.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&Hf(i),this.invert=e}}}setVOICPU(e,r={}){const{suppressEvents:n=!1}=r,{viewport:i,image:o}=this._cpuFallbackEnabledElement;if(!i||!o)return;if(typeof e>"u"){const{windowWidth:s,windowCenter:c}=o,l=Array.isArray(s)?s[0]:s,f=Array.isArray(c)?c[0]:c;i.voi={windowWidth:l,windowCenter:f};const{lower:u,upper:d}=Bs(l,f);e={lower:u,upper:d}}else{const{lower:s,upper:c}=e,{windowCenter:l,windowWidth:f}=w0(s,c);i.voi||(i.voi={windowWidth:0,windowCenter:0}),i.voi.windowWidth=f,i.voi.windowCenter=l}this.voiRange=e;const a={viewportId:this.id,range:e};n||De(this.element,Se.VOI_MODIFIED,a)}getTransferFunction(){const e=this.getDefaultActor();return!e||!qo(e)?void 0:e.actor.getProperty().getRGBTransferFunction(0)}setVOIGPU(e,r={}){const{suppressEvents:n=!1,forceRecreateLUTFunction:i=!1,voiUpdatedWithSetProperties:o=!1}=r;if(e&&this.voiRange&&this.voiRange.lower===e.lower&&this.voiRange.upper===e.upper&&!i&&!this.stackInvalidated)return;const a=this.getDefaultActor();if(!a||!qo(a))return;const s=a.actor;let c=e;if(typeof c>"u"){const h=s.getMapper().getInputData().getPointData().getScalars().getRange();c={lower:h[0],upper:h[1]}}s.getProperty().setUseLookupTableScalarRange(!0);let l=s.getProperty().getRGBTransferFunction(0);const f=this.VOILUTFunction===ka.SAMPLED_SIGMOID;if((f||!l||i)&&(l=(f?Zw:$M)(c),this.invert&&Hf(l),s.getProperty().setRGBTransferFunction(0,l),this.initialTransferFunctionNodes=W1(l)),f||l.setRange(c.lower,c.upper),this.voiRange=c,this.voiUpdatedWithSetProperties||(this.voiUpdatedWithSetProperties=o),n)return;const u={viewportId:this.id,range:c,VOILUTFunction:this.VOILUTFunction};De(this.element,Se.VOI_MODIFIED,u)}_addScalingToViewport(e){if(this.scaling.PT)return;const{suvbw:r,suvlbm:n,suvbsa:i}=e,o={};n&&(o.suvbwToSuvlbm=n/r),i&&(o.suvbwToSuvbsa=i/r),this.scaling.PT=o}_getNumCompsFromPhotometricInterpretation(e){let r=1;return(e==="RGB"||e.includes("YBR")||e==="PALETTE COLOR")&&(r=3),r}getImageDataMetadata(e){const{imagePlaneModule:r,imagePixelModule:n}=this.buildMetadata(e);let i,o;i=r.rowCosines,o=r.columnCosines,(i==null||o==null)&&(i=[1,0,0],o=[0,1,0]);const a=Ye(i[0],i[1],i[2]),s=Ye(o[0],o[1],o[2]),c=xe();qt(c,a,s);let l=r.imagePositionPatient;l==null&&(l=[0,0,0]);const f=r.columnPixelSpacing||e.columnPixelSpacing,u=r.rowPixelSpacing||e.rowPixelSpacing,d=e.columns,h=e.rows,g=Vne,p=1,v=e.numberOfComponents||this._getNumCompsFromPhotometricInterpretation(n.photometricInterpretation);return{bitsAllocated:n.bitsAllocated,numberOfComponents:v,origin:l,direction:[...a,...s,...c],dimensions:[d,h,p],spacing:[f,u,g],numVoxels:d*h*p,imagePlaneModule:r,imagePixelModule:n}}matchImagesForOverlay(e,r){return(i=>{const o=Pe(si.IMAGE_PLANE,r),a=Pe(si.IMAGE_PLANE,i),s=o.imageOrientationPatient,c=a.imageOrientationPatient;if(s&&c){if(mt(o.imageOrientationPatient,a.imageOrientationPatient)){const f=o.imagePositionPatient,u=a.imagePositionPatient;if(f&&u&&mt(f,u)){const h=o.rows,g=o.columns,p=a.rows,v=a.columns;if(h===p&&g===v)return i}}}else{const l=o.rows,f=o.columns,u=a.rows,d=a.columns;if(l===u&&f===d)return i}})(e)}getImagePlaneReferenceData(e=this.getCurrentImageIdIndex()){const r=this.imageIds[e];if(!r)return;const n=Pe(si.IMAGE_PLANE,r);if(!n)return;const{imagePositionPatient:i,frameOfReferenceUID:o}=n;let{rowCosines:a,columnCosines:s}=n;a||(a=[1,0,0]),s||(s=[0,1,0]);const c=qt([0,0,0],s,a);return{FrameOfReferenceUID:o,viewPlaneNormal:c,cameraFocalPoint:i,referencedImageId:r,sliceIndex:e}}_getCameraOrientation(e){const r=e.slice(6,9).map(i=>-i),n=e.slice(3,6).map(i=>-i);return{viewPlaneNormal:[r[0],r[1],r[2]],viewUp:[n[0],n[1],n[2]]}}createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a}){const s=new a.constructor(a.length),c=tt.newInstance({name:"Pixels",numberOfComponents:o,values:s}),l=y0.newInstance();return l.setDimensions(n),l.setSpacing(i),l.setDirection(r),l.setOrigin(e),l.getPointData().setScalars(c),l}_createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a}){try{this._imageData=this.createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a})}catch(s){console.error(s)}}async setStack(e,r=0){this._throwIfDestroyed(),this.imageIds=e,this.currentImageIdIndex=r,this.targetImageIdIndex=r;const n=Pe(Nd.IMAGE_RETRIEVE_CONFIGURATION,e[r],"stack");this.imagesLoader=n?(n.create||RM)(n):this,this.stackInvalidated=!0,this.flipVertical=!1,this.flipHorizontal=!1,this.voiRange=null,this.interpolationType=Ra.LINEAR,this.invert=!1,this.viewportStatus=oi.LOADING,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={},delete this._cpuFallbackEnabledElement.viewport.colormap);const i=await this._setImageIdIndex(r),o={imageIds:e,viewportId:this.id,element:this.element,currentImageIdIndex:r};return De(this.element,Se.VIEWPORT_NEW_IMAGE_SET,o),i}_throwIfDestroyed(){if(this.isDisabled)throw new Error("The stack viewport has been destroyed and is no longer usable. Renderings will not be performed. If you are using the same viewportId and have re-enabled the viewport, you need to grab the new viewport instance using renderingEngine.getViewport(viewportId), instead of using your lexical scoped reference to the viewport instance.")}_checkVTKImageDataMatchesCornerstoneImage(e,r){if(!r)return!1;const[n,i]=r.getSpacing(),[o,a]=r.getDimensions(),s=this._getImagePlaneModule(e.imageId),c=r.getDirection(),l=c.slice(0,3),f=c.slice(3,6),u=r.getPointData().getScalars().getDataType(),d=mt(n,e.columnPixelSpacing),h=mt(i,e.rowPixelSpacing),g=d||e.columnPixelSpacing===null&&n===1,p=h||e.rowPixelSpacing===null&&i===1,v=o===e.columns,x=a===e.rows,m=mt(s.rowCosines,l),y=mt(s.columnCosines,f),w=u===e.voxelManager.getScalarData().constructor.name;return g&&p&&v&&x&&m&&y&&w}_updateVTKImageDataFromCornerstoneImage(e){let n=this._getImagePlaneModule(e.imageId).imagePositionPatient;n==null&&(n=[0,0,0]),this._imageData.setOrigin(n),c2(this._imageData,e)}_loadAndDisplayImage(e,r){return this.useCPURendering?this._loadAndDisplayImageCPU(e,r):this._loadAndDisplayImageGPU(e,r)}_loadAndDisplayImageCPU(e,r){return new Promise((n,i)=>{function o(h,g,p){if(this.currentImageIdIndex!==g)return;const v=h.voxelManager.getScalarData(),x=h.preScale,m=x==null?void 0:x.scalingParameters,y=(x==null?void 0:x.scaled)&&(m==null?void 0:m.rescaleIntercept)%1!==0||(m==null?void 0:m.rescaleSlope)%1!==0;if(v instanceof Float32Array&&y){const C={min:h.maxPixelValue,max:h.minPixelValue},_=Math.abs(C.max-C.min)/65535,E=C.min,D=v.length,b=new Uint16Array(D);let I=65535,R=0;for(let M=0;Mb,h.preScale={...h.preScale,scaled:!1}}this._setCSImage(h),this.viewportStatus=oi.PRE_RENDER;const w={image:h,imageId:p,imageIdIndex:g,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.STACK_NEW_IMAGE,w),this._updateToDisplayImageCPU(h),this.render(),this.currentImageIdIndex=g,n(p)}function a(h,g,p){const v={error:h,imageIdIndex:g,imageId:p};this.suppressEvents||De(Ce,Se.IMAGE_LOAD_ERROR,v),i(h)}function s(h,g,p){return Ys(h,p).then(v=>{o.call(this,v,g,h)},v=>{a.call(this,v,g,h)})}const c=-5,l=dt.Interaction,f={imageId:e,imageIdIndex:r},u={useRGBA:!0,requestType:l},d={imageId:e,imageIdIndex:r,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.PRE_STACK_NEW_IMAGE,d),fi.addRequest(s.bind(this,e,r,u),l,f,c)})}successCallback(e,r){var l,f;const n=this.imageIds.indexOf(e);if(this.currentImageIdIndex!==n)return;const i=(l=this.csImage)==null?void 0:l.imageFrame,o=r==null?void 0:r.imageFrame,a=(i==null?void 0:i.photometricInterpretation)||((f=this.csImage)==null?void 0:f.photometricInterpretation),s=(o==null?void 0:o.photometricInterpretation)||(r==null?void 0:r.photometricInterpretation);a!==s&&(this.stackInvalidated=!0),this._setCSImage(r);const c={image:r,imageId:e,imageIdIndex:n,viewportId:this.id,renderingEngineId:this.renderingEngineId};this._updateActorToDisplayImageId(r),De(this.element,Se.STACK_NEW_IMAGE,c),this.render(),this.currentImageIdIndex=n}errorCallback(e,r,n){if(!r)return;const i=this.imageIds.indexOf(e),o={error:n,imageIdIndex:i,imageId:e};De(Ce,Se.IMAGE_LOAD_ERROR,o)}getLoaderImageOptions(e){const r=this.imageIds.indexOf(e),{transferSyntaxUID:n}=Pe("transferSyntax",e)||{};return{useRGBA:!1,transferSyntaxUID:n,priority:5,requestType:dt.Interaction,additionalDetails:{imageId:e,imageIdIndex:r}}}async loadImages(e,r){const n=await Promise.allSettled(e.map(o=>{const a=this.getLoaderImageOptions(o);return Ys(o,a).then(s=>(r.successCallback(o,s),o),s=>(r.errorCallback(o,!0,s),o))})),i=n.filter(o=>o.status==="rejected");if(i&&i.length){const o=new CustomEvent(Se.IMAGE_LOAD_ERROR,{detail:i,cancelable:!0});Ce.dispatchEvent(o)}return n}_loadAndDisplayImageGPU(e,r){const n={imageId:e,imageIdIndex:r,viewportId:this.id,renderingEngineId:this.renderingEngineId};return De(this.element,Se.PRE_STACK_NEW_IMAGE,n),this.imagesLoader.loadImages([e],this).then(i=>e)}_updateToDisplayImageCPU(e){const r=this.getImageDataMetadata(e),n=YM(this.canvas,e,this.modality,this._cpuFallbackEnabledElement.viewport.colormap),{windowCenter:i,windowWidth:o}=n.voi;this.voiRange=Bs(o,i),this._cpuFallbackEnabledElement.image=e,this._cpuFallbackEnabledElement.metadata={...r},this.cpuImagePixelData=e.voxelManager.getScalarData();const a=Object.assign({},n,this._cpuFallbackEnabledElement.viewport);this._cpuFallbackEnabledElement.viewport=this.stackInvalidated?n:a,this.stackInvalidated=!1,this.cpuRenderingInvalidated=!0,this._cpuFallbackEnabledElement.transform=Pd(this._cpuFallbackEnabledElement)}getSliceViewInfo(){throw new Error("Method not implemented.")}addImages(e){const r=[];e.forEach(n=>{const{imageId:i,...o}=n,a=Te.getImage(i),{origin:s,dimensions:c,direction:l,spacing:f,numberOfComponents:u}=this.getImageDataMetadata(a),d=this.createVTKImageData({origin:s,dimensions:c,direction:l,spacing:f,numberOfComponents:u,pixelArray:a.voxelManager.getScalarData()}),h=this.createActorMapper(d);h&&(r.push({uid:n.actorUID??wn(),actor:h,referencedId:i,...o}),n.callback&&n.callback({imageActor:h,imageId:n.imageId}))}),this.addActors(r)}_updateActorToDisplayImageId(e){const r=this._checkVTKImageDataMatchesCornerstoneImage(e,this._imageData),n=this.getViewPresentation();if(r&&!this.stackInvalidated){this._updateVTKImageDataFromCornerstoneImage(e),this.resetCameraNoEvent(),this.setViewPresentation(n),this._setPropertiesFromCache(),this.stackActorReInitialized=!1;return}const{origin:i,direction:o,dimensions:a,spacing:s,numberOfComponents:c,imagePixelModule:l}=this.getImageDataMetadata(e),f=e.voxelManager.getScalarData();this._createVTKImageData({origin:i,direction:o,dimensions:a,spacing:s,numberOfComponents:c,pixelArray:f}),this._updateVTKImageDataFromCornerstoneImage(e);const u=this.createActorMapper(this._imageData),d=this.getActors();d.length&&d[0].uid===this.id?d[0].actor=u:d.unshift({uid:this.id,actor:u}),this.setActors(d);const{viewPlaneNormal:h,viewUp:g}=this._getCameraOrientation(o),p=this.getCamera();this.setCameraNoEvent({viewUp:g,viewPlaneNormal:h}),this.initialViewUp=g,this.resetCameraNoEvent(),this.setViewPresentation(n),this.triggerCameraEvent(this.getCamera(),p);const v=l.photometricInterpretation==="MONOCHROME1";this.stackInvalidated=!0;const x=this._getInitialVOIRange(e);this.setVOI(x,{forceRecreateLUTFunction:!!v}),this.initialInvert=!!v,this.setInvertColor(this.invert||this.initialInvert),this.stackInvalidated=!1,this.stackActorReInitialized=!0,this._publishCalibratedEvent&&this.triggerCalibrationEvent()}_getInitialVOIRange(e){if(this.voiRange&&this.voiUpdatedWithSetProperties)return this.globalDefaultProperties.voiRange;const{windowCenter:r,windowWidth:n}=e;let i=this._getVOIRangeFromWindowLevel(n,r);return i=this._getPTPreScaledRange()||i,i}_getPTPreScaledRange(){if(this._isCurrentImagePTPrescaled())return this._getDefaultPTPrescaledVOIRange()}_isCurrentImagePTPrescaled(){var e;return!(this.modality!=="PT"||!this.csImage.isPreScaled||!((e=this.csImage.preScale)!=null&&e.scalingParameters.suvbw))}_getDefaultPTPrescaledVOIRange(){return{lower:0,upper:5}}_getVOIRangeFromWindowLevel(e,r){let n,i;if(typeof r=="number"&&typeof e=="number"?(n=r,i=e):Array.isArray(r)&&Array.isArray(e)&&(n=r[0],i=e[0]),n!==void 0&&i!==void 0)return Bs(i,n)}async _setImageIdIndex(e){if(e>=this.imageIds.length)throw new Error(`ImageIdIndex provided ${e} is invalid, the stack only has ${this.imageIds.length} elements`);this.currentImageIdIndex=e,this.hasPixelSpacing=!0,this.viewportStatus=oi.PRE_RENDER;const r=await this._loadAndDisplayImage(this.imageIds[e],e);if(this.perImageIdDefaultProperties.size>=1){const n=this.perImageIdDefaultProperties.get(r);n!==void 0?this.setProperties(n):this.globalDefaultProperties!==void 0&&this.setProperties(this.globalDefaultProperties)}return r}resetCameraCPU({resetPan:e=!0,resetZoom:r=!0}){const{image:n}=this._cpuFallbackEnabledElement;if(!n)return;kne(this._cpuFallbackEnabledElement,e,r);const{scale:i}=this._cpuFallbackEnabledElement.viewport,{clientWidth:o,clientHeight:a}=this.element,s=[o/2,a/2],c=this.canvasToWorldCPU(s);this.setCameraCPU({focalPoint:c,scale:i})}resetCameraGPU({resetPan:e,resetZoom:r}){return this.setCamera({flipHorizontal:!1,flipVertical:!1,viewUp:this.initialViewUp}),super.resetCamera({resetPan:e,resetZoom:r,resetToCenter:!0})}scroll(e,r=!0,n=!1){const i=this.imageIds,o=this.targetImageIdIndex,a=i.length;let s=o+e;s=Math.max(0,s),n?s=s%a:s=Math.min(a-1,s),this.targetImageIdIndex=s;const c=i[s];Te.isLoaded(c)||!r?this.setImageIdIndex(s):(clearTimeout(this.debouncedTimeout),this.debouncedTimeout=window.setTimeout(()=>{this.setImageIdIndex(s)},40));const f={newImageIdIndex:s,imageId:c,direction:e};s!==o&&De(this.element,Se.STACK_VIEWPORT_SCROLL,f)}setImageIdIndex(e){return this._throwIfDestroyed(),this.currentImageIdIndex===e?Promise.resolve(this.getCurrentImageId()):this._setImageIdIndex(e)}calibrateSpacing(e){const r=this.getImageIds().indexOf(e);this.stackInvalidated=!0,this._loadAndDisplayImage(e,r)}triggerCameraEvent(e,r){const n={previousCamera:r,camera:e,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};this.suppressEvents||De(this.element,Se.CAMERA_MODIFIED,n)}triggerCalibrationEvent(){const{imageData:e}=this.getImageData(),r={element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,imageId:this.getCurrentImageId(),imageData:e,worldToIndex:e.getWorldToIndex(),...this._calibrationEvent};this.suppressEvents||De(this.element,Se.IMAGE_SPACING_CALIBRATED,r),this._publishCalibratedEvent=!1}jumpToWorld(e){const r=this.getImageIds(),n=this.getImageData(),{direction:i,spacing:o}=n,a=qa({direction:i,spacing:o,imageIds:r},e,this.getCamera().viewPlaneNormal),s=r.indexOf(a);return s===-1?!1:(this.setImageIdIndex(s),this.render(),!0)}_getVOIRangeForCurrentImage(){const{windowCenter:e,windowWidth:r}=this.csImage;return this._getVOIRangeFromWindowLevel(r,e)}_getValidVOILUTFunction(e){return Object.values(ka).includes(e)?e:ka.LINEAR}getSliceInfo(){const e=this.getSliceIndex(),{dimensions:r}=this.getImageData();return{width:r[0],height:r[1],sliceIndex:e,slicePlane:2}}isReferenceViewable(e,r={}){if(!super.isReferenceViewable(e,r))return!1;const{referencedImageId:n,sliceIndex:i}=e;if(e.volumeId&&!n)return r.asVolume;let o=this.getCurrentImageIdIndex(),a=this.imageIds[o];if(r.withNavigation&&typeof i=="number"&&(o=i,a=this.imageIds[o]),!a)return!1;if(r.asOverlay&&n&&this.matchImagesForOverlay(a,n))return!0;let{imageURI:s}=r;s||(s=Pn(a));const l=Pn(n)===s;if(l)return l;const{cameraFocalPoint:f}=e;if(r.asNearbyProjection&&f){const{spacing:u,direction:d,origin:h}=this.getImageData(),g=d.slice(6,9),p=Ka({direction:d,spacing:u},g),v=kt(xe(),f,h),x=je(v,g),m=p/2;if(Math.abs(x)<=m)return!0}return!1}getViewReference(e={}){const{sliceIndex:r=this.getCurrentImageIdIndex()}=e,n=super.getViewReference(e),i=this.imageIds[r];if(i){if(n.referencedImageId=i,this.getCurrentImageIdIndex()!==r){const o=this.getImagePlaneReferenceData(r);if(!o)return;Object.assign(n,o)}return n}}setViewReference(e){if(!e)return;const{referencedImageId:r,sliceIndex:n}=e;if(typeof n=="number"&&r&&r===this.imageIds[n])this.scroll(n-this.targetImageIdIndex);else{const i=this.imageIds.indexOf(r);if(i!==-1)this.scroll(i-this.targetImageIdIndex);else throw new Error("Unsupported - referenced image id not found")}}getViewReferenceId(e={}){const{sliceIndex:r=this.currentImageIdIndex}=e;if(Array.isArray(r))throw new Error("Use of slice ranges for stacks not supported");return`imageId:${this.imageIds[r]}`}getCPUFallbackError(e){return new Error(`method ${e} cannot be used during CPU Fallback mode`)}fillWithBackgroundColor(){const e=this.getRenderingEngine();e&&e.fillCanvasWithBackgroundColor(this.canvas,this.options.background)}unsetColormapCPU(){delete this._cpuFallbackEnabledElement.viewport.colormap,this._cpuFallbackEnabledElement.renderingTools={},this.cpuRenderingInvalidated=!0,this.fillWithBackgroundColor(),this.render()}setColormapCPU(e){this.colormap=e;const r=Ld(e.name);this._cpuFallbackEnabledElement.viewport.colormap=r,this._cpuFallbackEnabledElement.renderingTools={},this.fillWithBackgroundColor(),this.cpuRenderingInvalidated=!0,this.render();const n={viewportId:this.id,colormap:e};De(this.element,Se.COLORMAP_MODIFIED,n)}setColormapGPU(e){const i=this.getDefaultActor().actor.getProperty(),o=i.getRGBTransferFunction(),a=Ld(e.name)||V1.getPresetByName(e.name);if(o)o.applyColorMap(a),o.setMappingRange(this.voiRange.lower,this.voiRange.upper),i.setRGBTransferFunction(0,o);else{const c=Xs.newInstance();c.applyColorMap(a),c.setMappingRange(this.voiRange.lower,this.voiRange.upper),i.setRGBTransferFunction(0,c)}this.colormap=e,this.render();const s={viewportId:this.id,colormap:e};De(this.element,Se.COLORMAP_MODIFIED,s)}unsetColormapGPU(){throw new Error("unsetColormapGPU not implemented.")}_getImagePlaneModule(e){var i;const r=Pe(si.IMAGE_PLANE,e);this.hasPixelSpacing=!r.usingDefaultValues||((i=this.calibration)==null?void 0:i.scale)>0,this.calibration||(this.calibration=r.calibration);const n={...r};return n.columnPixelSpacing||(n.columnPixelSpacing=1),n.rowPixelSpacing||(n.rowPixelSpacing=1),n.columnCosines||(n.columnCosines=[0,1,0]),n.rowCosines||(n.rowCosines=[1,0,0]),n.imagePositionPatient||(n.imagePositionPatient=[0,0,0]),n.imageOrientationPatient||(n.imageOrientationPatient=new Float32Array([1,0,0,0,1,0])),n}}class JM extends Rn{constructor(e){super(e),this.getNumberOfSlices=()=>1,this.getRotation=()=>0,this.getCurrentImageIdIndex=()=>0,this.getCurrentImageId=()=>null,this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0});const{parallelProjection:r,orientation:n}=this.options,i=this.getVtkActiveCamera();r!=null&&i.setParallelProjection(r),n&&n!==Wu.ACQUISITION&&this.applyViewOrientation(n)}resetCamera({resetPan:e=!0,resetZoom:r=!0,resetToCenter:n=!0}={}){super.resetCamera({resetPan:e,resetZoom:r,resetToCenter:n});const i=this.getVtkActiveCamera();return i.getParallelProjection()?i.setClippingRange(-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE):i.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE),this.getRenderer().resetCameraClippingRange(),!0}setSlabThickness(e,r){return null}setBlendMode(e,r,n){return null}resetProperties(e){const r=e?this.getActor(e):this.getDefaultActor();if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);r.slabThickness&&(r.slabThickness=er.MINIMUM_SLAB_THICKNESS,this.viewportProperties.slabThickness=void 0,this.updateClippingPlanesForActors(this.getCamera())),e||(e=this.getVolumeId());const n=Te.getVolume(e);if(!n)throw new Error(`imageVolume with id: ${e} does not exist in cache`);if(oC(r.actor,n),qo(r)){const i=r.actor.getProperty().getRGBTransferFunction(0);a2(i,this.initialTransferFunctionNodes)}this.setCamera(this.initialCamera),De(this.element,Se.VOI_MODIFIED,super.getVOIModifiedEventDetail(e))}getSliceIndex(){return null}setCamera(e){super.setCamera(e),this.getRenderer().resetCameraClippingRange(),this.render()}setCameraClippingRange(){const e=this.getVtkActiveCamera();e.getParallelProjection()?e.setClippingRange(-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE):e.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE)}resetSlabThickness(){return null}}const ZM="viewport-element",QM="cornerstone-canvas",k8=1e-4;function Fne(t){const e=document.createElement("canvas");return e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.imageRendering="pixelated",e.classList.add(QM),t.appendChild(e),e}function Une(t){const e=document.createElement("div");return e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.overflow="hidden",e.classList.add(ZM),t.appendChild(e),e}function Da(t){const e=`canvas.${QM}`,r=`div.${ZM}`,n=t.querySelector(r)||Une(t),i=n.querySelector(e);if(i)return i;const o=Fne(n),a=n.getBoundingClientRect(),s=window.devicePixelRatio||1,c=Math.ceil(a.width*s),l=Math.ceil(a.height*s);return o.width=c,o.height=l,o}async function Bne(t,e,r,n=!1,i=!1){r.forEach(a=>{const s=t.getViewport(a);if(!s)throw new Error(`Viewport with Id ${a} does not exist`);if(!(s instanceof Rn))throw new Error("setVolumesForViewports only supports VolumeViewport and VolumeViewport3D")});const o=r.map(async a=>{await t.getViewport(a).setVolumes(e,n,i)});await Promise.all(o)}async function Gne(t,e,r,n=!1,i=!1){for(const a of r){const s=t.getViewport(a);if(!s)throw new Error(`Viewport with Id ${a} does not exist`);if(!(s instanceof Rn)){console.warn(`Viewport with Id ${a} is not a BaseVolumeViewport. Cannot add volume to this viewport.`);return}}const o=r.map(async a=>{await t.getViewport(a).addVolumes(e,n,i)});await Promise.all(o)}async function Wne(t,e,r){for(const i of r){const o=t.getStackViewport(i);if(!o)throw new Error(`Viewport with Id ${i} does not exist`);if(!o.addImages){console.warn(`Viewport with Id ${i} does not have addImages. Cannot add image segmentation to this viewport.`);return}}const n=r.map(async i=>{t.getStackViewport(i).addImages(e)});await Promise.all(n)}class zne{constructor(e){this.opacity=.4,this.outlineOpacity=.4,this.transferFunction=[],this.actor=e}setRGBTransferFunction(e,r){this.transferFunction[e]=r}setScalarOpacity(e){}setInterpolationTypeToNearest(){}setUseLabelOutline(){}setLabelOutlineOpacity(e){this.outlineOpacity=e}setLabelOutlineThickness(){}getColor(e){const r=this.transferFunction[0],n=r.getRedValue(e),i=r.getGreenValue(e),o=r.getBlueValue(e);return[n,i,o,this.opacity]}}class $ne{constructor(e){this.actor=e}getInputData(){return this.actor.getImage()}}class jne{constructor(e,r){this.canvasProperties=new zne(this),this.visibility=!1,this.mapper=new $ne(this),this.className="CanvasActor",this.derivedImage=r,this.viewport=e}renderRLE(e,r,n){const{width:i,height:o}=this.image;let{canvas:a}=this;(!a||a.width!==i||a.height!==o)&&(this.canvas=a=new window.OffscreenCanvas(i,o));const s=a.getContext("2d"),c=s.createImageData(i,o),{data:l}=c;l.fill(0);const{map:f}=n;let u=1/0,d=1/0,h=-1/0,g=-1/0;for(let x=0;xb*255);let D=y+(S<<2);for(let b=S;bi)return;const p=h-u,v=g-d;s.putImageData(c,0,0,u-1,d-1,p+2,v+2),r.drawImage(a,u,d,p,v,u,d,p,v)}render(e,r){if(!this.visibility)return;const n=this.image||this.getImage(),{width:i,height:o}=n,a=n.getScalarData();if(!a)return;const{voxelManager:s}=n;if(s&&s.map.getRun){this.renderRLE(e,r,s);return}let{canvas:c}=this;(!c||c.width!==i||c.height!==o)&&(this.canvas=c=new window.OffscreenCanvas(i,o));const l=c.getContext("2d"),f=l.createImageData(i,o),{data:u}=f;let d=0,h=0,g=1/0,p=1/0,v=-1/0,x=-1/0;for(let w=0;wi)return;const m=v-g+1,y=x-p+1;l.putImageData(f,0,0,g,p,m,y),r.drawImage(c,g,p,m,y,g,p,m,y)}getClassName(){return this.className}getProperty(){return this.canvasProperties}setVisibility(e){this.visibility=e}getMapper(){return this.mapper}isA(e){return e===this.className}getImage(){if(this.image)return this.image;this.image={...this.derivedImage};const e=this.viewport.getImageData();return Object.assign(this.image,{worldToIndex:r=>e.imageData.worldToIndex(r),indexToWorld:(r,n)=>e.imageData.indexToWorld(r,n),getDimensions:()=>e.dimensions,getScalarData:()=>{var r;return(r=this.derivedImage)==null?void 0:r.getPixelData()},getDirection:()=>e.direction,getSpacing:()=>e.spacing,setOrigin:()=>null,setDerivedImage:r=>{this.derivedImage=r,this.image=null},modified:()=>null}),this.image}}function fC(t,e){const{pointInShapeFn:r,callback:n,boundsIJK:i,returnPoints:o=!1}=e;let a,s,c,l,f,u,d;const{numComps:h}=t;if(t.getScalarData?d=t.getScalarData():d=t.getPointData().getScalars().getData(),!d){console.warn("No scalar data found for imageData",t);return}const g=t.getDimensions();i?[[a,s],[c,l],[f,u]]=i:(a=0,s=g[0],c=0,l=g[1],f=0,u=g[2]);const p=Ye(a,c,f),v=t.getDirection(),x=v.slice(0,3),m=v.slice(3,6),y=v.slice(6,9),w=t.getSpacing(),[C,S,T]=w,_=t.indexToWorld(p),E=Ye(x[0]*C,x[1]*C,x[2]*C),D=Ye(m[0]*S,m[1]*S,m[2]*S),b=Ye(y[0]*T,y[1]*T,y[2]*T),I=h||d.length/g[2]/g[1]/g[0],R=g[0]*I,M=g[1]*R,L=[],A=Su(_);for(let G=f;G<=u;G++){const P=Su(A);for(let N=c;N<=l;N++){const V=Su(A);for(let $=a;$<=s;$++){const j=[$,N,G];if(r(A,j)){const Y=G*M+N*R+$*I;let te;I>2?te=[d[Y],d[Y+1],d[Y+2]]:te=d[Y],L.push({value:te,index:Y,pointIJK:j,pointLPS:A.slice()}),n&&n({value:te,index:Y,pointIJK:j,pointLPS:A})}xn(A,A,E)}Id(A,V),xn(A,A,D)}Id(A,P),xn(A,A,b)}return o?L:void 0}const id=class id extends Xu{constructor(e){super({...e,canvas:e.canvas||Da(e.element)}),this.videoWidth=0,this.videoHeight=0,this.loop=!0,this.mute=!0,this.isPlaying=!1,this.scrollSpeed=1,this.playbackRate=1,this.frameRange=[0,0],this.fps=30,this.videoCamera={panWorld:[0,0],parallelScale:1},this.voiRange={lower:0,upper:255},this.getProperties=()=>({loop:this.videoElement.loop,muted:this.videoElement.muted,playbackRate:this.playbackRate,scrollSpeed:this.scrollSpeed,voiRange:{...this.voiRange}}),this.getMiddleSliceData=()=>{throw new Error("Method not implemented.")},this.useCustomRenderingPipeline=!0,this.resetCamera=()=>(this.refreshRenderValues(),this.canvasContext.fillRect(0,0,this.canvas.width,this.canvas.height),this.isPlaying||this.renderFrame(),!0),this.getNumberOfSlices=()=>{const r=Math.round(this.videoElement.duration*this.fps/this.scrollSpeed);return isNaN(r)?this.numberOfFrames:r},this.getFrameOfReferenceUID=()=>this.videoElement.src,this.resize=()=>{const r=this.canvas,{clientWidth:n,clientHeight:i}=r;(r.width!==n||r.height!==i)&&(r.width=n,r.height=i),this.refreshRenderValues(),this.isPlaying||this.renderFrame()},this.canvasToWorld=(r,n=[0,0,0])=>{const i=this.videoCamera.panWorld,o=this.getWorldToCanvasRatio(),a=[i[0]*o,i[1]*o],s=[r[0]-a[0],r[1]-a[1]];return n.splice(0,2,s[0]/o,s[1]/o),n},this.worldToCanvas=r=>{const n=this.videoCamera.panWorld,i=this.getWorldToCanvasRatio();return[(r[0]+n[0])*i,(r[1]+n[1])*i]},this.getRotation=()=>0,this.canvasToIndex=r=>{const n=this.getTransform();return n.invert(),n.transformPoint(r.map(i=>i*devicePixelRatio))},this.indexToCanvas=r=>this.getTransform().transformPoint(r).map(i=>i/devicePixelRatio),this.customRenderViewportToCanvas=()=>{this.renderFrame()},this.renderFrame=()=>{var s;const r=window.devicePixelRatio||1,i=this.getTransform().getMatrix(),o=this.canvasContext;o.resetTransform(),o.clearRect(0,0,this.canvas.width,this.canvas.height),o.transform(i[0]/r,i[1]/r,i[2]/r,i[3]/r,i[4]/r,i[5]/r),o.drawImage(this.videoElement,0,0,this.videoWidth,this.videoHeight);for(const c of this.getActors())c.actor.render(this,this.canvasContext);this.canvasContext.resetTransform(),De(this.element,Se.STACK_NEW_IMAGE,{element:this.element,viewportId:this.id,viewport:this,renderingEngineId:this.renderingEngineId,time:this.videoElement.currentTime,duration:this.videoElement.duration}),De(this.element,Se.IMAGE_RENDERED,{element:this.element,viewportId:this.id,viewport:this,imageIndex:this.getCurrentImageIdIndex(),numberOfSlices:this.numberOfFrames,renderingEngineId:this.renderingEngineId,time:this.videoElement.currentTime,duration:this.videoElement.duration}),(s=this.initialRender)==null||s.call(this);const a=this.getFrameNumber();this.isPlaying&&(athis.frameRange[1]&&(this.loop?this.setFrameNumber(this.frameRange[0]):this.pause()))},this.renderWhilstPlaying=()=>{this.renderFrame(),this.isPlaying&&requestAnimationFrame(this.renderWhilstPlaying)},this.canvasContext=this.canvas.getContext("2d"),this.renderingEngineId=e.renderingEngineId,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.videoElement=document.createElement("video"),this.videoElement.muted=this.mute,this.videoElement.loop=this.loop,this.videoElement.autoplay=!0,this.videoElement.crossOrigin="anonymous",this.addEventListeners(),this.resize()}static get useCustomRenderingPipeline(){return!0}addEventListeners(){this.canvas.addEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}removeEventListeners(){this.canvas.removeEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}elementDisabledHandler(){this.removeEventListeners(),this.videoElement.remove()}getImageDataMetadata(e){const r=typeof e=="string"?e:e.imageId,n=Pe(si.IMAGE_PLANE,r);let i=n.rowCosines,o=n.columnCosines;(i==null||o==null)&&(i=[1,0,0],o=[0,1,0]);const a=Ye(i[0],i[1],i[2]),s=Ye(o[0],o[1],o[2]),{rows:c,columns:l}=n,f=xe();qt(f,a,s);let u=n.imagePositionPatient;u==null&&(u=[0,0,0]);const d=n.columnPixelSpacing||1,h=n.rowPixelSpacing||1,g=n.columns,p=n.rows,v=1,x=1;return this.hasPixelSpacing=!!n.columnPixelSpacing,{bitsAllocated:8,numberOfComponents:3,origin:u,rows:c,columns:l,direction:[...a,...s,...f],dimensions:[g,p,x],spacing:[d,h,v],hasPixelSpacing:this.hasPixelSpacing,numVoxels:g*p*x,imagePlaneModule:n}}setDataIds(e,r){var n;this.setVideo(e[0],(((n=r.viewReference)==null?void 0:n.sliceIndex)||0)+1)}setVideo(e,r){this.imageId=Array.isArray(e)?e[0]:e;const n=Pe(si.IMAGE_URL,e);if(!(n!=null&&n.rendered))throw new Error(`Video Image ID ${e} does not have a rendered video view`);const{rendered:i}=n,o=Pe(si.GENERAL_SERIES,e);this.modality=o==null?void 0:o.Modality,this.metadata=this.getImageDataMetadata(e);let{cineRate:a,numberOfFrames:s}=Pe(si.CINE,e);return this.numberOfFrames=s,this.setVideoURL(i).then(()=>((!s||s===1)&&(s=Math.round(this.videoElement.duration*(a||30))),a||(a=Math.round(s/this.videoElement.duration)),this.fps=a,this.numberOfFrames=s,this.setFrameRange([1,s]),this.initialRender=()=>{this.initialRender=null,this.pause(),this.setFrameNumber(r||1)},new Promise(c=>{window.setTimeout(()=>{this.setFrameNumber(r||1),c(this)},25)})))}async setVideoURL(e){return new Promise(r=>{this.videoElement.src=e,this.videoElement.preload="auto";const n=()=>{this.videoWidth=this.videoElement.videoWidth,this.videoHeight=this.videoElement.videoHeight,this.videoElement.removeEventListener("loadedmetadata",n),this.refreshRenderValues(),r(!0)};this.videoElement.addEventListener("loadedmetadata",n)})}getImageIds(){const e=new Array(this.numberOfFrames),r=this.imageId.replace(/[0-9]+$/,"");for(let n=0;n{n(),r.removeEventListener("seeked",a)};r.addEventListener("seeked",a)}async start(){const e=this.videoElement,r=this.renderFrame;if(e.currentTime=0,e.paused){const n=i=>{r(),e.removeEventListener("seeked",n)};e.addEventListener("seeked",n)}}async end(){const e=this.videoElement,r=this.renderFrame;if(e.currentTime=e.duration,e.paused){const n=i=>{r(),e.removeEventListener("seeked",n)};e.addEventListener("seeked",n)}}async setTime(e){const r=this.videoElement,n=this.renderFrame;if(r.currentTime=e,r.paused){const i=o=>{n(),r.removeEventListener("seeked",i)};r.addEventListener("seeked",i)}}getSliceViewInfo(){throw new Error("Method not implemented.")}async setFrameNumber(e){this.setTime((e-1)/this.fps)}setFrameRange(e){if(!e){this.frameRange=[1,this.numberOfFrames];return}e.length!==2||e[0]===e[1]||(this.frameRange=[e[0],e[1]])}getFrameRange(){return this.frameRange}setProperties(e){e.loop!==void 0&&(this.videoElement.loop=e.loop),e.muted!==void 0&&(this.videoElement.muted=e.muted),e.playbackRate!==void 0&&this.setPlaybackRate(e.playbackRate),e.scrollSpeed!==void 0&&this.setScrollSpeed(e.scrollSpeed),e.voiRange&&this.setVOI(e.voiRange)}setPlaybackRate(e=1){if(this.playbackRate=e,e<.0625){this.pause();return}this.videoElement&&(this.videoElement.playbackRate=e,this.play())}setScrollSpeed(e=1,r=_d.FRAME){this.scrollSpeed=r===_d.SECOND?e*this.fps:e}resetProperties(){this.setProperties({loop:!1,muted:!0})}getScalarData(){var o;if(((o=this.scalarData)==null?void 0:o.frameNumber)===this.getFrameNumber())return this.scalarData;if(!this.videoElement||!this.videoElement.videoWidth||!this.videoElement.videoHeight){console.debug("Video not ready yet, returning empty scalar data");const a=new Uint8ClampedArray;return a.getRange=()=>[0,255],a.frameNumber=-1,a}const e=document.createElement("canvas");e.width=this.videoElement.videoWidth,e.height=this.videoElement.videoHeight;const r=e.getContext("2d");r.drawImage(this.videoElement,0,0);const i=r.getImageData(0,0,e.width,e.height).data;return i.getRange=()=>[0,255],i.frameNumber=this.getFrameNumber(),this.scalarData=i,i}getImageData(){const{metadata:e}=this,r=e.spacing,n={getDirection:()=>e.direction,getDimensions:()=>e.dimensions,getRange:()=>[0,255],getScalarData:()=>this.getScalarData(),getSpacing:()=>e.spacing,worldToIndex:o=>{const a=this.worldToCanvas(o),s=this.canvasToIndex(a);return[s[0],s[1],0]},indexToWorld:(o,a)=>{const s=this.indexToCanvas([o[0],o[1]]);return this.canvasToWorld(s,a)}},i={dimensions:e.dimensions,spacing:r,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:e.FrameOfReferenceUID},getScalarData:()=>this.getScalarData(),scalarData:this.getScalarData(),imageData:n,voxelManager:{forEach:(o,a)=>fC(a.imageData,{pointInShapeFn:a.isInObject??(()=>!0),callback:o,boundsIJK:a.boundsIJK,returnPoints:a.returnPoints??!1})},hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{scaled:!1}};return Object.defineProperty(n,"scalarData",{get:()=>this.getScalarData(),enumerable:!0}),i}hasImageURI(e){const r=e.match(id.frameRangeExtractor),n=r?e.substring(0,r.index):e;return this.imageId.includes(n)}setVOI(e){this.voiRange=e,this.setColorTransform()}setWindowLevel(e=256,r=128){const n=r-e/2,i=r+e/2-1;this.setVOI({lower:n,upper:i}),this.setColorTransform()}setAverageWhite(e){this.averageWhite=e,this.setColorTransform()}setColorTransform(){if(!this.voiRange&&!this.averageWhite){this.feFilter=null;return}const e=this.averageWhite||[255,255,255],r=Math.max(...e),n=e.map(c=>r/c),{lower:i=0,upper:o=255}=this.voiRange||{},a=(o-i+1)/255,s=i/255;this.feFilter=`url('data:image/svg+xml, #colour')`,this.canvas.style.filter=this.feFilter}setCamera(e){const{parallelScale:r,focalPoint:n}=e;if(r&&(this.videoCamera.parallelScale=this.element.clientHeight/2/r),n!==void 0){const i=this.worldToCanvas(n),o=[this.element.clientWidth/2,this.element.clientHeight/2],a=[(i[0]-o[0])/this.videoCamera.parallelScale,(i[1]-o[1])/this.videoCamera.parallelScale];this.videoCamera.panWorld=[this.videoCamera.panWorld[0]-a[0],this.videoCamera.panWorld[1]-a[1]]}this.canvasContext.fillStyle="rgba(0,0,0,1)",this.canvasContext.fillRect(0,0,this.canvas.width,this.canvas.height),this.isPlaying||this.renderFrame()}getCurrentImageId(){return this.imageId.replace("/frames/1",this.isPlaying?`/frames/${this.frameRange[0]}-${this.frameRange[1]}`:`/frames/${this.getFrameNumber()}`)}getViewReferenceId(e={}){const{sliceIndex:r}=e;return r===void 0?`videoId:${this.getCurrentImageId()}`:Array.isArray(r)?`videoId:${this.imageId.substring(0,this.imageId.length-1)}${r[0]+1}-${r[1]+1}`:`videoId:${this.imageId.replace("/frames/1",`/frames/${1+r}`)}`}isReferenceViewable(e,r={}){let{imageURI:n}=r;const{referencedImageId:i,sliceIndex:o}=e;if(!super.isReferenceViewable(e))return!1;const a=this.getCurrentImageId();if(!n){const u=a.indexOf(":");n=a.substring(u+1,a.length-1)}if(r.withNavigation)return!0;const s=this.getSliceIndex();if(Array.isArray(o))return s>=o[0]&&s<=o[1];if(o!==void 0)return s===o;if(!i)return!1;const c=i.match(id.frameRangeExtractor);if(!c[2])return!0;const l=c[2].split("-").map(u=>Number(u)),f=s+1;return l[0]<=f&&f<=(l[1]??l[0])}setViewReference(e){typeof e.sliceIndex=="number"?this.setFrameNumber(e.sliceIndex+1):Array.isArray(e.sliceIndex)&&this.setFrameRange(e.sliceIndex)}getViewReference(e){let r=(e==null?void 0:e.sliceIndex)??this.getSliceIndex();return r||(r=this.isPlaying?[this.frameRange[0]-1,this.frameRange[1]-1]:this.getCurrentImageIdIndex()),{...super.getViewReference(e),referencedImageId:this.getViewReferenceId(e),sliceIndex:r}}getFrameNumber(){return 1+this.getCurrentImageIdIndex()}getCurrentImageIdIndex(){return Math.round(this.videoElement.currentTime*this.fps)}getSliceIndex(){return this.getCurrentImageIdIndex()/this.scrollSpeed}getCamera(){const{parallelScale:e}=this.videoCamera,r=[this.element.clientWidth/2,this.element.clientHeight/2];return{parallelProjection:!0,focalPoint:this.canvasToWorld(r),position:[0,0,0],viewUp:[0,-1,0],parallelScale:this.element.clientHeight/2/e,viewPlaneNormal:[0,0,1]}}getFrameRate(){return this.fps}getPan(){const e=this.videoCamera.panWorld;return[e[0],e[1]]}refreshRenderValues(){let e=this.canvas.offsetWidth/this.videoWidth;this.videoHeight*e>this.canvas.height&&(e=this.canvas.offsetHeight/this.videoHeight);const r=Math.floor(this.videoWidth*e),n=Math.floor(this.videoHeight*e),i=(this.canvas.offsetWidth-r)/2,o=(this.canvas.offsetHeight-n)/2,a=i/e,s=o/e;this.videoCamera.panWorld=[a,s],this.videoCamera.parallelScale=e}getWorldToCanvasRatio(){return this.videoCamera.parallelScale}getCanvasToWorldRatio(){return 1/this.videoCamera.parallelScale}getTransform(){const e=this.videoCamera.panWorld,r=window.devicePixelRatio||1,n=this.getWorldToCanvasRatio(),i=this.getCanvasToWorldRatio(),o=[this.canvas.offsetWidth/2,this.canvas.offsetHeight/2],a=[o[0]*i,o[1]*i],s=new T0;return s.scale(r,r),s.translate(o[0],o[1]),s.scale(n,n),s.translate(e[0],e[1]),s.translate(-a[0],-a[1]),s}updateCameraClippingPlanesAndRange(){}addImages(e){const r=this.getActors();e.forEach(n=>{const i=Te.getImage(n.imageId),o=this.createActorMapper(i),a=n.actorUID??wn();o&&(r.push({uid:a,actor:o}),n.callback&&n.callback({imageActor:o,imageId:n.imageId}))}),this.setActors(r)}createActorMapper(e){return new jne(this,e)}};id.frameRangeExtractor=/(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;let Ad=id;const Hne=` +`;function kee(t,e,r){if(e.apply(t)){const i=t.getIndependentComponents();return`${t.getMTime()}-${i}-${r}`}return"0"}const Ii=new Float64Array(16),Bo=new Float64Array(16),Dg=new Float64Array(16),ya=new Float64Array(4),cr=new Float64Array(4);function Vee(t,e){e.classHierarchy.push("vtkWebGPUImageMapper"),t.buildPass=i=>{if(i){e.WebGPUImageSlice=t.getFirstAncestorOfType("vtkWebGPUImageSlice"),e.WebGPURenderer=e.WebGPUImageSlice.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.device=e.WebGPURenderWindow.getDevice();const o=e.WebGPURenderer.getRenderable();e.renderable.getSliceAtFocalPoint()&&e.renderable.setSliceFromCamera(o.getActiveCamera())}},t.translucentPass=i=>{i&&t.render()},t.opaquePass=i=>{i&&t.render()},t.render=()=>{e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw)},t.computePipelineHash=()=>{const i=e.currentInput.getExtent();i[0]===i[1]||i[2]===i[3]||i[4]===i[5]?(e.dimensions=2,e.pipelineHash="img2"):(e.dimensions=3,e.pipelineHash="img3")},t.updateUBO=()=>{const i=e.UBO.getSendTime(),o=e.WebGPUImageSlice.getRenderable(),a=o.getMapper();if(t.getMTime()>i||e.renderable.getMTime()>i||o.getProperty().getMTime()>i){const s=a.getInputData(),c=e.WebGPURenderer.getStabilizedCenterByReference();qe(Ii),nn(Ii,Ii,c);const l=o.getMatrix();St(Bo,l),$n(Bo,Bo),bt(Ii,Bo,Ii);const f=s.getWorldToIndex();bt(Ii,f,Ii),$n(Dg,Ii),Jm(Bo,[.5,.5,.5]),bt(Ii,Bo,Ii);const u=s.getDimensions();qe(Bo),Ha(Bo,Bo,[1/u[0],1/u[1],1/u[2]]),bt(Ii,Bo,Ii),e.UBO.setArray("SCTCMatrix",Ii);const d=e.currentInput.getExtent(),{ijkMode:h}=e.renderable.getClosestIJKAxis();let g=e.renderable.getSlice();h!==e.renderable.getSlicingMode()&&(g=e.renderable.getSliceAtPosition(g));let p=2,v=0,x=1;h===b8.I?(p=0,v=1,x=2):h===b8.J&&(p=1,v=2,x=0),ya[p]=g,ya[v]=d[v*2]-.5,ya[x]=d[x*2]-.5,ya[3]=1,Os(ya,ya,Dg),e.UBO.setArray("Origin",ya),cr[p]=g,cr[v]=d[v*2+1]+.5,cr[x]=d[x*2]-.5,cr[3]=1,Os(cr,cr,Dg),NT(cr,cr,ya),cr[3]=1,e.UBO.setArray("Axis1",cr),cr[p]=g,cr[v]=d[v*2]-.5,cr[x]=d[x*2+1]+.5,cr[3]=1,Os(cr,cr,Dg),NT(cr,cr,ya),cr[3]=1,e.UBO.setArray("Axis2",cr);const m=[1,1,1,1],y=[0,0,0,0],w=e.textureViews[0],C=w.getTexture().getScale(),S=w.getTexture().getNumberOfComponents();for(let T=0;T{const i=e.WebGPUImageSlice.getRenderable().getProperty();t.getTextureViews()[0].getTexture().getNumberOfComponents();const a=1,s=kee(i,i.getRGBTransferFunction,a);if(e.colorTextureString!==s){e.numRows=a;const c=new Uint8ClampedArray(e.numRows*2*e.rowLength*4);let l=i.getRGBTransferFunction();if(l){const f=new Float32Array(e.rowLength*3);for(let u=0;u{r();const i=e.device.getTextureManager().getTextureForImageData(e.currentInput),o=e.textureViews;if(!o[0]||o[0].getTexture()!==i){const c=i.createView("imgTexture");o[0]=c}t.updateLUTImage(),t.updateUBO();const s=e.WebGPUImageSlice.getRenderable().getProperty().getInterpolationType()===Xc.NEAREST?"nearest":"linear";(!e.clampSampler||s!==e.clampSampler.getOptions().minFilter)&&(e.clampSampler=_M.newInstance({label:"clampSampler"}),e.clampSampler.create(e.device,{minFilter:s,magFilter:s}),e.additionalBindables=[e.clampSampler])};const n=t.getShaderReplacements();t.replaceShaderPosition=(i,o,a)=>{const s=o.getShaderDescription("vertex");s.addBuiltinOutput("vec4","@builtin(position) Position");let c=s.getCode();const l=["var pos: vec4 = mapperUBO.Origin +"," (vertexBC.x * 0.5 + 0.5) * mapperUBO.Axis1 + (vertexBC.y * 0.5 + 0.5) * mapperUBO.Axis2;","pos.w = 1.0;"];e.dimensions===2?l.push("var tcoord : vec2 = (mapperUBO.SCTCMatrix * pos).xy;"):l.push("var tcoord : vec3 = (mapperUBO.SCTCMatrix * pos).xyz;"),l.push("output.tcoordVS = tcoord;","output.Position = rendererUBO.SCPCMatrix * pos;"),c=Zt.substitute(c,"//VTK::Position::Impl",l).result,s.setCode(c)},n.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderTCoord=(i,o,a)=>{const s=o.getShaderDescription("vertex");e.dimensions===2?s.addOutput("vec2","tcoordVS"):s.addOutput("vec3","tcoordVS")},n.set("replaceShaderTCoord",t.replaceShaderTCoord),t.replaceShaderImage=(i,o,a)=>{const s=o.getShaderDescription("fragment");let c=s.getCode();e.dimensions===3?c=Zt.substitute(c,"//VTK::Image::Sample",[" var computedColor: vec4 ="," textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);","//VTK::Image::Sample"]).result:c=Zt.substitute(c,"//VTK::Image::Sample",[" var computedColor: vec4 ="," textureSampleLevel(imgTexture, clampSampler, input.tcoordVS, 0.0);","//VTK::Image::Sample"]).result,c=Zt.substitute(c,"//VTK::Image::Sample",[" var coord: vec2 ="," vec2(computedColor.r * mapperUBO.cScale.r + mapperUBO.cShift.r, 0.5);"," computedColor = textureSampleLevel(tfunTexture, clampSampler, coord, 0.0);"]).result,s.setCode(c)},n.set("replaceShaderImage",t.replaceShaderImage)}const Fee={rowLength:1024};function Uee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Fee,r),n3.extend(t,e,r),t.setFragmentShaderTemplate(Aee),e.UBO=bu.newInstance({label:"mapperUBO"}),e.UBO.addEntry("SCTCMatrix","mat4x4"),e.UBO.addEntry("Origin","vec4"),e.UBO.addEntry("Axis2","vec4"),e.UBO.addEntry("Axis1","vec4"),e.UBO.addEntry("cScale","vec4"),e.UBO.addEntry("cShift","vec4"),e.lutBuildTime={},un(e.lutBuildTime,{mtime:0}),e.imagemat=qe(new Float64Array(16)),e.imagematinv=qe(new Float64Array(16)),e.VBOBuildTime={},un(e.VBOBuildTime),Vee(t,e)}const Bee=Bt(Uee,"vtkWebGPUImageMapper");uo("vtkImageMapper",Bee);function Gee(t,e){e.classHierarchy.push("vtkWebGPUImageSlice"),t.buildPass=r=>{if(!(!e.renderable||!e.renderable.getVisibility())&&r){if(!e.renderable)return;e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes()}},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children.forEach(n=>{n.traverse(r)}),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const n=e.renderable.getMatrix(),i=r.getStabilizedCenterByReference();e.bufferShift[0]=n[3]-i[0],e.bufferShift[1]=n[7]-i[1],e.bufferShift[2]=n[11]-i[2],St(e.keyMatrices.bcwc,n),e.renderable.getIsIdentity()?qe(e.keyMatrices.normalMatrix):(_n(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),nn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),nn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-i[0],-i[1],-i[2]]),e.keyMatricesTime.modified()}return e.keyMatrices}}const Wee={bufferShift:void 0,keyMatrixTime:null,keyMatrices:null,propID:void 0};function zee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Wee,r),tn.extend(t,e,r),e.keyMatricesTime={},un(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},e.keyMatrixTime={},un(e.keyMatrixTime,{mtime:0}),e.keyMatrices={mcwc:qe(new Float64Array(16))},e.bufferShift=[0,0,0,0],gi(t,e,["propID","keyMatricesTime"]),Gee(t,e)}const $ee=Bt(zee,"vtkWebGPUImageSlice");uo("vtkImageSlice",$ee);function jee(t,e){e.classHierarchy.push("vtkWebGPUVolume"),t.buildPass=i=>{!e.renderable||!e.renderable.getVisibility()||i&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),e.renderable.getMapper().update())},t.queryPass=(i,o)=>{if(i){if(!e.renderable||!e.renderable.getVisibility())return;const a=e.renderable.getMapper().getBounds();if(!a||a.length!==6||a[0]>a[1])return;o.addVolume(t)}};const r=new Float64Array(3),n=new Float64Array(3);t.getBoundingCubePoints=(i,o)=>{const a=e.renderable.getMapper().getInputData();if(!a)return;const s=a.getExtent(),c=e.renderable.getMatrix();let l=0;for(let f=4;f<6;f++){r[2]=s[f];for(let u=2;u<4;u++){r[1]=s[u];for(let d=0;d<2;d++){r[0]=s[d],a.indexToWorld(r,n);let h=o+l*3;i[h++]=c[0]*n[0]+c[1]*n[1]+c[2]*n[2]+c[3],i[h++]=c[4]*n[0]+c[5]*n[1]+c[6]*n[2]+c[7],i[h++]=c[8]*n[0]+c[9]*n[1]+c[10]*n[2]+c[11],l++}}}},t.getKeyMatrices=i=>{if(Math.max(e.renderable.getMTime(),i.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const o=e.renderable.getMatrix(),a=i.getStabilizedCenterByReference();St(e.keyMatrices.bcwc,o),nn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-a[0],-a[1],-a[2]]),e.keyMatricesTime.modified()}return e.keyMatrices}}const Hee={propID:void 0,keyMatricesTime:null};function Kee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hee,r),tn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),jee(t,e)}const qee=W.newInstance(Kee,"vtkWebGPUVolume");uo("vtkVolume",qee);function Xee(t,e){e.classHierarchy.push("vtkWebGPUPixelSpaceCallbackMapper"),t.opaquePass=(r,n)=>{e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent();const i=e.WebGPURenderer.getAspectRatio(),o=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,a=e.WebGPURenderer.getTiledSizeAndOrigin(),s=null;e.renderable.getUseZValues(),e.renderable.invokeCallback(e.renderable.getInputData(),o,i,a,s)}}const Yee={};function Jee(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Yee,r),tn.extend(t,e,r),Xee(t,e)}const Zee=W.newInstance(Jee,"vtkWebGPUPixelSpaceCallbackMapper");uo("vtkPixelSpaceCallbackMapper",Zee);class EM{constructor(e,r,n=1){this.rows=new Map,this.height=1,this.width=1,this.depth=1,this.jMultiple=1,this.kMultiple=1,this.numberOfComponents=1,this.defaultValue=0,this.pixelDataConstructor=Uint8Array,this.get=i=>{const o=i%this.jMultiple,a=(i-o)/this.jMultiple,s=this.getRLE(o,a);return(s==null?void 0:s.value)||this.defaultValue},this.getRun=(i,o)=>{const a=i+o*this.height;return this.rows.get(a)},this.set=(i,o)=>{if(o===void 0)throw new Error(`Can't set undefined at ${i%this.width}`);const a=i%this.width,s=(i-a)/this.width,c=this.rows.get(s);if(!c){this.rows.set(s,[{start:a,end:a+1,value:o}]);return}const l=this.findIndex(c,a),f=c[l],u=c[l-1];if(!f){if(!u||u.value!==o||u.end!==a){c[l]={start:a,end:a+1,value:o};return}u.end++;return}const{start:d,end:h,value:g}=f;if(o===g&&a>=d)return;const p={start:a,end:a+1,value:o},v=a>d,x=v?l+1:l,m=v?f:u;let y=v?c[l+1]:f;if((m==null?void 0:m.value)===o&&m.end===a){m.end++,(y==null?void 0:y.value)===o&&y.start===a+1?(m.end=y.end,c.splice(l,1)):(y==null?void 0:y.start)===a&&(y.start++,y.start===y.end&&(c.splice(l,1),y=c[l],(y==null?void 0:y.start)===a+1&&y.value===o&&(m.end=y.end,c.splice(l,1))));return}if((y==null?void 0:y.value)===o&&y.start===a+1){y.start--,(m==null?void 0:m.end)>a&&(m.end=a,m.end===m.start&&c.splice(l,1));return}if((y==null?void 0:y.start)===a&&y.end===a+1){y.value=o;const w=c[l+1];(w==null?void 0:w.start)==a+1&&(w==null?void 0:w.value)===o&&(c.splice(l+1,1),y.end=w.end);return}a===(y==null?void 0:y.start)&&y.start++,v&&h>a+1?c.splice(x,0,p,{start:a+1,end:m.end,value:m.value}):c.splice(x,0,p),(m==null?void 0:m.end)>a&&(m.end=a)},this.width=e,this.height=r,this.depth=n,this.jMultiple=e,this.kMultiple=this.jMultiple*r}getRLE(e,r,n=0){const i=this.rows.get(r+n*this.height);if(!i)return;const o=this.findIndex(i,e),a=i[o];return e>=(a==null?void 0:a.start)?a:void 0}findIndex(e,r){for(let n=0;n{const s=this.toIndex([i,o,a]);return this._get(s)},this.setAtIJK=(i,o,a,s)=>{const c=this.toIndex([i,o,a]),l=this._set(c,s);return l!==!1&&(this.modifiedSlices.add(a),Tr.addBounds(this.boundsIJK,[i,o,a])),l},this.getAtIJKPoint=([i,o,a])=>this.getAtIJK(i,o,a),this.setAtIJKPoint=([i,o,a],s)=>{this.setAtIJK(i,o,a,s)},this.getAtIndex=i=>this._get(i),this.setAtIndex=(i,o)=>{const a=this._set(i,o);if(a!==!1){const s=this.toIJK(i);this.modifiedSlices.add(s[2]),Tr.addBounds(this.boundsIJK,s)}return a},this.getMiddleSliceData=()=>{const i=Math.floor(this.dimensions[2]/2);return this.getSliceData({sliceIndex:i,slicePlane:2})},this.forEach=(i,o={})=>{const a=o.boundsIJK||this.getBoundsIJK(),s=o.isInObject||this.isInObject||(()=>!0),c=o.returnPoints||!1,l=o.imageData,f=Math.min(a[0][0],a[0][1]),u=Math.max(a[0][0],a[0][1]),d=Math.min(a[1][0],a[1][1]),h=Math.max(a[1][0],a[1][1]),g=Math.min(a[2][0],a[2][1]),p=Math.max(a[2][0],a[2][1]),v=[];if(l){const{imageData:x}=o,m=x.getDirection(),y=m.slice(0,3),w=m.slice(3,6),C=m.slice(6,9),S=x.getSpacing(),[T,_,E]=S,D=Ye(f,d,g),b=x.indexToWorld(D),I=Ye(y[0]*T,y[1]*T,y[2]*T),R=Ye(w[0]*_,w[1]*_,w[2]*_),M=Ye(C[0]*E,C[1]*E,C[2]*E),L=Eu(b);for(let A=g;A<=p;A++){const G=Eu(L);for(let P=d;P<=h;P++){const N=Eu(L);for(let V=f;V<=u;V++){const $=[V,P,A];if(s(L,$)){const H=this.toIndex($),Y=this._get(H);c&&v.push({value:Y,index:H,pointIJK:$,pointLPS:L.slice()}),i&&i({value:Y,index:H,pointIJK:$,pointLPS:L})}xn(L,L,I)}Md(L,N),xn(L,L,R)}Md(L,G),xn(L,L,M)}return v}if(this.map){for(const x of this.map.keys()){const m=this.toIJK(x);if(!s(null,m))continue;const y=this._get(x);c&&v.push({value:y,index:x,pointIJK:m,pointLPS:null}),i({value:y,index:x,pointIJK:m,pointLPS:null})}return v}else{for(let x=g;x<=p;x++){const m=x*this.frameSize;for(let y=d;y<=h;y++){const w=m+y*this.width;for(let C=f,S=w+C;C<=u;C++,S++){const T=this.getAtIndex(S),_=[C,y,x];s(null,_)&&(c&&v.push({value:T,index:S,pointIJK:_,pointLPS:null}),i({value:T,index:S,pointIJK:[C,y,x],pointLPS:null}))}}}return v}},this.getSliceData=({sliceIndex:i,slicePlane:o})=>{const[a,s,c]=this.dimensions,l=a*s,f=i*l;let u;const d=this.getConstructor();function h(p){return typeof p=="function"}if(!h(d))return new Uint8Array(0);let g;switch(o){case 0:u=s*c,g=new d(u);for(let p=0;p[0,e-1])}getBoundsIJK(){return this.boundsIJK[0][0]{r[0]=1/0,r[1]=-1/0}),this.modifiedSlices.clear(),(e=this.points)==null||e.clear()}getConstructor(){return this.scalarData?this.scalarData.constructor:this._getConstructor?this._getConstructor():(console.warn("No scalar data available or can be used to get the constructor"),Float32Array)}getArrayOfModifiedSlices(){return Array.from(this.modifiedSlices)}resetModifiedSlices(){this.modifiedSlices.clear()}static addBounds(e,r){e||(e=[[1/0,-1/0],[1/0,-1/0],[1/0,-1/0]]),e[0][0]=Math.min(r[0],e[0][0]),e[0][1]=Math.max(r[0],e[0][1]),e[1][0]=Math.min(r[1],e[1][0]),e[1][1]=Math.max(r[1],e[1][1]),e[2][0]=Math.min(r[2],e[2][0]),e[2][1]=Math.max(r[2],e[2][1])}addPoint(e){const r=Array.isArray(e)?e[0]+this.width*e[1]+this.frameSize*e[2]:e;this.points||(this.points=new Set),this.points.add(r)}getPoints(){return this.points?[...this.points].map(e=>this.toIJK(e)):[]}setSliceDataValue(e,r,n){if(Array.isArray(n))for(let i=0;i(o*=n,[r[o++],r[o++],r[o++]]),(o,a)=>{o*=3;const s=!pt(r[o],a);return r[o++]=a[0],r[o++]=a[1],r[o++]=a[2],s});return i.numberOfComponents=n,i.scalarData=r,i}static createImageVolumeVoxelManager({dimensions:e,imageIds:r,numberOfComponents:n=1}){const i=e[0]*e[1];function o(l){const f=Math.floor(l/i),u=r[f];if(!u)return console.warn(`ImageId not found for sliceIndex: ${f}`),{pixelData:null,pixelIndex:null};const d=_e.getImage(u);if(!d)return console.warn(`Image not found for imageId: ${u}`),{pixelData:null,pixelIndex:null};const h=d.voxelManager.getScalarData(),g=l%i*n;return{pixelData:h,pixelIndex:g}}function a(l){const{pixelData:f,pixelIndex:u}=o(l);return!f||u===null?null:n===1?f[u]:[f[u],f[u+1],f[u+2]]}function s(l,f){const{pixelData:u,pixelIndex:d}=o(l);if(!u||d===null)return!1;let h=!1;if(n===1)u[d]!==f&&(u[d]=f,h=!0);else{const g=f;for(let p=0;pa(l),(l,f)=>s(l,f));return c.numberOfComponents=n,c._getConstructor=()=>{const l=o(0);return l.pixelData?l.pixelData.constructor:null},c.getMiddleSliceData=()=>{const l=Math.floor(e[2]/2);return c.getSliceData({sliceIndex:l,slicePlane:2})},c.getRange=()=>{let l=1/0,f=-1/0;for(const u of r){const d=_e.getImage(u);d.minPixelValuef&&(f=d.maxPixelValue)}return[l,f]},c._getScalarDataLength=()=>{const{pixelData:l}=o(0);return l.length*e[2]},c.getCompleteScalarDataArray=()=>{const l=c._getConstructor();if(!l)return new Uint8Array(0);const f=c.getScalarDataLength(),u=new l(f),d=e[0]*e[1]*n;for(let h=0;h{const f=e[0]*e[1]*n,u=c._getConstructor();let d=1/0,h=-1/0;for(let g=0;g4||n<1||n===2))throw new Error(`Number of components ${n} must be 1, 3 or 4`);return n>1?Tr._createRGBScalarVolumeVoxelManager({dimensions:e,scalarData:r,numberOfComponents:n}):Tr._createNumberVolumeVoxelManager({dimensions:e,scalarData:r})}static createScalarDynamicVolumeVoxelManager({imageIdGroups:e,dimensions:r,timePoint:n=0,numberOfComponents:i=1}){if(!i){const s=_e.getImage(e[0][0]);if(!s)throw new Error("Unable to determine number of components: No image found");if(i=s.getPixelData().length/(r[0]*r[1]),i>4||i<1||i===2)throw new Error(`Number of components ${i} must be 1, 3 or 4`)}const o=e.map(s=>Tr.createImageVolumeVoxelManager({dimensions:r,imageIds:s,numberOfComponents:i})),a=new Tr(r,s=>o[n]._get(s),(s,c)=>o[n]._set(s,c));return a.numberOfComponents=i,a.getScalarDataLength=()=>o[n].getScalarDataLength(),a.getConstructor=()=>o[n].getConstructor(),a.getRange=()=>o[n].getRange(),a.getMiddleSliceData=()=>o[n].getMiddleSliceData(),a.setTimePoint=s=>{n=s,a._get=c=>o[n]._get(c),a._set=(c,l)=>o[n]._set(c,l)},a.getAtIndexAndTimePoint=(s,c)=>o[c]._get(s),a.getTimePointScalarData=s=>o[s].getCompleteScalarDataArray(),a.getTimePointScalarData=s=>o[s].getCompleteScalarDataArray(),a.getCurrentTimePointScalarData=()=>o[n].getCompleteScalarDataArray(),a}static createImageVoxelManager({width:e,height:r,scalarData:n,numberOfComponents:i=1}){const o=[e,r,1];if(!i&&(i=n.length/e/r,i>4||i<1||i===2))throw new Error(`Number of components ${i} must be 1, 3 or 4`);return i>1?Tr._createRGBScalarVolumeVoxelManager({dimensions:o,scalarData:n,numberOfComponents:i}):Tr._createNumberVolumeVoxelManager({dimensions:o,scalarData:n})}static _createNumberVolumeVoxelManager({dimensions:e,scalarData:r}){const n=new Tr(e,i=>r[i],(i,o)=>{const a=r[i]!==o;return r[i]=o,a});return n.scalarData=r,n.getMiddleSliceData=()=>{const i=Math.floor(e[2]/2);return n.getSliceData({sliceIndex:i,slicePlane:2})},n}static createMapVoxelManager({dimension:e}){const r=new Map,n=new Tr(e,r.get.bind(r),(i,o)=>r.set(i,o)&&!0);return n.map=r,n}static createHistoryVoxelManager({sourceVoxelManager:e}){const r=new Map,{dimensions:n}=e,i=new Tr(n,o=>r.get(o),function(o,a){if(r.has(o))a===r.get(o)&&r.delete(o);else{const s=this.sourceVoxelManager.getAtIndex(o);if(s===a)return!1;r.set(o,s)}this.sourceVoxelManager.setAtIndex(o,a)});return i.map=r,i.scalarData=e.scalarData,i.sourceVoxelManager=e,i}static createLazyVoxelManager({dimensions:e,planeFactory:r}){const n=new Map,[i,o]=e,a=i*o,s=new Tr(e,c=>n.get(Math.floor(c/a))[c%a],(c,l)=>{const f=Math.floor(c/a);let u=n.get(f);return u||(u=r(i,o),n.set(f,u)),u[c%a]=l,!0});return s.map=n,s}static createRLEVoxelManager({dimensions:e}){const[r,n,i]=e,o=new EM(r,n,i),a=new Tr(e,s=>o.get(s),(s,c)=>(o.set(s,c),!0));return a.map=o,a.getPixelData=o.getPixelData.bind(o),a}static addInstanceToImage(e){const{width:r,height:n}=e,i=e.voxelManager.getScalarData();if(i.length>=r*n){e.voxelManager=Tr.createScalarVolumeVoxelManager({dimensions:[r,n,1],scalarData:i});return}e.voxelManager=Tr.createRLEVoxelManager({dimensions:[r,n,1]}),e.getPixelData=e.voxelManager.getPixelData,e.sizeInBytes=Qee}};class Sh{constructor(e){this._imageIdsIndexMap=new Map,this._imageURIsIndexMap=new Map,this.cornerstoneImageMetaData=null,this.isPreScaled=!1,this.numTimePoints=null;const{imageIds:r,scaling:n,dimensions:i,spacing:o,origin:a,direction:s,dataType:c,volumeId:l,referencedVolumeId:f,metadata:u,referencedImageIds:d,additionalDetails:h,voxelManager:g,numberOfComponents:p}=e;if(!c)throw new Error('Data type is required, please provide a data type as string such as "Uint8Array", "Float32Array", etc.');let{imageData:v}=e;this.imageIds=r,this.volumeId=l,this.metadata=u,this.dimensions=i,this.spacing=o,this.origin=a,this.direction=s,this.dataType=c,this.vtkOpenGLTexture=wJ.newInstance(),this.vtkOpenGLTexture.setVolumeId(l),this.voxelManager=g??es.createImageVolumeVoxelManager({dimensions:i,imageIds:r,numberOfComponents:p}),this.numVoxels=this.dimensions[0]*this.dimensions[1]*this.dimensions[2],v||(v=C0.newInstance(),v.setDimensions(i),v.setSpacing(o),v.setDirection(s),v.setOrigin(a)),v.set({dataType:c,voxelManager:this.voxelManager,id:l,numberOfComponents:p||1}),v.set({hasScalarVolume:!1}),this.imageData=v,this.numFrames=this._getNumFrames(),this._reprocessImageIds(),n&&(this.scaling=n),f&&(this.referencedVolumeId=f),d&&(this.referencedImageIds=d),h&&(this.additionalDetails=h)}get sizeInBytes(){return this.voxelManager.sizeInBytes}get imageIds(){return this._imageIds}set imageIds(e){this._imageIds=e,this._reprocessImageIds()}_reprocessImageIds(){this._imageIdsIndexMap.clear(),this._imageURIsIndexMap.clear(),this._imageIds.forEach((e,r)=>{const n=Nn(e);this._imageIdsIndexMap.set(e,r),this._imageURIsIndexMap.set(n,r)})}isDynamicVolume(){return this.numTimePoints>1}getImageIdIndex(e){return this._imageIdsIndexMap.get(e)}getImageIdByIndex(e){return this._imageIds[e]}getImageURIIndex(e){return this._imageURIsIndexMap.get(e)}load(e){}destroy(){this.imageData.delete(),this.imageData=null,this.voxelManager.clear(),this.vtkOpenGLTexture.releaseGraphicsResources(),this.vtkOpenGLTexture.delete()}invalidate(){for(let e=0;e_e.getImage(r))}}let tf={};const Ms={add:(t,e)=>{Ms.addRaw(t,{...e,metadata:structuredClone(e.metadata)})},addRaw:(t,e)=>{const r=e.type;tf[t]||(tf[t]={}),tf[t][r]=e.metadata},get:(t,e)=>{var r;return(r=tf[e])==null?void 0:r[t]},clear:()=>{tf={}}};S0(Ms.get);const fi=new Xw("imageLoadPool");fi.grabDelay=0;fi.setMaxSimultaneousRequests(ht.Interaction,1e3);fi.setMaxSimultaneousRequests(ht.Thumbnail,1e3);fi.setMaxSimultaneousRequests(ht.Prefetch,1e3);const DM={};let ete;function bM(t,e){const r=_e.getImageLoadObject(t);if(r)return I8(r.promise,t),r;const n=t.split(":")[0],i=DM[n]||ete;if(!i)throw new Error(`loadImageFromImageLoader: No image loader found for scheme '${n}'`);const o=i(t,e);return I8(o.promise,t),o}function I8(t,e){Promise.resolve(t).then(r=>{tte(r),De(Ce,Se.IMAGE_LOADED,{image:r})}).catch(r=>{const n={imageId:e,error:r};De(Ce,Se.IMAGE_LOAD_FAILED,n)})}function tte(t){if(!t.voxelManager){const{width:e,height:r,numberOfComponents:n}=t,i=es.createImageVoxelManager({scalarData:t.getPixelData(),width:e,height:r,numberOfComponents:n});t.voxelManager=i,t.getPixelData=()=>i.getScalarData(),delete t.imageFrame.pixelData}}function nte(t,e={priority:0,requestType:"prefetch"}){if(t===void 0)throw new Error("loadImage: parameter imageId must not be undefined");return bM(t,e).promise}function Js(t,e={priority:0,requestType:"prefetch"}){if(t===void 0)throw new Error("loadAndCacheImage: parameter imageId must not be undefined");const r=bM(t,e);return _e.getImageLoadObject(t)||_e.putImageLoadObject(t,r),r.promise}function rte(t,e={}){var g;if(t===void 0)throw new Error("createAndCacheDerivedImage: parameter imageId must not be undefined");e.imageId===void 0&&(e.imageId=`derived:${wn()}`);const{imageId:r,skipCreateBuffer:n,onCacheAdd:i}=e,o=Pe("imagePlaneModule",t),a=o.rows*o.columns,{TypedArrayConstructor:s}=zw((g=e.targetBuffer)==null?void 0:g.type,a),c=new s(n?1:a),l=r,f=Pe("imagePlaneModule",t);Ms.add(l,{type:"imagePlaneModule",metadata:f});const u=Pe("generalSeriesModule",t);Ms.add(l,{type:"generalSeriesModule",metadata:u}),Ms.add(l,{type:"generalImageModule",metadata:{instanceNumber:e.instanceNumber}});const d=Pe("imagePixelModule",t);Ms.add(l,{type:"imagePixelModule",metadata:{...d,bitsAllocated:8,bitsStored:8,highBit:7,samplesPerPixel:1,pixelRepresentation:0}});const h=OM(r,{scalarData:c,onCacheAdd:i,skipCreateBuffer:n,targetBuffer:{type:c.constructor.name},dimensions:[o.columns,o.rows],spacing:[o.columnPixelSpacing,o.rowPixelSpacing],origin:o.imagePositionPatient,direction:o.imageOrientationPatient,frameOfReferenceUID:o.frameOfReferenceUID});return h.referencedImageId=t,_e.getImageLoadObject(r)||_e.putImageSync(r,h),h}function IM(t,e={}){if(t.length===0)throw new Error("createAndCacheDerivedImages: parameter imageIds must be list of image Ids");return t.map((n,i)=>{var a;const o={imageId:((a=e==null?void 0:e.getDerivedImageId)==null?void 0:a.call(e,n))||`derived:${wn()}`,...e};return rte(n,{...o,instanceNumber:i+1})})}function OM(t,e){const{scalarData:r,origin:n,direction:i,targetBuffer:o,skipCreateBuffer:a,onCacheAdd:s,frameOfReferenceUID:c}=e,l=e.dimensions,f=e.spacing;if(!l||!f)throw new Error("createAndCacheLocalImage: dimensions and spacing are required");const u=l[0],d=l[1],h=f[0],g=f[1],p={frameOfReferenceUID:c,rows:d,columns:u,imageOrientationPatient:i??[1,0,0,0,1,0],rowCosines:i?i.slice(0,3):[1,0,0],columnCosines:i?i.slice(3,6):[0,1,0],imagePositionPatient:n??[0,0,0],pixelSpacing:[g,h],rowPixelSpacing:g,columnPixelSpacing:h},v=u*d,x=r.length/v;let m;if(r){if(!(r instanceof Uint8Array||r instanceof Float32Array||r instanceof Uint16Array||r instanceof Int16Array))throw new Error("createAndCacheLocalImage: scalarData must be of type Uint8Array, Uint16Array, Int16Array or Float32Array");m=r}else if(!a){const{numBytes:I,TypedArrayConstructor:R}=zw(o==null?void 0:o.type,v);m=new R(v)}let y,w,C;if(m instanceof Uint8Array)y=8,w=8,C=7;else if(m instanceof Uint16Array)y=16,w=16,C=15;else if(m instanceof Int16Array)y=16,w=16,C=15;else if(m instanceof Float32Array)y=32,w=32,C=31;else throw new Error("Unsupported scalarData type");const S={samplesPerPixel:1,photometricInterpretation:m.length>l[0]*l[1]?"RGB":"MONOCHROME2",rows:d,columns:u,bitsAllocated:y,bitsStored:w,highBit:C},T={imagePlaneModule:p,imagePixelModule:S};["imagePlaneModule","imagePixelModule"].forEach(I=>{Ms.add(t,{type:I,metadata:T[I]||{}})});const _=es.createImageVoxelManager({height:d,width:u,numberOfComponents:x,scalarData:m});let E=m[0],D=m[0];for(let I=1;ID&&(D=m[I]);const b={imageId:t,intercept:0,windowCenter:0,windowWidth:0,color:S.photometricInterpretation==="RGB",numberOfComponents:S.samplesPerPixel,dataType:o==null?void 0:o.type,slope:1,minPixelValue:E,maxPixelValue:D,rows:S.rows,columns:S.columns,getCanvas:void 0,height:S.rows,width:S.columns,rgba:void 0,columnPixelSpacing:p.columnPixelSpacing,rowPixelSpacing:p.rowPixelSpacing,FrameOfReferenceUID:p.frameOfReferenceUID,invert:!1,getPixelData:()=>_.getScalarData(),voxelManager:_,sizeInBytes:r.byteLength};return s==null||s(b),_e.putImageSync(b.imageId,b),b}function Ap(t,e){DM[t]=e}function MM(t,e={}){return IM(t,{...e,targetBuffer:{type:"Uint8Array"}})}function RM(t){const e=t[0],{pixelRepresentation:r,bitsAllocated:n,bitsStored:i,highBit:o,photometricInterpretation:a,samplesPerPixel:s}=Pe("imagePixelModule",e),c=[],l=Pe("voiLutModule",e);let f;if(l){const{windowWidth:m,windowCenter:y}=l;if(f=l==null?void 0:l.voiLUTFunction,Array.isArray(m))for(let w=0;w({distance:c(v),imageId:v}));g.sort((v,x)=>x.distance-v.distance),a=g.map(v=>v.imageId);const p=g.length;s=Math.abs(g[p-1].distance-g[0].distance)/(p-1)}const{imagePositionPatient:l,sliceThickness:f,spacingBetweenSlices:u}=Pe("imagePlaneModule",a[0]),{strictZSpacingForVolumeViewport:d}=Jw().rendering;return s===0&&!d&&(f&&u?(console.log("Could not calculate zSpacing. Using spacingBetweenSlices"),s=u):f?(console.log("Could not calculate zSpacing and no spacingBetweenSlices. Using sliceThickness"),s=f):(console.log("Could not calculate zSpacing. The VolumeViewport visualization is compromised. Setting zSpacing to 1 to render"),s=1)),{zSpacing:s,origin:l,sortedImageIds:a}}function NM(t){const e=Pe("modalityLutModule",t)||{},r=Pe("generalSeriesModule",t)||{},{modality:n}=r,i={rescaleSlope:e.rescaleSlope||1,rescaleIntercept:e.rescaleIntercept??0,modality:n},o=Pe("scalingModule",t)||{};return{...i,...n==="PT"&&{suvbw:o.suvbw,suvbsa:o.suvbsa,suvlbm:o.suvlbm}}}const nC=t=>Object.values(t).some(r=>typeof r=="number"&&!Number.isInteger(r));function rC(t,e){const r=RM(t),{ImageOrientationPatient:n,PixelSpacing:i,Columns:o,Rows:a}=r,s=Ye(n[0],n[1],n[2]),c=Ye(n[3],n[4],n[5]),l=we();Kt(l,s,c);const{zSpacing:f,origin:u,sortedImageIds:d}=LM(t,l),h=t.length,g=[i[1],i[0],f],p=[o,a,h].map(x=>Math.floor(x)),v=[...s,...c,...l];return{dimensions:p,spacing:g,origin:u,dataType:ite(d,r),direction:v,metadata:r,imageIds:d,volumeId:e,voxelManager:null,numberOfComponents:r.PhotometricInterpretation==="RGB"?3:1}}function ite(t,e){const{BitsAllocated:r,PixelRepresentation:n,x:i}=e,o=n===1,a=Math.floor(t.length/2),s=t[a],c=NM(s),l=c.rescaleIntercept<0||c.rescaleSlope<0,f=nC(c),u=Yw();switch(r){case 8:if(o)throw new Error("8 Bit signed images are not yet supported by this plugin.");return"Uint8Array";case 16:return u&&f?"Float32Array":o||l?"Int16Array":!o&&!l?"Uint16Array":"Float32Array";case 24:return"Uint8Array";case 32:return"Float32Array";default:throw new Error(`Bits allocated of ${r} is not defined to generate scalarData for the volume.`)}}let j1=class PM{constructor(e){this.name=e||"unknown"}static as(e){if(e.iterator)return e.iterator;const r=new PM("as iterator");return e.then(n=>{try{r.add(n,!0)}catch(i){r.reject(i)}},n=>{r.reject(n)}),r}add(e,r=!1){this.nextValue=e,this.done||(this.done=r),this.waiting&&(this.waiting.resolve(e),this.waiting=void 0)}resolve(){this.done=!0,this.waiting&&(this.waiting.resolve(this.nextValue),this.waiting=void 0)}reject(e){var r;this.rejectReason=e,(r=this.waiting)==null||r.reject(e)}getRecent(){if(this.rejectReason)throw this.rejectReason;return this.nextValue}async*[Symbol.asyncIterator](){for(;!this.done;){if(this.rejectReason)throw this.rejectReason;if(this.nextValue!==void 0&&(yield this.nextValue,this.done))break;this.waiting||(this.waiting={},this.waiting.promise=new Promise((e,r)=>{this.waiting.resolve=e,this.waiting.reject=r})),await this.waiting.promise}yield this.nextValue}async forEach(e,r){let n=0;try{for await(const i of this){const{done:o}=this;try{await e(i,o,n),n++}catch(a){if(!o){console.warn("Caught exception in intermediate value",a);continue}if(r)r(a,o);else throw a}}}catch(i){if(r)r(i,!0);else throw i}}generate(e,r){return e(this,this.reject.bind(this)).then(()=>{this.done||this.resolve()},n=>{this.reject(n),r?r(n):console.warn("Couldn't process because",n)})}async nextPromise(){for await(const e of this)if(e)return e;return this.nextValue}async donePromise(){for await(const e of this);return this.nextValue}getNextPromise(){const e=this.nextPromise();return e.iterator=this,e}getDonePromise(){const e=this.donePromise();return e.iterator=this,e}};const Fv=new Map,O8="imageRetrieveConfiguration",Ad={IMAGE_RETRIEVE_CONFIGURATION:O8,clear:()=>{Fv.clear()},add:(t,e)=>{Fv.set(t,e)},get:(t,...e)=>{if(t===O8)return e.map(r=>Fv.get(r)).find(r=>r!==void 0)}};S0(Ad.get.bind(Ad));function Th(t){const e=_i(),r=[];return e.forEach(n=>{const o=n.getVolumeViewports().filter(a=>a.hasVolumeId(t));r.push(...o)}),r}const i3=t=>{const e=ote(t);e!=null&&e.length&&e.forEach(({renderingEngine:r,viewportIds:n})=>{r.hasBeenDestroyed||r.renderViewports(n)})};function ote(t){const e=_i(),r=[];return e.forEach(n=>{const i=Th(t);i.length&&r.push({renderingEngine:n,viewportIds:i.map(o=>o.id)})}),r}const M8=[{id:"initialImages",retrieveType:"single"}],ate=[{id:"lossySequential",retrieveType:"singleFast"},{id:"finalSequential",retrieveType:"singleFinal"}],Uv=[{offset:-1,imageQualityStatus:Pi.ADJACENT_REPLICATE},{offset:1,imageQualityStatus:Pi.ADJACENT_REPLICATE},{offset:2,imageQualityStatus:Pi.FAR_REPLICATE}],ste=[{id:"initialImages",positions:[.5,0,-1],retrieveType:"default",requestType:ht.Thumbnail,priority:5,nearbyFrames:Uv},{id:"quarterThumb",decimate:4,offset:3,requestType:ht.Thumbnail,retrieveType:"multipleFast",priority:6,nearbyFrames:Uv},{id:"halfThumb",decimate:4,offset:1,priority:7,requestType:ht.Thumbnail,retrieveType:"multipleFast",nearbyFrames:Uv},{id:"quarterFull",decimate:4,offset:2,priority:8,requestType:ht.Thumbnail,retrieveType:"multipleFinal"},{id:"halfFull",decimate:4,offset:0,priority:9,requestType:ht.Thumbnail,retrieveType:"multipleFinal"},{id:"threeQuarterFull",decimate:4,offset:1,priority:10,requestType:ht.Thumbnail,retrieveType:"multipleFinal"},{id:"finalFull",decimate:4,offset:3,priority:11,requestType:ht.Thumbnail,retrieveType:"multipleFinal"},{id:"errorRetrieve"}];function AM(t,e,r=0){const n=[];for(let i=r;i=a)continue;const c={...r,imageId:o,imageQualityStatus:a};_e.setPartialImage(o,c),t.successCallback(o,c)}catch(o){console.warn("Couldn't fill nearby item ",i.itemId,o)}}const gu=class gu{constructor(e){this.stages=e.stages||M8,this.retrieveOptions=e.retrieveOptions||{}}loadImages(e,r){return new lte(this,e,r).loadImages()}};gu.createProgressive=kM,gu.interleavedRetrieveStages={stages:ste},gu.singleRetrieveStages={stages:M8},gu.sequentialRetrieveStages={stages:ate};let H1=gu;class lte{constructor(e,r,n){this.outstandingRequests=0,this.stageStatusMap=new Map,this.displayedIterator=new j1("displayed"),this.stages=e.stages,this.retrieveOptions=e.retrieveOptions,this.imageIds=r,this.listener=n}async loadImages(){const e=this.createStageRequests();this.outstandingRequests=e.length;for(const r of e)this.addRequest(r);return this.outstandingRequests===0?Promise.resolve(null):this.displayedIterator.getDonePromise()}sendRequest(e,r){const{imageId:n,next:i}=e,o=(f,u)=>{this.listener.errorCallback(n,c||!i,f),u&&this.updateStageStatus(e.stage,f)},a=(r.loader||Js)(n,r),s=j1.as(a);let c=!1;return s.forEach(async(f,u)=>{const d=_e.getImageQuality(n);if(!f){console.warn("No image retrieved",n);return}const{imageQualityStatus:h}=f;if(c||(c=h===Pi.FULL_RESOLUTION),d!==void 0&&d>h){this.updateStageStatus(e.stage,null,!0);return}this.listener.successCallback(n,f),this.displayedIterator.add(f),u&&this.updateStageStatus(e.stage),cte(this.listener,e,f)},o).finally(()=>{if(!c&&i)_e.setPartialImage(n),this.addRequest(i,r.streamingData);else{c||this.listener.errorCallback(n,!0,"Couldn't decode"),this.outstandingRequests--;for(let f=i;f;f=f.next)this.updateStageStatus(f.stage,null,!0)}this.outstandingRequests<=0&&this.displayedIterator.resolve()}),s.getDonePromise().catch(f=>null)}addRequest(e,r={}){const{imageId:n,stage:i}=e,o=this.listener.getLoaderImageOptions(n);if(!o)return;const{retrieveType:a="default"}=i,{retrieveOptions:s}=this,c=s[a]||s.default,l={...o,retrieveType:a,retrieveOptions:c,streamingData:r},f=i.priority??-5,u=i.requestType||ht.Interaction,d={imageId:n};fi.addRequest(this.sendRequest.bind(this,e,l),u,d,f)}updateStageStatus(e,r,n=!1){const{id:i}=e,o=this.stageStatusMap.get(i);if(o&&(o.imageLoadPendingCount--,r?o.imageLoadFailedCount++:n||o.totalImageCount++,!n&&!o.stageStartTime&&(o.stageStartTime=Date.now()),!o.imageLoadPendingCount)){const{imageLoadFailedCount:a,totalImageCount:s,stageStartTime:c=Date.now(),startTime:l}=o,f={stageId:i,numberOfFailures:a,numberOfImages:s,stageDurationInMS:c?Date.now()-c:null,startDurationInMS:Date.now()-l};De(Ce,Se.IMAGE_RETRIEVAL_STAGE,f),this.stageStatusMap.delete(i)}}createStageRequests(){const e=new Array,r=new Map,n=(i,o)=>{const a=o<0?this.imageIds.length+o:o<1?Math.floor((this.imageIds.length-1)*o):o,s=this.imageIds[a];if(!s)throw new Error(`No value found to add to requests at ${o}`);const c={imageId:s,stage:i,index:a,nearbyRequests:this.findNearbyRequests(a,i)};this.addStageStatus(i);const l=r.get(s);l?l.next=c:e.push(c),r.set(s,c)};for(const i of this.stages)(i.positions||AM(this.imageIds,i.decimate||1,i.offset??0)).forEach(a=>{n(i,a)});return e}findNearbyRequests(e,r){const n=new Array;if(!r.nearbyFrames)return n;for(const i of r.nearbyFrames){const o=e+i.offset;o<0||o>=this.imageIds.length||n.push({itemId:this.imageIds[o],imageQualityStatus:i.imageQualityStatus,index:o})}return n}addStageStatus(e){const{id:r}=e,n=this.stageStatusMap.get(r)||{stageId:r,startTime:Date.now(),stageStartTime:null,totalImageCount:0,imageLoadFailedCount:0,imageLoadPendingCount:0};return n.imageLoadPendingCount++,this.stageStatusMap.set(r,n),n}}function kM(t){return new H1(t)}const R8=ht.Prefetch;class ute extends Sh{constructor(e,r){super(e),this.framesLoaded=0,this.framesProcessed=0,this.framesUpdated=0,this.autoRenderOnLoad=!0,this.cachedFrames=[],this.reRenderTarget=0,this.reRenderFraction=2,this.imagesLoader=this,this.cancelLoading=()=>{const{loadStatus:n}=this;if(!n||!n.loading)return;n.loading=!1,n.cancelled=!0,this.clearLoadCallbacks();const i=({additionalDetails:o})=>o.volumeId!==this.volumeId;fi.filterRequests(i)},this.loadStatus=r.loadStatus}invalidateVolume(e){const{vtkOpenGLTexture:r}=this,{numFrames:n}=this;for(let i=0;ithis.reRenderTarget||n===i)&&(this.reRenderTarget+=a,i3(o)),n===i){s.callbacks.forEach(u=>u(e));const f={FrameOfReferenceUID:l,volumeId:o};De(Ce,Se.IMAGE_VOLUME_LOADING_COMPLETED,f)}}updateTextureAndTriggerEvents(e,r,n=Pi.FULL_RESOLUTION){const i=this.imageIdIndexToFrameIndex(e),{cachedFrames:o,numFrames:a,totalNumFrames:s}=this,{FrameOfReferenceUID:c}=this.metadata;if(o[i]>n||o[i]===Pi.FULL_RESOLUTION)return;const f=n===Pi.FULL_RESOLUTION;o[e]=n,this.framesUpdated++,f&&(this.framesLoaded++,this.framesProcessed++);const u={FrameOfReferenceUID:c,volumeId:this.volumeId,numberOfFrames:a,framesProcessed:this.framesProcessed};De(Ce,Se.IMAGE_VOLUME_MODIFIED,u),f&&this.framesProcessed===this.totalNumFrames&&(this.loadStatus.loaded=!0,this.loadStatus.loading=!1),this.callLoadStatusCallback({success:!0,imageIdIndex:e,imageId:r,framesLoaded:this.framesLoaded,framesProcessed:this.framesProcessed,framesUpdated:this.framesUpdated,numFrames:a,totalNumFrames:s,complete:f,imageQualityStatus:n}),this.vtkOpenGLTexture.setUpdatedFrame(i),this.loadStatus.loaded&&(this.loadStatus.callbacks=[])}successCallback(e,r){const n=this.getImageIdIndex(e),{imageQualityStatus:i}=r;if(this.loadStatus.cancelled){console.warn("volume load cancelled, returning for imageIdIndex: ",n);return}this.updateTextureAndTriggerEvents(n,e,i),this.isDynamicVolume()&&this.checkTimePointCompletion(n)}errorCallback(e,r,n){if(!r)return;const{totalNumFrames:i,numFrames:o}=this,a=this.getImageIdIndex(e);this.framesProcessed++,this.framesProcessed===i&&(this.loadStatus.loaded=!0,this.loadStatus.loading=!1),this.callLoadStatusCallback({success:!1,imageId:e,imageIdIndex:a,error:n,framesLoaded:this.framesLoaded,framesProcessed:this.framesProcessed,framesUpdated:this.framesUpdated,numFrames:o,totalNumFrames:i}),this.loadStatus.loaded&&(this.loadStatus.callbacks=[]);const s={error:n,imageIdIndex:a,imageId:e};De(Ce,Se.IMAGE_LOAD_ERROR,s)}load(e){const{imageIds:r,loadStatus:n,numFrames:i}=this,{transferSyntaxUID:o}=Pe("transferSyntax",r[0])||{},a=Pe(Ad.IMAGE_RETRIEVE_CONFIGURATION,this.volumeId,o,"volume");if(this.imagesLoader=this.isDynamicVolume()?this:a?(a.create||H1.createProgressive)(a):this,n.loading===!0)return;const{loaded:s}=this.loadStatus,c=r.length;if(s){e&&e({success:!0,framesLoaded:c,framesProcessed:c,numFrames:i,totalNumFrames:c});return}e&&this.loadStatus.callbacks.push(e),this._prefetchImageIds()}getLoaderImageOptions(e){const{transferSyntaxUID:r}=Pe("transferSyntax",e)||{},n=Pe("imagePlaneModule",e)||{},{rows:i,columns:o}=n,a=this.getImageIdIndex(e),s=Pe("modalityLutModule",e)||{},c=Pe("generalSeriesModule",e)||{},l={rescaleSlope:s.rescaleSlope,rescaleIntercept:s.rescaleIntercept,modality:c.modality};if(l.modality==="PT"){const h=Pe("scalingModule",e);h&&(this._addScalingToVolume(h),l.suvbw=h.suvbw)}const f=nC(l),u=Yw();if(this.isPreScaled=!0,l&&l.rescaleSlope!==void 0&&l.rescaleIntercept!==void 0){const{rescaleSlope:h,rescaleIntercept:g}=l;this.isPreScaled=typeof h=="number"&&typeof g=="number"}return!u&&f&&(this.isPreScaled=!1),{targetBuffer:{type:this.dataType,rows:i,columns:o},allowFloatRendering:u,preScale:{enabled:this.isPreScaled,scalingParameters:l},transferPixelData:!0,requestType:R8,transferSyntaxUID:r,additionalDetails:{imageId:e,imageIdIndex:a,volumeId:this.volumeId}}}callLoadImage(e,r,n){const{cachedFrames:i}=this;if(i[r]===Pi.FULL_RESOLUTION)return;const o=s=>{const{image:c}=s.detail;c.imageId===e&&(this.vtkOpenGLTexture.setUpdatedFrame(r),Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_ADDED,o))};return Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_ADDED,o),j1.as(Js(e,n)).forEach(s=>{this.successCallback(e,s)},this.errorCallback.bind(this,r,e))}getImageIdsRequests(e,r){this.totalNumFrames=this.imageIds.length;const n=2;return this.autoRenderOnLoad&&(this.reRenderFraction=this.totalNumFrames*(n/100),this.reRenderTarget=this.reRenderFraction),e.map(o=>{const a=this.getImageIdIndex(o),s=R8,c=r,l=this.getLoaderImageOptions(o);return{callLoadImage:this.callLoadImage.bind(this),imageId:o,imageIdIndex:a,options:l,priority:c,requestType:s,additionalDetails:{volumeId:this.volumeId}}})}getImageLoadRequests(e){throw new Error("Abstract method")}getImageIdsToLoad(){throw new Error("Abstract method")}loadImages(){return this.loadStatus.loading=!0,this.getImageLoadRequests(5).reverse().forEach(r=>{if(!r)return;const{callLoadImage:n,imageId:i,imageIdIndex:o,options:a,priority:s,requestType:c,additionalDetails:l}=r;fi.addRequest(n.bind(this,i,o,a),c,l,s)}),Promise.resolve(!0)}_prefetchImageIds(){this.loadStatus.loading=!0;const e=[...this.getImageIdsToLoad()];this.totalNumFrames=this.imageIds.length;const r=2;return this.autoRenderOnLoad&&(this.reRenderFraction=this.totalNumFrames*(r/100),this.reRenderTarget=this.reRenderFraction),this.imagesLoader.loadImages(e,this).catch(n=>{console.debug("progressive loading failed to complete",n)})}_addScalingToVolume(e){if(this.scaling)return;const{suvbw:r,suvlbm:n,suvbsa:i}=e,o={};n&&(o.suvbwToSuvlbm=n/r),i&&(o.suvbwToSuvbsa=i/r),r&&(o.suvbw=r),this.scaling={PT:o}}checkTimePointCompletion(e){}}class fte extends ute{constructor(e,r){e.imageIds||(e.imageIds=r.imageIds),super(e,r),this.getImageIdsToLoad=()=>{const{imageIds:n}=this;return this.numFrames=n.length,n}}getScalarData(){return this.voxelManager.getScalarData()}getImageLoadRequests(e){const{imageIds:r}=this;return this.getImageIdsRequests(r,e)}}function dte(t,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume");async function r(){if(e.imageIds[0].split(":")[0]==="wadouri"){const[g,p]=[Math.floor(e.imageIds.length/2),e.imageIds.length-1],v=[0,g,p];await Promise.all(v.map(x=>new Promise((m,y)=>{const w=e.imageIds[x];fi.addRequest(async()=>{nte(w).then(()=>{console.log(`Prefetched imageId: ${w}`),m(!0)}).catch(C=>{y(C)})},ht.Prefetch,{volumeId:t},1)}))).catch(console.error)}const i=rC(e.imageIds,t),{dimensions:o,spacing:a,origin:s,direction:c,metadata:l,imageIds:f,dataType:u,numberOfComponents:d}=i;return new fte({volumeId:t,metadata:l,dimensions:o,spacing:a,origin:s,direction:c,imageIds:f,dataType:u,numberOfComponents:d},{imageIds:f,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}})}const n=r();return{promise:n,decache:()=>{n.then(i=>{i.destroy(),i=null})},cancel:()=>{n.then(i=>{i.cancelLoading()})}}}const VM={};let kp=dte;function FM(t,e){const r=t.indexOf(":"),n=t.substring(0,r);let i=VM[n];if(i==null){if(kp==null||typeof kp!="function")throw new Error(`No volume loader for scheme ${n} has been registered`);i=kp}const o=i(t,e);return o.promise.then(function(a){De(Ce,Se.VOLUME_LOADED,{volume:a})},function(a){const s={volumeId:t,error:a};De(Ce,Se.VOLUME_LOADED_FAILED,s)}),o}function hte(t,e={imageIds:[]}){if(t===void 0)throw new Error("loadVolume: parameter volumeId must not be undefined");let r=_e.getVolumeLoadObject(t);return r!==void 0?r.promise:(r=FM(t,e),r.promise.then(n=>n))}async function iC(t,e){if(t===void 0)throw new Error("createAndCacheVolume: parameter volumeId must not be undefined");let r=_e.getVolumeLoadObject(t);return r!==void 0||(r=FM(t,e),_e.putVolumeLoadObject(t,r)),r.promise}function gte(t,e){const r=_e.getVolume(t);if(!r)throw new Error(`Cannot created derived volume: Referenced volume with id ${t} does not exist.`);let{volumeId:n}=e;n===void 0&&(n=wn());const{metadata:i,dimensions:o,spacing:a,origin:s,direction:c}=r,l=r.isDynamicVolume()?r.getCurrentTimePointImageIds():r.imageIds??[],f=IM(l,{targetBuffer:e.targetBuffer}),u=f[0].dataType,d=f.map(g=>g.imageId),h=new Sh({volumeId:n,dataType:u,metadata:structuredClone(i),dimensions:[o[0],o[1],o[2]],spacing:a,origin:s,direction:c,referencedVolumeId:t,imageIds:d,referencedImageIds:r.imageIds??[]});return _e.putVolumeSync(n,h),h}async function oC(t,e){if(e===void 0)throw new Error("createAndCacheVolumeFromImages: parameter imageIds must not be undefined");if(t===void 0)throw new Error("createAndCacheVolumeFromImages: parameter volumeId must not be undefined");const r=_e.getVolume(t);return r||(e.filter(o=>!_e.getImage(o)).length===0?UM(t,e):await iC(t,{imageIds:e}))}function UM(t,e){if(e===void 0)throw new Error("createAndCacheVolumeFromImagesSync: parameter imageIds must not be undefined");if(t===void 0)throw new Error("createAndCacheVolumeFromImagesSync: parameter volumeId must not be undefined");const r=_e.getVolume(t);if(r)return r;const n=rC(e,t),i=new Sh({volumeId:t,dataType:n.dataType,metadata:structuredClone(n.metadata),dimensions:n.dimensions,spacing:n.spacing,origin:n.origin,direction:n.direction,referencedVolumeId:n.referencedVolumeId,imageIds:n.imageIds,referencedImageIds:n.referencedImageIds});return _e.putVolumeSync(t,i),i}function BM(t,e={}){const{metadata:r,dimensions:n,spacing:i,origin:o,direction:a,scalarData:s,targetBuffer:c,preventCache:l=!1}=e,f=_e.getVolume(t);if(f)return f;const u=n[0]*n[1],d=s?s.constructor.name:(c==null?void 0:c.type)??"Float32Array",h=u*n[2];let g;switch(d){case"Uint8Array":case"Int8Array":g=h;break;case"Uint16Array":case"Int16Array":g=h*2;break;case"Float32Array":g=h*4;break}if(!_e.isCacheable(g))throw new Error(`Cannot created derived volume: Volume with id ${t} is not cacheable.`);const v=[];for(let y=0;y{const e="volumeId:",r=t.includes(e)?t.substring(e.length):t,n=r.indexOf("sliceIndex=");return n===-1?r:r.substring(0,n-1)},Ete=1+Lo,Dte=(t,e)=>e===t.substring(0,Math.min(t.length,e.length)),N8=t=>!!pte().find(e=>Dte(t.volumeId,e));function E0(t,e,r,n=!1){const{viewPlaneNormal:i}=e,o=t.getActors();if(!o.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const a=o.map(l=>{const f=l.referencedId??l.uid;return _e.getVolume(f)}).filter(l=>!!l);if(r){const l=da(r),f=a.findIndex(g=>l.includes(g.volumeId)),u=a[f],{uid:d}=o[f],h=P8(u,i,t,n);return{imageVolume:u,spacingInNormalDirection:h,actorUID:d}}if(!a.length)return{spacingInNormalDirection:null,imageVolume:null,actorUID:null};const s={spacingInNormalDirection:1/0,imageVolume:null,actorUID:null},c=a.find(N8);for(let l=0;lg.referencedId===n.volumeId||g.uid===n.volumeId);a||console.warn("No actor found for with actorUID of",n.volumeId);const s=a.actor,c=s2(s,i,o),{min:l,max:f,current:u}=c,d=Math.round((f-l)/r)+1;let h=(u-l)/(f-l)*d;return h=Math.floor(h),h>d-1?h=d-1:h<0&&(h=0),{numberOfSlices:d,imageIndex:h}}const su={};function bte(t){su[t]!==void 0&&delete su[t]}function Ite(t){const{renderingEngineId:e,viewportId:r}=t.detail,i=gr(e).getViewport(r);if(!("setVolumes"in i))throw new Error("volumeNewImageEventDispatcher: viewport does not have setVolumes method");su[i.id]===void 0&&(su[i.id]=0);const o=K1(i);if(!o){console.warn(`volumeNewImageEventDispatcher: sliceData is undefined for viewport ${i.id}`);return}const{numberOfSlices:a,imageIndex:s}=o;if(su[i.id]===s)return;su[i.id]=s;const c={imageIndex:s,viewportId:r,renderingEngineId:e,numberOfSlices:a};De(i.element,Se.VOLUME_NEW_IMAGE,c)}function Ju(t,e,r){const[n,i,o]=t,[a,s,c]=e,[l,f,u,d]=r,h=a-n,g=s-i,p=c-o,v=-1*(l*n+f*i+u*o-d)/(l*h+f*g+u*p),x=h*v+n,m=g*v+i,y=p*v+o;return[x,m,y]}function Ba(t,e,r=!1){const[n,i,o]=t,a=n*e[0]+i*e[1]+o*e[2];if(r){const s=Math.sqrt(n*n+i*i+o*o);return[n/s,i/s,o/s,a/s]}return[n,i,o,a]}function GM(t,e,r){const[n,i,o,a]=t,[s,c,l,f]=e,[u,d,h,g]=r,p=_f(n,s,u,i,c,d,o,l,h),v=_f(a,f,g,i,c,d,o,l,h),x=_f(n,s,u,a,f,g,o,l,h),m=_f(n,s,u,i,c,d,a,f,g),y=Dc(v)/Dc(p),w=Dc(x)/Dc(p),C=Dc(m)/Dc(p);return[y,w,C]}function q1(t,e,r=!1){const[n,i,o,a]=t,[s,c,l]=e,f=n*s+i*c+o*l-a,u=Math.abs(f)/Math.sqrt(n*n+i*i+o*o);return(r?Math.sign(f):1)*u}const Ote=Object.freeze(Object.defineProperty({__proto__:null,linePlaneIntersection:Ju,planeDistanceToPoint:q1,planeEquation:Ba,threePlaneIntersection:GM},Symbol.toStringTag,{value:"Module"}));function o3(t){return Array.isArray(t)?t.some(e=>Number.isNaN(e)):Number.isNaN(t)}function to(t){if(t===null||typeof t!="object"||typeof t=="function"||typeof structuredClone=="function")return t;if(Array.isArray(t))return t.map(to);{const e={};for(const r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=to(t[r]));return e}}const od=class od{constructor(e){this.insetImageMultiplier=1.1,this.flipHorizontal=!1,this.flipVertical=!1,this.viewportStatus=oi.NO_DATA,this._suppressCameraModifiedEvents=!1,this.hasPixelSpacing=!0,this.getProperties=()=>({}),this.setRotation=r=>{},this.viewportWidgets=new Map,this.addWidget=(r,n)=>{this.viewportWidgets.set(r,n)},this.getWidget=r=>this.viewportWidgets.get(r),this.getWidgets=()=>Array.from(this.viewportWidgets.values()),this.removeWidgets=()=>{this.getWidgets().forEach(n=>{if(n.getEnabled()&&n.setEnabled(!1),n.getActor&&n.getRenderer){const i=n.getActor(),o=n.getRenderer();o&&i&&o.removeActor(i)}})},this.id=e.id,this.renderingEngineId=e.renderingEngineId,this.type=e.type,this.element=e.element,this.canvas=e.canvas,this.sx=e.sx,this.sy=e.sy,this.sWidth=e.sWidth,this.sHeight=e.sHeight,this._actors=new Map,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.defaultOptions=to(e.defaultOptions),this.suppressEvents=e.defaultOptions.suppressEvents?e.defaultOptions.suppressEvents:!1,this.options=to(e.defaultOptions),this.isDisabled=!1}static get useCustomRenderingPipeline(){return!1}setRendered(){this.viewportStatus===oi.NO_DATA||this.viewportStatus===oi.LOADING||(this.viewportStatus=oi.RENDERED)}getRenderingEngine(){return bd.get(this.renderingEngineId)}getRenderer(){var r;const e=this.getRenderingEngine();if(!e||e.hasBeenDestroyed)throw new Error("Rendering engine has been destroyed");return(r=e.offscreenMultiRenderWindow)==null?void 0:r.getRenderer(this.id)}render(){this.getRenderingEngine().renderViewport(this.id)}setOptions(e,r=!1){var n,i;this.options=structuredClone(e),(n=this.options)!=null&&n.displayArea&&this.setDisplayArea((i=this.options)==null?void 0:i.displayArea),r&&this.render()}reset(e=!1){this.options=structuredClone(this.defaultOptions),e&&this.render()}getSliceViewInfo(){throw new Error("Method not implemented.")}flip({flipHorizontal:e,flipVertical:r}){const n=this.getDefaultImageData();if(!n)return;const i=this.getCamera(),{viewPlaneNormal:o,viewUp:a,focalPoint:s,position:c}=i,l=Kt(we(),o,a);let f=Md(we(),a);const u=qc(we(),o),d=Cr(c,s),g=n.getDimensions().map(C=>Math.floor(C/2)),p=[g[0],g[1],g[2]],v=n.indexToWorld(p,we()),x=this._getFocalPointForResetCamera(v,i,{resetPan:!0,resetToCenter:!1}),m=kt(we(),s,x),y=ui(m),w=C=>{const S=lr(we(),C,2*je(m,C));return kt(S,S,m),on(S,S),S};if(e){const C=w(f),S=Vt(we(),x,C,y),T=Vt(we(),S,u,d);this.setCamera({viewPlaneNormal:u,position:T,focalPoint:S}),this.flipHorizontal=!this.flipHorizontal}if(r){f=qc(f,a);const C=w(l),S=Vt(we(),x,C,y),T=Vt(we(),S,u,d);this.setCamera({focalPoint:S,viewPlaneNormal:u,viewUp:f,position:T}),this.flipVertical=!this.flipVertical}this.render()}getDefaultImageData(){const e=this.getDefaultActor();if(e&&Xo(e))return e.actor.getMapper().getInputData()}getDefaultActor(){return this.getActors()[0]}getActors(){return Array.from(this._actors.values())}getActorUIDs(){return Array.from(this._actors.keys())}getActor(e){return this._actors.get(e)}getImageActor(e){const r=this.getActors();let n=r[0];return e&&(n=r.find(o=>o.referencedId===e)),!n||!Xo(n)?null:n.actor}getActorUIDByIndex(e){const r=this.getActors()[e];if(r)return r.uid}getActorByIndex(e){return this.getActors()[e]}setActors(e){this.removeAllActors(),this.addActors(e,{resetCamera:!0})}_removeActor(e){const r=this.getActor(e);if(!r){console.warn(`Actor ${e} does not exist for this viewport`);return}this.getRenderer().removeViewProp(r.actor),this._actors.delete(e)}removeActors(e){e.forEach(r=>{this._removeActor(r)})}addActors(e,r={}){const{resetCamera:n=!1}=r,i=this.getRenderingEngine();if(!i||i.hasBeenDestroyed){console.warn("Viewport::addActors::Rendering engine has not been initialized or has been destroyed");return}e.forEach(s=>{this.addActor(s)});const o=this.getViewPresentation(),a=this.getViewReference();this.resetCamera(),n||(this.setViewReference(a),this.setViewPresentation(o))}addActor(e){const{uid:r,actor:n}=e,i=this.getRenderingEngine();if(!i||i.hasBeenDestroyed){console.warn(`Cannot add actor UID of ${r} Rendering Engine has been destroyed`);return}if(!r||!n)throw new Error("Actors should have uid and vtk Actor properties");if(this.getActor(r)){console.warn(`Actor ${r} already exists for this viewport`);return}const o=this.getRenderer();o==null||o.addActor(n),this._actors.set(r,Object.assign({},e)),this.updateCameraClippingPlanesAndRange()}removeAllActors(){var e;(e=this.getRenderer())==null||e.removeAllViewProps(),this._actors=new Map}resetCameraNoEvent(){this._suppressCameraModifiedEvents=!0,this.resetCamera(),this._suppressCameraModifiedEvents=!1}setCameraNoEvent(e){this._suppressCameraModifiedEvents=!0,this.setCamera(e),this._suppressCameraModifiedEvents=!1}_getViewImageDataIntersections(e,r,n){const i=n[0],o=n[1],a=n[2],s=i*r[0]+o*r[1]+a*r[2],c=e.getBounds(),l=this._getEdges(c),f=[];for(const u of l){const[[d,h,g],[p,v,x]]=u;if(i*(p-d)+o*(v-h)+a*(x-g)===0)continue;const m=Ju([d,h,g],[p,v,x],[i,o,a,s]);this._isInBounds(m,c)&&f.push(m)}return f}setInterpolationType(e,r){}setDisplayArea(e,r=!1){var a;if(!e)return;const{storeAsInitialCamera:n,type:i}=e;n&&(this.options.displayArea=e);const{_suppressCameraModifiedEvents:o}=this;if(this._suppressCameraModifiedEvents=!0,this.setCamera(this.fitToCanvasCamera),i==="SCALE"?this.setDisplayAreaScale(e):(this.setInterpolationType(((a=this.getProperties())==null?void 0:a.interpolationType)||La.LINEAR),this.setDisplayAreaFit(e)),n&&(this.initialCamera=this.getCamera()),this._suppressCameraModifiedEvents=o,!r&&!o){const s={viewportId:this.id,displayArea:e,storeAsInitialCamera:n};De(this.element,Se.DISPLAY_AREA_MODIFIED,s),this.setCamera(this.getCamera())}}setDisplayAreaScale(e){const{scale:r=1}=e,n=this.canvas,i=n.height,o=n.width;if(i<8||o<8)return;const c=this.getDefaultImageData().getSpacing()[1];this.setInterpolationType(La.NEAREST),this.setCamera({parallelScale:i*c/(2*r)}),delete e.imageArea,this.setDisplayAreaFit(e);const{focalPoint:l,position:f,viewUp:u,viewPlaneNormal:d}=this.getCamera(),h=we();if(n.height%2&&Vt(h,h,u,r*.5*c),n.width%2){const g=Kt(we(),u,d);Vt(h,h,g,r*.5*c)}!h[0]&&!h[1]&&!h[2]||this.setCamera({focalPoint:xn(we(),l,h),position:xn(we(),f,h)})}setDisplayAreaFit(e){const{imageArea:r,imageCanvasPoint:n}=e,i=(window==null?void 0:window.devicePixelRatio)||1,o=this.getDefaultImageData();if(!o)return;const a=this.sWidth/i,s=this.sHeight/i,c=o.getDimensions(),l=this.worldToCanvas(o.indexToWorld([0,0,0])),f=this.worldToCanvas(o.indexToWorld([c[0]-1,c[1]-1,c[2]])),u=[Math.abs(f[0]-l[0]),Math.abs(f[1]-l[1])],[d,h]=u;if(r){const[g,p]=r,v=Math.abs(g*d/a),x=Math.abs(p*h/s),m=this.getZoom(),y=this.getZoom(this.fitToCanvasCamera),C=Math.min(1/v,1/x)*m/y;this.setZoom(C,!1)}if(n){const{imagePoint:g,canvasPoint:p=g||[.5,.5]}=n,[v,x]=p,m=a*(v-.5),y=s*(x-.5),[w,C]=g||p,S=1,T=S*d*(.5-w),_=S*h*(.5-C),E=T+m,D=_+y,b=[E,D];Lr(b,b,this.getPan()),this.setPan(b,!1)}}getDisplayArea(){var e;return(e=this.options)==null?void 0:e.displayArea}resetCamera(e){const{resetPan:r=!0,resetZoom:n=!0,resetToCenter:i=!0,storeAsInitialCamera:o=!0}=e||{},a=this.getRenderer();this.setCameraNoEvent({flipHorizontal:!1,flipVertical:!1});const s=this.getCamera(),c=a.computeVisiblePropBounds(),l=[0,0,0],f=this.getDefaultImageData();if(f){const R=f.getSpacing();c[0]=c[0]+R[0]/2,c[1]=c[1]-R[0]/2,c[2]=c[2]+R[1]/2,c[3]=c[3]-R[1]/2,c[4]=c[4]+R[2]/2,c[5]=c[5]-R[2]/2}const u=this.getVtkActiveCamera(),d=u.getViewPlaneNormal(),h=u.getViewUp();if(l[0]=(c[0]+c[1])/2,l[1]=(c[2]+c[3])/2,l[2]=(c[4]+c[5])/2,f){const M=f.getDimensions().map(A=>Math.floor(A/2)),L=[M[0],M[1],M[2]];f.indexToWorld(L,l)}const{widthWorld:g,heightWorld:p}=this._getWorldDistanceViewUpAndViewRight(c,h,d),v=[this.sWidth,this.sHeight],x=g/p,m=v[0]/v[1],y=x/m,w=y<1?this.insetImageMultiplier*p/2:this.insetImageMultiplier*p*y/2,C=od.boundsRadius(c)*(this.type===mn.VOLUME_3D?10:1),S=this.insetImageMultiplier*C,T=Math.abs(nt.dot(h,d))>.999?[-h[2],h[0],h[1]]:h,_=this._getFocalPointForResetCamera(l,s,{resetPan:r,resetToCenter:i}),E=[_[0]+S*d[0],_[1]+S*d[1],_[2]+S*d[2]];a.resetCameraClippingRange(c);const D=[-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE];u.setPhysicalScale(C),u.setPhysicalTranslation(-_[0],-_[1],-_[2]),this.setCamera({parallelScale:n?w:s.parallelScale,focalPoint:_,position:E,viewAngle:90,viewUp:T,clippingRange:D});const b=this.getCamera();this.setFitToCanvasCamera(this.getCamera()),o&&this.setInitialCamera(b),n&&this.setZoom(1,o);const I={type:"ResetCameraEvent",renderer:a};return a.invokeEvent(I),this.triggerCameraModifiedEventIfNecessary(s,b),f&&this.options.displayArea&&n&&r&&i&&this.setDisplayArea(this.options.displayArea),!0}setInitialCamera(e){this.initialCamera=e}setFitToCanvasCamera(e){this.fitToCanvasCamera=e}getPan(e=this.initialCamera){if(!e)return[0,0];const n=this.getVtkActiveCamera().getFocalPoint(),i=this.canvasToWorld([0,0]),o=this.worldToCanvas(kt([0,0,0],e.focalPoint,i)),a=this.worldToCanvas(kt([0,0,0],n,i));return kn([0,0],o,a)}getCurrentImageIdIndex(){throw new Error("Not implemented")}getSliceIndex(){throw new Error("Not implemented")}getImageData(){throw new Error("Not implemented")}getViewReferenceId(e){return null}setPan(e,r=!1){const n=this.getCamera(),{focalPoint:i,position:o}=n,a=this.canvasToWorld([0,0]),s=kn([0,0],e,this.getPan());if(Math.abs(s[0])<1&&Math.abs(s[1])<1&&!r)return;const c=kt(we(),this.canvasToWorld(s),a),l=kt(we(),i,c),f=kt(we(),o,c);this.setCamera({...n,focalPoint:l,position:f},r)}getZoom(e=this.initialCamera){if(!e)return 1;const r=this.getVtkActiveCamera(),{parallelScale:n}=e;return n/r.getParallelScale()}setZoom(e,r=!1){const n=this.getCamera(),{parallelScale:i}=this.initialCamera,o=i/e;n.parallelScale===o&&!r||this.setCamera({...n,parallelScale:o},r)}_getFocalPointForViewPlaneReset(e){const{focalPoint:r,viewPlaneNormal:n}=this.getCamera(),i=this._getViewImageDataIntersections(e,r,n);let o=0,a=0,s=0;return i.forEach(([l,f,u])=>{o+=l,a+=f,s+=u}),[o/i.length,a/i.length,s/i.length]}getCanvas(){return this.canvas}getVtkActiveCamera(){return this.getRenderer().getActiveCamera()}getCameraNoRotation(){const e=this.getVtkActiveCamera(),r=(s,c)=>s.some(l=>isNaN(l))?c:s,n=r([...e.getViewUp()],[0,1,0]),i=r([...e.getViewPlaneNormal()],[0,0,-1]),o=r([...e.getPosition()],[0,0,1]),a=r([...e.getFocalPoint()],[0,0,0]);return{viewUp:n,viewPlaneNormal:i,position:o,focalPoint:a,parallelProjection:e.getParallelProjection(),parallelScale:e.getParallelScale(),viewAngle:e.getViewAngle(),flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}getCamera(){return{...this.getCameraNoRotation(),rotation:this.getRotation()}}setCamera(e,r=!1){const n=this.getVtkActiveCamera(),i=this.getCamera(),o=Object.assign({},i,e),{viewUp:a,viewPlaneNormal:s,position:c,focalPoint:l,parallelScale:f,viewAngle:u,flipHorizontal:d,flipVertical:h,clippingRange:g}=e;if(d!==void 0){const x=d&&!this.flipHorizontal||!d&&this.flipHorizontal;x&&this.flip({flipHorizontal:x})}if(h!==void 0){const x=h&&!this.flipVertical||!h&&this.flipVertical;x&&this.flip({flipVertical:x})}a!==void 0&&n.setViewUp(a),s!==void 0&&n.setDirectionOfProjection(-s[0],-s[1],-s[2]),c!==void 0&&n.setPosition(...c),l!==void 0&&n.setFocalPoint(...l),f!==void 0&&n.setParallelScale(f),u!==void 0&&n.setViewAngle(u),g!==void 0&&n.setClippingRange(g);const p=i.focalPoint,v=i.viewUp;if(p&&l||v&&a){const x=n.getViewPlaneNormal(),m=n.getViewUp();let y=!1,w=!1;if(l){const C=[l[0]-p[0],l[1]-p[1],l[2]-p[2]];y=Math.abs(nt.dot(C,x))>0}if(a&&(w=!pt(m,v)),y||w){const C=this.getDefaultActor();if(!(C!=null&&C.actor))return;ci(C,"vtkActor")||this.updateClippingPlanesForActors(o),(ci(C,"vtkImageSlice")||this.type===mn.VOLUME_3D)&&this.getRenderer().resetCameraClippingRange()}}r&&this.setInitialCamera(o),this.triggerCameraModifiedEventIfNecessary(i,this.getCamera())}triggerCameraModifiedEventIfNecessary(e,r){if(!this._suppressCameraModifiedEvents&&!this.suppressEvents){const n={previousCamera:e,camera:r,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,n)}}updateCameraClippingPlanesAndRange(){const e=this.getCamera();this.updateClippingPlanesForActors(e),this.getRenderer().resetCameraClippingRange()}async updateClippingPlanesForActors(e){this.getActors().map(n=>{if(!n.actor)return;const i=n.actor.getMapper();let o=n!=null&&n.clippingFilter?n==null?void 0:n.clippingFilter.getClippingPlanes():i.getClippingPlanes();o.length===0&&(n!=null&&n.clippingFilter)&&(o=[Xr.newInstance(),Xr.newInstance()]);let a=er.MINIMUM_SLAB_THICKNESS;n.slabThickness&&(a=n.slabThickness);const{viewPlaneNormal:s,focalPoint:c}=e;this.setOrientationOfClippingPlanes(o,a,s,c),De(this.element,Se.CLIPPING_PLANES_UPDATED,{actorEntry:n,focalPoint:c,vtkPlanes:o,viewport:this})})}setOrientationOfClippingPlanes(e,r,n,i){if(e.length<2)return;const o=[n[0],n[1],n[2]];nt.multiplyScalar(o,r),e[0].setNormal(n);const a=[0,0,0];nt.subtract(i,o,a),e[0].setOrigin(a),e[1].setNormal(-n[0],-n[1],-n[2]);const s=[0,0,0];nt.add(i,o,s),e[1].setOrigin(s)}getClippingPlanesForActor(e){if(e||(e=this.getDefaultActor()),!e.actor)throw new Error("Invalid actor entry: Actor is undefined");const r=e.actor.getMapper();let n=e!=null&&e.clippingFilter?e==null?void 0:e.clippingFilter.getClippingPlanes():r.getClippingPlanes();return n.length===0&&(e!=null&&e.clippingFilter)&&(n=[Xr.newInstance(),Xr.newInstance()]),n}_getWorldDistanceViewUpAndViewRight(e,r,n){const i=this._getCorners(e),o=this._getCorners(e),a=Kt(we(),r,n);let s=br.buildFromDegree().identity().rotateFromDirections(r,[1,0,0]);i.forEach(d=>s.apply(d));let c=1/0,l=-1/0;for(let d=0;d<8;d++){const h=i[d][0];h>l&&(l=h),hs.apply(d));let f=1/0,u=-1/0;for(let d=0;d<8;d++){const h=o[d][0];h>u&&(u=h),h=0&&this.setRotation(o)}_getCorners(e){return[[e[0],e[2],e[4]],[e[0],e[2],e[5]],[e[0],e[3],e[4]],[e[0],e[3],e[5]],[e[1],e[2],e[4]],[e[1],e[2],e[5]],[e[1],e[3],e[4]],[e[1],e[3],e[5]]]}_getFocalPointForResetCamera(e,r,{resetPan:n=!0,resetToCenter:i=!0}){if(i&&n)return e;if(i&&!n)return o3(r.focalPoint)?e:r.focalPoint;if(!i&&n){const o=r,a=o.focalPoint,s=o.viewPlaneNormal,c=kt(we(),e,a),l=je(c,s),f=Vt(we(),e,s,-1*l);return[f[0],f[1],f[2]]}if(!n&&!i)return o3(r.focalPoint)?e:r.focalPoint}_isInBounds(e,r){const[n,i,o,a,s,c]=r,[l,f,u]=e;return!(li||fa||uc)}_getEdges(e){const[r,n,i,o,a,s,c,l]=this._getCorners(e);return[[r,n],[r,a],[r,i],[n,o],[n,s],[i,o],[i,c],[o,l],[a,c],[a,s],[s,l],[c,l]]}static boundsRadius(e){const r=(e[1]-e[0])**2,n=(e[3]-e[2])**2,i=(e[5]-e[4])**2;return Math.sqrt(r+n+i||1)*.5}setDataIds(e,r){throw new Error("Unsupported operatoin setDataIds")}};od.CameraViewPresentation={rotation:!0,pan:!0,zoom:!0,displayArea:!0},od.TransferViewPresentation={windowLevel:!0,paletteLut:!0};let Zu=od;function WM(t,e,r=!1){const n=t.getCamera(),{focalPoint:i,viewPlaneNormal:o}=n,{spacingInNormalDirection:a,actorUID:s}=E0(t,n,e,r);if(!s)throw new Error(`Could not find image volume with id ${e} in the viewport`);const c=t.getActor(s);if(!c)return console.warn("No actor found for with actorUID of",s),null;const l=c.actor;return{sliceRange:s2(l,o,i),spacingInNormalDirection:a,camera:n}}function Iu(t,e,r=!1){const{sliceRange:n,spacingInNormalDirection:i,camera:o}=WM(t,e,r),{min:a,max:s,current:c}=n,l=Math.round((s-a)/i),u=(c-a)/(s-a)*l,d=Math.round(u);return{numScrollSteps:l,currentStepIndex:d,sliceRangeInfo:{sliceRange:n,spacingInNormalDirection:i,camera:o}}}function zM(t){let e=[];const[r,n]=t.getRange();t.getTable(r,n,1024,e),e=e.filter((h,g)=>g%3===0);const i=[...Array(1024).keys()].map((h,g)=>r+(n-r)/1023*g),o=e[256],a=Math.log((1-o)/o),s=i[256],c=e[256*3],l=Math.log((1-c)/c),f=i[256*3],u=Math.round(4*(f-s)/(a-l)),d=Math.round(s+u*a/4);return[Math.round(d-u/2),Math.round(d+u/2)]}function $M(t,e){const r=e.colorTransfer.split(" ").splice(1).map(parseFloat),{shiftRange:n}=Mte(r),i=n[0],o=n[1]-n[0],a=Ys.newInstance(),s=[];for(let w=0;w[o*n+e[0],a,s,c]);return r.removeAllPoints(),i.forEach(([o,a,s,c])=>r.addRGBPoint(o,a,s,c)),i}function Lte(t,e,r){const n=e[1]-e[0],i=t.map(([o,a])=>[o*n+e[0],a]);return r.removeAllPoints(),i.forEach(([o,a])=>r.addPoint(o,a)),i}class Mn extends Zu{constructor(e){if(super(e),this.useCPURendering=!1,this.perVolumeIdDefaultProperties=new Map,this.viewportProperties={},this.volumeIds=new Set,this.setRotation=i=>{const o=this.getPan(this.fitToCanvasCamera),a=this.getPan(),s=this.getCamera(),c=Oo([0,0],o,a);this.setPan(c,!1);const{flipVertical:l}=this.getCamera(),f=l?qc([0,0,0],this.initialViewUp):this.initialViewUp;this.setCameraNoEvent({viewUp:f}),this.rotateCamera(i);const u=this.getPan(),d=this.getPan(this.fitToCanvasCamera),h=Oo([0,0],u,d),g=Lr([0,0],o,h);if(this.setPan(g,!1),this._suppressCameraModifiedEvents)return;const p=this.getCamera(),v={previousCamera:s,camera:p,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,v)},this.getDefaultProperties=i=>{let o;return i!==void 0&&(o=this.perVolumeIdDefaultProperties.get(i)),o!==void 0?o:{...this.globalDefaultProperties}},this.getProperties=i=>{var x,m;if(!this._getApplicableVolumeActor(i))return;const{colormap:a,VOILUTFunction:s,interpolationType:c,invert:l,slabThickness:f,preset:u}=this.viewportProperties;if(!_e.getVolume(this.getVolumeId()))return null;const h=this.getActors().map(y=>{var _;const w=y.actor;if(!ci(y,"vtkVolume"))return null;const C=w.getProperty().getRGBTransferFunction(0),[S,T]=((_=this.viewportProperties)==null?void 0:_.VOILUTFunction)==="SIGMOID"?zM(C):C.getRange();return{volumeId:i,voiRange:{lower:S,upper:T}}}).filter(Boolean),g=i?(x=h.find(y=>y.volumeId===i))==null?void 0:x.voiRange:(m=h[0])==null?void 0:m.voiRange,p=this.getColormap(i);return{colormap:i&&p?p:a,voiRange:g,VOILUTFunction:s,interpolationType:c,invert:l,slabThickness:f,preset:u}},this.getColormap=i=>{const o=this._getApplicableVolumeActor(i);if(!o)return;const{volumeActor:a}=o,s=this._getOrCreateColorTransferFunction(i),{nodes:c}=s.getState(),l=c.reduce((u,d)=>(u.push(d.x,d.r,d.g,d.b),u),[]);return Qw(l,a)},this.getRotation=()=>{const{viewUp:i,viewPlaneNormal:o,flipVertical:a}=this.getCameraNoRotation(),s=a?qc([0,0,0],this.initialViewUp):this.initialViewUp;if(!s)return 0;const c=Tw(s,i)*180/Math.PI,l=Kt([0,0,0],s,i);return je(l,o)>=0?c:(360-c)%360},this.getFrameOfReferenceUID=()=>this._FrameOfReferenceUID,this.canvasToWorld=i=>{var g,p;const o=this.getVtkActiveCamera();(g=o.setIsPerformingCoordinateTransformation)==null||g.call(o,!0);const a=this.getRenderer(),c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=window.devicePixelRatio||1,u=[i[0]*f,i[1]*f],d=[u[0]+this.sx,u[1]+this.sy];d[1]=l[1]-d[1];const h=c.displayToWorld(d[0],d[1],0,a);return(p=o.setIsPerformingCoordinateTransformation)==null||p.call(o,!1),[h[0],h[1],h[2]]},this.worldToCanvas=i=>{var g;const o=this.getVtkActiveCamera();(g=o.setIsPerformingCoordinateTransformation)==null||g.call(o,!0);const a=this.getRenderer(),c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=c.worldToDisplay(...i,a);f[1]=l[1]-f[1];const u=[f[0]-this.sx,f[1]-this.sy],d=window.devicePixelRatio||1,h=[u[0]/d,u[1]/d];return o.setIsPerformingCoordinateTransformation(!1),h},this.hasImageURI=i=>this.getActors().filter(a=>ci(a,"vtkVolume")).some(({uid:a,referencedId:s})=>{const c=_e.getVolume(s||a);return c!=null&&c.imageIds?c.imageIds.map(Nn).includes(i):!1}),this.getImageIds=i=>{const o=this._getApplicableVolumeActor(i);if(!o)throw new Error(`No actor found for the given volumeId: ${i}`);const a=o.volumeId,s=_e.getVolume(a);if(!s)throw new Error(`imageVolume with id: ${a} does not exist in cache`);return s.imageIds},this.useCPURendering=Kf(),this.useCPURendering)throw new Error("VolumeViewports cannot be used whilst CPU Fallback Rendering is enabled.");const r=this.getRenderer(),n=_J.newInstance();switch(r.setActiveCamera(n),this.type){case mn.ORTHOGRAPHIC:n.setParallelProjection(!0);break;case mn.VOLUME_3D:n.setParallelProjection(!0);break;case mn.PERSPECTIVE:n.setParallelProjection(!1);break;default:throw new Error(`Unrecognized viewport type: ${this.type}`)}this.initializeVolumeNewImageEventDispatcher()}static get useCustomRenderingPipeline(){return!1}getSliceViewInfo(){throw new Error("Method not implemented.")}applyViewOrientation(e,r=!0){const{viewPlaneNormal:n,viewUp:i}=this._getOrientationVectors(e),o=this.getVtkActiveCamera();o.setDirectionOfProjection(-n[0],-n[1],-n[2]),o.setViewUpFrom(i),this.initialViewUp=i,r&&this.resetCamera()}initializeVolumeNewImageEventDispatcher(){const e=n.bind(this),r=i.bind(this);function n(o){const{viewportId:a}=o.detail;a!==this.id||this.isDisabled||!this.getImageData()||Ite(o)}function i(o){const{viewportId:a}=o.detail;a===this.id&&(this.element.removeEventListener(Se.CAMERA_MODIFIED,e),Ce.removeEventListener(Se.ELEMENT_DISABLED,r),bte(a))}this.element.removeEventListener(Se.CAMERA_MODIFIED,e),this.element.addEventListener(Se.CAMERA_MODIFIED,e),Ce.addEventListener(Se.ELEMENT_DISABLED,r)}setVOILUTFunction(e,r,n){Object.values(Va).includes(e)||(e=Va.LINEAR);const{voiRange:i}=this.getProperties();this.setVOI(i,r,n),this.viewportProperties.VOILUTFunction=e}setColormap(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i,a=Ys.newInstance();let s=Pd(e.name);const{name:c}=e;if(s||(s=U1.getPresetByName(c)),!s)throw new Error(`Colormap ${e} not found`);const l=o.getProperty().getRGBTransferFunction(0).getRange();if(a.applyColorMap(s),a.setMappingRange(l[0],l[1]),o.getProperty().setRGBTransferFunction(0,a),this.viewportProperties.colormap=e,!n){const f={viewportId:this.id,colormap:e,volumeId:r};De(this.element,Se.VOI_MODIFIED,f),De(this.element,Se.COLORMAP_MODIFIED,f)}}setOpacity(e,r){const n=this._getApplicableVolumeActor(r);if(!n)return;const{volumeActor:i}=n,o=qu.newInstance();if(typeof e.opacity=="number"){const a=i.getProperty().getRGBTransferFunction(0).getRange();o.addPoint(a[0],e.opacity),o.addPoint(a[1],e.opacity)}else e.opacity.forEach(({opacity:a,value:s})=>{o.addPoint(s,a)});i.getProperty().setScalarOpacity(0,o),this.viewportProperties.colormap||(this.viewportProperties.colormap={}),this.viewportProperties.colormap.opacity=e.opacity}setInvert(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const o=i.volumeId,a=this._getOrCreateColorTransferFunction(o);if(qf(a),this.viewportProperties.invert=e,!n){const s={...this.getVOIModifiedEventDetail(o),invertStateChanged:!0};De(this.element,Se.VOI_MODIFIED,s)}}getVOIModifiedEventDetail(e){const r=this._getApplicableVolumeActor(e);if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);const o=r.volumeActor.getProperty().getRGBTransferFunction(0).getMappingRange(),a=this.getColormap(e),{VOILUTFunction:s,invert:c}=this.getProperties(e);return{viewportId:this.id,range:{lower:o[0],upper:o[1]},volumeId:r.volumeId,VOILUTFunction:s,colormap:a,invert:c}}_getOrCreateColorTransferFunction(e){const r=this._getApplicableVolumeActor(e);if(!r)return null;const{volumeActor:n}=r,i=n.getProperty().getRGBTransferFunction(0);if(i)return i;const o=Ys.newInstance();return n.getProperty().setRGBTransferFunction(0,o),o}setInterpolationType(e,r){const n=this._getApplicableVolumeActor(r);if(!n)return;const{volumeActor:i}=n;i.getProperty().setInterpolationType(e),this.viewportProperties.interpolationType=e}setVOI(e,r,n=!1){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i,a=i.volumeId,s=e;if(typeof s>"u")throw new Error("voiRangeToUse is undefined, need to implement this in the new volume model");const{VOILUTFunction:c}=this.getProperties(a);if(c===Va.SAMPLED_SIGMOID){const l=eC(s);o.getProperty().setRGBTransferFunction(0,l)}else{const{lower:l,upper:f}=s;o.getProperty().getRGBTransferFunction(0).setRange(l,f)}if(!n){const l={...this.getVOIModifiedEventDetail(a)};De(this.element,Se.VOI_MODIFIED,l)}this.viewportProperties.voiRange=s}rotateCamera(e){const r=e-this.getRotation();this.getVtkActiveCamera().roll(-r)}setDefaultProperties(e,r){r==null?this.globalDefaultProperties=e:this.perVolumeIdDefaultProperties.set(r,e)}clearDefaultProperties(e){e==null?(this.globalDefaultProperties={},this.resetProperties()):(this.perVolumeIdDefaultProperties.delete(e),this.resetToDefaultProperties(e))}getViewReference(e={}){const r=super.getViewReference(e),n=this.getVolumeId(e);if((e==null?void 0:e.forFrameOfReference)!==!1&&(r.volumeId=n),typeof(e==null?void 0:e.sliceIndex)!="number")return r;const{viewPlaneNormal:i}=r,o=(e==null?void 0:e.sliceIndex)-this.getSliceIndex(),{sliceRangeInfo:a}=Iu(this,n,!0),{sliceRange:s,spacingInNormalDirection:c,camera:l}=a,{focalPoint:f,position:u}=l,{newFocalPoint:d}=Du(f,u,s,i,c,o);return r.cameraFocalPoint=d,r}isReferenceViewable(e,r){if(!e.FrameOfReferenceUID||!super.isReferenceViewable(e,r))return!1;if(r!=null&&r.withNavigation)return!0;const n=this.getSliceIndex(),{sliceIndex:i}=e;return Array.isArray(i)?i[0]<=n&&n<=i[1]:i===void 0||i===n}scroll(e=1){const r=this.getVolumeId(),{sliceRangeInfo:n}=Iu(this,r,!0);if(!n)return;const{sliceRange:i,spacingInNormalDirection:o,camera:a}=n,{focalPoint:s,viewPlaneNormal:c,position:l}=a,{newFocalPoint:f,newPosition:u}=Du(s,l,i,c,o,e);this.setCamera({focalPoint:f,position:u})}setViewReference(e){if(!e)return;const r=this.getVolumeId(),{viewPlaneNormal:n,FrameOfReferenceUID:i,cameraFocalPoint:o,viewUp:a}=e;let{sliceIndex:s}=e;const{focalPoint:c,viewPlaneNormal:l,position:f}=this.getCamera(),u=JO(l,n),d=pt(l,n);if(typeof s=="number"&&e.volumeId===r&&(u||d)){const{currentStepIndex:h,sliceRangeInfo:g,numScrollSteps:p}=Iu(this,r,!0),{sliceRange:v,spacingInNormalDirection:x}=g;u&&(s=p-s-1);const m=s-h,{newFocalPoint:y,newPosition:w}=Du(c,f,v,l,x,m);this.setCamera({focalPoint:y,position:w})}else if(i===this.getFrameOfReferenceUID()){if(n&&!u&&!d){this.setOrientation({viewPlaneNormal:n,viewUp:a}),this.setViewReference(e);return}if(o){const h=kt([0,0,0],o,c),g=n??l,p=je(h,g);pt(p,0)||lr(h,g,p);const v=xn([0,0,0],c,h),x=xn([0,0,0],f,h);this.setCamera({focalPoint:v,position:x})}}else throw new Error(`Incompatible view refs: ${i}!==${this.getFrameOfReferenceUID()}`)}setProperties({voiRange:e,VOILUTFunction:r,invert:n,colormap:i,preset:o,interpolationType:a,slabThickness:s}={},c,l=!1){this.globalDefaultProperties==null&&this.setDefaultProperties({voiRange:e,VOILUTFunction:r,invert:n,colormap:i,preset:o,slabThickness:s}),n!==void 0&&this.viewportProperties.invert!==n&&this.setInvert(n,c,l),i!=null&&i.name&&this.setColormap(i,c,l),(i==null?void 0:i.opacity)!=null&&this.setOpacity(i,c),e!==void 0&&this.setVOI(e,c,l),typeof a<"u"&&this.setInterpolationType(a),r!==void 0&&this.setVOILUTFunction(r,c,l),o!==void 0&&this.setPreset(o,c,l),s!==void 0&&(this.setSlabThickness(s),this.viewportProperties.slabThickness=s)}resetToDefaultProperties(e){var n,i;const r=this.globalDefaultProperties;(n=r.colormap)!=null&&n.name&&this.setColormap(r.colormap,e),((i=r.colormap)==null?void 0:i.opacity)!=null&&this.setOpacity(r.colormap,e),r.voiRange!==void 0&&this.setVOI(r.voiRange,e),r.VOILUTFunction!==void 0&&this.setVOILUTFunction(r.VOILUTFunction,e),r.invert!==void 0&&this.setInvert(r.invert,e),r.slabThickness!==void 0&&(this.setSlabThickness(r.slabThickness),this.viewportProperties.slabThickness=r.slabThickness),r.preset!==void 0&&this.setPreset(r.preset,e,!1),r.preset!==void 0&&this.setPreset(r.preset,e,!1),this.render()}setPreset(e,r,n){const i=this._getApplicableVolumeActor(r);if(!i)return;const{volumeActor:o}=i;let a=e;typeof a=="string"&&(a=TD.find(s=>s.name===e)),a&&($M(o,a),this.viewportProperties.preset=a,this.render(),n||De(this.element,Se.PRESET_MODIFIED,{viewportId:this.id,volumeId:i.volumeId,actor:o,presetName:a.name}))}async setVolumes(e,r=!1,n=!1){const i=_e.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist, you need to create/allocate the volume first`);const o=i.metadata.FrameOfReferenceUID;this._isValidVolumeInputArray(e,o),this._FrameOfReferenceUID=o,e.forEach(s=>{this._addVolumeId(s.volumeId)});const a=[];for(let s=0;s{this._addVolumeId(a.volumeId)});for(let a=0;ao.referencedId===e);return i?{volumeActor:i.actor,volumeId:e,actorUID:i.uid}:void 0}const n=r[0];return{volumeActor:n.actor,volumeId:n.referencedId,actorUID:n.uid}}async _isValidVolumeInputArray(e,r){const n=e.length;for(let i=1;if.referencedId===e);if(!ci(n,"vtkVolume"))return;const i=n.actor,o=_e.getVolume(e),a=i.getMapper().getInputData();return{dimensions:a.getDimensions(),spacing:a.getSpacing(),origin:a.getOrigin(),direction:a.getDirection(),imageData:i.getMapper().getInputData(),metadata:{Modality:(c=o==null?void 0:o.metadata)==null?void 0:c.Modality,FrameOfReferenceUID:(l=o==null?void 0:o.metadata)==null?void 0:l.FrameOfReferenceUID},get scalarData(){var f;return(f=o==null?void 0:o.voxelManager)==null?void 0:f.getScalarData()},scaling:o==null?void 0:o.scaling,hasPixelSpacing:!0,voxelManager:o==null?void 0:o.voxelManager}}setCameraClippingRange(){throw new Error("Method not implemented.")}getSliceIndex(){throw new Error("Method not implemented.")}setCamera(e,r){super.setCamera(e,r),this.setCameraClippingRange()}_setVolumeActors(e){for(let r=0;r{n.slabThickness>r&&(r=n.slabThickness)}),r}getIntensityFromWorld(e){const r=this.getDefaultActor();if(!ci(r,"vtkVolume"))return;const{actor:n}=r,i=n.getMapper().getInputData(),o=_e.getVolume(this.getVolumeId()),a=Gn(i,e);return o.voxelManager.getAtIJKPoint(a)}getVolumeId(e){const r=this.getActors();if(!r)return;if(!(e!=null&&e.volumeId)){const i=r.find(o=>o.actor.getClassName()==="vtkVolume");return(i==null?void 0:i.referencedId)||(i==null?void 0:i.uid)}const n=r.find(i=>i.actor.getClassName()==="vtkVolume"&&i.referencedId===(e==null?void 0:e.volumeId));return(n==null?void 0:n.referencedId)||(n==null?void 0:n.uid)}getViewReferenceId(e={}){var c;let{volumeId:r,sliceIndex:n}=e;if(!r){const l=this.getActors();if(!l)return;r=(c=l.find(f=>f.actor.getClassName()==="vtkVolume"))==null?void 0:c.referencedId}const i=this.getSliceIndex();n??(n=i);const{viewPlaneNormal:o,focalPoint:a}=this.getCamera(),s=r.includes("?")?"&":"?";return`volumeId:${r}${s}sliceIndex=${n}&viewPlaneNormal=${o.join(",")}&focalPoint=${a.join(",")}`}_addVolumeId(e){this.volumeIds.add(e)}getAllVolumeIds(){return Array.from(this.volumeIds)}}function _s(t,e){const{imageData:r}=t.getImageData(),n=t.canvasToWorld(e);return Gn(r,n)}function X1(t,e){return t.indexToWorld(e)}function Nte(t,e){const{imageData:r}=t.getImageData(),n=X1(r,e);return t.worldToCanvas(n)}class an extends Mn{constructor(e){super(e),this._useAcquisitionPlaneForViewPlane=!1,this.getNumberOfSlices=()=>{const{numberOfSlices:n}=K1(this)||{};return n},this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetRotation:!1,suppressEvents:!0}),this.getCurrentImageIdIndex=n=>{const{viewPlaneNormal:i,focalPoint:o}=this.getCamera(),a=this.getImageData(n);if(!a)return;const{origin:s,direction:c,spacing:l}=a,f=qa({direction:c,spacing:l},i),u=we();Qt(u,o,s);const d=je(u,i);return Math.round(Math.abs(d)/f)},this.getSliceIndex=()=>{const{imageIndex:n}=K1(this)||{};return n},this.getCurrentImageId=()=>{const n=this.getDefaultActor();if(!n||!ci(n,"vtkVolume"))return;const i=_e.getVolume(this.getVolumeId());if(!i)return;const{viewPlaneNormal:o,focalPoint:a}=this.getCamera();return Xa(i,a,o)},this.getSlicePlaneCoordinates=()=>{const n=this.getDefaultActor();if(!(n!=null&&n.actor))return console.warn("No image data found for calculating vtkPlanes."),[];const i=this.getVolumeId(),o=_e.getVolume(i),a=this.getCamera(),{focalPoint:s,position:c,viewPlaneNormal:l}=a,f=qa(o,l),u=s2(n.actor,l,s),d=Math.round((u.current-u.min)/f),h=Math.round((u.max-u.current)/f),g=this.getSliceIndex(),p=[];for(let v=-d;v<=h;v++){const{newFocalPoint:x}=Du(s,c,u,l,f,v);p.push({sliceIndex:g+v,point:x})}return p};const{orientation:r}=this.options;if(r&&r!==ju.ACQUISITION){this.applyViewOrientation(r);return}this._useAcquisitionPlaneForViewPlane=!0}async setVolumes(e,r=!1,n=!1){const i=_e.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(i),this._useAcquisitionPlaneForViewPlane=!1),super.setVolumes(e,r,n)}async addVolumes(e,r=!1,n=!1){const i=_e.getVolume(e[0].volumeId);if(!i)throw new Error(`imageVolume with id: ${i.volumeId} does not exist`);return this._useAcquisitionPlaneForViewPlane&&(this._setViewPlaneToAcquisitionPlane(i),this._useAcquisitionPlaneForViewPlane=!1),super.addVolumes(e,r,n)}jumpToWorld(e){const{focalPoint:r}=this.getCamera(),n=[0,0,0];Qt(n,e,r);const i=this.getCamera(),o=i.viewPlaneNormal,a=je(n,o),s=Ye(o[0],o[1],o[2]);if(lr(s,s,a),Math.abs(s[0])>.001||Math.abs(s[1])>.001||Math.abs(s[2])>.001){const c=[0,0,0],l=[0,0,0];xn(c,i.focalPoint,s),xn(l,i.position,s),this.setCamera({focalPoint:c,position:l}),this.render()}return!0}setOrientation(e,r=!0){let n,i;if(typeof e=="string"){if(bs[e])({viewPlaneNormal:n,viewUp:i}=bs[e]);else if(e==="acquisition")({viewPlaneNormal:n,viewUp:i}=this._getAcquisitionPlaneOrientation());else throw new Error(`Invalid orientation: ${e}. Use Enums.OrientationAxis instead.`);this.setCamera({viewPlaneNormal:n,viewUp:i}),this.viewportProperties.orientation=e,this.resetCamera()}else({viewPlaneNormal:n,viewUp:i}=e),this.applyViewOrientation(e);r&&this.render()}setCameraClippingRange(){const e=this.getVtkActiveCamera();e.getParallelProjection()?e.setClippingRange(e.getDistance()-this.getSlabThickness(),e.getDistance()+this.getSlabThickness()):e.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE)}_getAcquisitionPlaneOrientation(){if(!this.getDefaultActor())return;const r=this.getVolumeId(),n=_e.getVolume(r);if(!n)throw new Error(`imageVolume with id: ${r} does not exist in cache`);const{direction:i}=n,o=i.slice(6,9).map(s=>-s),a=i.slice(3,6).map(s=>-s);return{viewPlaneNormal:o,viewUp:a}}_setViewPlaneToAcquisitionPlane(e){let r,n;if(e){const{direction:i}=e;r=i.slice(6,9).map(o=>-o),n=i.slice(3,6).map(o=>-o)}else({viewPlaneNormal:r,viewUp:n}=this._getAcquisitionPlaneOrientation());this.setCamera({viewPlaneNormal:r,viewUp:n}),this.initialViewUp=n,this.resetCamera()}setBlendMode(e,r=[],n=!1){let i=this.getActors();r&&r.length>0&&(i=i.filter(o=>r.includes(o.uid))),i.forEach(o=>{var c;const{actor:a}=o,s=a.getMapper();(c=s.setBlendMode)==null||c.call(s,e)}),n&&this.render()}resetCamera(e){const{resetPan:r=!0,resetZoom:n=!0,resetRotation:i=!0,resetToCenter:o=!0,suppressEvents:a=!1,resetOrientation:s=!0}=e||{},{orientation:c}=this.viewportProperties;c&&s&&this.applyViewOrientation(c,!1),super.resetCamera({resetPan:r,resetZoom:n,resetToCenter:o});const l=this.getVtkActiveCamera(),f=l.getViewPlaneNormal(),u=l.getFocalPoint();if(this.getActors().forEach(h=>{if(!h.actor)return;const g=h.actor.getMapper();if(g.getClippingPlanes().length===0&&!(h!=null&&h.clippingFilter)){const v=Xr.newInstance(),x=Xr.newInstance(),m=[v,x];let y=er.MINIMUM_SLAB_THICKNESS;h.slabThickness&&(y=h.slabThickness),this.setOrientationOfClippingPlanes(m,y,f,u),g.addClippingPlane(v),g.addClippingPlane(x)}}),i&&bs[this.viewportProperties.orientation]!==void 0){const h=bs[this.viewportProperties.orientation];this.setCameraNoEvent({viewUp:h.viewUp,viewPlaneNormal:h.viewPlaneNormal})}if(!a){const h={viewportId:this.id,camera:this.getCamera(),renderingEngineId:this.renderingEngineId,element:this.element};De(this.element,Se.CAMERA_RESET,h)}return!0}setSlabThickness(e,r=[]){e<.1&&(e=.1);let n=this.getActors();r&&r.length>0&&(n=n.filter(o=>r.includes(o.uid))),n.forEach(o=>{ci(o,"vtkVolume")&&(o.slabThickness=e)});const i=this.getCamera();this.updateClippingPlanesForActors(i),this.triggerCameraModifiedEventIfNecessary(i,i),this.viewportProperties.slabThickness=e}resetSlabThickness(){this.getActors().forEach(n=>{ci(n,"vtkVolume")&&(n.slabThickness=er.MINIMUM_SLAB_THICKNESS)});const r=this.getCamera();this.updateClippingPlanesForActors(r),this.triggerCameraModifiedEventIfNecessary(r,r),this.viewportProperties.slabThickness=void 0}getSliceViewInfo(){const{width:e,height:r}=this.getCanvas(),n=_s(this,[0,0]),i=_s(this,[e-1,0]),o=_s(this,[0,r-1]),a=Qt(we(),i,n),s=Qt(we(),o,n),c=Kt(we(),a,s);on(a,a),on(s,s),on(c,c);const{dimensions:l}=this.getImageData(),[f,u,d]=l,p=[[0,0,0],[f-1,0,0],[0,u-1,0],[f-1,u-1,0],[0,0,d-1],[f-1,0,d-1],[0,u-1,d-1],[f-1,u-1,d-1]].map(D=>Nte(this,D)).reduce((D,b)=>(D.minX=Math.min(D.minX,b[0]),D.minY=Math.min(D.minY,b[1]),D.maxX=Math.max(D.maxX,b[0]),D.maxY=Math.max(D.maxY,b[1]),D),{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}),v=_s(this,[p.minX,p.minY]),x=pw(a[0],a[1],a[2],0,s[0],s[1],s[2],0,c[0],c[1],c[2],0,v[0],v[1],v[2],1),m=_s(this,[p.maxX,p.maxY]),y=Qt(we(),m,v),w=$n(lo(),x),{viewPlaneNormal:C}=this.getCamera();if(C.filter(D=>Math.abs(D)>Lo).length>1)throw new Error("getSliceInfo is not supported for oblique views");const T=C.findIndex(D=>Math.abs(D)>1-Lo);if(T===-1)throw new Error("Unable to determine slice axis");const _=je(a,y)+1,E=je(s,y)+1;return{sliceIndex:this.getSliceIndex(),width:_,height:E,slicePlane:T,sliceToIndexMatrix:x,indexToSliceMatrix:w}}getCurrentSlicePixelData(){const{voxelManager:e}=this.getImageData();return e.getSliceData(this.getSliceViewInfo())}getViewReference(e={}){const r=super.getViewReference(e);if(!(r!=null&&r.volumeId))return;const n=_e.getVolume(r.volumeId);return r.referencedImageId=Xa(n,r.cameraFocalPoint,r.viewPlaneNormal),r}resetProperties(e){this._resetProperties(e)}_resetProperties(e){const r=e?this.getActor(e):this.getDefaultActor();if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);r.slabThickness&&(r.slabThickness=er.MINIMUM_SLAB_THICKNESS,this.viewportProperties.slabThickness=void 0,this.updateClippingPlanesForActors(this.getCamera())),e||(e=this.getVolumeId());const n=_e.getVolume(e);if(!n)throw new Error(`imageVolume with id: ${e} does not exist in cache`);if(sC(r.actor,n),Xo(r)){const l=r.actor.getProperty().getRGBTransferFunction(0);c2(l,this.initialTransferFunctionNodes)}const i={...super.getVOIModifiedEventDetail(e)};this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetCameraRotation:!0}),De(this.element,Se.VOI_MODIFIED,i)}getSlicesClippingPlanes(){const e=this.getSlicePlaneCoordinates(),{viewPlaneNormal:r}=this.getCamera(),n=er.MINIMUM_SLAB_THICKNESS;return e.map(({point:i,sliceIndex:o})=>{const a=[Xr.newInstance(),Xr.newInstance()];return this.setOrientationOfClippingPlanes(a,n,r,i),{sliceIndex:o,planes:a.map(s=>({normal:s.getNormal(),origin:s.getOrigin()}))}})}}function Pte(t,e){e.classHierarchy.push("vtkAbstractImageMapper"),t.getIsOpaque=()=>!0,t.getCurrentImage=()=>null,t.getBoundsForSlice=()=>(W.vtkErrorMacro("vtkAbstractImageMapper.getBoundsForSlice - NOT IMPLEMENTED"),qs())}const Ate={slice:0,customDisplayExtent:[0,0,0,0,0,0],useCustomExtents:!1,backgroundColor:[0,0,0,1]};function kte(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ate,r),Fw.extend(t,e,r),W.setGet(t,e,["slice","useCustomExtents"]),W.setGetArray(t,e,["customDisplayExtent"],6),W.setGetArray(t,e,["backgroundColor"],4),Pte(t,e)}var Vte={extend:kte};function jM(t,e,r){const n=r.getCurrentImage(),i=n.getExtent(),o=[i[0],i[2],i[4]],{ijkMode:a}=r.getClosestIJKAxis();let s=r.isA("vtkImageArrayMapper")?r.getSubSlice():r.getSlice();a!==r.getSlicingMode()&&(s=r.getSliceAtPosition(s)),o[a]+=s;const c=[0,0,0];n.indexToWorld(o,c),o[a]+=1;const l=[0,0,0];n.indexToWorld(o,l),l[0]-=c[0],l[1]-=c[1],l[2]-=c[2],on(l,l);const f=Xr.intersectWithLine(t,e,c,l);if(f.intersection){const u=f.x,d=[0,0,0];return n.worldToIndex(u,d),{t:f.t,absoluteIJK:d}}return null}function Fte(t,e,r){const n=jM(t,e,r);if(n){const o=r.getCurrentImage().getExtent(),a=[Math.round(n.absoluteIJK[0]),Math.round(n.absoluteIJK[1]),Math.round(n.absoluteIJK[2])];return a[0]o[1]||a[1]o[3]||a[2]o[5]?null:{t:n.t,ijk:a}}return null}function Ute(t,e,r){const n=jM(t,e,r);if(n){const o=r.getCurrentImage().getExtent(),a=n.absoluteIJK,s=[Math.floor(a[0]),Math.floor(a[1]),Math.floor(a[2])];if(s[0]o[1]-1||s[1]o[3]-1||s[2](o[5]?o[5]-1:o[5]))return null;const c=[a[0]-s[0],a[1]-s[1],a[2]-s[2]];return{t:n.t,ijk:s,pCoords:c}}return null}const{staticOffsetAPI:Bte,otherStaticMethods:Gte}=i2,{SlicingMode:Pt}=a2;function Wte(t,e){e.classHierarchy.push("vtkImageMapper"),t.getSliceAtPosition=n=>{const i=t.getCurrentImage();let o;if(n.length===3)o=n;else if(Number.isFinite(n)){const f=i.getBounds();switch(e.slicingMode){case Pt.X:o=[n,(f[3]+f[2])/2,(f[5]+f[4])/2];break;case Pt.Y:o=[(f[1]+f[0])/2,n,(f[5]+f[4])/2];break;case Pt.Z:o=[(f[1]+f[0])/2,(f[3]+f[2])/2,n];break}}const a=[0,0,0];i.worldToIndex(o,a);const s=i.getExtent(),{ijkMode:c}=t.getClosestIJKAxis();let l=0;switch(c){case Pt.I:l=Do(a[0],s[0],s[1]);break;case Pt.J:l=Do(a[1],s[2],s[3]);break;case Pt.K:l=Do(a[2],s[4],s[5]);break;default:return 0}return l},t.setSliceFromCamera=n=>{const i=n.getFocalPoint();switch(e.slicingMode){case Pt.I:case Pt.J:case Pt.K:{const o=t.getSliceAtPosition(i);t.setSlice(o)}break;case Pt.X:t.setSlice(i[0]);break;case Pt.Y:t.setSlice(i[1]);break;case Pt.Z:t.setSlice(i[2]);break}},t.setXSlice=n=>{t.setSlicingMode(Pt.X),t.setSlice(n)},t.setYSlice=n=>{t.setSlicingMode(Pt.Y),t.setSlice(n)},t.setZSlice=n=>{t.setSlicingMode(Pt.Z),t.setSlice(n)},t.setISlice=n=>{t.setSlicingMode(Pt.I),t.setSlice(n)},t.setJSlice=n=>{t.setSlicingMode(Pt.J),t.setSlice(n)},t.setKSlice=n=>{t.setSlicingMode(Pt.K),t.setSlice(n)},t.getSlicingModeNormal=()=>{const n=[0,0,0],i=t.getCurrentImage().getDirection();switch(e.slicingMode){case Pt.X:n[0]=1;break;case Pt.Y:n[1]=1;break;case Pt.Z:n[2]=1;break;case Pt.I:Tp(i,[1,0,0],n);break;case Pt.J:Tp(i,[0,1,0],n);break;case Pt.K:Tp(i,[0,0,1],n);break}return n};function r(){let n;switch(e.slicingMode){case Pt.X:n=0;break;case Pt.Y:n=1;break;case Pt.Z:n=2;break;default:e.closestIJKAxis={ijkMode:e.slicingMode,flip:!1};return}const i=t.getCurrentImage().getDirection(),o=k7(i);let a=0;for(;a<3&&o[n+3*a]===0;++a);const s=o[n+3*a]<0;e.closestIJKAxis={ijkMode:a,flip:s}}t.setSlicingMode=n=>{e.slicingMode!==n&&(e.slicingMode=n,t.getCurrentImage()&&r(),t.modified())},t.getClosestIJKAxis=()=>((e.closestIJKAxis===void 0||e.closestIJKAxis.ijkMode===Pt.NONE)&&t.getCurrentImage()&&r(),e.closestIJKAxis),t.getBounds=()=>{const n=t.getCurrentImage();if(!n)return qs();if(!e.useCustomExtents)return n.getBounds();const i=e.customDisplayExtent.slice(),{ijkMode:o}=t.getClosestIJKAxis();let a=e.slice;switch(o!==e.slicingMode&&(a=t.getSliceAtPosition(e.slice)),o){case Pt.I:i[0]=a,i[1]=a;break;case Pt.J:i[2]=a,i[3]=a;break;case Pt.K:i[4]=a,i[5]=a;break}return n.extentToBounds(i)},t.getBoundsForSlice=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.slice,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const o=t.getCurrentImage();if(!o)return qs();const a=o.getSpatialExtent(),{ijkMode:s}=t.getClosestIJKAxis();let c=n;switch(s!==e.slicingMode&&(c=t.getSliceAtPosition(n)),s){case Pt.I:a[0]=c-i,a[1]=c+i;break;case Pt.J:a[2]=c-i,a[3]=c+i;break;case Pt.K:a[4]=c-i,a[5]=c+i;break}return o.extentToBounds(a)},t.intersectWithLineForPointPicking=(n,i)=>Fte(n,i,t),t.intersectWithLineForCellPicking=(n,i)=>Ute(n,i,t),t.getCurrentImage=()=>t.getInputData()}const zte={slicingMode:Pt.NONE,closestIJKAxis:{ijkMode:Pt.NONE,flip:!1},renderToRectangle:!1,sliceAtFocalPoint:!1,preferSizeOverAccuracy:!1};function HM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,zte,r),Vte.extend(t,e,r),W.get(t,e,["slicingMode"]),W.setGet(t,e,["closestIJKAxis","renderToRectangle","sliceAtFocalPoint","preferSizeOverAccuracy"]),i2.implementCoincidentTopologyMethods(t,e),Wte(t,e)}const $te=W.newInstance(HM,"vtkImageMapper");var jte={newInstance:$te,extend:HM,...Bte,...Gte,...a2};const{InterpolationType:Vp}=Pq,{vtkErrorMacro:A8}=W,Fp=4;function Hte(t,e){e.classHierarchy.push("vtkImageProperty"),t.getMTime=()=>{let r=e.mtime,n;for(let i=0;in?r:n),e.componentData[i].piecewiseFunction&&(n=e.componentData[i].piecewiseFunction.getMTime(),r=r>n?r:n);return r},t.setRGBTransferFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),e.componentData[i].rGBTransferFunction!==o?(e.componentData[i].rGBTransferFunction=o,t.modified(),!0):!1},t.getRGBTransferFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[r].rGBTransferFunction},t.setPiecewiseFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),e.componentData[i].piecewiseFunction!==o?(e.componentData[i].piecewiseFunction=o,t.modified(),!0):!1},t.getPiecewiseFunction=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return e.componentData[r].piecewiseFunction},t.setScalarOpacity=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,i=r,o=n;return Number.isInteger(r)||(o=r,i=0),t.setPiecewiseFunction(i,o)},t.getScalarOpacity=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return t.getPiecewiseFunction(r)},t.setComponentWeight=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;if(r<0||r>=Fp)return A8("Invalid index"),!1;const i=Math.min(1,Math.max(0,n));return e.componentData[r].componentWeight!==i?(e.componentData[r].componentWeight=i,t.modified(),!0):!1},t.getComponentWeight=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return r<0||r>=Fp?(A8("Invalid index"),0):e.componentData[r].componentWeight},t.setInterpolationTypeToNearest=()=>t.setInterpolationType(Vp.NEAREST),t.setInterpolationTypeToLinear=()=>t.setInterpolationType(Vp.LINEAR),t.getInterpolationTypeAsString=()=>W.enumToString(Vp,e.interpolationType)}const Kte={independentComponents:!1,interpolationType:Vp.LINEAR,colorWindow:255,colorLevel:127.5,ambient:1,diffuse:0,opacity:1,useLookupTableScalarRange:!1,useLabelOutline:!1,labelOutlineThickness:[1],labelOutlineOpacity:1};function KM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,Kte,r),W.obj(t,e),!e.componentData){e.componentData=[];for(let n=0;nt,t.getImages=()=>t,t.getIsOpaque=()=>{if(e.forceOpaque)return!0;if(e.forceTranslucent)return!1;e.property||t.getProperty();let r=e.property.getOpacity()>=1;return r=r&&(!e.mapper||e.mapper.getIsOpaque()),r},t.hasTranslucentPolygonalGeometry=()=>!1,t.makeProperty=Xte.newInstance,t.getProperty=()=>(e.property===null&&(e.property=t.makeProperty()),e.property),t.getBounds=()=>{if(e.mapper===null)return e.bounds;const r=e.mapper.getBounds();if(!r||r.length!==6)return r;if(r[0]>r[1])return e.mapperBounds=r.concat(),e.bounds=[1,-1,1,-1,1,-1],e.boundsMTime.modified(),r;const n=i=>i[0].map((o,a)=>i.map(s=>s[a]));if(!e.mapperBounds||!n([r,e.mapperBounds]).reduce((i,o)=>i&&o[0]===o[1],!0)||t.getMTime()>e.boundsMTime.getMTime()){Yte("Recomputing bounds..."),e.mapperBounds=r.map(o=>o),t.computeMatrix();const i=new Float64Array(16);St(i,e.matrix),qt.transformBounds(r,i,e.bounds),e.boundsMTime.modified()}return e.bounds},t.getBoundsForSlice=(r,n)=>{const i=e.mapper.getBoundsForSlice(r,n);if(!qt.isValid(i))return i;t.computeMatrix();const o=new Float64Array(16);return St(o,e.matrix),qt.transformBounds(i,o)},t.getMinXBound=()=>t.getBounds()[0],t.getMaxXBound=()=>t.getBounds()[1],t.getMinYBound=()=>t.getBounds()[2],t.getMaxYBound=()=>t.getBounds()[3],t.getMinZBound=()=>t.getBounds()[4],t.getMaxZBound=()=>t.getBounds()[5],t.getMTime=()=>{let r=e.mtime;if(e.property!==null){const n=e.property.getMTime();r=n>r?n:r}return r},t.getRedrawMTime=()=>{let r=e.mtime;if(e.mapper!==null){let n=e.mapper.getMTime();r=n>r?n:r,e.mapper.getInput()!==null&&(e.mapper.getInputAlgorithm().update(),n=e.mapper.getInput().getMTime(),r=n>r?n:r)}if(e.property!==null){let n=e.property.getMTime();r=n>r?n:r,e.property.getRGBTransferFunction()!==null&&(n=e.property.getRGBTransferFunction().getMTime(),r=n>r?n:r)}return r},t.getSupportsSelection=()=>e.mapper?e.mapper.getSupportsSelection():!1}const Zte={mapper:null,property:null,bounds:[...qt.INIT_BOUNDS]};function qM(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Zte,r),Kw.extend(t,e,r),e.boundsMTime={},W.obj(e.boundsMTime),W.set(t,e,["property"]),W.setGet(t,e,["mapper"]),W.getArray(t,e,["bounds"],6),Jte(t,e)}const Qte=W.newInstance(qM,"vtkImageSlice");var ene={newInstance:Qte,extend:qM};function XM(t){const e=Ys.newInstance();let r=0,n=1024;return t.lower!==void 0&&t.upper!==void 0&&(r=t.lower,n=t.upper),e.addRGBPoint(r,0,0,0),e.addRGBPoint(n,1,1,1),e}function u2(t,e){const r=e.voxelManager.getScalarData();if(!t.getPointData)return;const n=t.getPointData().getScalars().getData();if(e.color&&e.rgba){const i=new Uint8Array(e.columns*e.rows*3);for(let o=0;oi,n.set(i)}else n.set(r);t.modified()}function Tt(){return window.performance?performance.now():Date.now()}function tne(t,e){return function(r){const n=((r-(e-.5))/(t-1)+.5)*255;return Math.min(Math.max(n,0),255)}}function nne(t){const r=Math.max(...t.lut).toString(2).length-8,n=t.lut[0]>>r,i=t.lut[t.lut.length-1]>>r,o=t.firstValueMapped+t.lut.length-1;return function(a){return a=o?i:t.lut[a-t.firstValueMapped]>>r}}function YM(t,e,r){return r?nne(r):tne(t,e)}function rne(t,e,r,n,i){const o=t.maxPixelValue,a=t.minPixelValue,s=Math.min(a,0);if(t.cachedLut===void 0){const f=o-s+1;t.cachedLut={},t.cachedLut.lutArray=new Uint8ClampedArray(f)}const c=t.cachedLut.lutArray,l=YM(Array.isArray(e)?e[0]:e,Array.isArray(r)?r[0]:r,i);if(n)for(let f=a;f<=o;f++)c[f+-s]=255-l(f);else for(let f=a;f<=o;f++)c[f+-s]=l(f);return c}function ine(t,e,r){let n=Tt();const i=t.voxelManager.getScalarData();t.stats.lastGetPixelDataTime=Tt()-n;const o=t.minPixelValue;let a=0,s=0;const c=i.length;if(n=Tt(),o<0)for(;s0||t.voi.windowWidth!==void 0&&t.voi.windowCenter!==void 0}function k8(t,e){return!t&&!e?!0:!t||!e?!1:t.id===e.id}function gne(t,e){return r=>r*t+e}function pne(t){const e=t.lut[0],r=t.lut[t.lut.length-1],n=t.firstValueMapped+t.lut.length;return i=>i=n?r:t.lut[i]}function mne(t,e,r){return r?pne(r):gne(t,e)}function vne(t,e,r,n,i,o){const a=t.maxPixelValue,s=t.minPixelValue,c=Math.min(s,0);if(t.cachedLut===void 0){const d=a-c+1;t.cachedLut={},t.cachedLut.lutArray=new Uint8ClampedArray(d)}const l=t.cachedLut.lutArray,f=mne(t.slope,t.intercept,i),u=YM(e,r,o);if(t.isPreScaled)if(n)for(let d=s;d<=a;d++)l[d+-c]=255-u(d);else for(let d=s;d<=a;d++)l[d+-c]=u(d);else if(n)for(let d=s;d<=a;d++)l[d+-c]=255-u(f(d));else for(let d=s;d<=a;d++)l[d+-c]=u(f(d));return l}function JM(t,e,r){return t.cachedLut!==void 0&&t.cachedLut.windowCenter===e.voi.windowCenter&&t.cachedLut.windowWidth===e.voi.windowWidth&&k8(t.cachedLut.modalityLUT,e.modalityLUT)&&k8(t.cachedLut.voiLUT,e.voiLUT)&&t.cachedLut.invert===e.invert&&!r||(dne(e,t),vne(t,e.voi.windowWidth,e.voi.windowCenter,e.invert,e.modalityLUT,e.voiLUT),t.cachedLut.windowWidth=e.voi.windowWidth,t.cachedLut.windowCenter=e.voi.windowCenter,t.cachedLut.invert=e.invert,t.cachedLut.voiLUT=e.voiLUT,t.cachedLut.modalityLUT=e.modalityLUT),t.cachedLut.lutArray}function yne(t,e,r,n=!0){const i=t.renderingTools.lastRenderedIsColor;(!t.renderingTools.renderCanvas||i)&&(t.renderingTools.renderCanvas=document.createElement("canvas"),Y1(t,e));const o=t.renderingTools.renderCanvas;if(!lC(t,e)&&!r)return o;(o.width!==e.width||o.height!==e.height)&&Y1(t,e),e.stats=e.stats||{};const a=t.renderingTools.renderCanvasData,s=t.renderingTools.renderCanvasContext;let c=Tt();e.stats.lastLutGenerateTime=Tt()-c;const{viewport:l}=t;if(l.modality==="PT"&&e.isPreScaled){const{windowWidth:f,windowCenter:u}=l.voi,d=u-f/2,p=255/(u+f/2-d);let v;l.invert?v=x=>255-(x-d)*p:v=x=>(x-d)*p,une(e,v,a.data)}else{const f=JM(e,l,r);n?lne(e,f,a.data):fne(e,f,a.data)}return c=Tt(),s.putImageData(a,0,0),e.stats.lastPutImageDataTime=Tt()-c,o}function xne(t,e){if(t===void 0)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=t.image;if(r===void 0)throw new Error("drawImage: image must be loaded before it can be drawn");const n=t.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,t.canvas.width,t.canvas.height),n.imageSmoothingEnabled=!t.viewport.pixelReplication,cC(t,n);const i=yne(t,r,e),o=t.viewport.displayedArea.tlhc.x-1,a=t.viewport.displayedArea.tlhc.y-1,s=t.viewport.displayedArea.brhc.x-o,c=t.viewport.displayedArea.brhc.y-a;n.drawImage(i,o,a,s,c,0,0,s,c),t.renderingTools=uC(t)}const a3=0,s3=1,wne=2;function Cne(t,e,r){if(t>1)throw new Error("HSVToRGB expects hue < 1");const n=[];if(e===0)return n[0]=r,n[1]=r,n[2]=r,n;const i=Math.floor(t*6),o=6*t-i,a=r*(1-e),s=r*(1-e*o),c=r*(1-e*(1-o));switch(i){case 0:case 6:n[0]=r,n[1]=c,n[2]=a;break;case 1:n[0]=s,n[1]=r,n[2]=a;break;case 2:n[0]=a,n[1]=r,n[2]=c;break;case 3:n[0]=a,n[1]=s,n[2]=r;break;case 4:n[0]=c,n[1]=a,n[2]=r;break;case 5:n[0]=r,n[1]=a,n[2]=s;break}return n}function Sne(t,e){let r;return te.Range[1]?r=e.MaxIndex+s3+1.5:r=(t+e.Shift)*e.Scale,Math.floor(r)}class fC{constructor(){this.NumberOfColors=256,this.Ramp="linear",this.TableRange=[0,255],this.HueRange=[0,.66667],this.SaturationRange=[1,1],this.ValueRange=[1,1],this.AlphaRange=[1,1],this.NaNColor=[128,0,0,255],this.BelowRangeColor=[0,0,0,255],this.UseBelowRangeColor=!0,this.AboveRangeColor=[255,255,255,255],this.UseAboveRangeColor=!0,this.InputRange=[0,255],this.Table=[]}setNumberOfTableValues(e){this.NumberOfColors=e}setRamp(e){this.Ramp=e}setTableRange(e,r){this.TableRange[0]=e,this.TableRange[1]=r}setHueRange(e,r){this.HueRange[0]=e,this.HueRange[1]=r}setSaturationRange(e,r){this.SaturationRange[0]=e,this.SaturationRange[1]=r}setValueRange(e,r){this.ValueRange[0]=e,this.ValueRange[1]=r}setRange(e,r){this.InputRange[0]=e,this.InputRange[1]=r}setAlphaRange(e,r){this.AlphaRange[0]=e,this.AlphaRange[1]=r}getColor(e){return this.mapValue(e)}build(e){if(this.Table.length>1&&!e)return;this.Table=[];const r=this.NumberOfColors-1;let n,i,o,a;r?(n=(this.HueRange[1]-this.HueRange[0])/r,i=(this.SaturationRange[1]-this.SaturationRange[0])/r,o=(this.ValueRange[1]-this.ValueRange[0])/r,a=(this.AlphaRange[1]-this.AlphaRange[0])/r):n=i=o=a=0;for(let s=0;s<=r;s++){const c=this.HueRange[0]+s*n,l=this.SaturationRange[0]+s*i,f=this.ValueRange[0]+s*o,u=this.AlphaRange[0]+s*a,d=Cne(c,l,f),h=[0,0,0,0];switch(this.Ramp){case"scurve":h[0]=Math.floor(127.5*(1+Math.cos((1-d[0])*Math.PI))),h[1]=Math.floor(127.5*(1+Math.cos((1-d[1])*Math.PI))),h[2]=Math.floor(127.5*(1+Math.cos((1-d[2])*Math.PI))),h[3]=Math.floor(u*255);break;case"linear":h[0]=Math.floor(d[0]*255+.5),h[1]=Math.floor(d[1]*255+.5),h[2]=Math.floor(d[2]*255+.5),h[3]=Math.floor(u*255+.5);break;case"sqrt":h[0]=Math.floor(Math.sqrt(d[0])*255+.5),h[1]=Math.floor(Math.sqrt(d[1])*255+.5),h[2]=Math.floor(Math.sqrt(d[2])*255+.5),h[3]=Math.floor(Math.sqrt(u)*255+.5);break;default:throw new Error(`Invalid Ramp value (${this.Ramp})`)}this.Table.push(h)}this.buildSpecialColors()}buildSpecialColors(){const e=this.NumberOfColors,r=e+a3,n=e+s3,i=e+wne;this.UseBelowRangeColor||e===0?this.Table[r]=this.BelowRangeColor:this.Table[r]=this.Table[0],this.UseAboveRangeColor||e===0?this.Table[n]=this.AboveRangeColor:this.Table[n]=this.Table[e-1],this.Table[i]=this.NaNColor}mapValue(e){const r=this.getIndex(e);if(r<0)return this.NaNColor;if(r===0){if(this.UseBelowRangeColor&&ethis.TableRange[1])return this.AboveRangeColor;return this.Table[r]}getIndex(e){const r={Range:[],MaxIndex:this.NumberOfColors-1,Shift:-this.TableRange[0],Scale:1};if(this.TableRange[1]<=this.TableRange[0]?r.Scale=Number.MAX_VALUE:r.Scale=r.MaxIndex/(this.TableRange[1]-this.TableRange[0]),r.Range[0]=this.TableRange[0],r.Range[1]=this.TableRange[1],isNaN(e))return-1;let n=Sne(e,r);return n===this.NumberOfColors+a3?n=0:n===this.NumberOfColors+s3&&(n=this.NumberOfColors-1),n}setTableValue(e,r,n,i,o){let a;if(typeof r=="number"&&n!==void 0&&i!==void 0&&o!==void 0)a=[r,n,i,o];else if(Array.isArray(r))a=r;else throw new Error("Invalid arguments for setTableValue");if(e<0)throw new Error(`Can't set the table value for negative index (${e})`);if(e>=this.NumberOfColors)throw new Error(`Index ${e} is greater than the number of colors ${this.NumberOfColors}`);this.Table[e]=a,(e===0||e===this.NumberOfColors-1)&&this.buildSpecialColors()}}const V8=[0,0,0,0];function Tne(t,e,r){r=r===null?100:r;const n=(e-t)/(r-1),i=[];for(;r-- >0;)i.push(t),t+=n;return i[i.length-1]=e,i}function _ne(t,e){let r=0,n=t.length-1;for(;r<=n;){const i=r+Math.floor((n-r)/2),o=t[i];if(o===e)return i;e=0&&ic3(Math.floor(255-(m-h)*v),0,255):x=m=>c3(Math.floor((m-h)*v),0,255),One(e,x,f,s.data)}else{const u=JM(e,t.viewport,r);e.stats=e.stats||{},e.stats.lastLutGenerateTime=Tt()-a,Ine(e,u,f,s.data)}return a=Tt(),c.putImageData(s,0,0),e.stats.lastPutImageDataTime=Tt()-a,n}function Rne(t,e){if(t===void 0)throw new Error("drawImage: enabledElement parameter must not be undefined");const r=t.image;if(r===void 0)throw new Error("drawImage: image must be loaded before it can be drawn");const n=t.canvas.getContext("2d");n.setTransform(1,0,0,1,0,0),n.fillStyle="black",n.fillRect(0,0,t.canvas.width,t.canvas.height),n.imageSmoothingEnabled=!t.viewport.pixelReplication,cC(t,n);const i=Mne(t,r,e),o=t.viewport.displayedArea.tlhc.x-1,a=t.viewport.displayedArea.tlhc.y-1,s=t.viewport.displayedArea.brhc.x-o,c=t.viewport.displayedArea.brhc.y-a;n.drawImage(i,o,a,s,c,0,0,s,c),t.renderingTools=uC(t)}function ZM(t,e){const r=t.image;if(!t.canvas||!t.image)return;const n=Tt();if(r.stats={lastGetPixelDataTime:-1,lastStoredPixelDataToCanvasImageDataTime:-1,lastPutImageDataTime:-1,lastRenderTime:-1,lastLutGenerateTime:-1},r){let o=r.render;o||(t.viewport.colormap?o=Rne:r.color?o=cne:o=xne),o(t,e)}const i=Tt()-n;r.stats.lastRenderTime=i,t.invalid=!1,t.needsRedraw=!1}function QM(t){return kd(t)}function bg(t,e){const r=QM(t);return r.invert(),r.transformPoint(e)}const Lne={viewport:{}};function Nne(){return{tlhc:{x:1,y:1},brhc:{x:1,y:1},rowPixelSpacing:1,columnPixelSpacing:1,presentationSizeMode:"NONE"}}function Pne(){const t=Nne();return Object.assign({},{scale:1,translation:{x:0,y:0},voi:{windowWidth:void 0,windowCenter:void 0},invert:!1,pixelReplication:!1,rotation:0,hflip:!1,vflip:!1,modalityLUT:void 0,voiLUT:void 0,colormap:void 0,labelmap:!1,displayedArea:t},Lne.viewport)}function Xf(t,e){if(t==null)throw new Error(e)}function Ane(t){return!(t==null||t===0||t===180)}function eR(t,e=null){return Xf(t,"getImageSize: parameter image must not be undefined"),Xf(t.width,"getImageSize: parameter image must have width"),Xf(t.height,"getImageSize: parameter image must have height"),Ane(e)?{height:t.width,width:t.height}:{width:t.width,height:t.height}}function dC(t,e,r=null){Xf(t,"getImageScale: parameter canvas must not be undefined"),Xf(e,"getImageScale: parameter image must not be undefined");const n=eR(e,r),i=e.rowPixelSpacing||1,o=e.columnPixelSpacing||1;let a=1,s=1;i{this._configureRenderingPipeline()},this.resize=()=>{this.useCPURendering&&this._resizeCPU()},this._resizeCPU=()=>{this._cpuFallbackEnabledElement.viewport&&Bne(this._cpuFallbackEnabledElement)},this.getFrameOfReferenceUID=r=>{var n;return(n=this.getImagePlaneReferenceData(r))==null?void 0:n.FrameOfReferenceUID},this.getCornerstoneImage=()=>this.csImage,this.createActorMapper=r=>{const n=jte.newInstance();n.setInputData(r);const i=ene.newInstance();i.setMapper(n);const{preferSizeOverAccuracy:o}=Jw().rendering;return o&&n.setPreferSizeOverAccuracy(!0),r.getPointData().getScalars().getNumberOfComponents()>1&&i.getProperty().setIndependentComponents(!1),i},this.getNumberOfSlices=()=>this.imageIds.length,this.getDefaultProperties=r=>{let n;return r!==void 0&&(n=this.perImageIdDefaultProperties.get(r)),n!==void 0?n:{...this.globalDefaultProperties}},this.getProperties=()=>{const{colormap:r,voiRange:n,VOILUTFunction:i,interpolationType:o,invert:a,voiUpdatedWithSetProperties:s}=this;return{colormap:r,voiRange:n,VOILUTFunction:i,interpolationType:o,invert:a,isComputedVOI:!s}},this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,suppressEvents:!0}),this.getRotationCPU=()=>{const{viewport:r}=this._cpuFallbackEnabledElement;return r.rotation},this.getRotationGPU=()=>{const{viewUp:r,viewPlaneNormal:n,flipVertical:i}=this.getCameraNoRotation(),o=i?qc(we(),this.initialViewUp):this.initialViewUp,a=Tw(o,r)*180/Math.PI,s=Kt(we(),o,r);return je(s,n)>=0?a:(360-a)%360},this.setRotation=r=>{const n=this.getCamera();if(this.useCPURendering?this.setRotationCPU(r):this.setRotationGPU(r),this._suppressCameraModifiedEvents)return;const i=this.getCamera(),o={previousCamera:n,camera:i,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,o)},this.renderImageObject=r=>{this._setCSImage(r),(this.useCPURendering?this._updateToDisplayImageCPU:this._updateActorToDisplayImageId).call(this,r)},this._setCSImage=r=>{var n;r.isPreScaled=(n=r.preScale)==null?void 0:n.scaled,this.csImage=r},this.canvasToWorldCPU=(r,n=[0,0,0])=>{if(!this._cpuFallbackEnabledElement.image)return;const[i,o]=bg(this._cpuFallbackEnabledElement,r),{origin:a,spacing:s,direction:c}=this.getImageData(),l=c.slice(0,3),f=c.slice(3,6);return Vt(n,a,l,i*s[0]),Vt(n,n,f,o*s[1]),n},this.worldToCanvasCPU=r=>{const{spacing:n,direction:i,origin:o}=this.getImageData(),a=i.slice(0,3),s=i.slice(3,6),c=kt(we(),r,o),l=[je(c,a)/n[0],je(c,s)/n[1]];return F8(this._cpuFallbackEnabledElement,l)},this.canvasToWorldGPU=r=>{const n=this.getRenderer(),i=this.getVtkActiveCamera(),o=i.getClippingRange(),a=i.getDistance();i.setClippingRange(a,a+.1);const c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=window.devicePixelRatio||1,u=[r[0]*f,r[1]*f],d=[u[0]+this.sx,u[1]+this.sy];d[1]=l[1]-d[1];const h=c.displayToWorld(d[0],d[1],0,n);return i.setClippingRange(o[0],o[1]),[h[0],h[1],h[2]]},this.worldToCanvasGPU=r=>{const n=this.getRenderer(),i=this.getVtkActiveCamera(),o=i.getClippingRange(),a=i.getDistance();i.setClippingRange(a,a+.1);const c=this.getRenderingEngine().offscreenMultiRenderWindow.getOpenGLRenderWindow(),l=c.getSize(),f=c.worldToDisplay(...r,n);f[1]=l[1]-f[1];const u=[f[0]-this.sx,f[1]-this.sy];i.setClippingRange(o[0],o[1]);const d=window.devicePixelRatio||1;return[u[0]/d,u[1]/d]},this.getCurrentImageIdIndex=()=>this.currentImageIdIndex,this.getSliceIndex=()=>this.currentImageIdIndex,this.getTargetImageIdIndex=()=>this.targetImageIdIndex,this.getImageIds=()=>this.imageIds,this.getCurrentImageId=()=>this.imageIds[this.currentImageIdIndex],this.hasImageId=r=>this.imageIds.includes(r),this.hasImageURI=r=>{const n=this.imageIds;for(let i=0;i{if(!this.useCPURendering)throw new Error("Custom cpu rendering pipeline should only be hit in CPU rendering mode");return this._cpuFallbackEnabledElement.image?(ZM(this._cpuFallbackEnabledElement,this.cpuRenderingInvalidated),this.cpuRenderingInvalidated=!1):this.fillWithBackgroundColor(),{canvas:this.canvas,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,viewportStatus:this.viewportStatus}},this.renderingPipelineFunctions={getImageData:{cpu:this.getImageDataCPU,gpu:this.getImageDataGPU},setColormap:{cpu:this.setColormapCPU,gpu:this.setColormapGPU},getCamera:{cpu:this.getCameraCPU,gpu:super.getCamera},setCamera:{cpu:this.setCameraCPU,gpu:super.setCamera},getPan:{cpu:this.getPanCPU,gpu:super.getPan},setPan:{cpu:this.setPanCPU,gpu:super.setPan},getZoom:{cpu:this.getZoomCPU,gpu:super.getZoom},setZoom:{cpu:this.setZoomCPU,gpu:super.setZoom},setVOI:{cpu:this.setVOICPU,gpu:this.setVOIGPU},getRotation:{cpu:this.getRotationCPU,gpu:this.getRotationGPU},setInterpolationType:{cpu:this.setInterpolationTypeCPU,gpu:this.setInterpolationTypeGPU},setInvertColor:{cpu:this.setInvertColorCPU,gpu:this.setInvertColorGPU},resetCamera:{cpu:(r={})=>{const{resetPan:n=!0,resetZoom:i=!0}=r;return this.resetCameraCPU({resetPan:n,resetZoom:i}),!0},gpu:(r={})=>{const{resetPan:n=!0,resetZoom:i=!0}=r;return this.resetCameraGPU({resetPan:n,resetZoom:i}),!0}},canvasToWorld:{cpu:this.canvasToWorldCPU,gpu:this.canvasToWorldGPU},worldToCanvas:{cpu:this.worldToCanvasCPU,gpu:this.worldToCanvasGPU},getRenderer:{cpu:()=>this.getCPUFallbackError("getRenderer"),gpu:super.getRenderer},getDefaultActor:{cpu:()=>this.getCPUFallbackError("getDefaultActor"),gpu:super.getDefaultActor},getActors:{cpu:()=>this.getCPUFallbackError("getActors"),gpu:super.getActors},getActor:{cpu:()=>this.getCPUFallbackError("getActor"),gpu:super.getActor},setActors:{cpu:()=>this.getCPUFallbackError("setActors"),gpu:super.setActors},addActors:{cpu:()=>this.getCPUFallbackError("addActors"),gpu:super.addActors},addActor:{cpu:()=>this.getCPUFallbackError("addActor"),gpu:super.addActor},removeAllActors:{cpu:()=>this.getCPUFallbackError("removeAllActors"),gpu:super.removeAllActors},unsetColormap:{cpu:this.unsetColormapCPU,gpu:this.unsetColormapGPU}},this.scaling={},this.modality=null,this.useCPURendering=Kf(),this._configureRenderingPipeline(),this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport(),this.imageIds=[],this.currentImageIdIndex=0,this.targetImageIdIndex=0,this.resetCamera(),this.initializeElementDisabledHandler()}setUseCPURendering(e){this.useCPURendering=e,this._configureRenderingPipeline(e)}static get useCustomRenderingPipeline(){return Kf()}_configureRenderingPipeline(e){this.useCPURendering=e??Kf();for(const r in this.renderingPipelineFunctions)if(Object.prototype.hasOwnProperty.call(this.renderingPipelineFunctions,r)){const n=this.renderingPipelineFunctions[r];this[r]=this.useCPURendering?n.cpu:n.gpu}this.useCPURendering?this._resetCPUFallbackElement():this._resetGPUViewport()}_resetCPUFallbackElement(){this._cpuFallbackEnabledElement={canvas:this.canvas,renderingTools:{},transform:new D0,viewport:{rotation:0}}}_resetGPUViewport(){const e=this.getRenderer(),r=$w.newInstance();e.setActiveCamera(r);const n=[0,0,-1];this.initialViewUp=[0,-1,0],r.setDirectionOfProjection(-n[0],-n[1],-n[2]),r.setViewUp(...this.initialViewUp),r.setParallelProjection(!0),r.setThicknessFromFocalPoint(.1),r.setFreezeFocalPoint(!0)}initializeElementDisabledHandler(){Ce.addEventListener(Se.ELEMENT_DISABLED,function e(){clearTimeout(this.debouncedTimeout),Ce.removeEventListener(Se.ELEMENT_DISABLED,e)})}getImageDataGPU(){const e=this.getDefaultActor();if(!e||!Xo(e))return;const{actor:r}=e,n=r.getMapper().getInputData(),i=this.csImage;return{dimensions:n.getDimensions(),spacing:n.getSpacing(),origin:n.getOrigin(),direction:n.getDirection(),get scalarData(){return i==null?void 0:i.voxelManager.getScalarData()},imageData:r.getMapper().getInputData(),metadata:{Modality:this.modality,FrameOfReferenceUID:this.getFrameOfReferenceUID()},scaling:this.scaling,hasPixelSpacing:this.hasPixelSpacing,calibration:{...i==null?void 0:i.calibration,...this.calibration},preScale:{...i==null?void 0:i.preScale},voxelManager:i==null?void 0:i.voxelManager}}getImageDataCPU(){const{metadata:e}=this._cpuFallbackEnabledElement,r=e.spacing,n=this.csImage;return{dimensions:e.dimensions,spacing:r,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:this.getFrameOfReferenceUID()},scaling:this.scaling,imageData:{getDirection:()=>e.direction,getDimensions:()=>e.dimensions,getScalarData:()=>this.cpuImagePixelData,getSpacing:()=>r,worldToIndex:i=>{const o=this.worldToCanvasCPU(i),a=bg(this._cpuFallbackEnabledElement,o);return[a[0],a[1],0]},indexToWorld:(i,o)=>{const a=F8(this._cpuFallbackEnabledElement,[i[0],i[1]]);return this.canvasToWorldCPU(a,o)}},scalarData:this.cpuImagePixelData,hasPixelSpacing:this.hasPixelSpacing,calibration:{...n==null?void 0:n.calibration,...this.calibration},preScale:{...n==null?void 0:n.preScale},voxelManager:n==null?void 0:n.voxelManager}}buildMetadata(e){const r=e.imageId,{pixelRepresentation:n,bitsAllocated:i,bitsStored:o,highBit:a,photometricInterpretation:s,samplesPerPixel:c}=Pe("imagePixelModule",r),{windowWidth:l,windowCenter:f,voiLUTFunction:u}=e,{modality:d}=Pe("generalSeriesModule",r),h=Pe("scalingModule",r),g=Pe(si.CALIBRATION,r);d==="PT"&&h&&this._addScalingToViewport(h),this.modality=d;const p=this._getValidVOILUTFunction(u);this.VOILUTFunction=p,this.calibration=g;let v=this._getImagePlaneModule(r);return this.useCPURendering||(v=this.calibrateIfNecessary(r,v)),{imagePlaneModule:v,imagePixelModule:{bitsAllocated:i,bitsStored:o,samplesPerPixel:c,highBit:a,photometricInterpretation:s,pixelRepresentation:n,windowWidth:l,windowCenter:f,modality:d,voiLUTFunction:p}}}calibrateIfNecessary(e,r){const n=Pe("calibratedPixelSpacing",e),i=this.calibration!==n,{scale:o}=n||{};return this.hasPixelSpacing=o>0||r.rowPixelSpacing>0,r.calibration=n,i&&(this.calibration=n,this._publishCalibratedEvent=!0,this._calibrationEvent={scale:o,calibration:n}),r}setDefaultProperties(e,r){r==null?this.globalDefaultProperties=e:(this.perImageIdDefaultProperties.set(r,e),this.getCurrentImageId()===r&&this.setProperties(e))}clearDefaultProperties(e){e==null?(this.globalDefaultProperties={},this.resetProperties()):(this.perImageIdDefaultProperties.delete(e),this.resetToDefaultProperties())}setProperties({colormap:e,voiRange:r,VOILUTFunction:n,invert:i,interpolationType:o}={},a=!1){this.viewportStatus=this.csImage?oi.PRE_RENDER:oi.LOADING,this.globalDefaultProperties={colormap:this.globalDefaultProperties.colormap??e,voiRange:this.globalDefaultProperties.voiRange??r,VOILUTFunction:this.globalDefaultProperties.VOILUTFunction??n,invert:this.globalDefaultProperties.invert??i,interpolationType:this.globalDefaultProperties.interpolationType??o},typeof e<"u"&&this.setColormap(e),typeof r<"u"&&this.setVOI(r,{suppressEvents:a,voiUpdatedWithSetProperties:!0}),typeof n<"u"&&this.setVOILUTFunction(n,a),typeof i<"u"&&this.setInvertColor(i),typeof o<"u"&&this.setInterpolationType(o)}resetProperties(){this.cpuRenderingInvalidated=!0,this.voiUpdatedWithSetProperties=!1,this.viewportStatus=oi.PRE_RENDER,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={}),this._resetProperties(),this.render()}_resetProperties(){let e;this._isCurrentImagePTPrescaled()?e=this._getDefaultPTPrescaledVOIRange():e=this._getVOIRangeForCurrentImage(),this.setVOI(e),this.setInvertColor(this.initialInvert),this.setInterpolationType(La.LINEAR);const r=this.getTransferFunction();c2(r,this.initialTransferFunctionNodes);const i=$1(r).reduce((s,c)=>(s.push(c[0],c[1],c[2],c[3]),s),[]),o=this.getDefaultActor(),a=Qw(i,o.actor);this.setColormap(a)}resetToDefaultProperties(){var i;this.cpuRenderingInvalidated=!0,this.viewportStatus=oi.PRE_RENDER,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={});const e=this.getCurrentImageId(),r=this.perImageIdDefaultProperties.get(e)||this.globalDefaultProperties;(i=r.colormap)!=null&&i.name&&this.setColormap(r.colormap);let n;r.voiRange==null?n=this._getVOIRangeForCurrentImage():n=r.voiRange,this.setVOI(n),this.setInterpolationType(La.LINEAR),this.setInvertColor(!1),this.render()}_getVOIFromCache(){let e;return this.voiUpdatedWithSetProperties?e=this.voiRange:this._isCurrentImagePTPrescaled()?e=this._getDefaultPTPrescaledVOIRange():e=this._getVOIRangeForCurrentImage()??this.voiRange,e}_setPropertiesFromCache(){const e=this._getVOIFromCache(),{interpolationType:r,invert:n}=this;this.setVOI(e),this.setInterpolationType(r),this.setInvertColor(n)}getCameraCPU(){const{metadata:e,viewport:r}=this._cpuFallbackEnabledElement,{direction:n}=e,i=n.slice(6,9).map(u=>-u);let o=n.slice(3,6).map(u=>-u);if(r.rotation){const u=ww(lo(),r.rotation*Math.PI/180,i);o=et(we(),o,u)}const a=[this.element.clientWidth/2,this.element.clientHeight/2],s=this.canvasToWorld(a),c=this.canvasToWorld([0,0]),l=this.canvasToWorld([0,this.element.clientHeight]),f=Cr(c,l)/2;return{parallelProjection:!0,focalPoint:s,position:[0,0,0],parallelScale:f,scale:r.scale,viewPlaneNormal:[i[0],i[1],i[2]],viewUp:[o[0],o[1],o[2]],flipHorizontal:this.flipHorizontal,flipVertical:this.flipVertical}}setCameraCPU(e){const{viewport:r,image:n}=this._cpuFallbackEnabledElement,i=this.getCameraCPU(),{focalPoint:o,parallelScale:a,scale:s,flipHorizontal:c,flipVertical:l}=e,{clientHeight:f}=this.element;if(o){const d=this.worldToCanvasCPU(o),h=bg(this._cpuFallbackEnabledElement,d),g=this.worldToCanvasCPU(i.focalPoint),p=bg(this._cpuFallbackEnabledElement,g),v=ot();kn(v,VT(h[0],h[1]),VT(p[0],p[1]));const x=Gne({x:v[0],y:v[1]},r);r.translation.x-=x.x,r.translation.y-=x.y}if(a){const{rowPixelSpacing:d}=n,h=f*d*.5/a;r.scale=h,r.parallelScale=a}if(s){const{rowPixelSpacing:d}=n;r.scale=s,r.parallelScale=f*d*.5/s}(c!==void 0||l!==void 0)&&this.setFlipCPU({flipHorizontal:c,flipVertical:l}),this._cpuFallbackEnabledElement.transform=kd(this._cpuFallbackEnabledElement);const u={previousCamera:i,camera:this.getCamera(),element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.CAMERA_MODIFIED,u)}getPanCPU(){const{viewport:e}=this._cpuFallbackEnabledElement;return[e.translation.x,e.translation.y]}setPanCPU(e){const r=this.getCameraCPU();this.setCameraCPU({...r,focalPoint:[...e.map(n=>-n),0]})}getZoomCPU(){const{viewport:e}=this._cpuFallbackEnabledElement;return e.scale}setZoomCPU(e){const r=this.getCameraCPU();this.setCameraCPU({...r,scale:e})}setFlipCPU({flipHorizontal:e,flipVertical:r}){const{viewport:n}=this._cpuFallbackEnabledElement;e!==void 0&&(n.hflip=e,this.flipHorizontal=n.hflip),r!==void 0&&(n.vflip=r,this.flipVertical=n.vflip)}setVOILUTFunction(e,r){if(this.useCPURendering)throw new Error("VOI LUT function is not supported in CPU rendering");const n=this._getValidVOILUTFunction(e);let i=!1;this.VOILUTFunction!==n&&(i=!0),this.VOILUTFunction=n;const{voiRange:o}=this.getProperties();this.setVOI(o,{suppressEvents:r,forceRecreateLUTFunction:i})}setRotationCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r.rotation=e}setRotationGPU(e){const r=this.getPan(this.fitToCanvasCamera),n=this.getPan(),i=Oo([0,0],r,n);this.setPan(i,!1);const{flipVertical:o}=this.getCamera(),a=o?qc(we(),this.initialViewUp):this.initialViewUp;this.setCameraNoEvent({viewUp:a}),this.getVtkActiveCamera().roll(-e);const s=this.getPan(),c=this.getPan(this.fitToCanvasCamera),l=Oo([0,0],s,c),f=Lr([0,0],r,l);this.setPan(f,!1)}setInterpolationTypeGPU(e){const r=this.getDefaultActor();if(!r||!Xo(r))return;const{actor:n}=r;n.getProperty().setInterpolationType(e),this.interpolationType=e}setInterpolationTypeCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r.pixelReplication=e!==La.LINEAR,this.interpolationType=e}setInvertColorCPU(e){const{viewport:r}=this._cpuFallbackEnabledElement;r&&(r.invert=e,this.invert=e)}setInvertColorGPU(e){const r=this.getDefaultActor();if(r&&Xo(r)){if(ci(r,"vtkVolume")){const i=r.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&qf(i),this.invert=e}else if(ci(r,"vtkImageSlice")){const i=r.actor.getProperty().getRGBTransferFunction(0);(!this.invert&&e||this.invert&&!e)&&qf(i),this.invert=e}}}setVOICPU(e,r={}){const{suppressEvents:n=!1}=r,{viewport:i,image:o}=this._cpuFallbackEnabledElement;if(!i||!o)return;if(typeof e>"u"){const{windowWidth:s,windowCenter:c}=o,l=Array.isArray(s)?s[0]:s,f=Array.isArray(c)?c[0]:c;i.voi={windowWidth:l,windowCenter:f};const{lower:u,upper:d}=Gs(l,f);e={lower:u,upper:d}}else{const{lower:s,upper:c}=e,{windowCenter:l,windowWidth:f}=T0(s,c);i.voi||(i.voi={windowWidth:0,windowCenter:0}),i.voi.windowWidth=f,i.voi.windowCenter=l}this.voiRange=e;const a={viewportId:this.id,range:e};n||De(this.element,Se.VOI_MODIFIED,a)}getTransferFunction(){const e=this.getDefaultActor();return!e||!Xo(e)?void 0:e.actor.getProperty().getRGBTransferFunction(0)}setVOIGPU(e,r={}){const{suppressEvents:n=!1,forceRecreateLUTFunction:i=!1,voiUpdatedWithSetProperties:o=!1}=r;if(e&&this.voiRange&&this.voiRange.lower===e.lower&&this.voiRange.upper===e.upper&&!i&&!this.stackInvalidated)return;const a=this.getDefaultActor();if(!a||!Xo(a))return;const s=a.actor;let c=e;if(typeof c>"u"){const h=s.getMapper().getInputData().getPointData().getScalars().getRange();c={lower:h[0],upper:h[1]}}s.getProperty().setUseLookupTableScalarRange(!0);let l=s.getProperty().getRGBTransferFunction(0);const f=this.VOILUTFunction===Va.SAMPLED_SIGMOID;if((f||!l||i)&&(l=(f?eC:XM)(c),this.invert&&qf(l),s.getProperty().setRGBTransferFunction(0,l),this.initialTransferFunctionNodes=$1(l)),f||l.setRange(c.lower,c.upper),this.voiRange=c,this.voiUpdatedWithSetProperties||(this.voiUpdatedWithSetProperties=o),n)return;const u={viewportId:this.id,range:c,VOILUTFunction:this.VOILUTFunction};De(this.element,Se.VOI_MODIFIED,u)}_addScalingToViewport(e){if(this.scaling.PT)return;const{suvbw:r,suvlbm:n,suvbsa:i}=e,o={};n&&(o.suvbwToSuvlbm=n/r),i&&(o.suvbwToSuvbsa=i/r),this.scaling.PT=o}_getNumCompsFromPhotometricInterpretation(e){let r=1;return(e==="RGB"||e.includes("YBR")||e==="PALETTE COLOR")&&(r=3),r}getImageDataMetadata(e){const{imagePlaneModule:r,imagePixelModule:n}=this.buildMetadata(e);let i,o;i=r.rowCosines,o=r.columnCosines,(i==null||o==null)&&(i=[1,0,0],o=[0,1,0]);const a=Ye(i[0],i[1],i[2]),s=Ye(o[0],o[1],o[2]),c=we();Kt(c,a,s);let l=r.imagePositionPatient;l==null&&(l=[0,0,0]);const f=r.columnPixelSpacing||e.columnPixelSpacing,u=r.rowPixelSpacing||e.rowPixelSpacing,d=e.columns,h=e.rows,g=zne,p=1,v=e.numberOfComponents||this._getNumCompsFromPhotometricInterpretation(n.photometricInterpretation);return{bitsAllocated:n.bitsAllocated,numberOfComponents:v,origin:l,direction:[...a,...s,...c],dimensions:[d,h,p],spacing:[f,u,g],numVoxels:d*h*p,imagePlaneModule:r,imagePixelModule:n}}matchImagesForOverlay(e,r){return(i=>{const o=Pe(si.IMAGE_PLANE,r),a=Pe(si.IMAGE_PLANE,i),s=o.imageOrientationPatient,c=a.imageOrientationPatient;if(s&&c){if(pt(o.imageOrientationPatient,a.imageOrientationPatient)){const f=o.imagePositionPatient,u=a.imagePositionPatient;if(f&&u&&pt(f,u)){const h=o.rows,g=o.columns,p=a.rows,v=a.columns;if(h===p&&g===v)return i}}}else{const l=o.rows,f=o.columns,u=a.rows,d=a.columns;if(l===u&&f===d)return i}})(e)}getImagePlaneReferenceData(e=this.getCurrentImageIdIndex()){const r=this.imageIds[e];if(!r)return;const n=Pe(si.IMAGE_PLANE,r);if(!n)return;const{imagePositionPatient:i,frameOfReferenceUID:o}=n;let{rowCosines:a,columnCosines:s}=n;a||(a=[1,0,0]),s||(s=[0,1,0]);const c=Kt([0,0,0],s,a);return{FrameOfReferenceUID:o,viewPlaneNormal:c,cameraFocalPoint:i,referencedImageId:r,sliceIndex:e}}_getCameraOrientation(e){const r=e.slice(6,9).map(i=>-i),n=e.slice(3,6).map(i=>-i);return{viewPlaneNormal:[r[0],r[1],r[2]],viewUp:[n[0],n[1],n[2]]}}createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a}){const s=new a.constructor(a.length),c=tt.newInstance({name:"Pixels",numberOfComponents:o,values:s}),l=C0.newInstance();return l.setDimensions(n),l.setSpacing(i),l.setDirection(r),l.setOrigin(e),l.getPointData().setScalars(c),l}_createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a}){try{this._imageData=this.createVTKImageData({origin:e,direction:r,dimensions:n,spacing:i,numberOfComponents:o,pixelArray:a})}catch(s){console.error(s)}}async setStack(e,r=0){this._throwIfDestroyed(),this.imageIds=e,this.currentImageIdIndex=r,this.targetImageIdIndex=r;const n=Pe(Ad.IMAGE_RETRIEVE_CONFIGURATION,e[r],"stack");this.imagesLoader=n?(n.create||kM)(n):this,this.stackInvalidated=!0,this.flipVertical=!1,this.flipHorizontal=!1,this.voiRange=null,this.interpolationType=La.LINEAR,this.invert=!1,this.viewportStatus=oi.LOADING,this.fillWithBackgroundColor(),this.useCPURendering&&(this._cpuFallbackEnabledElement.renderingTools={},delete this._cpuFallbackEnabledElement.viewport.colormap);const i=await this._setImageIdIndex(r),o={imageIds:e,viewportId:this.id,element:this.element,currentImageIdIndex:r};return De(this.element,Se.VIEWPORT_NEW_IMAGE_SET,o),i}_throwIfDestroyed(){if(this.isDisabled)throw new Error("The stack viewport has been destroyed and is no longer usable. Renderings will not be performed. If you are using the same viewportId and have re-enabled the viewport, you need to grab the new viewport instance using renderingEngine.getViewport(viewportId), instead of using your lexical scoped reference to the viewport instance.")}_checkVTKImageDataMatchesCornerstoneImage(e,r){if(!r)return!1;const[n,i]=r.getSpacing(),[o,a]=r.getDimensions(),s=this._getImagePlaneModule(e.imageId),c=r.getDirection(),l=c.slice(0,3),f=c.slice(3,6),u=r.getPointData().getScalars().getDataType(),d=pt(n,e.columnPixelSpacing),h=pt(i,e.rowPixelSpacing),g=d||e.columnPixelSpacing===null&&n===1,p=h||e.rowPixelSpacing===null&&i===1,v=o===e.columns,x=a===e.rows,m=pt(s.rowCosines,l),y=pt(s.columnCosines,f),w=u===e.voxelManager.getScalarData().constructor.name;return g&&p&&v&&x&&m&&y&&w}_updateVTKImageDataFromCornerstoneImage(e){let n=this._getImagePlaneModule(e.imageId).imagePositionPatient;n==null&&(n=[0,0,0]),this._imageData.setOrigin(n),u2(this._imageData,e)}_loadAndDisplayImage(e,r){return this.useCPURendering?this._loadAndDisplayImageCPU(e,r):this._loadAndDisplayImageGPU(e,r)}_loadAndDisplayImageCPU(e,r){return new Promise((n,i)=>{function o(h,g,p){if(this.currentImageIdIndex!==g)return;const v=h.voxelManager.getScalarData(),x=h.preScale,m=x==null?void 0:x.scalingParameters,y=(x==null?void 0:x.scaled)&&(m==null?void 0:m.rescaleIntercept)%1!==0||(m==null?void 0:m.rescaleSlope)%1!==0;if(v instanceof Float32Array&&y){const C={min:h.maxPixelValue,max:h.minPixelValue},_=Math.abs(C.max-C.min)/65535,E=C.min,D=v.length,b=new Uint16Array(D);let I=65535,R=0;for(let M=0;Mb,h.preScale={...h.preScale,scaled:!1}}this._setCSImage(h),this.viewportStatus=oi.PRE_RENDER;const w={image:h,imageId:p,imageIdIndex:g,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.STACK_NEW_IMAGE,w),this._updateToDisplayImageCPU(h),this.render(),this.currentImageIdIndex=g,n(p)}function a(h,g,p){const v={error:h,imageIdIndex:g,imageId:p};this.suppressEvents||De(Ce,Se.IMAGE_LOAD_ERROR,v),i(h)}function s(h,g,p){return Js(h,p).then(v=>{o.call(this,v,g,h)},v=>{a.call(this,v,g,h)})}const c=-5,l=ht.Interaction,f={imageId:e,imageIdIndex:r},u={useRGBA:!0,requestType:l},d={imageId:e,imageIdIndex:r,viewportId:this.id,renderingEngineId:this.renderingEngineId};De(this.element,Se.PRE_STACK_NEW_IMAGE,d),fi.addRequest(s.bind(this,e,r,u),l,f,c)})}successCallback(e,r){var l,f;const n=this.imageIds.indexOf(e);if(this.currentImageIdIndex!==n)return;const i=(l=this.csImage)==null?void 0:l.imageFrame,o=r==null?void 0:r.imageFrame,a=(i==null?void 0:i.photometricInterpretation)||((f=this.csImage)==null?void 0:f.photometricInterpretation),s=(o==null?void 0:o.photometricInterpretation)||(r==null?void 0:r.photometricInterpretation);a!==s&&(this.stackInvalidated=!0),this._setCSImage(r);const c={image:r,imageId:e,imageIdIndex:n,viewportId:this.id,renderingEngineId:this.renderingEngineId};this._updateActorToDisplayImageId(r),De(this.element,Se.STACK_NEW_IMAGE,c),this.render(),this.currentImageIdIndex=n}errorCallback(e,r,n){if(!r)return;const i=this.imageIds.indexOf(e),o={error:n,imageIdIndex:i,imageId:e};De(Ce,Se.IMAGE_LOAD_ERROR,o)}getLoaderImageOptions(e){const r=this.imageIds.indexOf(e),{transferSyntaxUID:n}=Pe("transferSyntax",e)||{};return{useRGBA:!1,transferSyntaxUID:n,priority:5,requestType:ht.Interaction,additionalDetails:{imageId:e,imageIdIndex:r}}}async loadImages(e,r){const n=await Promise.allSettled(e.map(o=>{const a=this.getLoaderImageOptions(o);return Js(o,a).then(s=>(r.successCallback(o,s),o),s=>(r.errorCallback(o,!0,s),o))})),i=n.filter(o=>o.status==="rejected");if(i&&i.length){const o=new CustomEvent(Se.IMAGE_LOAD_ERROR,{detail:i,cancelable:!0});Ce.dispatchEvent(o)}return n}_loadAndDisplayImageGPU(e,r){const n={imageId:e,imageIdIndex:r,viewportId:this.id,renderingEngineId:this.renderingEngineId};return De(this.element,Se.PRE_STACK_NEW_IMAGE,n),this.imagesLoader.loadImages([e],this).then(i=>e)}_updateToDisplayImageCPU(e){const r=this.getImageDataMetadata(e),n=tR(this.canvas,e,this.modality,this._cpuFallbackEnabledElement.viewport.colormap),{windowCenter:i,windowWidth:o}=n.voi;this.voiRange=Gs(o,i),this._cpuFallbackEnabledElement.image=e,this._cpuFallbackEnabledElement.metadata={...r},this.cpuImagePixelData=e.voxelManager.getScalarData();const a=Object.assign({},n,this._cpuFallbackEnabledElement.viewport);this._cpuFallbackEnabledElement.viewport=this.stackInvalidated?n:a,this.stackInvalidated=!1,this.cpuRenderingInvalidated=!0,this._cpuFallbackEnabledElement.transform=kd(this._cpuFallbackEnabledElement)}getSliceViewInfo(){throw new Error("Method not implemented.")}addImages(e){const r=[];e.forEach(n=>{const{imageId:i,...o}=n,a=_e.getImage(i),{origin:s,dimensions:c,direction:l,spacing:f,numberOfComponents:u}=this.getImageDataMetadata(a),d=this.createVTKImageData({origin:s,dimensions:c,direction:l,spacing:f,numberOfComponents:u,pixelArray:a.voxelManager.getScalarData()}),h=this.createActorMapper(d);h&&(r.push({uid:n.actorUID??wn(),actor:h,referencedId:i,...o}),n.callback&&n.callback({imageActor:h,imageId:n.imageId}))}),this.addActors(r)}_updateActorToDisplayImageId(e){const r=this._checkVTKImageDataMatchesCornerstoneImage(e,this._imageData),n=this.getViewPresentation();if(r&&!this.stackInvalidated){this._updateVTKImageDataFromCornerstoneImage(e),this.resetCameraNoEvent(),this.setViewPresentation(n),this._setPropertiesFromCache(),this.stackActorReInitialized=!1;return}const{origin:i,direction:o,dimensions:a,spacing:s,numberOfComponents:c,imagePixelModule:l}=this.getImageDataMetadata(e),f=e.voxelManager.getScalarData();this._createVTKImageData({origin:i,direction:o,dimensions:a,spacing:s,numberOfComponents:c,pixelArray:f}),this._updateVTKImageDataFromCornerstoneImage(e);const u=this.createActorMapper(this._imageData),d=this.getActors();d.length&&d[0].uid===this.id?d[0].actor=u:d.unshift({uid:this.id,actor:u}),this.setActors(d);const{viewPlaneNormal:h,viewUp:g}=this._getCameraOrientation(o),p=this.getCamera();this.setCameraNoEvent({viewUp:g,viewPlaneNormal:h}),this.initialViewUp=g,this.resetCameraNoEvent(),this.setViewPresentation(n),this.triggerCameraEvent(this.getCamera(),p);const v=l.photometricInterpretation==="MONOCHROME1";this.stackInvalidated=!0;const x=this._getInitialVOIRange(e);this.setVOI(x,{forceRecreateLUTFunction:!!v}),this.initialInvert=!!v,this.setInvertColor(this.invert||this.initialInvert),this.stackInvalidated=!1,this.stackActorReInitialized=!0,this._publishCalibratedEvent&&this.triggerCalibrationEvent()}_getInitialVOIRange(e){if(this.voiRange&&this.voiUpdatedWithSetProperties)return this.globalDefaultProperties.voiRange;const{windowCenter:r,windowWidth:n}=e;let i=this._getVOIRangeFromWindowLevel(n,r);return i=this._getPTPreScaledRange()||i,i}_getPTPreScaledRange(){if(this._isCurrentImagePTPrescaled())return this._getDefaultPTPrescaledVOIRange()}_isCurrentImagePTPrescaled(){var e;return!(this.modality!=="PT"||!this.csImage.isPreScaled||!((e=this.csImage.preScale)!=null&&e.scalingParameters.suvbw))}_getDefaultPTPrescaledVOIRange(){return{lower:0,upper:5}}_getVOIRangeFromWindowLevel(e,r){let n,i;if(typeof r=="number"&&typeof e=="number"?(n=r,i=e):Array.isArray(r)&&Array.isArray(e)&&(n=r[0],i=e[0]),n!==void 0&&i!==void 0)return Gs(i,n)}async _setImageIdIndex(e){if(e>=this.imageIds.length)throw new Error(`ImageIdIndex provided ${e} is invalid, the stack only has ${this.imageIds.length} elements`);this.currentImageIdIndex=e,this.hasPixelSpacing=!0,this.viewportStatus=oi.PRE_RENDER;const r=await this._loadAndDisplayImage(this.imageIds[e],e);if(this.perImageIdDefaultProperties.size>=1){const n=this.perImageIdDefaultProperties.get(r);n!==void 0?this.setProperties(n):this.globalDefaultProperties!==void 0&&this.setProperties(this.globalDefaultProperties)}return r}resetCameraCPU({resetPan:e=!0,resetZoom:r=!0}){const{image:n}=this._cpuFallbackEnabledElement;if(!n)return;Wne(this._cpuFallbackEnabledElement,e,r);const{scale:i}=this._cpuFallbackEnabledElement.viewport,{clientWidth:o,clientHeight:a}=this.element,s=[o/2,a/2],c=this.canvasToWorldCPU(s);this.setCameraCPU({focalPoint:c,scale:i})}resetCameraGPU({resetPan:e,resetZoom:r}){return this.setCamera({flipHorizontal:!1,flipVertical:!1,viewUp:this.initialViewUp}),super.resetCamera({resetPan:e,resetZoom:r,resetToCenter:!0})}scroll(e,r=!0,n=!1){const i=this.imageIds,o=this.targetImageIdIndex,a=i.length;let s=o+e;s=Math.max(0,s),n?s=s%a:s=Math.min(a-1,s),this.targetImageIdIndex=s;const c=i[s];_e.isLoaded(c)||!r?this.setImageIdIndex(s):(clearTimeout(this.debouncedTimeout),this.debouncedTimeout=window.setTimeout(()=>{this.setImageIdIndex(s)},40));const f={newImageIdIndex:s,imageId:c,direction:e};s!==o&&De(this.element,Se.STACK_VIEWPORT_SCROLL,f)}setImageIdIndex(e){return this._throwIfDestroyed(),this.currentImageIdIndex===e?Promise.resolve(this.getCurrentImageId()):this._setImageIdIndex(e)}calibrateSpacing(e){const r=this.getImageIds().indexOf(e);this.stackInvalidated=!0,this._loadAndDisplayImage(e,r)}triggerCameraEvent(e,r){const n={previousCamera:r,camera:e,element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId};this.suppressEvents||De(this.element,Se.CAMERA_MODIFIED,n)}triggerCalibrationEvent(){const{imageData:e}=this.getImageData(),r={element:this.element,viewportId:this.id,renderingEngineId:this.renderingEngineId,imageId:this.getCurrentImageId(),imageData:e,worldToIndex:e.getWorldToIndex(),...this._calibrationEvent};this.suppressEvents||De(this.element,Se.IMAGE_SPACING_CALIBRATED,r),this._publishCalibratedEvent=!1}jumpToWorld(e){const r=this.getImageIds(),n=this.getImageData(),{direction:i,spacing:o}=n,a=Xa({direction:i,spacing:o,imageIds:r},e,this.getCamera().viewPlaneNormal),s=r.indexOf(a);return s===-1?!1:(this.setImageIdIndex(s),this.render(),!0)}_getVOIRangeForCurrentImage(){const{windowCenter:e,windowWidth:r}=this.csImage;return this._getVOIRangeFromWindowLevel(r,e)}_getValidVOILUTFunction(e){return Object.values(Va).includes(e)?e:Va.LINEAR}getSliceInfo(){const e=this.getSliceIndex(),{dimensions:r}=this.getImageData();return{width:r[0],height:r[1],sliceIndex:e,slicePlane:2}}isReferenceViewable(e,r={}){if(!super.isReferenceViewable(e,r))return!1;const{referencedImageId:n,sliceIndex:i}=e;if(e.volumeId&&!n)return r.asVolume;let o=this.getCurrentImageIdIndex(),a=this.imageIds[o];if(r.withNavigation&&typeof i=="number"&&(o=i,a=this.imageIds[o]),!a)return!1;if(r.asOverlay&&n&&this.matchImagesForOverlay(a,n))return!0;let{imageURI:s}=r;s||(s=Nn(a));const l=Nn(n)===s;if(l)return l;const{cameraFocalPoint:f}=e;if(r.asNearbyProjection&&f){const{spacing:u,direction:d,origin:h}=this.getImageData(),g=d.slice(6,9),p=qa({direction:d,spacing:u},g),v=kt(we(),f,h),x=je(v,g),m=p/2;if(Math.abs(x)<=m)return!0}return!1}getViewReference(e={}){const{sliceIndex:r=this.getCurrentImageIdIndex()}=e,n=super.getViewReference(e),i=this.imageIds[r];if(i){if(n.referencedImageId=i,this.getCurrentImageIdIndex()!==r){const o=this.getImagePlaneReferenceData(r);if(!o)return;Object.assign(n,o)}return n}}setViewReference(e){if(!e)return;const{referencedImageId:r,sliceIndex:n}=e;if(typeof n=="number"&&r&&r===this.imageIds[n])this.scroll(n-this.targetImageIdIndex);else{const i=this.imageIds.indexOf(r);if(i!==-1)this.scroll(i-this.targetImageIdIndex);else throw new Error("Unsupported - referenced image id not found")}}getViewReferenceId(e={}){const{sliceIndex:r=this.currentImageIdIndex}=e;if(Array.isArray(r))throw new Error("Use of slice ranges for stacks not supported");return`imageId:${this.imageIds[r]}`}getCPUFallbackError(e){return new Error(`method ${e} cannot be used during CPU Fallback mode`)}fillWithBackgroundColor(){const e=this.getRenderingEngine();e&&e.fillCanvasWithBackgroundColor(this.canvas,this.options.background)}unsetColormapCPU(){delete this._cpuFallbackEnabledElement.viewport.colormap,this._cpuFallbackEnabledElement.renderingTools={},this.cpuRenderingInvalidated=!0,this.fillWithBackgroundColor(),this.render()}setColormapCPU(e){this.colormap=e;const r=Pd(e.name);this._cpuFallbackEnabledElement.viewport.colormap=r,this._cpuFallbackEnabledElement.renderingTools={},this.fillWithBackgroundColor(),this.cpuRenderingInvalidated=!0,this.render();const n={viewportId:this.id,colormap:e};De(this.element,Se.COLORMAP_MODIFIED,n)}setColormapGPU(e){const i=this.getDefaultActor().actor.getProperty(),o=i.getRGBTransferFunction(),a=Pd(e.name)||U1.getPresetByName(e.name);if(o)o.applyColorMap(a),o.setMappingRange(this.voiRange.lower,this.voiRange.upper),i.setRGBTransferFunction(0,o);else{const c=Ys.newInstance();c.applyColorMap(a),c.setMappingRange(this.voiRange.lower,this.voiRange.upper),i.setRGBTransferFunction(0,c)}this.colormap=e,this.render();const s={viewportId:this.id,colormap:e};De(this.element,Se.COLORMAP_MODIFIED,s)}unsetColormapGPU(){throw new Error("unsetColormapGPU not implemented.")}_getImagePlaneModule(e){var i;const r=Pe(si.IMAGE_PLANE,e);this.hasPixelSpacing=!r.usingDefaultValues||((i=this.calibration)==null?void 0:i.scale)>0,this.calibration||(this.calibration=r.calibration);const n={...r};return n.columnPixelSpacing||(n.columnPixelSpacing=1),n.rowPixelSpacing||(n.rowPixelSpacing=1),n.columnCosines||(n.columnCosines=[0,1,0]),n.rowCosines||(n.rowCosines=[1,0,0]),n.imagePositionPatient||(n.imagePositionPatient=[0,0,0]),n.imageOrientationPatient||(n.imageOrientationPatient=new Float32Array([1,0,0,0,1,0])),n}}class nR extends Mn{constructor(e){super(e),this.getNumberOfSlices=()=>1,this.getRotation=()=>0,this.getCurrentImageIdIndex=()=>0,this.getCurrentImageId=()=>null,this.resetCameraForResize=()=>this.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0});const{parallelProjection:r,orientation:n}=this.options,i=this.getVtkActiveCamera();r!=null&&i.setParallelProjection(r),n&&n!==ju.ACQUISITION&&this.applyViewOrientation(n)}resetCamera({resetPan:e=!0,resetZoom:r=!0,resetToCenter:n=!0}={}){super.resetCamera({resetPan:e,resetZoom:r,resetToCenter:n});const i=this.getVtkActiveCamera();return i.getParallelProjection()?i.setClippingRange(-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE):i.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE),this.getRenderer().resetCameraClippingRange(),!0}setSlabThickness(e,r){return null}setBlendMode(e,r,n){return null}resetProperties(e){const r=e?this.getActor(e):this.getDefaultActor();if(!r)throw new Error(`No actor found for the given volumeId: ${e}`);r.slabThickness&&(r.slabThickness=er.MINIMUM_SLAB_THICKNESS,this.viewportProperties.slabThickness=void 0,this.updateClippingPlanesForActors(this.getCamera())),e||(e=this.getVolumeId());const n=_e.getVolume(e);if(!n)throw new Error(`imageVolume with id: ${e} does not exist in cache`);if(sC(r.actor,n),Xo(r)){const i=r.actor.getProperty().getRGBTransferFunction(0);c2(i,this.initialTransferFunctionNodes)}this.setCamera(this.initialCamera),De(this.element,Se.VOI_MODIFIED,super.getVOIModifiedEventDetail(e))}getSliceIndex(){return null}setCamera(e){super.setCamera(e),this.getRenderer().resetCameraClippingRange(),this.render()}setCameraClippingRange(){const e=this.getVtkActiveCamera();e.getParallelProjection()?e.setClippingRange(-er.MAXIMUM_RAY_DISTANCE,er.MAXIMUM_RAY_DISTANCE):e.setClippingRange(er.MINIMUM_SLAB_THICKNESS,er.MAXIMUM_RAY_DISTANCE)}resetSlabThickness(){return null}}const rR="viewport-element",iR="cornerstone-canvas",U8=1e-4;function $ne(t){const e=document.createElement("canvas");return e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.imageRendering="pixelated",e.classList.add(iR),t.appendChild(e),e}function jne(t){const e=document.createElement("div");return e.style.position="relative",e.style.width="100%",e.style.height="100%",e.style.overflow="hidden",e.classList.add(rR),t.appendChild(e),e}function ba(t){const e=`canvas.${iR}`,r=`div.${rR}`,n=t.querySelector(r)||jne(t),i=n.querySelector(e);if(i)return i;const o=$ne(n),a=n.getBoundingClientRect(),s=window.devicePixelRatio||1,c=Math.ceil(a.width*s),l=Math.ceil(a.height*s);return o.width=c,o.height=l,o}async function Hne(t,e,r,n=!1,i=!1){r.forEach(a=>{const s=t.getViewport(a);if(!s)throw new Error(`Viewport with Id ${a} does not exist`);if(!(s instanceof Mn))throw new Error("setVolumesForViewports only supports VolumeViewport and VolumeViewport3D")});const o=r.map(async a=>{await t.getViewport(a).setVolumes(e,n,i)});await Promise.all(o)}async function Kne(t,e,r,n=!1,i=!1){for(const a of r){const s=t.getViewport(a);if(!s)throw new Error(`Viewport with Id ${a} does not exist`);if(!(s instanceof Mn)){console.warn(`Viewport with Id ${a} is not a BaseVolumeViewport. Cannot add volume to this viewport.`);return}}const o=r.map(async a=>{await t.getViewport(a).addVolumes(e,n,i)});await Promise.all(o)}async function qne(t,e,r){for(const i of r){const o=t.getStackViewport(i);if(!o)throw new Error(`Viewport with Id ${i} does not exist`);if(!o.addImages){console.warn(`Viewport with Id ${i} does not have addImages. Cannot add image segmentation to this viewport.`);return}}const n=r.map(async i=>{t.getStackViewport(i).addImages(e)});await Promise.all(n)}class Xne{constructor(e){this.opacity=.4,this.outlineOpacity=.4,this.transferFunction=[],this.actor=e}setRGBTransferFunction(e,r){this.transferFunction[e]=r}setScalarOpacity(e){}setInterpolationTypeToNearest(){}setUseLabelOutline(){}setLabelOutlineOpacity(e){this.outlineOpacity=e}setLabelOutlineThickness(){}getColor(e){const r=this.transferFunction[0],n=r.getRedValue(e),i=r.getGreenValue(e),o=r.getBlueValue(e);return[n,i,o,this.opacity]}}class Yne{constructor(e){this.actor=e}getInputData(){return this.actor.getImage()}}class Jne{constructor(e,r){this.canvasProperties=new Xne(this),this.visibility=!1,this.mapper=new Yne(this),this.className="CanvasActor",this.derivedImage=r,this.viewport=e}renderRLE(e,r,n){const{width:i,height:o}=this.image;let{canvas:a}=this;(!a||a.width!==i||a.height!==o)&&(this.canvas=a=new window.OffscreenCanvas(i,o));const s=a.getContext("2d"),c=s.createImageData(i,o),{data:l}=c;l.fill(0);const{map:f}=n;let u=1/0,d=1/0,h=-1/0,g=-1/0;for(let x=0;xb*255);let D=y+(S<<2);for(let b=S;bi)return;const p=h-u,v=g-d;s.putImageData(c,0,0,u-1,d-1,p+2,v+2),r.drawImage(a,u,d,p,v,u,d,p,v)}render(e,r){if(!this.visibility)return;const n=this.image||this.getImage(),{width:i,height:o}=n,a=n.getScalarData();if(!a)return;const{voxelManager:s}=n;if(s&&s.map.getRun){this.renderRLE(e,r,s);return}let{canvas:c}=this;(!c||c.width!==i||c.height!==o)&&(this.canvas=c=new window.OffscreenCanvas(i,o));const l=c.getContext("2d"),f=l.createImageData(i,o),{data:u}=f;let d=0,h=0,g=1/0,p=1/0,v=-1/0,x=-1/0;for(let w=0;wi)return;const m=v-g+1,y=x-p+1;l.putImageData(f,0,0,g,p,m,y),r.drawImage(c,g,p,m,y,g,p,m,y)}getClassName(){return this.className}getProperty(){return this.canvasProperties}setVisibility(e){this.visibility=e}getMapper(){return this.mapper}isA(e){return e===this.className}getImage(){if(this.image)return this.image;this.image={...this.derivedImage};const e=this.viewport.getImageData();return Object.assign(this.image,{worldToIndex:r=>e.imageData.worldToIndex(r),indexToWorld:(r,n)=>e.imageData.indexToWorld(r,n),getDimensions:()=>e.dimensions,getScalarData:()=>{var r;return(r=this.derivedImage)==null?void 0:r.getPixelData()},getDirection:()=>e.direction,getSpacing:()=>e.spacing,setOrigin:()=>null,setDerivedImage:r=>{this.derivedImage=r,this.image=null},modified:()=>null}),this.image}}function hC(t,e){const{pointInShapeFn:r,callback:n,boundsIJK:i,returnPoints:o=!1}=e;let a,s,c,l,f,u,d;const{numComps:h}=t;if(t.getScalarData?d=t.getScalarData():d=t.getPointData().getScalars().getData(),!d){console.warn("No scalar data found for imageData",t);return}const g=t.getDimensions();i?[[a,s],[c,l],[f,u]]=i:(a=0,s=g[0],c=0,l=g[1],f=0,u=g[2]);const p=Ye(a,c,f),v=t.getDirection(),x=v.slice(0,3),m=v.slice(3,6),y=v.slice(6,9),w=t.getSpacing(),[C,S,T]=w,_=t.indexToWorld(p),E=Ye(x[0]*C,x[1]*C,x[2]*C),D=Ye(m[0]*S,m[1]*S,m[2]*S),b=Ye(y[0]*T,y[1]*T,y[2]*T),I=h||d.length/g[2]/g[1]/g[0],R=g[0]*I,M=g[1]*R,L=[],A=Eu(_);for(let G=f;G<=u;G++){const P=Eu(A);for(let N=c;N<=l;N++){const V=Eu(A);for(let $=a;$<=s;$++){const H=[$,N,G];if(r(A,H)){const Y=G*M+N*R+$*I;let ne;I>2?ne=[d[Y],d[Y+1],d[Y+2]]:ne=d[Y],L.push({value:ne,index:Y,pointIJK:H,pointLPS:A.slice()}),n&&n({value:ne,index:Y,pointIJK:H,pointLPS:A})}xn(A,A,E)}Md(A,V),xn(A,A,D)}Md(A,P),xn(A,A,b)}return o?L:void 0}const ad=class ad extends Zu{constructor(e){super({...e,canvas:e.canvas||ba(e.element)}),this.videoWidth=0,this.videoHeight=0,this.loop=!0,this.mute=!0,this.isPlaying=!1,this.scrollSpeed=1,this.playbackRate=1,this.frameRange=[0,0],this.fps=30,this.videoCamera={panWorld:[0,0],parallelScale:1},this.voiRange={lower:0,upper:255},this.getProperties=()=>({loop:this.videoElement.loop,muted:this.videoElement.muted,playbackRate:this.playbackRate,scrollSpeed:this.scrollSpeed,voiRange:{...this.voiRange}}),this.getMiddleSliceData=()=>{throw new Error("Method not implemented.")},this.useCustomRenderingPipeline=!0,this.resetCamera=()=>(this.refreshRenderValues(),this.canvasContext.fillRect(0,0,this.canvas.width,this.canvas.height),this.isPlaying||this.renderFrame(),!0),this.getNumberOfSlices=()=>{const r=Math.round(this.videoElement.duration*this.fps/this.scrollSpeed);return isNaN(r)?this.numberOfFrames:r},this.getFrameOfReferenceUID=()=>this.videoElement.src,this.resize=()=>{const r=this.canvas,{clientWidth:n,clientHeight:i}=r;(r.width!==n||r.height!==i)&&(r.width=n,r.height=i),this.refreshRenderValues(),this.isPlaying||this.renderFrame()},this.canvasToWorld=(r,n=[0,0,0])=>{const i=this.videoCamera.panWorld,o=this.getWorldToCanvasRatio(),a=[i[0]*o,i[1]*o],s=[r[0]-a[0],r[1]-a[1]];return n.splice(0,2,s[0]/o,s[1]/o),n},this.worldToCanvas=r=>{const n=this.videoCamera.panWorld,i=this.getWorldToCanvasRatio();return[(r[0]+n[0])*i,(r[1]+n[1])*i]},this.getRotation=()=>0,this.canvasToIndex=r=>{const n=this.getTransform();return n.invert(),n.transformPoint(r.map(i=>i*devicePixelRatio))},this.indexToCanvas=r=>this.getTransform().transformPoint(r).map(i=>i/devicePixelRatio),this.customRenderViewportToCanvas=()=>{this.renderFrame()},this.renderFrame=()=>{var s;const r=window.devicePixelRatio||1,i=this.getTransform().getMatrix(),o=this.canvasContext;o.resetTransform(),o.clearRect(0,0,this.canvas.width,this.canvas.height),o.transform(i[0]/r,i[1]/r,i[2]/r,i[3]/r,i[4]/r,i[5]/r),o.drawImage(this.videoElement,0,0,this.videoWidth,this.videoHeight);for(const c of this.getActors())c.actor.render(this,this.canvasContext);this.canvasContext.resetTransform(),De(this.element,Se.STACK_NEW_IMAGE,{element:this.element,viewportId:this.id,viewport:this,renderingEngineId:this.renderingEngineId,time:this.videoElement.currentTime,duration:this.videoElement.duration}),De(this.element,Se.IMAGE_RENDERED,{element:this.element,viewportId:this.id,viewport:this,imageIndex:this.getCurrentImageIdIndex(),numberOfSlices:this.numberOfFrames,renderingEngineId:this.renderingEngineId,time:this.videoElement.currentTime,duration:this.videoElement.duration}),(s=this.initialRender)==null||s.call(this);const a=this.getFrameNumber();this.isPlaying&&(athis.frameRange[1]&&(this.loop?this.setFrameNumber(this.frameRange[0]):this.pause()))},this.renderWhilstPlaying=()=>{this.renderFrame(),this.isPlaying&&requestAnimationFrame(this.renderWhilstPlaying)},this.canvasContext=this.canvas.getContext("2d"),this.renderingEngineId=e.renderingEngineId,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.videoElement=document.createElement("video"),this.videoElement.muted=this.mute,this.videoElement.loop=this.loop,this.videoElement.autoplay=!0,this.videoElement.crossOrigin="anonymous",this.addEventListeners(),this.resize()}static get useCustomRenderingPipeline(){return!0}addEventListeners(){this.canvas.addEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}removeEventListeners(){this.canvas.removeEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}elementDisabledHandler(){this.removeEventListeners(),this.videoElement.remove()}getImageDataMetadata(e){const r=typeof e=="string"?e:e.imageId,n=Pe(si.IMAGE_PLANE,r);let i=n.rowCosines,o=n.columnCosines;(i==null||o==null)&&(i=[1,0,0],o=[0,1,0]);const a=Ye(i[0],i[1],i[2]),s=Ye(o[0],o[1],o[2]),{rows:c,columns:l}=n,f=we();Kt(f,a,s);let u=n.imagePositionPatient;u==null&&(u=[0,0,0]);const d=n.columnPixelSpacing||1,h=n.rowPixelSpacing||1,g=n.columns,p=n.rows,v=1,x=1;return this.hasPixelSpacing=!!n.columnPixelSpacing,{bitsAllocated:8,numberOfComponents:3,origin:u,rows:c,columns:l,direction:[...a,...s,...f],dimensions:[g,p,x],spacing:[d,h,v],hasPixelSpacing:this.hasPixelSpacing,numVoxels:g*p*x,imagePlaneModule:n}}setDataIds(e,r){var n;this.setVideo(e[0],(((n=r.viewReference)==null?void 0:n.sliceIndex)||0)+1)}setVideo(e,r){this.imageId=Array.isArray(e)?e[0]:e;const n=Pe(si.IMAGE_URL,e);if(!(n!=null&&n.rendered))throw new Error(`Video Image ID ${e} does not have a rendered video view`);const{rendered:i}=n,o=Pe(si.GENERAL_SERIES,e);this.modality=o==null?void 0:o.Modality,this.metadata=this.getImageDataMetadata(e);let{cineRate:a,numberOfFrames:s}=Pe(si.CINE,e);return this.numberOfFrames=s,this.setVideoURL(i).then(()=>((!s||s===1)&&(s=Math.round(this.videoElement.duration*(a||30))),a||(a=Math.round(s/this.videoElement.duration)),this.fps=a,this.numberOfFrames=s,this.setFrameRange([1,s]),this.initialRender=()=>{this.initialRender=null,this.pause(),this.setFrameNumber(r||1)},new Promise(c=>{window.setTimeout(()=>{this.setFrameNumber(r||1),c(this)},25)})))}async setVideoURL(e){return new Promise(r=>{this.videoElement.src=e,this.videoElement.preload="auto";const n=()=>{this.videoWidth=this.videoElement.videoWidth,this.videoHeight=this.videoElement.videoHeight,this.videoElement.removeEventListener("loadedmetadata",n),this.refreshRenderValues(),r(!0)};this.videoElement.addEventListener("loadedmetadata",n)})}getImageIds(){const e=new Array(this.numberOfFrames),r=this.imageId.replace(/[0-9]+$/,"");for(let n=0;n{n(),r.removeEventListener("seeked",a)};r.addEventListener("seeked",a)}async start(){const e=this.videoElement,r=this.renderFrame;if(e.currentTime=0,e.paused){const n=i=>{r(),e.removeEventListener("seeked",n)};e.addEventListener("seeked",n)}}async end(){const e=this.videoElement,r=this.renderFrame;if(e.currentTime=e.duration,e.paused){const n=i=>{r(),e.removeEventListener("seeked",n)};e.addEventListener("seeked",n)}}async setTime(e){const r=this.videoElement,n=this.renderFrame;if(r.currentTime=e,r.paused){const i=o=>{n(),r.removeEventListener("seeked",i)};r.addEventListener("seeked",i)}}getSliceViewInfo(){throw new Error("Method not implemented.")}async setFrameNumber(e){this.setTime((e-1)/this.fps)}setFrameRange(e){if(!e){this.frameRange=[1,this.numberOfFrames];return}e.length!==2||e[0]===e[1]||(this.frameRange=[e[0],e[1]])}getFrameRange(){return this.frameRange}setProperties(e){e.loop!==void 0&&(this.videoElement.loop=e.loop),e.muted!==void 0&&(this.videoElement.muted=e.muted),e.playbackRate!==void 0&&this.setPlaybackRate(e.playbackRate),e.scrollSpeed!==void 0&&this.setScrollSpeed(e.scrollSpeed),e.voiRange&&this.setVOI(e.voiRange)}setPlaybackRate(e=1){if(this.playbackRate=e,e<.0625){this.pause();return}this.videoElement&&(this.videoElement.playbackRate=e,this.play())}setScrollSpeed(e=1,r=Dd.FRAME){this.scrollSpeed=r===Dd.SECOND?e*this.fps:e}resetProperties(){this.setProperties({loop:!1,muted:!0})}getScalarData(){var o;if(((o=this.scalarData)==null?void 0:o.frameNumber)===this.getFrameNumber())return this.scalarData;if(!this.videoElement||!this.videoElement.videoWidth||!this.videoElement.videoHeight){console.debug("Video not ready yet, returning empty scalar data");const a=new Uint8ClampedArray;return a.getRange=()=>[0,255],a.frameNumber=-1,a}const e=document.createElement("canvas");e.width=this.videoElement.videoWidth,e.height=this.videoElement.videoHeight;const r=e.getContext("2d");r.drawImage(this.videoElement,0,0);const i=r.getImageData(0,0,e.width,e.height).data;return i.getRange=()=>[0,255],i.frameNumber=this.getFrameNumber(),this.scalarData=i,i}getImageData(){const{metadata:e}=this,r=e.spacing,n={getDirection:()=>e.direction,getDimensions:()=>e.dimensions,getRange:()=>[0,255],getScalarData:()=>this.getScalarData(),getSpacing:()=>e.spacing,worldToIndex:o=>{const a=this.worldToCanvas(o),s=this.canvasToIndex(a);return[s[0],s[1],0]},indexToWorld:(o,a)=>{const s=this.indexToCanvas([o[0],o[1]]);return this.canvasToWorld(s,a)}},i={dimensions:e.dimensions,spacing:r,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:e.FrameOfReferenceUID},getScalarData:()=>this.getScalarData(),scalarData:this.getScalarData(),imageData:n,voxelManager:{forEach:(o,a)=>hC(a.imageData,{pointInShapeFn:a.isInObject??(()=>!0),callback:o,boundsIJK:a.boundsIJK,returnPoints:a.returnPoints??!1})},hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{scaled:!1}};return Object.defineProperty(n,"scalarData",{get:()=>this.getScalarData(),enumerable:!0}),i}hasImageURI(e){const r=e.match(ad.frameRangeExtractor),n=r?e.substring(0,r.index):e;return this.imageId.includes(n)}setVOI(e){this.voiRange=e,this.setColorTransform()}setWindowLevel(e=256,r=128){const n=r-e/2,i=r+e/2-1;this.setVOI({lower:n,upper:i}),this.setColorTransform()}setAverageWhite(e){this.averageWhite=e,this.setColorTransform()}setColorTransform(){if(!this.voiRange&&!this.averageWhite){this.feFilter=null;return}const e=this.averageWhite||[255,255,255],r=Math.max(...e),n=e.map(c=>r/c),{lower:i=0,upper:o=255}=this.voiRange||{},a=(o-i+1)/255,s=i/255;this.feFilter=`url('data:image/svg+xml, #colour')`,this.canvas.style.filter=this.feFilter}setCamera(e){const{parallelScale:r,focalPoint:n}=e;if(r&&(this.videoCamera.parallelScale=this.element.clientHeight/2/r),n!==void 0){const i=this.worldToCanvas(n),o=[this.element.clientWidth/2,this.element.clientHeight/2],a=[(i[0]-o[0])/this.videoCamera.parallelScale,(i[1]-o[1])/this.videoCamera.parallelScale];this.videoCamera.panWorld=[this.videoCamera.panWorld[0]-a[0],this.videoCamera.panWorld[1]-a[1]]}this.canvasContext.fillStyle="rgba(0,0,0,1)",this.canvasContext.fillRect(0,0,this.canvas.width,this.canvas.height),this.isPlaying||this.renderFrame()}getCurrentImageId(){return this.imageId.replace("/frames/1",this.isPlaying?`/frames/${this.frameRange[0]}-${this.frameRange[1]}`:`/frames/${this.getFrameNumber()}`)}getViewReferenceId(e={}){const{sliceIndex:r}=e;return r===void 0?`videoId:${this.getCurrentImageId()}`:Array.isArray(r)?`videoId:${this.imageId.substring(0,this.imageId.length-1)}${r[0]+1}-${r[1]+1}`:`videoId:${this.imageId.replace("/frames/1",`/frames/${1+r}`)}`}isReferenceViewable(e,r={}){let{imageURI:n}=r;const{referencedImageId:i,sliceIndex:o}=e;if(!super.isReferenceViewable(e))return!1;const a=this.getCurrentImageId();if(!n){const u=a.indexOf(":");n=a.substring(u+1,a.length-1)}if(r.withNavigation)return!0;const s=this.getSliceIndex();if(Array.isArray(o))return s>=o[0]&&s<=o[1];if(o!==void 0)return s===o;if(!i)return!1;const c=i.match(ad.frameRangeExtractor);if(!c[2])return!0;const l=c[2].split("-").map(u=>Number(u)),f=s+1;return l[0]<=f&&f<=(l[1]??l[0])}setViewReference(e){typeof e.sliceIndex=="number"?this.setFrameNumber(e.sliceIndex+1):Array.isArray(e.sliceIndex)&&this.setFrameRange(e.sliceIndex)}getViewReference(e){let r=(e==null?void 0:e.sliceIndex)??this.getSliceIndex();return r||(r=this.isPlaying?[this.frameRange[0]-1,this.frameRange[1]-1]:this.getCurrentImageIdIndex()),{...super.getViewReference(e),referencedImageId:this.getViewReferenceId(e),sliceIndex:r}}getFrameNumber(){return 1+this.getCurrentImageIdIndex()}getCurrentImageIdIndex(){return Math.round(this.videoElement.currentTime*this.fps)}getSliceIndex(){return this.getCurrentImageIdIndex()/this.scrollSpeed}getCamera(){const{parallelScale:e}=this.videoCamera,r=[this.element.clientWidth/2,this.element.clientHeight/2];return{parallelProjection:!0,focalPoint:this.canvasToWorld(r),position:[0,0,0],viewUp:[0,-1,0],parallelScale:this.element.clientHeight/2/e,viewPlaneNormal:[0,0,1]}}getFrameRate(){return this.fps}getPan(){const e=this.videoCamera.panWorld;return[e[0],e[1]]}refreshRenderValues(){let e=this.canvas.offsetWidth/this.videoWidth;this.videoHeight*e>this.canvas.height&&(e=this.canvas.offsetHeight/this.videoHeight);const r=Math.floor(this.videoWidth*e),n=Math.floor(this.videoHeight*e),i=(this.canvas.offsetWidth-r)/2,o=(this.canvas.offsetHeight-n)/2,a=i/e,s=o/e;this.videoCamera.panWorld=[a,s],this.videoCamera.parallelScale=e}getWorldToCanvasRatio(){return this.videoCamera.parallelScale}getCanvasToWorldRatio(){return 1/this.videoCamera.parallelScale}getTransform(){const e=this.videoCamera.panWorld,r=window.devicePixelRatio||1,n=this.getWorldToCanvasRatio(),i=this.getCanvasToWorldRatio(),o=[this.canvas.offsetWidth/2,this.canvas.offsetHeight/2],a=[o[0]*i,o[1]*i],s=new D0;return s.scale(r,r),s.translate(o[0],o[1]),s.scale(n,n),s.translate(e[0],e[1]),s.translate(-a[0],-a[1]),s}updateCameraClippingPlanesAndRange(){}addImages(e){const r=this.getActors();e.forEach(n=>{const i=_e.getImage(n.imageId),o=this.createActorMapper(i),a=n.actorUID??wn();o&&(r.push({uid:a,actor:o}),n.callback&&n.callback({imageActor:o,imageId:n.imageId}))}),this.setActors(r)}createActorMapper(e){return new Jne(this,e)}};ad.frameRangeExtractor=/(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;let Vd=ad;const Zne=` .DicomMicroscopyViewer { --ol-partial-background-color: rgba(127, 127, 127, 0.7); --ol-foreground-color: #000000; @@ -3357,7 +3357,7 @@ fn main( .DicomMicroscopyViewer .ol-tooltip { font-size: 16px !important; } -`,V8=Symbol.for("map"),Kne="postrender",du=class du extends Xu{constructor(e){super({...e,canvas:e.canvas||Da(e.element)}),this.internalCamera={rotation:0,centerIndex:[0,0],extent:[0,-2,1,-1],xSpacing:1,ySpacing:1,resolution:1,zoom:1},this.voiRange={lower:0,upper:255},this.getProperties=()=>({}),this.resetCamera=()=>!0,this.getNumberOfSlices=()=>1,this.getFrameOfReferenceUID=()=>this.frameOfReferenceUID,this.resize=()=>{const n=this.canvas,{clientWidth:i,clientHeight:o}=n;(n.width!==i||n.height!==o)&&(n.width=i,n.height=o),this.refreshRenderValues()},this.canvasToWorld=n=>{if(!this.metadata)return;const[i,o]=this.canvasToIndex(n),{origin:a,spacing:s,direction:c}=this.getImageData(),l=Ye(0,0,0),f=c.slice(0,3),u=c.slice(3,6);return Vt(l,a,f,i*s[0]),Vt(l,l,u,o*s[1]),[l[0],l[1],l[2]]},this.worldToCanvas=n=>{if(!this.metadata)return;const{spacing:i,direction:o,origin:a}=this.metadata,s=o.slice(0,3),c=o.slice(3,6),l=kt([0,0,0],n,a),f=[je(l,s)/i[0],je(l,c)/i[1]];return this.indexToCanvas(f)},this.postrender=()=>{this.refreshRenderValues(),De(this.element,Se.IMAGE_RENDERED,{element:this.element,viewportId:this.id,viewport:this,renderingEngineId:this.renderingEngineId})},this.getRotation=()=>0,this.canvasToIndex=n=>{const i=this.getTransform();return i.invert(),i.transformPoint(n)},this.indexToCanvas=n=>this.getTransform().transformPoint(n),this.customRenderViewportToCanvas=()=>{},this.getImageIds=()=>[this.imageIds[0]],this.renderingEngineId=e.renderingEngineId,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.element.style.position="relative",this.microscopyElement=document.createElement("div"),this.microscopyElement.setAttribute("class","DicomMicroscopyViewer"),this.microscopyElement.id=wn(),this.microscopyElement.innerText="Initial",this.microscopyElement.style.background="grey",this.microscopyElement.style.width="100%",this.microscopyElement.style.height="100%",this.microscopyElement.style.position="absolute",this.microscopyElement.style.left="0",this.microscopyElement.style.top="0";const r=this.element.firstElementChild;r.insertBefore(this.microscopyElement,r.childNodes[1]),this.addEventListeners(),this.addWidget("DicomMicroscopyViewer",{getEnabled:()=>!!this.viewer,setEnabled:()=>{this.elementDisabledHandler()}}),this.resize()}static get useCustomRenderingPipeline(){return!0}addEventListeners(){this.canvas.addEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}removeEventListeners(){this.canvas.removeEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}elementDisabledHandler(){var r;this.removeEventListeners(),(r=this.viewer)==null||r.cleanup(),this.viewer=null,this.element.firstElementChild.removeChild(this.microscopyElement),this.microscopyElement=null}getImageDataMetadata(e=0){var E;const r=this.metadataDicomweb.reduce((D,b)=>(D==null?void 0:D.NumberOfFrames)e.direction,getDimensions:()=>e.dimensions,getRange:()=>[0,255],getScalarData:()=>this.getScalarData(),getSpacing:()=>e.spacing,worldToIndex:o=>{const a=this.worldToCanvas(o),s=this.canvasToIndex(a);return[s[0],s[1],0]},indexToWorld:o=>{const a=this.indexToCanvas([o[0],o[1]]);return this.canvasToWorld(a)}};return{dimensions:e.dimensions,spacing:r,numberOfComponents:3,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:this.frameOfReferenceUID},hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{scaled:!1},scalarData:this.getScalarData(),imageData:n,voxelManager:{forEach:(o,a)=>fC(a.imageData,{pointInShapeFn:a.isInObject??(()=>!0),callback:o,boundsIJK:a.boundsIJK,returnPoints:a.returnPoints??!1})}}}hasImageURI(e){return!0}setCamera(e){const r=this.getCamera(),{parallelScale:n,focalPoint:i}=e,o=this.getView(),{xSpacing:a}=this.internalCamera;if(n){const c=this.element.clientHeight/n,l=1/a/c;o.setResolution(l)}if(i){const c=this.worldToCanvas(i),l=this.canvasToIndex(c);o.setCenter(l)}const s=this.getCamera();this.triggerCameraModifiedEventIfNecessary(r,s)}getCurrentImageId(){return this.imageIds[0]}getFrameNumber(){return 1}getCamera(){this.refreshRenderValues();const{resolution:e,xSpacing:r}=this.internalCamera,n=e*r,i=[this.element.clientWidth/2,this.element.clientHeight/2],o=this.canvasToWorld(i);return{parallelProjection:!0,focalPoint:o,position:o,viewUp:[0,-1,0],parallelScale:this.element.clientHeight*n,viewPlaneNormal:[0,0,1]}}setDataIds(e,r){(r==null?void 0:r.miniNavigationOverlay)!==!1&&du.addMiniNavigationOverlayCss();const n=(r==null?void 0:r.webClient)||Pe(si.WADO_WEB_CLIENT,e[0]);if(!n)throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${e[0]}`);return this.setWSI(e,n)}async setWSI(e,r){this.microscopyElement.style.background="black",this.microscopyElement.innerText="Loading",this.imageIds=e;const n=await du.getDicomMicroscopyViewer();this.frameOfReferenceUID=null;const i=this.imageIds.map(s=>{var u,d,h;const c=r.getDICOMwebMetadata(s);Object.defineProperty(c,"isMultiframe",{value:c.isMultiframe,enumerable:!1}),Object.defineProperty(c,"frameNumber",{value:void 0,enumerable:!1});const l=(u=c["00080008"])==null?void 0:u.Value;(l==null?void 0:l.length)===1&&(c["00080008"].Value=l[0].split("\\"));const f=(h=(d=c["00200052"])==null?void 0:d.Value)==null?void 0:h[0];return this.frameOfReferenceUID?f!==this.frameOfReferenceUID&&(c["00200052"].Value=[this.frameOfReferenceUID]):this.frameOfReferenceUID=f,c}),o=[];i.forEach(s=>{const c=new n.metadata.VLWholeSlideMicroscopyImage({metadata:s}),l=c.ImageType[2];l==="VOLUME"||l==="THUMBNAIL"?o.push(c):console.log("Unknown image type",c.ImageType)}),this.metadataDicomweb=o;const a=new n.viewer.VolumeImageViewer({client:r,metadata:o,controls:["overview","position"],retrieveRendered:!1,bindings:{}});a.render({container:this.microscopyElement}),this.metadata=this.getImageDataMetadata(),a.deactivateDragPanInteraction(),this.viewer=a,this.map=a[V8],this.map.on(Kne,this.postrender),this.resize(),this.microscopyElement.innerText="",Object.assign(this.microscopyElement.style,{"--ol-partial-background-color":"rgba(127, 127, 127, 0.7)","--ol-foreground-color":"#000000","--ol-subtle-foreground-color":"#000","--ol-subtle-background-color":"rgba(78, 78, 78, 0.5)",background:"none"})}scroll(e){const r=this.getCamera();this.setCamera({parallelScale:r.parallelScale*(1+.1*e)})}getSliceIndex(){return 0}getView(){if(!this.viewer)return;const e=this.viewer[V8],r=window;return r.map=e,r.viewer=this.viewer,r.view=e==null?void 0:e.getView(),r.wsi=this,e==null?void 0:e.getView()}refreshRenderValues(){const e=this.getView();if(!e)return;const r=e.getResolution();if(!r||rtZ("dicom-microscopy-viewer"),du.overlayCssId="overlayCss";let a3=du;const eR={[mn.ORTHOGRAPHIC]:sn,[mn.PERSPECTIVE]:sn,[mn.STACK]:un,[mn.VOLUME_3D]:JM,[mn.VIDEO]:Ad,[mn.WHOLE_SLIDE]:a3};function Vl(t){return eR[t].useCustomRenderingPipeline}const F8=2;class tR{constructor(e){if(this._needsRender=new Set,this._animationFrameSet=!1,this._animationFrameHandle=null,this.renderFrameOfReference=r=>{const i=this._getViewportsAsArray().map(o=>{if(o.getFrameOfReferenceUID()===r)return o.id});this.renderViewports(i)},this._renderFlaggedViewports=()=>{this._throwIfDestroyed(),this.useCPURendering||this.performVtkDrawCall();const r=this._getViewportsAsArray(),n=[];for(let i=0;i{i!=null&&i.element&&De(i.element,Se.IMAGE_RENDERED,i)})},this.id=e||wn(),this.useCPURendering=jf(),Ed.set(this),!eZ())throw new Error("@cornerstonejs/core is not initialized, run init() first");this.useCPURendering||(this.offscreenMultiRenderWindow=XY.newInstance(),this.offScreenCanvasContainer=document.createElement("div"),this.offscreenMultiRenderWindow.setContainer(this.offScreenCanvasContainer)),this._viewports=new Map,this.hasBeenDestroyed=!1}enableElement(e){const r=this._normalizeViewportInputEntry(e);this._throwIfDestroyed();const{element:n,viewportId:i}=r;if(!n)throw new Error("No element provided");this.getViewport(i)&&this.disableElement(i);const{type:a}=r,s=Vl(a);!this.useCPURendering&&!s?this.enableVTKjsDrivenViewport(r):this.addCustomViewport(r);const c=Da(n),{background:l}=r.defaultOptions;this.fillCanvasWithBackgroundColor(c,l)}disableElement(e){this._throwIfDestroyed();const r=this.getViewport(e);if(!r){console.warn(`viewport ${e} does not exist`);return}this._resetViewport(r),!Vl(r.type)&&!this.useCPURendering&&this.offscreenMultiRenderWindow.removeRenderer(e),this._removeViewport(e),r.isDisabled=!0,this._needsRender.delete(e),this.getViewports().length||this._clearAnimationFrame()}setViewports(e){const r=this._normalizeViewportInputEntries(e);this._throwIfDestroyed(),this._reset();const n=[],i=[];r.forEach(o=>{!this.useCPURendering&&!Vl(o.type)?n.push(o):i.push(o)}),this.setVtkjsDrivenViewports(n),this.setCustomViewports(i),r.forEach(o=>{const a=Da(o.element),{background:s}=o.defaultOptions;this.fillCanvasWithBackgroundColor(a,s)})}resize(e=!0,r=!0){this._throwIfDestroyed();const n=this._getViewportsAsArray(),i=[],o=[];n.forEach(a=>{Vl(a.type)?o.push(a):i.push(a)}),i.length&&this._resizeVTKViewports(i,r,e),o.length&&this._resizeUsingCustomResizeHandler(o,r,e)}getViewport(e){return this._viewports.get(e)}getViewports(){return this._throwIfDestroyed(),this._getViewportsAsArray()}getStackViewport(e){this._throwIfDestroyed();const r=this.getViewport(e);if(!r)throw new Error(`Viewport with Id ${e} does not exist`);if(!(r instanceof un))throw new Error(`Viewport with Id ${e} is not a StackViewport.`);return r}getStackViewports(){return this._throwIfDestroyed(),this.getViewports().filter(r=>r instanceof un)}getVolumeViewports(){this._throwIfDestroyed();const e=this.getViewports(),r=n=>n instanceof Rn;return e.filter(r)}render(){const r=this.getViewports().map(n=>n.id);this._setViewportsToBeRenderedNextFrame(r)}renderViewports(e){this._setViewportsToBeRenderedNextFrame(e)}renderViewport(e){this._setViewportsToBeRenderedNextFrame([e])}destroy(){this.hasBeenDestroyed||(this.useCPURendering||(this._getViewportsAsArray().forEach(r=>{this.offscreenMultiRenderWindow.removeRenderer(r.id)}),this.offscreenMultiRenderWindow.delete(),delete this.offscreenMultiRenderWindow),this._reset(),Ed.delete(this.id),this.hasBeenDestroyed=!0)}fillCanvasWithBackgroundColor(e,r){const n=e.getContext("2d");let i;if(r){const o=r.map(a=>Math.floor(255*a));i=`rgb(${o[0]}, ${o[1]}, ${o[2]})`}else i="black";n.fillStyle=i,n.fillRect(0,0,e.width,e.height)}_normalizeViewportInputEntry(e){const{type:r,defaultOptions:n}=e;let i=n;return(!i||Object.keys(i).length===0)&&(i={background:[0,0,0],orientation:null,displayArea:null},r===mn.ORTHOGRAPHIC&&(i={...i,orientation:Wu.AXIAL})),{...e,defaultOptions:i}}_normalizeViewportInputEntries(e){const r=[];return e.forEach(n=>{r.push(this._normalizeViewportInputEntry(n))}),r}_resizeUsingCustomResizeHandler(e,r=!0,n=!0){e.forEach(i=>{typeof i.resize=="function"&&i.resize()}),e.forEach(i=>{const o=i.getCamera();i.resetCamera(),r&&i.setCamera(o)}),n&&this.render()}_resizeVTKViewports(e,r=!0,n=!0){const i=e.map(o=>Da(o.element));if(i.forEach(o=>{const a=window.devicePixelRatio||1;o.width=o.clientWidth*a,o.height=o.clientHeight*a}),i.length){const{offScreenCanvasWidth:o,offScreenCanvasHeight:a}=this._resizeOffScreenCanvas(i);this._resize(e,o,a)}e.forEach(o=>{const a=o.getCamera(),s=o.getRotation(),{flipHorizontal:c}=a;o.resetCameraForResize();const l=o.getDisplayArea();r&&(l?(c&&o.setCamera({flipHorizontal:c}),s&&o.setViewPresentation({rotation:s})):o.setCamera(a))}),n&&this.render()}enableVTKjsDrivenViewport(e){const n=this._getViewportsAsArray().filter(f=>Vl(f.type)===!1),i=n.map(f=>f.canvas),o=Da(e.element);i.push(o);const{offScreenCanvasWidth:a,offScreenCanvasHeight:s}=this._resizeOffScreenCanvas(i),c=this._resize(n,a,s),l={...e,canvas:o};this.addVtkjsDrivenViewport(l,{offScreenCanvasWidth:a,offScreenCanvasHeight:s,xOffset:c})}_removeViewport(e){if(!this.getViewport(e)){console.warn(`viewport ${e} does not exist`);return}this._viewports.delete(e)}addVtkjsDrivenViewport(e,r){const{element:n,canvas:i,viewportId:o,type:a,defaultOptions:s}=e;n.tabIndex=-1;const{offScreenCanvasWidth:c,offScreenCanvasHeight:l,xOffset:f}=r,{sxStartDisplayCoords:u,syStartDisplayCoords:d,sxEndDisplayCoords:h,syEndDisplayCoords:g,sx:p,sy:v,sWidth:x,sHeight:m}=this._getViewportCoordsOnOffScreenCanvas(e,c,l,f);this.offscreenMultiRenderWindow.addRenderer({viewport:[u,d,h,g],id:o,background:s.background?s.background:[0,0,0]});const y={id:o,element:n,renderingEngineId:this.id,type:a,canvas:i,sx:p,sy:v,sWidth:x,sHeight:m,defaultOptions:s||{}};let w;if(a===mn.STACK)w=new un(y);else if(a===mn.ORTHOGRAPHIC||a===mn.PERSPECTIVE)w=new sn(y);else if(a===mn.VOLUME_3D)w=new JM(y);else throw new Error(`Viewport Type ${a} is not supported`);this._viewports.set(o,w);const C={element:n,viewportId:o,renderingEngineId:this.id};w.suppressEvents||De(Ce,Se.ELEMENT_ENABLED,C)}addCustomViewport(e){const{element:r,viewportId:n,type:i,defaultOptions:o}=e;r.tabIndex=-1;const a=Da(r),{clientWidth:s,clientHeight:c}=a;(a.width!==s||a.height!==c)&&(a.width=s,a.height=c);const l={id:n,renderingEngineId:this.id,element:r,type:i,canvas:a,sx:0,sy:0,sWidth:s,sHeight:c,defaultOptions:o||{}},f=eR[i],u=new f(l);this._viewports.set(n,u);const d={element:r,viewportId:n,renderingEngineId:this.id};De(Ce,Se.ELEMENT_ENABLED,d)}setCustomViewports(e){e.forEach(r=>{this.addCustomViewport(r)})}setVtkjsDrivenViewports(e){if(e.length){const r=e.map(a=>Da(a.element));r.forEach(a=>{const s=window.devicePixelRatio||1,c=a.getBoundingClientRect();a.width=c.width*s,a.height=c.height*s});const{offScreenCanvasWidth:n,offScreenCanvasHeight:i}=this._resizeOffScreenCanvas(r);let o=0;for(let a=0;aa.height));let o=0;return e.forEach(a=>{o+=a.width}),r.width=o,r.height=i,n.resize(),{offScreenCanvasWidth:o,offScreenCanvasHeight:i}}_resize(e,r,n){let i=0;for(let o=0;o{this._needsRender.add(r)}),this._render()}_render(){this._needsRender.size>0&&!this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}performVtkDrawCall(){const{offscreenMultiRenderWindow:e}=this,r=e.getRenderWindow(),n=e.getRenderers();if(n.length){for(let i=0;i{this._resetViewport(r)}),this._clearAnimationFrame(),this._viewports=new Map}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}_downloadOffScreenCanvas(){const e=this._debugRender();qne(e)}_debugRender(){const{offscreenMultiRenderWindow:e}=this,r=e.getRenderWindow(),n=e.getRenderers();for(let c=0;c{const{sx:l,sy:f,sWidth:u,sHeight:d}=c,h=c.canvas,{width:g,height:p}=h;h.getContext("2d").drawImage(a,l,f,u,d,0,0,g,p)}),s}}function qne(t){const e=document.createElement("a");e.download="viewport.png",e.href=t,document.body.appendChild(e),e.click(),document.body.removeChild(e)}class Xne{constructor(e){this._color=[200,0,0],this.id=e.id,this._points=e.points,this._polys=e.polys,this._color=e.color??this._color,this.frameOfReferenceUID=e.frameOfReferenceUID,this._segmentIndex=e.segmentIndex,this.sizeInBytes=this._getSizeInBytes(),this._updateCentroid()}_getSizeInBytes(){return this._points.length*4+this._polys.length*4}_updateCentroid(){const e=this._points.length/3;let r=0,n=0,i=0;for(let o=0;o{if(r.reset(),r.isEmpty)this._children.delete(e);else throw new Error("Child is not empty and cannot be removed")}),this._unregisterAllEvents()}_addEventListener(e,r,n){let i=this._eventListeners.get(e);i||(i=new Map,this._eventListeners.set(e,i));const a=(n==null?void 0:n.capture)??!1?mo.Capture:mo.Bubble,s=i.get(r)??mo.None;if(s&a){console.warn("A listener is already registered for this phase");return}i.set(r,s|a),this._target.addEventListener(e,r,n)}_removeEventListener(e,r,n){const o=(n==null?void 0:n.capture)??!1?mo.Capture:mo.Bubble,a=this._eventListeners.get(e);if(!a)return;(r?[r]:Array.from(a.keys())).forEach(c=>{const l=a.get(c)??mo.None;if(!!!(l&o))return;this._target.removeEventListener(e,c,n);const u=l^o;u===mo.None?a.delete(c):a.set(c,u)}),a.size||this._eventListeners.delete(e)}_unregisterAllListeners(e,r){Array.from(r.entries()).forEach(([n,i])=>{const o=mo.Capture;for(let a=o;i;a<<=1){if(!(i&a))continue;const s=a===mo.Capture;this.removeEventListener(e,n,{capture:s}),i^=a}})}_unregisterAllEvents(){Array.from(this._eventListeners.entries()).forEach(([e,r])=>{this._unregisterAllListeners(e,r)})}}class nR{constructor(){this._targetsEventListeners=new Map}addEventListener(e,r,n,i){let o=this._targetsEventListeners.get(e);o||(o=new l2(e),this._targetsEventListeners.set(e,o)),o.addEventListener(r,n,i)}removeEventListener(e,r,n,i){const o=this._targetsEventListeners.get(e);o&&(o.removeEventListener(r,n,i),o.isEmpty&&this._targetsEventListeners.delete(e))}reset(){Array.from(this._targetsEventListeners.entries()).forEach(([e,r])=>{r.reset(),this._targetsEventListeners.delete(e)})}}const Yne=Object.freeze(Object.defineProperty({__proto__:null,MultiTargetEventListenerManager:nR,TargetEventListeners:l2},Symbol.toStringTag,{value:"Module"}));function Jne(t,e){const r=t.getSize();for(let n=0;n0?r:ere)>>>0).join(typeof e=="string"?e:tre)}function nre(t,e,r){let n=t[e];n instanceof Array||(n=[0],Object.defineProperty(t,e,{value:n}));for(let i=!0,o=0;i&&o{const r=Pn(t);U8[r]=e},get:(t,e)=>{if(t==="calibratedPixelSpacing"){const r=Pn(e);return U8[r]}}};function If(t,e,r=1e-5){return Math.abs(t[0]+e[0])=e[0]||t[1]<0||t[1]>=e[1]||t[2]<0||t[2]>=e[2])}function ire(t,e){let r;e?r=[hr(e)]:r=_i();const n=[];return r.forEach(i=>{const o=t.getActors(),a=i.getVolumeViewports();for(const s of a){const c=s.getActors();if(c.length!==o.length)continue;o.every(({uid:f})=>c.find(u=>f===u.uid))&&n.push(s)}}),n}const iR=t=>t.preScale.scaled&&t.preScale.scalingParameters.suvbw;function oR(t,e,r=void 0,n="_thumbnails",i={displayArea:{imageArea:[1,1]}}){if(!t||!(t instanceof HTMLCanvasElement))throw new Error("canvas element is required");const o=!e.imageId,a=!o&&e,s=o&&e,l=`renderGPUViewport-${a.imageId||s.volumeId}`,f=document.createElement("div"),u=window.devicePixelRatio||1;i.displayArea||(i.displayArea={imageArea:[1,1]});const d=t.width,h=t.height;f.style.width=`${d/u+k8}px`,f.style.height=`${h/u+k8}px`,f.style.visibility="hidden",f.style.position="absolute",document.body.appendChild(f);const g=l.split(":").join("-");f.setAttribute("viewport-id-for-remove",g);const p=Da(f),v=hr(n)||new tR(n);let x=v.getViewport(l);if(!x){const m={viewportId:l,type:o?mn.ORTHOGRAPHIC:mn.STACK,element:f,defaultOptions:{...i,suppressEvents:!0}};v.enableElement(m),x=v.getViewport(l)}return new Promise(m=>{let y=!1,{viewReference:w}=i;const C=S=>{if(y)return;if(w){const I=w;w=null,x.setViewReference(I),x.render();return}t.getContext("2d").drawImage(p,0,0,p.width,p.height,0,0,t.width,t.height);const _=x.canvasToWorld([0,0]),E=x.canvasToWorld([p.width/u,0]),D=x.canvasToWorld([0,p.height/u]),b=1;y=!0,f.removeEventListener(Se.IMAGE_RENDERED,C),setTimeout(()=>{v.disableElement(l),document.querySelectorAll(`[viewport-id-for-remove="${g}"]`).forEach(R=>{R.remove()})},0),m({origin:_,bottomLeft:D,topRight:E,thicknessMm:b})};f.addEventListener(Se.IMAGE_RENDERED,C),o?x.setVolumes([s],!1,!0):x.renderImageObject(e),x.resetCamera(),r==="PT"&&!iR(a)&&x.setProperties({voiRange:{lower:a.minPixelValue,upper:a.maxPixelValue}}),x.render()})}function aR(t,e,r,n,i){if(e.volumeId)throw new Error("Unsupported volume rendering for CPU");const a=e,s=YM(t,a,r),c={canvas:t,viewport:s,image:a,renderingTools:{}};c.transform=Pd(c);const l=!0;return new Promise((f,u)=>{KM(c,l),f(null)})}function ore(t){const{canvas:e,imageId:r,viewReference:n,requestType:i=dt.Thumbnail,priority:o=-5,renderingEngineId:a="_thumbnails",useCPURendering:s=!1,thumbnail:c=!1,imageAspect:l=!1,viewportOptions:f}=t,u=n==null?void 0:n.volumeId,d=u&&!r,h=n&&f?{...f,viewReference:n}:f,g=s?aR:oR;return new Promise((p,v)=>{function x(C,S){var D;const{modality:T}=Pe("generalSeriesModule",S)||{},_=!d&&C,E=d&&C;_&&(_.isPreScaled=_.isPreScaled||((D=_.preScale)==null?void 0:D.scaled)),c&&(e.height=256,e.width=256),l&&_&&(e.width=_&&e.height*_.width/_.height),e.style.width=`${e.width/devicePixelRatio}px`,e.style.height=`${e.height/devicePixelRatio}px`,E&&s&&v(new Error("CPU rendering of volume not supported")),g(e,C,T,a,h).then(p)}function m(C,S){console.error(C,S),v(C)}function y(C,S,T){return Ys(C,T).then(_=>{x.call(this,_,C)},_=>{m.call(this,_,C)})}const w={useRGBA:!!s,requestType:i};if(u){const C=Te.getVolume(u);C||v(new Error(`Volume id ${u} not found in cache`));const S=C.imageIds[0];x(C,S)}else fi.addRequest(y.bind(null,r,null,w),i,{imageId:r},o)})}function s3(t,e){const r=Pe("imagePlaneModule",t);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${t}`);const{columnCosines:n,rowCosines:i,imagePositionPatient:o}=r;let{columnPixelSpacing:a,rowPixelSpacing:s}=r;a||(a=1),s||(s=1);const c=xe();Vt(c,o,n,-a/2),Vt(c,c,i,-s/2);const l=xe();en(l,e,c);const f=je(l,i),u=je(l,n);return[f/s,u/a]}function sR(t,e){const r=Pe("imagePlaneModule",t);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${t}`);const{columnCosines:n,rowCosines:i,imagePositionPatient:o}=r;let{columnPixelSpacing:a,rowPixelSpacing:s}=r;a||(a=1),s||(s=1);const c=xe();return Vt(c,o,i,s*(e[0]-.5)),Vt(c,c,n,a*(e[1]-.5)),Array.from(c)}function X1(t){const e=_i(),r=[];return e.forEach(n=>{n.getViewports().forEach(o=>{o.hasImageURI(t)&&r.push(o)})}),r}function cR(t,e){const r=are(t,e);return r?r.index:null}function are(t,e){const r=e.getImageIds(),n=e.getCurrentImageIdIndex();if(r.length===0)return null;const i=c=>{const l=sre(c);if(!l)return null;const f=Ua(l.planeNormal,l.imagePositionPatient);return H1(f,t)},o={distance:i(r[n])??1/0,index:n},a=r.slice(n+1);for(let c=0;c=0;c--){const l=s[c],f=i(l);if(!(f===null||f===o.distance))if(f{const[r,n]=t,i=`${r}_${n}`;vc[i]||(vc[i]={}),vc[i]=e},get:(t,e,r)=>{if(t!=="spatialRegistrationModule")return;const n=`${e}_${r}`;if(vc[n])return vc[n];const i=`${r}_${e}`;if(vc[i])return $n(co(),vc[i])}};x0(kd.get.bind(kd));const cre=.05;function lR(t,e){const r=t.getSliceIndex(),n=e.getSliceIndex(),i=Pe("imagePlaneModule",r.toString()),o=Pe("imagePlaneModule",n.toString());if(!i||!o){console.log("Viewport spatial registration requires image plane module");return}const{imageOrientationPatient:a}=o;if(!i.imageOrientationPatient.every((d,h)=>Math.abs(d-a[h])0||t[0]0||t[1]0||t[2]=this._length)return;const r=this._dimensions*e;return this.data.subarray(r,r+this._dimensions)}getPointArray(e){const r=[];if(e<0&&(e+=this._length),e<0||e>=this._length)return;const n=this._dimensions*e;for(let i=0;ie)}toXYZ(){const e={x:[],y:[]};this._dimensions>=3&&(e.z=[]);const{x:r,y:n,z:i}=e;return this.forEach(o=>{r.push(o[0]),n.push(o[1]),i&&i.push(o[2])}),e}static fromXYZ({x:e,y:r,z:n}){const i=Of.create3(e.length);let o=0;for(let a=0;a{r.getViewports().forEach(({element:i})=>{t.push(ne(i))})}),t}function dre(t){const e=ne(t);if(!e)return;const{viewport:r}=e;if(!(r instanceof un))throw new Error(`An image can only be fetched for a stack viewport and not for a viewport of type: ${r.type}`);return r.getCornerstoneImage()}function uR(t){const e=t[0],{modality:r,seriesInstanceUID:n}=Pe("generalSeriesModule",e),{imageOrientationPatient:i,pixelSpacing:o,frameOfReferenceUID:a,columns:s,rows:c}=Pe("imagePlaneModule",e),l={modality:r,imageOrientationPatient:i,pixelSpacing:o,frameOfReferenceUID:a,columns:s,rows:c,seriesInstanceUID:n};return t.every(u=>{const{modality:d,seriesInstanceUID:h}=Pe("generalSeriesModule",u),{imageOrientationPatient:g,pixelSpacing:p,columns:v,rows:x}=Pe("imagePlaneModule",u);return h===l.seriesInstanceUID&&d===l.modality&&v===l.columns&&x===l.rows&&mt(g,l.imageOrientationPatient)&&mt(p,l.pixelSpacing)})}const hre=new Set(["1.2.840.10008.1.2.4.100","1.2.840.10008.1.2.4.100.1","1.2.840.10008.1.2.4.101","1.2.840.10008.1.2.4.101.1","1.2.840.10008.1.2.4.102","1.2.840.10008.1.2.4.102.1","1.2.840.10008.1.2.4.103","1.2.840.10008.1.2.4.103.1","1.2.840.10008.1.2.4.104","1.2.840.10008.1.2.4.104.1","1.2.840.10008.1.2.4.105","1.2.840.10008.1.2.4.105.1","1.2.840.10008.1.2.4.106","1.2.840.10008.1.2.4.106.1","1.2.840.10008.1.2.4.107","1.2.840.10008.1.2.4.108"]);function fR(t){return t?(Array.isArray(t)?t:[t]).find(r=>hre.has(r)):!1}async function gre({viewport:t,options:e={}}){const r=t.getRenderingEngine();let n=e.volumeId||`${wn()}`;n.split(":").length===0&&(n=`${ute()}:${n}`);const{id:i,element:o}=t,a=e.viewportId||i,s=t.getImageIds(),c=t.getViewPresentation(),l=t.getViewReference();r.enableElement({viewportId:a,type:mn.ORTHOGRAPHIC,element:o,defaultOptions:{background:e.background,orientation:e.orientation}}),(await nC(n,{imageIds:s})).load();const u=r.getViewport(a);await Bne(r,[{volumeId:n}],[a]);const d=()=>{u.render(),o.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,d)};return(()=>{o.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,d)})(),u.setViewPresentation(c),u.setViewReference(l),u.render(),u}async function pre({viewport:t,options:e}){const r=t,{id:n,element:i}=r,o=t.getRenderingEngine(),{background:a}=e,s=e.viewportId||n,c=Te.getVolume(r.getVolumeId());if(!(c instanceof wh))throw new Error("Currently, you cannot decache a volume that is not an ImageVolume. So, unfortunately, volumes such as nifti (which are basic Volume, without imageIds) cannot be decached.");const l={viewportId:s,type:mn.STACK,element:i,defaultOptions:{background:a}},f=r.getViewReference();o.enableElement(l);const u=o.getViewport(s);return await u.setStack(c.imageIds),u.setViewReference(f),u.render(),u}function xt(t,e=2){if(Array.isArray(t))return t.map(i=>xt(i,e)).join(", ");if(t==null||t==="")return"NaN";t=Number(t);const r=Math.abs(t);if(r<1e-4)return`${t}`;const n=r>=100?e-2:r>=10?e-1:r>=1?e:r>=.1?e+1:r>=.01?e+2:r>=.001?e+3:e+4;return t.toFixed(n)}function Ms(t){return Math.round(t/Ro)*Ro}function dR(t,e,r){const n=t.length===e*r*4,i=t.length===e*r*3;if(n||i){const o=new Float32Array(e*r);let a=0,s=0;const c=n?4:3;for(let l=0;l=r.length?(B8(r),r):(B8(r),r.slice(0,e))}function B8(t){for(let e=t.length-1;e>0;e--){const r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}}function Uv(t){const e=t.toString(16);return e.length==1?"0"+e:e}function mre(t,e,r){return"#"+Uv(t)+Uv(e)+Uv(r)}function vre(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}const yre=Object.freeze(Object.defineProperty({__proto__:null,hexToRgb:vre,rgbToHex:mre},Symbol.toStringTag,{value:"Module"}));function pR(t,e){if(t===e)return!0;if(t==null||e==null)return!1;try{return JSON.stringify(t)===JSON.stringify(e)}catch(r){return console.debug("Error in JSON.stringify during deep comparison:",r),t===e}}function xre(t,e,r){if(!r)throw new Error("getVolume is required, use the utilities export instead ");if(t.modality)return t.modality;if(t.setVolumes)return e=e??t.getVolumeId(),!e||!r?void 0:r(e).metadata.Modality;throw new Error("Invalid viewport type")}const wre=(t,e)=>t.reduce((r,n)=>((r[n[e]]=r[n[e]]||[]).push(n),r),{});function Cre(t){const e=t.map(a=>{const{imagePositionPatient:s}=Pe("imagePlaneModule",a)||{};return{imageId:a,imagePositionPatient:s}});if(!e.every(a=>a.imagePositionPatient))return null;const r=wre(e,"imagePositionPatient"),n=Object.keys(r),i=r[n[0]].length;return i===1||!n.every(a=>r[a].length===i)?null:r}function Sre(t,e){const r={};let n=[];const i=Object.keys(t);for(let o=0;oef(i,r[0]),i=>ef(i,r[1]),i=>ef(i,r[2]),i=>ef(i,r[3]),i=>ef(i,r[4]),Tre,_re,Ere,bre];for(let i=0;ic-l).map(c=>o[c].map(l=>l.imageId)),splittingTag:r[i]}}return{imageIdGroups:[t],splittingTag:null}}function Ire(t){const{imageIdGroups:e,splittingTag:r}=mR(t);return{isDynamicVolume:e.length>1,timePoints:e,splittingTag:r}}function Ore(t,e){const r=t.length,{rescaleSlope:n,rescaleIntercept:i,suvbw:o}=e;if(e.modality==="PT"&&typeof o=="number")for(let a=0;at.getImageIds().length-1||a+i<0){const s={imageIdIndex:a,direction:i};De(Ce,Se.STACK_SCROLL_OUT_OF_BOUNDS,s)}t.scroll(i,e.debounceLoading,e.loop)}}function Mre(t,e,r,n=!1){const i=n,{numScrollSteps:o,currentStepIndex:a,sliceRangeInfo:s}=Eu(t,e,i);if(!s)return;const{sliceRange:c,spacingInNormalDirection:l,camera:f}=s,{focalPoint:u,viewPlaneNormal:d,position:h}=f,{newFocalPoint:g,newPosition:p}=Tu(u,h,c,d,l,r);t.setCamera({focalPoint:g,position:p}),t.render();const v=a+r,x={volumeId:e,viewport:t,delta:r,desiredStepIndex:v,currentStepIndex:a,numScrollSteps:o,currentImageId:t.getCurrentImageId()};(v>o||v<0)&&t.getCurrentImageId()?De(Ce,Se.VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS,x):De(Ce,Se.VOLUME_VIEWPORT_SCROLL,x)}async function jo(t,e={}){const{imageIndex:r,debounceLoading:n,volumeId:i}=e,o=ne(t);if(!o)throw new Error("Element has been disabled");const{viewport:a}=o,{imageIndex:s,numberOfSlices:c}=Rre(a,n),f=Lre(c,r)-s;ul(a,{delta:f,debounceLoading:n,volumeId:i})}function Rre(t,e){return t instanceof un?{numberOfSlices:t.getImageIds().length,imageIndex:e?t.getTargetImageIdIndex():t.getCurrentImageIdIndex()}:{numberOfSlices:t.getNumberOfSlices(),imageIndex:t.getSliceIndex()}}function Lre(t,e){const r=t-1;return J1(e,0,r)}const vR=(t,e)=>xre(t,e,Te.getVolume),Jt=Object.freeze(Object.defineProperty({__proto__:null,PointsManager:ure,ProgressiveIterator:z1,RLEVoxelMap:wM,VoxelManager:Qa,actorIsA:ci,applyPreset:UM,autoLoad:t3,calculateViewportsSpatialRegistration:lR,calibratedPixelSpacingMetadataProvider:rre,clamp:o3,clip:J1,color:yre,colormap:oZ,convertStackToVolumeViewport:gre,convertToGrayscale:dR,convertVolumeToStackViewport:pre,createLinearRGBTransferFunction:$M,createSigmoidRGBTransferFunction:Zw,decimate:MM,deepClone:eo,deepEqual:pR,deepMerge:Qr,eventListener:Yne,generateVolumePropsFromImageIds:tC,genericMetadataProvider:Os,getBufferConfiguration:Gw,getClosestImageId:qa,getClosestStackImageIndexForPoint:cR,getCurrentVolumeViewportSlice:dC,getDynamicVolumeInfo:Ire,getImageLegacy:dre,getImageSliceDataForVolumeViewport:j1,getMinMax:s2,getRandomSampleFromArray:gR,getRuntimeId:rR,getScalingParameters:IM,getSliceRange:o2,getSpacingInNormalDirection:Ka,getTargetVolumeAndSpacingInNormalDir:S0,getViewportImageCornersInWorld:Y1,getViewportImageIds:hR,getViewportModality:vR,getViewportsWithImageURI:X1,getViewportsWithVolumeId:Ch,getVoiFromSigmoidRGBTransferFunction:FM,getVolumeActorCorners:MO,getVolumeId:fa,getVolumeSliceRangeInfo:VM,getVolumeViewportScrollInfo:Eu,getVolumeViewportsContainingSameVolumes:ire,hasFloatScalingParameters:eC,hasNaNValues:n3,imageIdToURI:Pn,imageRetrieveMetadataProvider:Nd,imageToWorldCoords:sR,indexWithinDimensions:On,invertRgbTransferFunction:Hf,isEqual:mt,isEqualAbs:rZ,isEqualNegative:HO,isImageActor:qo,isOpposite:If,isPTPrescaledWithSUV:iR,isValidVolume:uR,isVideoTransferSyntax:fR,jumpToSlice:jo,loadImageToCanvas:ore,makeVolumeMetadata:DM,planar:Tte,pointInShapeCallback:fC,renderToCanvasCPU:aR,renderToCanvasGPU:oR,roundNumber:xt,roundToPrecision:Ms,scaleArray:Ore,scaleRgbTransferFunction:Jne,scroll:ul,snapFocalPointToSlice:Tu,sortImageIdsAndGetSpacing:bM,spatialRegistrationMetadataProvider:kd,splitImageIdsBy4DTags:mR,transferFunctionUtils:sZ,transformIndexToWorld:K1,transformWorldToIndex:Gn,triggerEvent:De,updateVTKImageDataWithCornerstoneImage:c2,uuidv4:wn,windowLevel:aZ,worldToImageCoords:s3},Symbol.toStringTag,{value:"Module"})),Sh=new Kw("imageRetrievalPool");Sh.setMaxSimultaneousRequests(dt.Interaction,200);Sh.setMaxSimultaneousRequests(dt.Thumbnail,200);Sh.setMaxSimultaneousRequests(dt.Prefetch,200);Sh.grabDelay=0;const G8=Symbol("DefaultSettings"),W8=Symbol("RuntimeSettings"),z8=Symbol("ObjectSettingsMap"),ya=Symbol("Dictionary");class hn{constructor(e){const r=Object.create(e instanceof hn&&ya in e?e[ya]:null);Object.seal(Object.defineProperty(this,ya,{value:r}))}set(e,r){return Z1(this[ya],e,r,null)}get(e){return Are(this[ya],e)}unset(e){return Nre(this[ya],e+"")}forEach(e){$8(this[ya],e)}extend(){return new hn(this)}import(e){yR(e)&&Object.keys(e).forEach(r=>{Z1(this[ya],r,e[r],null)})}dump(){const e={};return $8(this[ya],(r,n)=>{typeof n<"u"&&xR(e,r,n)}),e}static assert(e){return e instanceof hn?e:hn.getRuntimeSettings()}static getDefaultSettings(e=null){let r=hn[G8];if(r instanceof hn||(r=new hn,hn[G8]=r),e){const n={};return r.forEach(i=>{if(i.startsWith(e)){const o=i.split(`${e}.`)[1];n[o]=r.get(i)}}),n}return r}static getRuntimeSettings(){let e=hn[W8];return e instanceof hn||(e=new hn(hn.getDefaultSettings()),hn[W8]=e),e}static getObjectSettings(e,r){let n=null;if(e instanceof hn)n=e;else if(typeof e=="object"&&e!==null){let i=hn[z8];i instanceof WeakMap||(i=new WeakMap,hn[z8]=i),n=i.get(e),n instanceof hn||(n=new hn(hn.assert(hn.getObjectSettings(r))),i.set(e,n))}return n}static extendRuntimeSettings(){return hn.getRuntimeSettings().extend()}}function Nre(t,e){if(e.endsWith(".")){let r=0;const n=e,i=n.slice(0,-1),o=i.length===0;for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(o||a.startsWith(n)||a===i)&&(delete t[a],++r);return r>0}return delete t[e]}function $8(t,e){for(const r in t)e(r,t[r])}function Pre(t,e,r,n){let i;if(n.has(r))return Z1(t,e,null,n);n.add(r),i=0;for(const o in r)if(Object.prototype.hasOwnProperty.call(r,o)){const a=o.length===0?e:`${e}.${o}`;Z1(t,a,r[o],n)||++i}return n.delete(r),i===0}function Z1(t,e,r,n){return kre(e)?yR(r)?Pre(t,e,r,n instanceof WeakSet?n:new WeakSet):(t[e]=r,!0):!1}function Are(t,e){return t[e]}function kre(t){let e,r,n;if(typeof t!="string"||(e=t.length-1)<0)return!1;for(n=-1;(r=t.indexOf(".",n+1))>=0;){if(r-n<2||r===e)return!1;n=r}return!0}function yR(t){if(typeof t=="object"&&t!==null){const e=Object.getPrototypeOf(t);if(e===Object.prototype||e===null)return!0}return!1}function xR(t,e,r){const n=e.indexOf(".");if(n>=0){const i=e.slice(0,n);let o=t[i];if(typeof o!="object"||o===null){const a=o;o={},typeof a<"u"&&(o[""]=a),t[i]=o}xR(o,e.slice(n+1,e.length),r)}else t[e]=r}hn.getDefaultSettings().set("useCursors",!0);function Vp(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function Vre(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function wR(t){let e,r,n;t.length!==2?(e=Vp,r=(s,c)=>Vp(t(s),c),n=(s,c)=>t(s)-c):(e=t===Vp||t===Vre?t:Fre,r=t,n=t);function i(s,c,l=0,f=s.length){if(l>>1;r(s[u],c)<0?l=u+1:f=u}while(l>>1;r(s[u],c)<=0?l=u+1:f=u}while(ll&&n(s[u-1],c)>-n(s[u],c)?u-1:u}return{left:i,center:a,right:o}}function Fre(){return 0}function Ure(t){return t===null?NaN:+t}const Bre=wR(Vp),Gre=Bre.right;wR(Ure).center;const Wre=Math.sqrt(50),zre=Math.sqrt(10),$re=Math.sqrt(2);function Q1(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),a=o>=Wre?10:o>=zre?5:o>=$re?2:1;let s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/le&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*le&&--c),c0))return[];if(t===e)return[t];const n=e=i))return[];const s=o-i+1,c=new Array(s);if(n)if(a<0)for(let l=0;ln||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function qre(t){if(!(o=t.length))return[];for(var e=-1,r=Kre(t,Xre),n=new Array(r);++e>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?bg(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?bg(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=Zre.exec(t))?new xi(e[1],e[2],e[3],1):(e=Qre.exec(t))?new xi(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=eie.exec(t))?bg(e[1],e[2],e[3],e[4]):(e=tie.exec(t))?bg(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=nie.exec(t))?Z8(e[1],e[2]/100,e[3]/100,1):(e=rie.exec(t))?Z8(e[1],e[2]/100,e[3]/100,e[4]):H8.hasOwnProperty(t)?X8(H8[t]):t==="transparent"?new xi(NaN,NaN,NaN,0):null}function X8(t){return new xi(t>>16&255,t>>8&255,t&255,1)}function bg(t,e,r,n){return n<=0&&(t=e=r=NaN),new xi(t,e,r,n)}function aie(t){return t instanceof Th||(t=Ud(t)),t?(t=t.rgb(),new xi(t.r,t.g,t.b,t.opacity)):new xi}function l3(t,e,r,n){return arguments.length===1?aie(t):new xi(t,e,r,n??1)}function xi(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}hC(xi,l3,CR(Th,{brighter(t){return t=t==null?em:Math.pow(em,t),new xi(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Vd:Math.pow(Vd,t),new xi(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new xi(Xc(this.r),Xc(this.g),Xc(this.b),tm(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Y8,formatHex:Y8,formatHex8:sie,formatRgb:J8,toString:J8}));function Y8(){return`#${Bc(this.r)}${Bc(this.g)}${Bc(this.b)}`}function sie(){return`#${Bc(this.r)}${Bc(this.g)}${Bc(this.b)}${Bc((isNaN(this.opacity)?1:this.opacity)*255)}`}function J8(){const t=tm(this.opacity);return`${t===1?"rgb(":"rgba("}${Xc(this.r)}, ${Xc(this.g)}, ${Xc(this.b)}${t===1?")":`, ${t})`}`}function tm(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Xc(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Bc(t){return t=Xc(t),(t<16?"0":"")+t.toString(16)}function Z8(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new To(t,e,r,n)}function SR(t){if(t instanceof To)return new To(t.h,t.s,t.l,t.opacity);if(t instanceof Th||(t=Ud(t)),!t)return new To;if(t instanceof To)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(r-n)/s+(r0&&c<1?0:a,new To(a,s,c,t.opacity)}function cie(t,e,r,n){return arguments.length===1?SR(t):new To(t,e,r,n??1)}function To(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}hC(To,cie,CR(Th,{brighter(t){return t=t==null?em:Math.pow(em,t),new To(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Vd:Math.pow(Vd,t),new To(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new xi(Bv(t>=240?t-240:t+120,i,n),Bv(t,i,n),Bv(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new To(Q8(this.h),Ig(this.s),Ig(this.l),tm(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=tm(this.opacity);return`${t===1?"hsl(":"hsla("}${Q8(this.h)}, ${Ig(this.s)*100}%, ${Ig(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Q8(t){return t=(t||0)%360,t<0?t+360:t}function Ig(t){return Math.max(0,Math.min(1,t||0))}function Bv(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}function lie(t,e,r,n,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*r+(1+3*t+3*o-3*a)*n+a*i)/6}function Gv(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],o=t[n+1],a=n>0?t[n-1]:2*i-o,s=n()=>t;function uie(t,e){return function(r){return t+r*e}}function fie(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function die(t){return(t=+t)==1?TR:function(e,r){return r-e?fie(e,r,t):gC(isNaN(e)?r:e)}}function TR(t,e){var r=e-t;return r?uie(t,r):gC(isNaN(t)?e:t)}const e_=function t(e){var r=die(e);function n(i,o){var a=r((i=l3(i)).r,(o=l3(o)).r),s=r(i.g,o.g),c=r(i.b,o.b),l=TR(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=l(f),i+""}}return n.gamma=t,n}(1);function hie(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(o){for(i=0;ir&&(o=e.slice(r,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:nm(n,i)})),r=Wv.lastIndex;return re&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function Eie(t,e,r){var n=t[0],i=t[1],o=e[0],a=e[1];return i2?Die:Eie,c=l=null,u}function u(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(n),e,r)))(n(a(d)))}return u.invert=function(d){return a(i((l||(l=s(e,t.map(n),nm)))(d)))},u.domain=function(d){return arguments.length?(t=Array.from(d,Tie),f()):t.slice()},u.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},u.rangeRound=function(d){return e=Array.from(d),r=Cie,f()},u.clamp=function(d){return arguments.length?(a=d?!0:ou,f()):a!==ou},u.interpolate=function(d){return arguments.length?(r=d,f()):r},u.unknown=function(d){return arguments.length?(o=d,u):o},function(d,h){return n=d,i=h,f()}}function Oie(){return Iie()(ou,ou)}function Mie(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function rm(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Yu(t){return t=rm(Math.abs(t)),t?t[1]:NaN}function Rie(t,e){return function(r,n){for(var i=r.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>n&&(s=Math.max(1,n-c)),o.push(r.substring(i-=s,i+s)),!((c+=s+1)>n));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function Lie(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var Nie=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function im(t){if(!(e=Nie.exec(t)))throw new Error("invalid format: "+t);var e;return new mC({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}im.prototype=mC.prototype;function mC(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}mC.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Pie(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var _R;function Aie(t,e){var r=rm(t,e);if(!r)return t+"";var n=r[0],i=r[1],o=i-(_R=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return o===a?n:o>a?n+new Array(o-a+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+rm(t,Math.max(0,e+o-1))[0]}function n_(t,e){var r=rm(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const r_={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Mie,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>n_(t*100,e),r:n_,s:Aie,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function i_(t){return t}var o_=Array.prototype.map,a_=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function kie(t){var e=t.grouping===void 0||t.thousands===void 0?i_:Rie(o_.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?i_:Lie(o_.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(u){u=im(u);var d=u.fill,h=u.align,g=u.sign,p=u.symbol,v=u.zero,x=u.width,m=u.comma,y=u.precision,w=u.trim,C=u.type;C==="n"?(m=!0,C="g"):r_[C]||(y===void 0&&(y=12),w=!0,C="g"),(v||d==="0"&&h==="=")&&(v=!0,d="0",h="=");var S=p==="$"?r:p==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=p==="$"?n:/[%p]/.test(C)?a:"",_=r_[C],E=/[defgprs%]/.test(C);y=y===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function D(b){var I=S,R=T,M,L,A;if(C==="c")R=_(b)+R,b="";else{b=+b;var G=b<0||1/b<0;if(b=isNaN(b)?c:_(Math.abs(b),y),w&&(b=Pie(b)),G&&+b==0&&g!=="+"&&(G=!1),I=(G?g==="("?g:s:g==="-"||g==="("?"":g)+I,R=(C==="s"?a_[8+_R/3]:"")+R+(G&&g==="("?")":""),E){for(M=-1,L=b.length;++MA||A>57){R=(A===46?i+b.slice(M+1):b.slice(M))+R,b=b.slice(0,M);break}}}m&&!v&&(b=e(b,1/0));var P=I.length+b.length+R.length,N=P>1)+I+b+R+N.slice(P);break;default:b=N+I+b+R;break}return o(b)}return D.toString=function(){return u+""},D}function f(u,d){var h=l((u=im(u),u.type="f",u)),g=Math.max(-8,Math.min(8,Math.floor(Yu(d)/3)))*3,p=Math.pow(10,-g),v=a_[8+g/3];return function(x){return h(p*x)+v}}return{format:l,formatPrefix:f}}var Og,ER,DR;Vie({thousands:",",grouping:[3],currency:["$",""]});function Vie(t){return Og=kie(t),ER=Og.format,DR=Og.formatPrefix,Og}function Fie(t){return Math.max(0,-Yu(Math.abs(t)))}function Uie(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Yu(e)/3)))*3-Yu(Math.abs(t)))}function Bie(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Yu(e)-Yu(t))+1}function Gie(t,e,r,n){var i=Hre(t,e,r),o;switch(n=im(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(o=Uie(i,a))&&(n.precision=o),DR(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Bie(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=Fie(i))&&(n.precision=o-(n.type==="%")*2);break}}return ER(n)}function Wie(t){var e=t.domain;return t.ticks=function(r){var n=e();return jre(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return Gie(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,o=n.length-1,a=n[i],s=n[o],c,l,f=10;for(s0;){if(l=c3(a,s,r),l===c)return n[i]=a,n[o]=s,e(n);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function vC(){var t=Oie();return t.copy=function(){return bie(t,vC())},Yre.apply(t,arguments),Wie(t)}function zie(t,e){e.classHierarchy.push("vtkTexture"),t.imageLoaded=()=>{e.image.removeEventListener("load",t.imageLoaded),e.imageLoaded=!0,t.modified()},t.setJsImageData=r=>{e.jsImageData!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.canvas=null),e.jsImageData=r,e.imageLoaded=!0,t.modified())},t.setCanvas=r=>{e.canvas!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.jsImageData=null),e.canvas=r,t.modified())},t.setImage=r=>{e.image!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.canvas=null,e.jsImageData=null),e.image=r,e.imageLoaded=!1,r.complete?t.imageLoaded():r.addEventListener("load",t.imageLoaded),t.modified())},t.getDimensionality=()=>{let r=0,n=0,i=1;if(t.getInputData()){const a=t.getInputData();r=a.getDimensions()[0],n=a.getDimensions()[1],i=a.getDimensions()[2]}return e.jsImageData&&(r=e.jsImageData.width,n=e.jsImageData.height),e.canvas&&(r=e.canvas.width,n=e.canvas.height),e.image&&(r=e.image.width,n=e.image.height),(r>1)+(n>1)+(i>1)},t.getInputAsJsImageData=()=>{if(!e.imageLoaded||t.getInputData())return null;if(e.jsImageData)return e.jsImageData();if(e.canvas)return e.canvas.getContext("2d").getImageData(0,0,e.canvas.width,e.canvas.height);if(e.image){const r=document.createElement("canvas");r.width=e.image.width,r.height=e.image.height;const n=r.getContext("2d");return n.translate(0,r.height),n.scale(1,-1),n.drawImage(e.image,0,0,e.image.width,e.image.height),n.getImageData(0,0,r.width,r.height)}return null}}const $ie=(t,e,r,n)=>{const i=[1,2,1],o=4,a=i,s=o,c=t.length/(e*r);let l=e,f=r,u=t;const d=[u];for(let h=0;hc&&(_+=p),E<-c&&(_-=p),x[_]?S+=x[_]*a[T]:C-=a[T],w+=1}u[m+y]=S/C}x=[...u];for(let m=0;m2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,jie,r),W.obj(t,e),W.algo(t,e,6,0),W.get(t,e,["canvas","image","jsImageData","imageLoaded","resizable"]),W.setGet(t,e,["repeat","edgeClamp","interpolate","mipLevel"]),zie(t,e)}const Hie=W.newInstance(bR,"vtkTexture"),Kie={generateMipmaps:$ie};var _h={newInstance:Hie,extend:bR,...Kie};const qie=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],s_=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Mg=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],c_=[0,1,0,1,0,1,0,1,2,2,2,2],Ln=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],pt=new Float64Array(3),Rg=new Float64Array(3),Zt=new Float64Array(3),Nc=new Float64Array(3),yc=new Float64Array(3),Lg=new Float64Array(3),zv=new Float64Array(16);function $v(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function IR(t){const e=[],r=[];for(let n=0;n<3;n++){const i=vC().domain([t[n*2],t[n*2+1]]);e[n]=i.ticks(5);const o=i.tickFormat(5);r[n]=e[n].map(o)}return{ticks:e,tickStrings:r}}function Xie(t,e){e.classHierarchy.push("vtkCubeAxesActorHelper"),t.setRenderable=r=>{e.renderable!==r&&(e.renderable=r,e.tmActor.addTexture(e.renderable.getTmTexture()),e.tmActor.setProperty(r.getProperty()),e.tmActor.setParentProp(r),t.modified())},t.createPolyDataForOneLabel=(r,n,i,o,a,s,c)=>{const l=e.renderable.get_tmAtlas().get(r);if(!l)return;const f=e.renderable.getTextPolyData().getPoints().getData(),u=e.lastSize;pt[0]=f[n*3],pt[1]=f[n*3+1],pt[2]=f[n*3+2],et(Zt,pt,i),Zt[0]+=.1,et(Rg,Zt,o),kt(yc,Rg,pt),Zt[0]-=.1,Zt[1]+=.1,et(Rg,Zt,o),kt(Lg,Rg,pt);for(let g=0;g<3;g++)yc[g]/=.5*.1*u[0],Lg[g]/=.5*.1*u[1];let d=c.ptIdx,h=c.cellIdx;pt[0]=f[n*3],pt[1]=f[n*3+1],pt[2]=f[n*3+2],a[0]<-.5?cr(Zt,yc,a[0]*s-l.width):a[0]>.5?cr(Zt,yc,a[0]*s):cr(Zt,yc,a[0]*s-l.width/2),xn(pt,pt,Zt),cr(Zt,Lg,a[1]*s-l.height/2),xn(pt,pt,Zt),c.points[d*3]=pt[0],c.points[d*3+1]=pt[1],c.points[d*3+2]=pt[2],c.tcoords[d*2]=l.tcoords[0],c.tcoords[d*2+1]=l.tcoords[1],d++,cr(Zt,yc,l.width),xn(pt,pt,Zt),c.points[d*3]=pt[0],c.points[d*3+1]=pt[1],c.points[d*3+2]=pt[2],c.tcoords[d*2]=l.tcoords[2],c.tcoords[d*2+1]=l.tcoords[3],d++,cr(Zt,Lg,l.height),xn(pt,pt,Zt),c.points[d*3]=pt[0],c.points[d*3+1]=pt[1],c.points[d*3+2]=pt[2],c.tcoords[d*2]=l.tcoords[4],c.tcoords[d*2+1]=l.tcoords[5],d++,cr(Zt,yc,l.width),kt(pt,pt,Zt),c.points[d*3]=pt[0],c.points[d*3+1]=pt[1],c.points[d*3+2]=pt[2],c.tcoords[d*2]=l.tcoords[6],c.tcoords[d*2+1]=l.tcoords[7],d++,c.polys[h*4]=3,c.polys[h*4+1]=d-4,c.polys[h*4+2]=d-3,c.polys[h*4+3]=d-2,h++,c.polys[h*4]=3,c.polys[h*4+1]=d-4,c.polys[h*4+2]=d-2,c.polys[h*4+3]=d-1,c.ptIdx+=4,c.cellIdx+=2},t.updateTexturePolyData=()=>{const r=e.camera.getCompositeProjectionMatrix(e.lastAspectRatio,-1,1);St(r,r);const n=e.renderable.getTextValues().length,i=n*4,o=n*2,a=new Float64Array(i*3),s=new Uint16Array(o*4),c=new Float32Array(i*2);$n(zv,r);const l={ptIdx:0,cellIdx:0,polys:s,points:a,tcoords:c};let f=0,u=0,d=0;const h=e.renderable.getTextPolyData().getPoints().getData(),g=e.renderable.getTextValues();for(;f{(e.lastSize[0]!==r[0]||e.lastSize[1]!==r[1])&&(e.lastSize[0]=r[0],e.lastSize[1]=r[1],e.lastAspectRatio=r[0]/r[1],e.forceUpdate=!0),e.camera=n,t.updateTexturePolyData()}}const Yie=W.newInstance(function(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},r),W.obj(t,e),e.tmPolyData=dr.newInstance(),e.tmMapper=ia.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmActor=sa.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),W.setGet(t,e,["renderable"]),W.get(t,e,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),e.forceUpdate=!1,e.lastRedrawTime={},W.obj(e.lastRedrawTime,{mtime:0}),e.lastRebuildTime={},W.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.lastTickBounds=[],Xie(t,e)},"vtkCubeAxesActorHelper");function Jie(t,e){e.classHierarchy.push("vtkCubeAxesActor"),t.setCamera=n=>{e.camera!==n&&(e.cameraModifiedSub&&(e.cameraModifiedSub.unsubscribe(),e.cameraModifiedSub=null),e.camera=n,n&&(e.cameraModifiedSub=n.onModified(t.update)),t.update(),t.modified())},t.computeFacesToDraw=()=>{const n=e.camera.getViewMatrix();St(n,n);let i=!1;const o=Xt.getDiagonalLength(e.dataBounds),a=Math.sin(e.faceVisibilityAngle*Math.PI/180);for(let s=0;s<6;s++){let c=!1;const l=Math.floor(s/2),f=(l+1)%3,u=(l+2)%3;e.dataBounds[f*2]!==e.dataBounds[f*2+1]&&e.dataBounds[u*2]!==e.dataBounds[u*2+1]&&(pt[l]=e.dataBounds[s]-.1*o*qie[s][l],pt[f]=.5*(e.dataBounds[f*2]+e.dataBounds[f*2+1]),pt[u]=.5*(e.dataBounds[u*2]+e.dataBounds[u*2+1]),et(Zt,pt,n),pt[l]=e.dataBounds[s],et(Nc,pt,n),kt(Zt,Nc,Zt),an(Zt,Zt),c=Zt[2]>a,e.camera.getParallelProjection()||(an(Nc,Nc),c=je(Nc,Zt)>a)),c!==e.lastFacesToDraw[s]&&(e.lastFacesToDraw[s]=c,i=!0)}return i},t.updatePolyData=(n,i,o)=>{let a=0,s=0;a+=8;let c=0;for(let h=0;h<12;h++)i[h]>0&&c++;if(s+=c,e.gridLines)for(let h=0;h<6;h++)n[h]&&(a+=o[Ln[h][0]].length*2+o[Ln[h][1]].length*2,s+=o[Ln[h][0]].length+o[Ln[h][1]].length);const l=new Float64Array(a*3),f=new Uint32Array(s*3);let u=0,d=0;for(let h=0;h<2;h++)for(let g=0;g<2;g++)for(let p=0;p<2;p++)l[u*3]=e.dataBounds[p],l[u*3+1]=e.dataBounds[2+g],l[u*3+2]=e.dataBounds[4+h],u++;for(let h=0;h<12;h++)i[h]>0&&(f[d*3]=2,f[d*3+1]=Mg[h][0],f[d*3+2]=Mg[h][1],d++);if(e.gridLines){for(let h=0;h<6;h++)if(n[h]){const g=Math.floor(h/2);let p=o[Ln[h][0]];for(let v=0;v{let s=0;for(let h=0;h<12;h++)i[h]===1&&(s+=2,s+=o[c_[h]].length);const c=e.polyData.getPoints().getData(),l=new Float64Array(s*3);let f=0,u=0,d=0;for(let h=0;h<6;h++)if(n[h])for(let g=0;g<4;g++){const p=s_[h][g];if(i[p]===1){const v=c_[p],x=Mg[p][0]*3,m=Mg[p][1]*3;l[f*3]=.5*(c[x]+c[m]),l[f*3+1]=.5*(c[x+1]+c[m+1]),l[f*3+2]=.5*(c[x+2]+c[m+2]),f++;const y=Math.floor(h/2);l[f*3+y]=e.dataBounds[h],l[f*3+Ln[h][0]]=.5*(e.dataBounds[Ln[h][0]*2]+e.dataBounds[Ln[h][0]*2+1]),l[f*3+Ln[h][1]]=.5*(e.dataBounds[Ln[h][1]*2]+e.dataBounds[Ln[h][1]*2+1]),f++,e.textValues[u]=e.axisLabels[v],u++;const w=(v+1)%3,C=(v+2)%3,S=o[v],T=a[v];e.tickCounts[d]=S.length;for(let _=0;_{if(!e.camera)return;const n=t.computeFacesToDraw(),i=e.lastFacesToDraw;let o=!1;for(let a=0;a<6;a++)e.dataBounds[a]!==e.lastTickBounds[a]&&(o=!0,e.lastTickBounds[a]=e.dataBounds[a]);if(n||o||e.forceUpdate){const a=new Array(12).fill(0);for(let c=0;c<6;c++)if(i[c])for(let l=0;l<4;l++)a[s_[c][l]]++;const s=e.generateTicks(e.dataBounds);t.updatePolyData(i,a,s.ticks),t.updateTextData(i,a,s.ticks,s.tickStrings),(o||e.forceUpdate)&&t.updateTextureAtlas(s.tickStrings)}e.forceUpdate=!1},t.updateTextureAtlas=n=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e._tmAtlas.clear();let i=0,o=1;for(let a=0;a<3;a++){if(!e._tmAtlas.has(e.axisLabels[a])){$v(e.tmContext,e.axisTextStyle);const s=e.tmContext.measureText(e.axisLabels[a]),c={height:s.actualBoundingBoxAscent+2,startingHeight:o,width:s.width+2,textStyle:e.axisTextStyle};e._tmAtlas.set(e.axisLabels[a],c),o+=c.height,i{a.tcoords=[0,(o-a.startingHeight-a.height)/o,a.width/i,(o-a.startingHeight-a.height)/o,a.width/i,(o-a.startingHeight)/o,0,(o-a.startingHeight)/o]}),e.tmCanvas.width=i,e.tmCanvas.height=o,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,i,o),e._tmAtlas.forEach((a,s)=>{$v(e.tmContext,a.textStyle),e.tmContext.fillText(s,1,a.startingHeight+a.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified()},t.onModified(()=>{e.forceUpdate=!0,t.update()}),t.setTickTextStyle=n=>{e.tickTextStyle={...e.tickTextStyle,...n},t.modified()},t.setAxisTextStyle=n=>{e.axisTextStyle={...e.axisTextStyle,...n},t.modified()},t.get_tmAtlas=()=>e._tmAtlas,t.getBounds=()=>(t.update(),Xt.setBounds(e.bounds,e.gridActor.getBounds()),Xt.scaleAboutCenter(e.bounds,e.boundsScaleFactor,e.boundsScaleFactor,e.boundsScaleFactor),e.bounds);const r=W.chain(t.setProperty,e.gridActor.setProperty);t.setProperty=n=>r(n)[0]}function Zie(t,e,r){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...Xt.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:IR,...r,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif",...r==null?void 0:r.axisTextStyle},tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif",...r==null?void 0:r.tickTextStyle}}}function OR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};sa.extend(t,e,Zie(t,e,r)),e.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],e.axisLabels=["X-Axis","Y-Axis","Z-Axis"],e.tickCounts=[],e.textValues=[],e.lastTickBounds=[],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.tmTexture=_h.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),e.gridMapper=ia.newInstance(),e.polyData=dr.newInstance(),e.gridMapper.setInputData(e.polyData),e.gridActor=sa.newInstance(),e.gridActor.setMapper(e.gridMapper),e.gridActor.setProperty(t.getProperty()),e.gridActor.setParentProp(t),e.textPolyData=dr.newInstance(),W.setGet(t,e,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset","generateTicks"]),W.setGetArray(t,e,["dataBounds"],6),W.setGetArray(t,e,["axisLabels"],3),W.get(t,e,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),Jie(t,e)}const Qie=W.newInstance(OR,"vtkCubeAxesActor");var MR={newInstance:Qie,extend:OR,newCubeAxesActorHelper:Yie,defaultGenerateTicks:IR};function eoe(t,e){e.classHierarchy.push("vtkOpenGLCubeAxesActor"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,o=e._openGLRenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e._openGLRenderWindow.getRenderable())}}}const toe={};function noe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,toe,r),nn.extend(t,e,r),e.CubeAxesActorHelper=MR.newCubeAxesActorHelper(),eoe(t,e)}const roe=Bt(noe,"vtkOpenGLCubeAxesActor");ir("vtkCubeAxesActor",roe);const{ColorMode:ioe,ScalarMode:xc,GetArray:jv}=Qm;function ooe(t,e){e.classHierarchy.push("vtkMapper2D"),t.createDefaultLookupTable=()=>{e.lookupTable=N1.newInstance()},t.getColorModeAsString=()=>W.enumToString(ioe,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>W.enumToString(xc,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(r,n,i,o,a)=>{if(!r||!e.scalarVisibility)return{scalars:null,cellFLag:!1};let s=null,c=!1;if(n===xc.DEFAULT)s=r.getPointData().getScalars(),s||(s=r.getCellData().getScalars(),c=!0);else if(n===xc.USE_POINT_DATA)s=r.getPointData().getScalars();else if(n===xc.USE_CELL_DATA)s=r.getCellData().getScalars(),c=!0;else if(n===xc.USE_POINT_FIELD_DATA){const l=r.getPointData();i===jv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===xc.USE_CELL_FIELD_DATA){const l=r.getCellData();c=!0,i===jv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===xc.USE_FIELD_DATA){const l=r.getFieldData();i===jv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}return{scalars:s,cellFlag:c}},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let r=e.mtime;if(e.lookupTable!==null){const n=e.lookupTable.getMTime();r=n>r?n:r}return r},t.mapScalars=(r,n)=>{const i=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!i){e.colorMapColors=null;return}const o=`${t.getMTime()}${i.getMTime()}${n}`;if(e.colorBuildString===o)return;e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]);const a=t.getLookupTable();a&&(a.build(),e.colorMapColors=a.mapScalars(i,e.colorMode,e.fieldDataTupleId)),e.colorBuildString=`${t.getMTime()}${i.getMTime()}${n}`},t.getPrimitiveCount=()=>{const r=t.getInputData();return{points:r.getPoints().getNumberOfValues()/3,verts:r.getVerts().getNumberOfValues()-r.getVerts().getNumberOfCells(),lines:r.getLines().getNumberOfValues()-2*r.getLines().getNumberOfCells(),triangles:r.getPolys().getNumberOfValues()-3*r.getPolys().getNumberOfCells()}}}const aoe={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function RR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,aoe,r),Bb.extend(t,e,r),W.get(t,e,["colorMapColors"]),W.setGet(t,e,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),W.setGetArray(t,e,["scalarRange"],2),e.viewSpecificProperties||(e.viewSpecificProperties={}),ooe(t,e)}const soe=W.newInstance(RR,"vtkMapper2D");var coe={newInstance:soe,extend:RR},loe=`//VTK::System::Dec +`,B8=Symbol.for("map"),Qne="postrender",pu=class pu extends Zu{constructor(e){super({...e,canvas:e.canvas||ba(e.element)}),this.internalCamera={rotation:0,centerIndex:[0,0],extent:[0,-2,1,-1],xSpacing:1,ySpacing:1,resolution:1,zoom:1},this.voiRange={lower:0,upper:255},this.getProperties=()=>({}),this.resetCamera=()=>!0,this.getNumberOfSlices=()=>1,this.getFrameOfReferenceUID=()=>this.frameOfReferenceUID,this.resize=()=>{const n=this.canvas,{clientWidth:i,clientHeight:o}=n;(n.width!==i||n.height!==o)&&(n.width=i,n.height=o),this.refreshRenderValues()},this.canvasToWorld=n=>{if(!this.metadata)return;const[i,o]=this.canvasToIndex(n),{origin:a,spacing:s,direction:c}=this.getImageData(),l=Ye(0,0,0),f=c.slice(0,3),u=c.slice(3,6);return Vt(l,a,f,i*s[0]),Vt(l,l,u,o*s[1]),[l[0],l[1],l[2]]},this.worldToCanvas=n=>{if(!this.metadata)return;const{spacing:i,direction:o,origin:a}=this.metadata,s=o.slice(0,3),c=o.slice(3,6),l=kt([0,0,0],n,a),f=[je(l,s)/i[0],je(l,c)/i[1]];return this.indexToCanvas(f)},this.postrender=()=>{this.refreshRenderValues(),De(this.element,Se.IMAGE_RENDERED,{element:this.element,viewportId:this.id,viewport:this,renderingEngineId:this.renderingEngineId})},this.getRotation=()=>0,this.canvasToIndex=n=>{const i=this.getTransform();return i.invert(),i.transformPoint(n)},this.indexToCanvas=n=>this.getTransform().transformPoint(n),this.customRenderViewportToCanvas=()=>{},this.getImageIds=()=>[this.imageIds[0]],this.renderingEngineId=e.renderingEngineId,this.element.setAttribute("data-viewport-uid",this.id),this.element.setAttribute("data-rendering-engine-uid",this.renderingEngineId),this.element.style.position="relative",this.microscopyElement=document.createElement("div"),this.microscopyElement.setAttribute("class","DicomMicroscopyViewer"),this.microscopyElement.id=wn(),this.microscopyElement.innerText="Initial",this.microscopyElement.style.background="grey",this.microscopyElement.style.width="100%",this.microscopyElement.style.height="100%",this.microscopyElement.style.position="absolute",this.microscopyElement.style.left="0",this.microscopyElement.style.top="0";const r=this.element.firstElementChild;r.insertBefore(this.microscopyElement,r.childNodes[1]),this.addEventListeners(),this.addWidget("DicomMicroscopyViewer",{getEnabled:()=>!!this.viewer,setEnabled:()=>{this.elementDisabledHandler()}}),this.resize()}static get useCustomRenderingPipeline(){return!0}addEventListeners(){this.canvas.addEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}removeEventListeners(){this.canvas.removeEventListener(Se.ELEMENT_DISABLED,this.elementDisabledHandler)}elementDisabledHandler(){var r;this.removeEventListeners(),(r=this.viewer)==null||r.cleanup(),this.viewer=null,this.element.firstElementChild.removeChild(this.microscopyElement),this.microscopyElement=null}getImageDataMetadata(e=0){var E;const r=this.metadataDicomweb.reduce((D,b)=>(D==null?void 0:D.NumberOfFrames)e.direction,getDimensions:()=>e.dimensions,getRange:()=>[0,255],getScalarData:()=>this.getScalarData(),getSpacing:()=>e.spacing,worldToIndex:o=>{const a=this.worldToCanvas(o),s=this.canvasToIndex(a);return[s[0],s[1],0]},indexToWorld:o=>{const a=this.indexToCanvas([o[0],o[1]]);return this.canvasToWorld(a)}};return{dimensions:e.dimensions,spacing:r,numberOfComponents:3,origin:e.origin,direction:e.direction,metadata:{Modality:this.modality,FrameOfReferenceUID:this.frameOfReferenceUID},hasPixelSpacing:this.hasPixelSpacing,calibration:this.calibration,preScale:{scaled:!1},scalarData:this.getScalarData(),imageData:n,voxelManager:{forEach:(o,a)=>hC(a.imageData,{pointInShapeFn:a.isInObject??(()=>!0),callback:o,boundsIJK:a.boundsIJK,returnPoints:a.returnPoints??!1})}}}hasImageURI(e){return!0}setCamera(e){const r=this.getCamera(),{parallelScale:n,focalPoint:i}=e,o=this.getView(),{xSpacing:a}=this.internalCamera;if(n){const c=this.element.clientHeight/n,l=1/a/c;o.setResolution(l)}if(i){const c=this.worldToCanvas(i),l=this.canvasToIndex(c);o.setCenter(l)}const s=this.getCamera();this.triggerCameraModifiedEventIfNecessary(r,s)}getCurrentImageId(){return this.imageIds[0]}getFrameNumber(){return 1}getCamera(){this.refreshRenderValues();const{resolution:e,xSpacing:r}=this.internalCamera,n=e*r,i=[this.element.clientWidth/2,this.element.clientHeight/2],o=this.canvasToWorld(i);return{parallelProjection:!0,focalPoint:o,position:o,viewUp:[0,-1,0],parallelScale:this.element.clientHeight*n,viewPlaneNormal:[0,0,1]}}setDataIds(e,r){(r==null?void 0:r.miniNavigationOverlay)!==!1&&pu.addMiniNavigationOverlayCss();const n=(r==null?void 0:r.webClient)||Pe(si.WADO_WEB_CLIENT,e[0]);if(!n)throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${e[0]}`);return this.setWSI(e,n)}async setWSI(e,r){this.microscopyElement.style.background="black",this.microscopyElement.innerText="Loading",this.imageIds=e;const n=await pu.getDicomMicroscopyViewer();this.frameOfReferenceUID=null;const i=this.imageIds.map(s=>{var u,d,h;const c=r.getDICOMwebMetadata(s);Object.defineProperty(c,"isMultiframe",{value:c.isMultiframe,enumerable:!1}),Object.defineProperty(c,"frameNumber",{value:void 0,enumerable:!1});const l=(u=c["00080008"])==null?void 0:u.Value;(l==null?void 0:l.length)===1&&(c["00080008"].Value=l[0].split("\\"));const f=(h=(d=c["00200052"])==null?void 0:d.Value)==null?void 0:h[0];return this.frameOfReferenceUID?f!==this.frameOfReferenceUID&&(c["00200052"].Value=[this.frameOfReferenceUID]):this.frameOfReferenceUID=f,c}),o=[];i.forEach(s=>{const c=new n.metadata.VLWholeSlideMicroscopyImage({metadata:s}),l=c.ImageType[2];l==="VOLUME"||l==="THUMBNAIL"?o.push(c):console.log("Unknown image type",c.ImageType)}),this.metadataDicomweb=o;const a=new n.viewer.VolumeImageViewer({client:r,metadata:o,controls:["overview","position"],retrieveRendered:!1,bindings:{}});a.render({container:this.microscopyElement}),this.metadata=this.getImageDataMetadata(),a.deactivateDragPanInteraction(),this.viewer=a,this.map=a[B8],this.map.on(Qne,this.postrender),this.resize(),this.microscopyElement.innerText="",Object.assign(this.microscopyElement.style,{"--ol-partial-background-color":"rgba(127, 127, 127, 0.7)","--ol-foreground-color":"#000000","--ol-subtle-foreground-color":"#000","--ol-subtle-background-color":"rgba(78, 78, 78, 0.5)",background:"none"})}scroll(e){const r=this.getCamera();this.setCamera({parallelScale:r.parallelScale*(1+.1*e)})}getSliceIndex(){return 0}getView(){if(!this.viewer)return;const e=this.viewer[B8],r=window;return r.map=e,r.viewer=this.viewer,r.view=e==null?void 0:e.getView(),r.wsi=this,e==null?void 0:e.getView()}refreshRenderValues(){const e=this.getView();if(!e)return;const r=e.getResolution();if(!r||rsZ("dicom-microscopy-viewer"),pu.overlayCssId="overlayCss";let l3=pu;const oR={[mn.ORTHOGRAPHIC]:an,[mn.PERSPECTIVE]:an,[mn.STACK]:ln,[mn.VOLUME_3D]:nR,[mn.VIDEO]:Vd,[mn.WHOLE_SLIDE]:l3};function Bl(t){return oR[t].useCustomRenderingPipeline}const G8=2;class aR{constructor(e){if(this._needsRender=new Set,this._animationFrameSet=!1,this._animationFrameHandle=null,this.renderFrameOfReference=r=>{const i=this._getViewportsAsArray().map(o=>{if(o.getFrameOfReferenceUID()===r)return o.id});this.renderViewports(i)},this._renderFlaggedViewports=()=>{this._throwIfDestroyed(),this.useCPURendering||this.performVtkDrawCall();const r=this._getViewportsAsArray(),n=[];for(let i=0;i{i!=null&&i.element&&De(i.element,Se.IMAGE_RENDERED,i)})},this.id=e||wn(),this.useCPURendering=Kf(),bd.set(this),!aZ())throw new Error("@cornerstonejs/core is not initialized, run init() first");this.useCPURendering||(this.offscreenMultiRenderWindow=tJ.newInstance(),this.offScreenCanvasContainer=document.createElement("div"),this.offscreenMultiRenderWindow.setContainer(this.offScreenCanvasContainer)),this._viewports=new Map,this.hasBeenDestroyed=!1}enableElement(e){const r=this._normalizeViewportInputEntry(e);this._throwIfDestroyed();const{element:n,viewportId:i}=r;if(!n)throw new Error("No element provided");this.getViewport(i)&&this.disableElement(i);const{type:a}=r,s=Bl(a);!this.useCPURendering&&!s?this.enableVTKjsDrivenViewport(r):this.addCustomViewport(r);const c=ba(n),{background:l}=r.defaultOptions;this.fillCanvasWithBackgroundColor(c,l)}disableElement(e){this._throwIfDestroyed();const r=this.getViewport(e);if(!r){console.warn(`viewport ${e} does not exist`);return}this._resetViewport(r),!Bl(r.type)&&!this.useCPURendering&&this.offscreenMultiRenderWindow.removeRenderer(e),this._removeViewport(e),r.isDisabled=!0,this._needsRender.delete(e),this.getViewports().length||this._clearAnimationFrame()}setViewports(e){const r=this._normalizeViewportInputEntries(e);this._throwIfDestroyed(),this._reset();const n=[],i=[];r.forEach(o=>{!this.useCPURendering&&!Bl(o.type)?n.push(o):i.push(o)}),this.setVtkjsDrivenViewports(n),this.setCustomViewports(i),r.forEach(o=>{const a=ba(o.element),{background:s}=o.defaultOptions;this.fillCanvasWithBackgroundColor(a,s)})}resize(e=!0,r=!0){this._throwIfDestroyed();const n=this._getViewportsAsArray(),i=[],o=[];n.forEach(a=>{Bl(a.type)?o.push(a):i.push(a)}),i.length&&this._resizeVTKViewports(i,r,e),o.length&&this._resizeUsingCustomResizeHandler(o,r,e)}getViewport(e){return this._viewports.get(e)}getViewports(){return this._throwIfDestroyed(),this._getViewportsAsArray()}getStackViewport(e){this._throwIfDestroyed();const r=this.getViewport(e);if(!r)throw new Error(`Viewport with Id ${e} does not exist`);if(!(r instanceof ln))throw new Error(`Viewport with Id ${e} is not a StackViewport.`);return r}getStackViewports(){return this._throwIfDestroyed(),this.getViewports().filter(r=>r instanceof ln)}getVolumeViewports(){this._throwIfDestroyed();const e=this.getViewports(),r=n=>n instanceof Mn;return e.filter(r)}render(){const r=this.getViewports().map(n=>n.id);this._setViewportsToBeRenderedNextFrame(r)}renderViewports(e){this._setViewportsToBeRenderedNextFrame(e)}renderViewport(e){this._setViewportsToBeRenderedNextFrame([e])}destroy(){this.hasBeenDestroyed||(this.useCPURendering||(this._getViewportsAsArray().forEach(r=>{this.offscreenMultiRenderWindow.removeRenderer(r.id)}),this.offscreenMultiRenderWindow.delete(),delete this.offscreenMultiRenderWindow),this._reset(),bd.delete(this.id),this.hasBeenDestroyed=!0)}fillCanvasWithBackgroundColor(e,r){const n=e.getContext("2d");let i;if(r){const o=r.map(a=>Math.floor(255*a));i=`rgb(${o[0]}, ${o[1]}, ${o[2]})`}else i="black";n.fillStyle=i,n.fillRect(0,0,e.width,e.height)}_normalizeViewportInputEntry(e){const{type:r,defaultOptions:n}=e;let i=n;return(!i||Object.keys(i).length===0)&&(i={background:[0,0,0],orientation:null,displayArea:null},r===mn.ORTHOGRAPHIC&&(i={...i,orientation:ju.AXIAL})),{...e,defaultOptions:i}}_normalizeViewportInputEntries(e){const r=[];return e.forEach(n=>{r.push(this._normalizeViewportInputEntry(n))}),r}_resizeUsingCustomResizeHandler(e,r=!0,n=!0){e.forEach(i=>{typeof i.resize=="function"&&i.resize()}),e.forEach(i=>{const o=i.getCamera();i.resetCamera(),r&&i.setCamera(o)}),n&&this.render()}_resizeVTKViewports(e,r=!0,n=!0){const i=e.map(o=>ba(o.element));if(i.forEach(o=>{const a=window.devicePixelRatio||1;o.width=o.clientWidth*a,o.height=o.clientHeight*a}),i.length){const{offScreenCanvasWidth:o,offScreenCanvasHeight:a}=this._resizeOffScreenCanvas(i);this._resize(e,o,a)}e.forEach(o=>{const a=o.getCamera(),s=o.getRotation(),{flipHorizontal:c}=a;o.resetCameraForResize();const l=o.getDisplayArea();r&&(l?(c&&o.setCamera({flipHorizontal:c}),s&&o.setViewPresentation({rotation:s})):o.setCamera(a))}),n&&this.render()}enableVTKjsDrivenViewport(e){const n=this._getViewportsAsArray().filter(f=>Bl(f.type)===!1),i=n.map(f=>f.canvas),o=ba(e.element);i.push(o);const{offScreenCanvasWidth:a,offScreenCanvasHeight:s}=this._resizeOffScreenCanvas(i),c=this._resize(n,a,s),l={...e,canvas:o};this.addVtkjsDrivenViewport(l,{offScreenCanvasWidth:a,offScreenCanvasHeight:s,xOffset:c})}_removeViewport(e){if(!this.getViewport(e)){console.warn(`viewport ${e} does not exist`);return}this._viewports.delete(e)}addVtkjsDrivenViewport(e,r){const{element:n,canvas:i,viewportId:o,type:a,defaultOptions:s}=e;n.tabIndex=-1;const{offScreenCanvasWidth:c,offScreenCanvasHeight:l,xOffset:f}=r,{sxStartDisplayCoords:u,syStartDisplayCoords:d,sxEndDisplayCoords:h,syEndDisplayCoords:g,sx:p,sy:v,sWidth:x,sHeight:m}=this._getViewportCoordsOnOffScreenCanvas(e,c,l,f);this.offscreenMultiRenderWindow.addRenderer({viewport:[u,d,h,g],id:o,background:s.background?s.background:[0,0,0]});const y={id:o,element:n,renderingEngineId:this.id,type:a,canvas:i,sx:p,sy:v,sWidth:x,sHeight:m,defaultOptions:s||{}};let w;if(a===mn.STACK)w=new ln(y);else if(a===mn.ORTHOGRAPHIC||a===mn.PERSPECTIVE)w=new an(y);else if(a===mn.VOLUME_3D)w=new nR(y);else throw new Error(`Viewport Type ${a} is not supported`);this._viewports.set(o,w);const C={element:n,viewportId:o,renderingEngineId:this.id};w.suppressEvents||De(Ce,Se.ELEMENT_ENABLED,C)}addCustomViewport(e){const{element:r,viewportId:n,type:i,defaultOptions:o}=e;r.tabIndex=-1;const a=ba(r),{clientWidth:s,clientHeight:c}=a;(a.width!==s||a.height!==c)&&(a.width=s,a.height=c);const l={id:n,renderingEngineId:this.id,element:r,type:i,canvas:a,sx:0,sy:0,sWidth:s,sHeight:c,defaultOptions:o||{}},f=oR[i],u=new f(l);this._viewports.set(n,u);const d={element:r,viewportId:n,renderingEngineId:this.id};De(Ce,Se.ELEMENT_ENABLED,d)}setCustomViewports(e){e.forEach(r=>{this.addCustomViewport(r)})}setVtkjsDrivenViewports(e){if(e.length){const r=e.map(a=>ba(a.element));r.forEach(a=>{const s=window.devicePixelRatio||1,c=a.getBoundingClientRect();a.width=c.width*s,a.height=c.height*s});const{offScreenCanvasWidth:n,offScreenCanvasHeight:i}=this._resizeOffScreenCanvas(r);let o=0;for(let a=0;aa.height));let o=0;return e.forEach(a=>{o+=a.width}),r.width=o,r.height=i,n.resize(),{offScreenCanvasWidth:o,offScreenCanvasHeight:i}}_resize(e,r,n){let i=0;for(let o=0;o{this._needsRender.add(r)}),this._render()}_render(){this._needsRender.size>0&&!this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}performVtkDrawCall(){const{offscreenMultiRenderWindow:e}=this,r=e.getRenderWindow(),n=e.getRenderers();if(n.length){for(let i=0;i{this._resetViewport(r)}),this._clearAnimationFrame(),this._viewports=new Map}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}_downloadOffScreenCanvas(){const e=this._debugRender();ere(e)}_debugRender(){const{offscreenMultiRenderWindow:e}=this,r=e.getRenderWindow(),n=e.getRenderers();for(let c=0;c{const{sx:l,sy:f,sWidth:u,sHeight:d}=c,h=c.canvas,{width:g,height:p}=h;h.getContext("2d").drawImage(a,l,f,u,d,0,0,g,p)}),s}}function ere(t){const e=document.createElement("a");e.download="viewport.png",e.href=t,document.body.appendChild(e),e.click(),document.body.removeChild(e)}class tre{constructor(e){this._color=[200,0,0],this.id=e.id,this._points=e.points,this._polys=e.polys,this._color=e.color??this._color,this.frameOfReferenceUID=e.frameOfReferenceUID,this._segmentIndex=e.segmentIndex,this.sizeInBytes=this._getSizeInBytes(),this._updateCentroid()}_getSizeInBytes(){return this._points.length*4+this._polys.length*4}_updateCentroid(){const e=this._points.length/3;let r=0,n=0,i=0;for(let o=0;o{if(r.reset(),r.isEmpty)this._children.delete(e);else throw new Error("Child is not empty and cannot be removed")}),this._unregisterAllEvents()}_addEventListener(e,r,n){let i=this._eventListeners.get(e);i||(i=new Map,this._eventListeners.set(e,i));const a=(n==null?void 0:n.capture)??!1?vo.Capture:vo.Bubble,s=i.get(r)??vo.None;if(s&a){console.warn("A listener is already registered for this phase");return}i.set(r,s|a),this._target.addEventListener(e,r,n)}_removeEventListener(e,r,n){const o=(n==null?void 0:n.capture)??!1?vo.Capture:vo.Bubble,a=this._eventListeners.get(e);if(!a)return;(r?[r]:Array.from(a.keys())).forEach(c=>{const l=a.get(c)??vo.None;if(!!!(l&o))return;this._target.removeEventListener(e,c,n);const u=l^o;u===vo.None?a.delete(c):a.set(c,u)}),a.size||this._eventListeners.delete(e)}_unregisterAllListeners(e,r){Array.from(r.entries()).forEach(([n,i])=>{const o=vo.Capture;for(let a=o;i;a<<=1){if(!(i&a))continue;const s=a===vo.Capture;this.removeEventListener(e,n,{capture:s}),i^=a}})}_unregisterAllEvents(){Array.from(this._eventListeners.entries()).forEach(([e,r])=>{this._unregisterAllListeners(e,r)})}}class sR{constructor(){this._targetsEventListeners=new Map}addEventListener(e,r,n,i){let o=this._targetsEventListeners.get(e);o||(o=new f2(e),this._targetsEventListeners.set(e,o)),o.addEventListener(r,n,i)}removeEventListener(e,r,n,i){const o=this._targetsEventListeners.get(e);o&&(o.removeEventListener(r,n,i),o.isEmpty&&this._targetsEventListeners.delete(e))}reset(){Array.from(this._targetsEventListeners.entries()).forEach(([e,r])=>{r.reset(),this._targetsEventListeners.delete(e)})}}const nre=Object.freeze(Object.defineProperty({__proto__:null,MultiTargetEventListenerManager:sR,TargetEventListeners:f2},Symbol.toStringTag,{value:"Module"}));function rre(t,e){const r=t.getSize();for(let n=0;n0?r:are)>>>0).join(typeof e=="string"?e:sre)}function cre(t,e,r){let n=t[e];n instanceof Array||(n=[0],Object.defineProperty(t,e,{value:n}));for(let i=!0,o=0;i&&o{const r=Nn(t);W8[r]=e},get:(t,e)=>{if(t==="calibratedPixelSpacing"){const r=Nn(e);return W8[r]}}};function Mf(t,e,r=1e-5){return Math.abs(t[0]+e[0])=e[0]||t[1]<0||t[1]>=e[1]||t[2]<0||t[2]>=e[2])}function ure(t,e){let r;e?r=[gr(e)]:r=_i();const n=[];return r.forEach(i=>{const o=t.getActors(),a=i.getVolumeViewports();for(const s of a){const c=s.getActors();if(c.length!==o.length)continue;o.every(({uid:f})=>c.find(u=>f===u.uid))&&n.push(s)}}),n}const lR=t=>t.preScale.scaled&&t.preScale.scalingParameters.suvbw;function uR(t,e,r=void 0,n="_thumbnails",i={displayArea:{imageArea:[1,1]}}){if(!t||!(t instanceof HTMLCanvasElement))throw new Error("canvas element is required");const o=!e.imageId,a=!o&&e,s=o&&e,l=`renderGPUViewport-${a.imageId||s.volumeId}`,f=document.createElement("div"),u=window.devicePixelRatio||1;i.displayArea||(i.displayArea={imageArea:[1,1]});const d=t.width,h=t.height;f.style.width=`${d/u+U8}px`,f.style.height=`${h/u+U8}px`,f.style.visibility="hidden",f.style.position="absolute",document.body.appendChild(f);const g=l.split(":").join("-");f.setAttribute("viewport-id-for-remove",g);const p=ba(f),v=gr(n)||new aR(n);let x=v.getViewport(l);if(!x){const m={viewportId:l,type:o?mn.ORTHOGRAPHIC:mn.STACK,element:f,defaultOptions:{...i,suppressEvents:!0}};v.enableElement(m),x=v.getViewport(l)}return new Promise(m=>{let y=!1,{viewReference:w}=i;const C=S=>{if(y)return;if(w){const I=w;w=null,x.setViewReference(I),x.render();return}t.getContext("2d").drawImage(p,0,0,p.width,p.height,0,0,t.width,t.height);const _=x.canvasToWorld([0,0]),E=x.canvasToWorld([p.width/u,0]),D=x.canvasToWorld([0,p.height/u]),b=1;y=!0,f.removeEventListener(Se.IMAGE_RENDERED,C),setTimeout(()=>{v.disableElement(l),document.querySelectorAll(`[viewport-id-for-remove="${g}"]`).forEach(R=>{R.remove()})},0),m({origin:_,bottomLeft:D,topRight:E,thicknessMm:b})};f.addEventListener(Se.IMAGE_RENDERED,C),o?x.setVolumes([s],!1,!0):x.renderImageObject(e),x.resetCamera(),r==="PT"&&!lR(a)&&x.setProperties({voiRange:{lower:a.minPixelValue,upper:a.maxPixelValue}}),x.render()})}function fR(t,e,r,n,i){if(e.volumeId)throw new Error("Unsupported volume rendering for CPU");const a=e,s=tR(t,a,r),c={canvas:t,viewport:s,image:a,renderingTools:{}};c.transform=kd(c);const l=!0;return new Promise((f,u)=>{ZM(c,l),f(null)})}function fre(t){const{canvas:e,imageId:r,viewReference:n,requestType:i=ht.Thumbnail,priority:o=-5,renderingEngineId:a="_thumbnails",useCPURendering:s=!1,thumbnail:c=!1,imageAspect:l=!1,viewportOptions:f}=t,u=n==null?void 0:n.volumeId,d=u&&!r,h=n&&f?{...f,viewReference:n}:f,g=s?fR:uR;return new Promise((p,v)=>{function x(C,S){var D;const{modality:T}=Pe("generalSeriesModule",S)||{},_=!d&&C,E=d&&C;_&&(_.isPreScaled=_.isPreScaled||((D=_.preScale)==null?void 0:D.scaled)),c&&(e.height=256,e.width=256),l&&_&&(e.width=_&&e.height*_.width/_.height),e.style.width=`${e.width/devicePixelRatio}px`,e.style.height=`${e.height/devicePixelRatio}px`,E&&s&&v(new Error("CPU rendering of volume not supported")),g(e,C,T,a,h).then(p)}function m(C,S){console.error(C,S),v(C)}function y(C,S,T){return Js(C,T).then(_=>{x.call(this,_,C)},_=>{m.call(this,_,C)})}const w={useRGBA:!!s,requestType:i};if(u){const C=_e.getVolume(u);C||v(new Error(`Volume id ${u} not found in cache`));const S=C.imageIds[0];x(C,S)}else fi.addRequest(y.bind(null,r,null,w),i,{imageId:r},o)})}function u3(t,e){const r=Pe("imagePlaneModule",t);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${t}`);const{columnCosines:n,rowCosines:i,imagePositionPatient:o}=r;let{columnPixelSpacing:a,rowPixelSpacing:s}=r;a||(a=1),s||(s=1);const c=we();Vt(c,o,n,-a/2),Vt(c,c,i,-s/2);const l=we();Qt(l,e,c);const f=je(l,i),u=je(l,n);return[f/s,u/a]}function dR(t,e){const r=Pe("imagePlaneModule",t);if(!r)throw new Error(`No imagePlaneModule found for imageId: ${t}`);const{columnCosines:n,rowCosines:i,imagePositionPatient:o}=r;let{columnPixelSpacing:a,rowPixelSpacing:s}=r;a||(a=1),s||(s=1);const c=we();return Vt(c,o,i,s*(e[0]-.5)),Vt(c,c,n,a*(e[1]-.5)),Array.from(c)}function J1(t){const e=_i(),r=[];return e.forEach(n=>{n.getViewports().forEach(o=>{o.hasImageURI(t)&&r.push(o)})}),r}function hR(t,e){const r=dre(t,e);return r?r.index:null}function dre(t,e){const r=e.getImageIds(),n=e.getCurrentImageIdIndex();if(r.length===0)return null;const i=c=>{const l=hre(c);if(!l)return null;const f=Ba(l.planeNormal,l.imagePositionPatient);return q1(f,t)},o={distance:i(r[n])??1/0,index:n},a=r.slice(n+1);for(let c=0;c=0;c--){const l=s[c],f=i(l);if(!(f===null||f===o.distance))if(f{const[r,n]=t,i=`${r}_${n}`;yc[i]||(yc[i]={}),yc[i]=e},get:(t,e,r)=>{if(t!=="spatialRegistrationModule")return;const n=`${e}_${r}`;if(yc[n])return yc[n];const i=`${r}_${e}`;if(yc[i])return $n(lo(),yc[i])}};S0(Fd.get.bind(Fd));const gre=.05;function gR(t,e){const r=t.getSliceIndex(),n=e.getSliceIndex(),i=Pe("imagePlaneModule",r.toString()),o=Pe("imagePlaneModule",n.toString());if(!i||!o){console.log("Viewport spatial registration requires image plane module");return}const{imageOrientationPatient:a}=o;if(!i.imageOrientationPatient.every((d,h)=>Math.abs(d-a[h])0||t[0]0||t[1]0||t[2]=this._length)return;const r=this._dimensions*e;return this.data.subarray(r,r+this._dimensions)}getPointArray(e){const r=[];if(e<0&&(e+=this._length),e<0||e>=this._length)return;const n=this._dimensions*e;for(let i=0;ie)}toXYZ(){const e={x:[],y:[]};this._dimensions>=3&&(e.z=[]);const{x:r,y:n,z:i}=e;return this.forEach(o=>{r.push(o[0]),n.push(o[1]),i&&i.push(o[2])}),e}static fromXYZ({x:e,y:r,z:n}){const i=Rf.create3(e.length);let o=0;for(let a=0;a{r.getViewports().forEach(({element:i})=>{t.push(re(i))})}),t}function yre(t){const e=re(t);if(!e)return;const{viewport:r}=e;if(!(r instanceof ln))throw new Error(`An image can only be fetched for a stack viewport and not for a viewport of type: ${r.type}`);return r.getCornerstoneImage()}function pR(t){const e=t[0],{modality:r,seriesInstanceUID:n}=Pe("generalSeriesModule",e),{imageOrientationPatient:i,pixelSpacing:o,frameOfReferenceUID:a,columns:s,rows:c}=Pe("imagePlaneModule",e),l={modality:r,imageOrientationPatient:i,pixelSpacing:o,frameOfReferenceUID:a,columns:s,rows:c,seriesInstanceUID:n};return t.every(u=>{const{modality:d,seriesInstanceUID:h}=Pe("generalSeriesModule",u),{imageOrientationPatient:g,pixelSpacing:p,columns:v,rows:x}=Pe("imagePlaneModule",u);return h===l.seriesInstanceUID&&d===l.modality&&v===l.columns&&x===l.rows&&pt(g,l.imageOrientationPatient)&&pt(p,l.pixelSpacing)})}const xre=new Set(["1.2.840.10008.1.2.4.100","1.2.840.10008.1.2.4.100.1","1.2.840.10008.1.2.4.101","1.2.840.10008.1.2.4.101.1","1.2.840.10008.1.2.4.102","1.2.840.10008.1.2.4.102.1","1.2.840.10008.1.2.4.103","1.2.840.10008.1.2.4.103.1","1.2.840.10008.1.2.4.104","1.2.840.10008.1.2.4.104.1","1.2.840.10008.1.2.4.105","1.2.840.10008.1.2.4.105.1","1.2.840.10008.1.2.4.106","1.2.840.10008.1.2.4.106.1","1.2.840.10008.1.2.4.107","1.2.840.10008.1.2.4.108"]);function mR(t){return t?(Array.isArray(t)?t:[t]).find(r=>xre.has(r)):!1}async function wre({viewport:t,options:e={}}){const r=t.getRenderingEngine();let n=e.volumeId||`${wn()}`;n.split(":").length===0&&(n=`${mte()}:${n}`);const{id:i,element:o}=t,a=e.viewportId||i,s=t.getImageIds(),c=t.getViewPresentation(),l=t.getViewReference();r.enableElement({viewportId:a,type:mn.ORTHOGRAPHIC,element:o,defaultOptions:{background:e.background,orientation:e.orientation}}),(await iC(n,{imageIds:s})).load();const u=r.getViewport(a);await Hne(r,[{volumeId:n}],[a]);const d=()=>{u.render(),o.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,d)};return(()=>{o.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,d)})(),u.setViewPresentation(c),u.setViewReference(l),u.render(),u}async function Cre({viewport:t,options:e}){const r=t,{id:n,element:i}=r,o=t.getRenderingEngine(),{background:a}=e,s=e.viewportId||n,c=_e.getVolume(r.getVolumeId());if(!(c instanceof Sh))throw new Error("Currently, you cannot decache a volume that is not an ImageVolume. So, unfortunately, volumes such as nifti (which are basic Volume, without imageIds) cannot be decached.");const l={viewportId:s,type:mn.STACK,element:i,defaultOptions:{background:a}},f=r.getViewReference();o.enableElement(l);const u=o.getViewport(s);return await u.setStack(c.imageIds),u.setViewReference(f),u.render(),u}function yt(t,e=2){if(Array.isArray(t))return t.map(i=>yt(i,e)).join(", ");if(t==null||t==="")return"NaN";t=Number(t);const r=Math.abs(t);if(r<1e-4)return`${t}`;const n=r>=100?e-2:r>=10?e-1:r>=1?e:r>=.1?e+1:r>=.01?e+2:r>=.001?e+3:e+4;return t.toFixed(n)}function Rs(t){return Math.round(t/Lo)*Lo}function vR(t,e,r){const n=t.length===e*r*4,i=t.length===e*r*3;if(n||i){const o=new Float32Array(e*r);let a=0,s=0;const c=n?4:3;for(let l=0;l=r.length?(z8(r),r):(z8(r),r.slice(0,e))}function z8(t){for(let e=t.length-1;e>0;e--){const r=Math.floor(Math.random()*(e+1));[t[e],t[r]]=[t[r],t[e]]}}function Gv(t){const e=t.toString(16);return e.length==1?"0"+e:e}function Sre(t,e,r){return"#"+Gv(t)+Gv(e)+Gv(r)}function Tre(t){const e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}const _re=Object.freeze(Object.defineProperty({__proto__:null,hexToRgb:Tre,rgbToHex:Sre},Symbol.toStringTag,{value:"Module"}));function wR(t,e){if(t===e)return!0;if(t==null||e==null)return!1;try{return JSON.stringify(t)===JSON.stringify(e)}catch(r){return console.debug("Error in JSON.stringify during deep comparison:",r),t===e}}function Ere(t,e,r){if(!r)throw new Error("getVolume is required, use the utilities export instead ");if(t.modality)return t.modality;if(t.setVolumes)return e=e??t.getVolumeId(),!e||!r?void 0:r(e).metadata.Modality;throw new Error("Invalid viewport type")}const Dre=(t,e)=>t.reduce((r,n)=>((r[n[e]]=r[n[e]]||[]).push(n),r),{});function bre(t){const e=t.map(a=>{const{imagePositionPatient:s}=Pe("imagePlaneModule",a)||{};return{imageId:a,imagePositionPatient:s}});if(!e.every(a=>a.imagePositionPatient))return null;const r=Dre(e,"imagePositionPatient"),n=Object.keys(r),i=r[n[0]].length;return i===1||!n.every(a=>r[a].length===i)?null:r}function Ire(t,e){const r={};let n=[];const i=Object.keys(t);for(let o=0;onf(i,r[0]),i=>nf(i,r[1]),i=>nf(i,r[2]),i=>nf(i,r[3]),i=>nf(i,r[4]),Ore,Mre,Rre,Nre];for(let i=0;ic-l).map(c=>o[c].map(l=>l.imageId)),splittingTag:r[i]}}return{imageIdGroups:[t],splittingTag:null}}function Pre(t){const{imageIdGroups:e,splittingTag:r}=CR(t);return{isDynamicVolume:e.length>1,timePoints:e,splittingTag:r}}function Are(t,e){const r=t.length,{rescaleSlope:n,rescaleIntercept:i,suvbw:o}=e;if(e.modality==="PT"&&typeof o=="number")for(let a=0;at.getImageIds().length-1||a+i<0){const s={imageIdIndex:a,direction:i};De(Ce,Se.STACK_SCROLL_OUT_OF_BOUNDS,s)}t.scroll(i,e.debounceLoading,e.loop)}}function kre(t,e,r,n=!1){const i=n,{numScrollSteps:o,currentStepIndex:a,sliceRangeInfo:s}=Iu(t,e,i);if(!s)return;const{sliceRange:c,spacingInNormalDirection:l,camera:f}=s,{focalPoint:u,viewPlaneNormal:d,position:h}=f,{newFocalPoint:g,newPosition:p}=Du(u,h,c,d,l,r);t.setCamera({focalPoint:g,position:p}),t.render();const v=a+r,x={volumeId:e,viewport:t,delta:r,desiredStepIndex:v,currentStepIndex:a,numScrollSteps:o,currentImageId:t.getCurrentImageId()};(v>o||v<0)&&t.getCurrentImageId()?De(Ce,Se.VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS,x):De(Ce,Se.VOLUME_VIEWPORT_SCROLL,x)}async function Ho(t,e={}){const{imageIndex:r,debounceLoading:n,volumeId:i}=e,o=re(t);if(!o)throw new Error("Element has been disabled");const{viewport:a}=o,{imageIndex:s,numberOfSlices:c}=Vre(a,n),f=Fre(c,r)-s;fl(a,{delta:f,debounceLoading:n,volumeId:i})}function Vre(t,e){return t instanceof ln?{numberOfSlices:t.getImageIds().length,imageIndex:e?t.getTargetImageIdIndex():t.getCurrentImageIdIndex()}:{numberOfSlices:t.getNumberOfSlices(),imageIndex:t.getSliceIndex()}}function Fre(t,e){const r=t-1;return Q1(e,0,r)}const SR=(t,e)=>Ere(t,e,_e.getVolume),Yt=Object.freeze(Object.defineProperty({__proto__:null,PointsManager:mre,ProgressiveIterator:j1,RLEVoxelMap:EM,VoxelManager:es,actorIsA:ci,applyPreset:$M,autoLoad:i3,calculateViewportsSpatialRegistration:gR,calibratedPixelSpacingMetadataProvider:lre,clamp:c3,clip:Q1,color:_re,colormap:fZ,convertStackToVolumeViewport:wre,convertToGrayscale:vR,convertVolumeToStackViewport:Cre,createLinearRGBTransferFunction:XM,createSigmoidRGBTransferFunction:eC,decimate:AM,deepClone:to,deepEqual:wR,deepMerge:Zr,eventListener:nre,generateVolumePropsFromImageIds:rC,genericMetadataProvider:Ms,getBufferConfiguration:zw,getClosestImageId:Xa,getClosestStackImageIndexForPoint:hR,getCurrentVolumeViewportSlice:gC,getDynamicVolumeInfo:Pre,getImageLegacy:yre,getImageSliceDataForVolumeViewport:K1,getMinMax:l2,getRandomSampleFromArray:xR,getRuntimeId:cR,getScalingParameters:NM,getSliceRange:s2,getSpacingInNormalDirection:qa,getTargetVolumeAndSpacingInNormalDir:E0,getViewportImageCornersInWorld:Z1,getViewportImageIds:yR,getViewportModality:SR,getViewportsWithImageURI:J1,getViewportsWithVolumeId:Th,getVoiFromSigmoidRGBTransferFunction:zM,getVolumeActorCorners:AO,getVolumeId:da,getVolumeSliceRangeInfo:WM,getVolumeViewportScrollInfo:Iu,getVolumeViewportsContainingSameVolumes:ure,hasFloatScalingParameters:nC,hasNaNValues:o3,imageIdToURI:Nn,imageRetrieveMetadataProvider:Ad,imageToWorldCoords:dR,indexWithinDimensions:In,invertRgbTransferFunction:qf,isEqual:pt,isEqualAbs:lZ,isEqualNegative:JO,isImageActor:Xo,isOpposite:Mf,isPTPrescaledWithSUV:lR,isValidVolume:pR,isVideoTransferSyntax:mR,jumpToSlice:Ho,loadImageToCanvas:fre,makeVolumeMetadata:RM,planar:Ote,pointInShapeCallback:hC,renderToCanvasCPU:fR,renderToCanvasGPU:uR,roundNumber:yt,roundToPrecision:Rs,scaleArray:Are,scaleRgbTransferFunction:rre,scroll:fl,snapFocalPointToSlice:Du,sortImageIdsAndGetSpacing:LM,spatialRegistrationMetadataProvider:Fd,splitImageIdsBy4DTags:CR,transferFunctionUtils:hZ,transformIndexToWorld:X1,transformWorldToIndex:Gn,triggerEvent:De,updateVTKImageDataWithCornerstoneImage:u2,uuidv4:wn,windowLevel:dZ,worldToImageCoords:u3},Symbol.toStringTag,{value:"Module"})),_h=new Xw("imageRetrievalPool");_h.setMaxSimultaneousRequests(ht.Interaction,200);_h.setMaxSimultaneousRequests(ht.Thumbnail,200);_h.setMaxSimultaneousRequests(ht.Prefetch,200);_h.grabDelay=0;const $8=Symbol("DefaultSettings"),j8=Symbol("RuntimeSettings"),H8=Symbol("ObjectSettingsMap"),xa=Symbol("Dictionary");class hn{constructor(e){const r=Object.create(e instanceof hn&&xa in e?e[xa]:null);Object.seal(Object.defineProperty(this,xa,{value:r}))}set(e,r){return em(this[xa],e,r,null)}get(e){return Gre(this[xa],e)}unset(e){return Ure(this[xa],e+"")}forEach(e){K8(this[xa],e)}extend(){return new hn(this)}import(e){TR(e)&&Object.keys(e).forEach(r=>{em(this[xa],r,e[r],null)})}dump(){const e={};return K8(this[xa],(r,n)=>{typeof n<"u"&&_R(e,r,n)}),e}static assert(e){return e instanceof hn?e:hn.getRuntimeSettings()}static getDefaultSettings(e=null){let r=hn[$8];if(r instanceof hn||(r=new hn,hn[$8]=r),e){const n={};return r.forEach(i=>{if(i.startsWith(e)){const o=i.split(`${e}.`)[1];n[o]=r.get(i)}}),n}return r}static getRuntimeSettings(){let e=hn[j8];return e instanceof hn||(e=new hn(hn.getDefaultSettings()),hn[j8]=e),e}static getObjectSettings(e,r){let n=null;if(e instanceof hn)n=e;else if(typeof e=="object"&&e!==null){let i=hn[H8];i instanceof WeakMap||(i=new WeakMap,hn[H8]=i),n=i.get(e),n instanceof hn||(n=new hn(hn.assert(hn.getObjectSettings(r))),i.set(e,n))}return n}static extendRuntimeSettings(){return hn.getRuntimeSettings().extend()}}function Ure(t,e){if(e.endsWith(".")){let r=0;const n=e,i=n.slice(0,-1),o=i.length===0;for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&(o||a.startsWith(n)||a===i)&&(delete t[a],++r);return r>0}return delete t[e]}function K8(t,e){for(const r in t)e(r,t[r])}function Bre(t,e,r,n){let i;if(n.has(r))return em(t,e,null,n);n.add(r),i=0;for(const o in r)if(Object.prototype.hasOwnProperty.call(r,o)){const a=o.length===0?e:`${e}.${o}`;em(t,a,r[o],n)||++i}return n.delete(r),i===0}function em(t,e,r,n){return Wre(e)?TR(r)?Bre(t,e,r,n instanceof WeakSet?n:new WeakSet):(t[e]=r,!0):!1}function Gre(t,e){return t[e]}function Wre(t){let e,r,n;if(typeof t!="string"||(e=t.length-1)<0)return!1;for(n=-1;(r=t.indexOf(".",n+1))>=0;){if(r-n<2||r===e)return!1;n=r}return!0}function TR(t){if(typeof t=="object"&&t!==null){const e=Object.getPrototypeOf(t);if(e===Object.prototype||e===null)return!0}return!1}function _R(t,e,r){const n=e.indexOf(".");if(n>=0){const i=e.slice(0,n);let o=t[i];if(typeof o!="object"||o===null){const a=o;o={},typeof a<"u"&&(o[""]=a),t[i]=o}_R(o,e.slice(n+1,e.length),r)}else t[e]=r}hn.getDefaultSettings().set("useCursors",!0);function Up(t,e){return t==null||e==null?NaN:te?1:t>=e?0:NaN}function zre(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function ER(t){let e,r,n;t.length!==2?(e=Up,r=(s,c)=>Up(t(s),c),n=(s,c)=>t(s)-c):(e=t===Up||t===zre?t:$re,r=t,n=t);function i(s,c,l=0,f=s.length){if(l>>1;r(s[u],c)<0?l=u+1:f=u}while(l>>1;r(s[u],c)<=0?l=u+1:f=u}while(ll&&n(s[u-1],c)>-n(s[u],c)?u-1:u}return{left:i,center:a,right:o}}function $re(){return 0}function jre(t){return t===null?NaN:+t}const Hre=ER(Up),Kre=Hre.right;ER(jre).center;const qre=Math.sqrt(50),Xre=Math.sqrt(10),Yre=Math.sqrt(2);function tm(t,e,r){const n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),o=n/Math.pow(10,i),a=o>=qre?10:o>=Xre?5:o>=Yre?2:1;let s,c,l;return i<0?(l=Math.pow(10,-i)/a,s=Math.round(t*l),c=Math.round(e*l),s/le&&--c,l=-l):(l=Math.pow(10,i)*a,s=Math.round(t/l),c=Math.round(e/l),s*le&&--c),c0))return[];if(t===e)return[t];const n=e=i))return[];const s=o-i+1,c=new Array(s);if(n)if(a<0)for(let l=0;ln||r===void 0&&n>=n)&&(r=n);else{let n=-1;for(let i of t)(i=e(i,++n,t))!=null&&(r>i||r===void 0&&i>=i)&&(r=i)}return r}function eie(t){if(!(o=t.length))return[];for(var e=-1,r=Qre(t,tie),n=new Array(r);++e>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):r===8?Og(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):r===4?Og(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=iie.exec(t))?new xi(e[1],e[2],e[3],1):(e=oie.exec(t))?new xi(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=aie.exec(t))?Og(e[1],e[2],e[3],e[4]):(e=sie.exec(t))?Og(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=cie.exec(t))?t_(e[1],e[2]/100,e[3]/100,1):(e=lie.exec(t))?t_(e[1],e[2]/100,e[3]/100,e[4]):X8.hasOwnProperty(t)?Z8(X8[t]):t==="transparent"?new xi(NaN,NaN,NaN,0):null}function Z8(t){return new xi(t>>16&255,t>>8&255,t&255,1)}function Og(t,e,r,n){return n<=0&&(t=e=r=NaN),new xi(t,e,r,n)}function die(t){return t instanceof Eh||(t=Gd(t)),t?(t=t.rgb(),new xi(t.r,t.g,t.b,t.opacity)):new xi}function d3(t,e,r,n){return arguments.length===1?die(t):new xi(t,e,r,n??1)}function xi(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}pC(xi,d3,DR(Eh,{brighter(t){return t=t==null?nm:Math.pow(nm,t),new xi(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Ud:Math.pow(Ud,t),new xi(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new xi(Yc(this.r),Yc(this.g),Yc(this.b),rm(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Q8,formatHex:Q8,formatHex8:hie,formatRgb:e_,toString:e_}));function Q8(){return`#${Gc(this.r)}${Gc(this.g)}${Gc(this.b)}`}function hie(){return`#${Gc(this.r)}${Gc(this.g)}${Gc(this.b)}${Gc((isNaN(this.opacity)?1:this.opacity)*255)}`}function e_(){const t=rm(this.opacity);return`${t===1?"rgb(":"rgba("}${Yc(this.r)}, ${Yc(this.g)}, ${Yc(this.b)}${t===1?")":`, ${t})`}`}function rm(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Yc(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Gc(t){return t=Yc(t),(t<16?"0":"")+t.toString(16)}function t_(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new _o(t,e,r,n)}function bR(t){if(t instanceof _o)return new _o(t.h,t.s,t.l,t.opacity);if(t instanceof Eh||(t=Gd(t)),!t)return new _o;if(t instanceof _o)return t;t=t.rgb();var e=t.r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),o=Math.max(e,r,n),a=NaN,s=o-i,c=(o+i)/2;return s?(e===o?a=(r-n)/s+(r0&&c<1?0:a,new _o(a,s,c,t.opacity)}function gie(t,e,r,n){return arguments.length===1?bR(t):new _o(t,e,r,n??1)}function _o(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}pC(_o,gie,DR(Eh,{brighter(t){return t=t==null?nm:Math.pow(nm,t),new _o(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Ud:Math.pow(Ud,t),new _o(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new xi(Wv(t>=240?t-240:t+120,i,n),Wv(t,i,n),Wv(t<120?t+240:t-120,i,n),this.opacity)},clamp(){return new _o(n_(this.h),Mg(this.s),Mg(this.l),rm(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=rm(this.opacity);return`${t===1?"hsl(":"hsla("}${n_(this.h)}, ${Mg(this.s)*100}%, ${Mg(this.l)*100}%${t===1?")":`, ${t})`}`}}));function n_(t){return t=(t||0)%360,t<0?t+360:t}function Mg(t){return Math.max(0,Math.min(1,t||0))}function Wv(t,e,r){return(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)*255}function pie(t,e,r,n,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*r+(1+3*t+3*o-3*a)*n+a*i)/6}function zv(t){var e=t.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,e-1):Math.floor(r*e),i=t[n],o=t[n+1],a=n>0?t[n-1]:2*i-o,s=n()=>t;function mie(t,e){return function(r){return t+r*e}}function vie(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}function yie(t){return(t=+t)==1?IR:function(e,r){return r-e?vie(e,r,t):mC(isNaN(e)?r:e)}}function IR(t,e){var r=e-t;return r?mie(t,r):mC(isNaN(t)?e:t)}const r_=function t(e){var r=yie(e);function n(i,o){var a=r((i=d3(i)).r,(o=d3(o)).r),s=r(i.g,o.g),c=r(i.b,o.b),l=IR(i.opacity,o.opacity);return function(f){return i.r=a(f),i.g=s(f),i.b=c(f),i.opacity=l(f),i+""}}return n.gamma=t,n}(1);function xie(t,e){e||(e=[]);var r=t?Math.min(e.length,t.length):0,n=e.slice(),i;return function(o){for(i=0;ir&&(o=e.slice(r,o),s[a]?s[a]+=o:s[++a]=o),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,c.push({i:a,x:im(n,i)})),r=$v.lastIndex;return re&&(r=t,t=e,e=r),function(n){return Math.max(t,Math.min(e,n))}}function Rie(t,e,r){var n=t[0],i=t[1],o=e[0],a=e[1];return i2?Lie:Rie,c=l=null,u}function u(d){return d==null||isNaN(d=+d)?o:(c||(c=s(t.map(n),e,r)))(n(a(d)))}return u.invert=function(d){return a(i((l||(l=s(e,t.map(n),im)))(d)))},u.domain=function(d){return arguments.length?(t=Array.from(d,Oie),f()):t.slice()},u.range=function(d){return arguments.length?(e=Array.from(d),f()):e.slice()},u.rangeRound=function(d){return e=Array.from(d),r=bie,f()},u.clamp=function(d){return arguments.length?(a=d?!0:cu,f()):a!==cu},u.interpolate=function(d){return arguments.length?(r=d,f()):r},u.unknown=function(d){return arguments.length?(o=d,u):o},function(d,h){return n=d,i=h,f()}}function Aie(){return Pie()(cu,cu)}function kie(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function om(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Qu(t){return t=om(Math.abs(t)),t?t[1]:NaN}function Vie(t,e){return function(r,n){for(var i=r.length,o=[],a=0,s=t[0],c=0;i>0&&s>0&&(c+s+1>n&&(s=Math.max(1,n-c)),o.push(r.substring(i-=s,i+s)),!((c+=s+1)>n));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}function Fie(t){return function(e){return e.replace(/[0-9]/g,function(r){return t[+r]})}}var Uie=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function am(t){if(!(e=Uie.exec(t)))throw new Error("invalid format: "+t);var e;return new yC({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}am.prototype=yC.prototype;function yC(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}yC.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Bie(t){e:for(var e=t.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?t.slice(0,n)+t.slice(i+1):t}var OR;function Gie(t,e){var r=om(t,e);if(!r)return t+"";var n=r[0],i=r[1],o=i-(OR=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=n.length;return o===a?n:o>a?n+new Array(o-a+1).join("0"):o>0?n.slice(0,o)+"."+n.slice(o):"0."+new Array(1-o).join("0")+om(t,Math.max(0,e+o-1))[0]}function o_(t,e){var r=om(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const a_={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:kie,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>o_(t*100,e),r:o_,s:Gie,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function s_(t){return t}var c_=Array.prototype.map,l_=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Wie(t){var e=t.grouping===void 0||t.thousands===void 0?s_:Vie(c_.call(t.grouping,Number),t.thousands+""),r=t.currency===void 0?"":t.currency[0]+"",n=t.currency===void 0?"":t.currency[1]+"",i=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?s_:Fie(c_.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",s=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(u){u=am(u);var d=u.fill,h=u.align,g=u.sign,p=u.symbol,v=u.zero,x=u.width,m=u.comma,y=u.precision,w=u.trim,C=u.type;C==="n"?(m=!0,C="g"):a_[C]||(y===void 0&&(y=12),w=!0,C="g"),(v||d==="0"&&h==="=")&&(v=!0,d="0",h="=");var S=p==="$"?r:p==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=p==="$"?n:/[%p]/.test(C)?a:"",_=a_[C],E=/[defgprs%]/.test(C);y=y===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function D(b){var I=S,R=T,M,L,A;if(C==="c")R=_(b)+R,b="";else{b=+b;var G=b<0||1/b<0;if(b=isNaN(b)?c:_(Math.abs(b),y),w&&(b=Bie(b)),G&&+b==0&&g!=="+"&&(G=!1),I=(G?g==="("?g:s:g==="-"||g==="("?"":g)+I,R=(C==="s"?l_[8+OR/3]:"")+R+(G&&g==="("?")":""),E){for(M=-1,L=b.length;++MA||A>57){R=(A===46?i+b.slice(M+1):b.slice(M))+R,b=b.slice(0,M);break}}}m&&!v&&(b=e(b,1/0));var P=I.length+b.length+R.length,N=P>1)+I+b+R+N.slice(P);break;default:b=N+I+b+R;break}return o(b)}return D.toString=function(){return u+""},D}function f(u,d){var h=l((u=am(u),u.type="f",u)),g=Math.max(-8,Math.min(8,Math.floor(Qu(d)/3)))*3,p=Math.pow(10,-g),v=l_[8+g/3];return function(x){return h(p*x)+v}}return{format:l,formatPrefix:f}}var Rg,MR,RR;zie({thousands:",",grouping:[3],currency:["$",""]});function zie(t){return Rg=Wie(t),MR=Rg.format,RR=Rg.formatPrefix,Rg}function $ie(t){return Math.max(0,-Qu(Math.abs(t)))}function jie(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Qu(e)/3)))*3-Qu(Math.abs(t)))}function Hie(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Qu(e)-Qu(t))+1}function Kie(t,e,r,n){var i=Zre(t,e,r),o;switch(n=am(n??",f"),n.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return n.precision==null&&!isNaN(o=jie(i,a))&&(n.precision=o),RR(n,a)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(o=Hie(i,Math.max(Math.abs(t),Math.abs(e))))&&(n.precision=o-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(o=$ie(i))&&(n.precision=o-(n.type==="%")*2);break}}return MR(n)}function qie(t){var e=t.domain;return t.ticks=function(r){var n=e();return Jre(n[0],n[n.length-1],r??10)},t.tickFormat=function(r,n){var i=e();return Kie(i[0],i[i.length-1],r??10,n)},t.nice=function(r){r==null&&(r=10);var n=e(),i=0,o=n.length-1,a=n[i],s=n[o],c,l,f=10;for(s0;){if(l=f3(a,s,r),l===c)return n[i]=a,n[o]=s,e(n);if(l>0)a=Math.floor(a/l)*l,s=Math.ceil(s/l)*l;else if(l<0)a=Math.ceil(a*l)/l,s=Math.floor(s*l)/l;else break;c=l}return t},t}function xC(){var t=Aie();return t.copy=function(){return Nie(t,xC())},nie.apply(t,arguments),qie(t)}function Xie(t,e){e.classHierarchy.push("vtkTexture"),t.imageLoaded=()=>{e.image.removeEventListener("load",t.imageLoaded),e.imageLoaded=!0,t.modified()},t.setJsImageData=r=>{e.jsImageData!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.canvas=null),e.jsImageData=r,e.imageLoaded=!0,t.modified())},t.setCanvas=r=>{e.canvas!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.image=null,e.jsImageData=null),e.canvas=r,t.modified())},t.setImage=r=>{e.image!==r&&(r!==null&&(t.setInputData(null),t.setInputConnection(null),e.canvas=null,e.jsImageData=null),e.image=r,e.imageLoaded=!1,r.complete?t.imageLoaded():r.addEventListener("load",t.imageLoaded),t.modified())},t.getDimensionality=()=>{let r=0,n=0,i=1;if(t.getInputData()){const a=t.getInputData();r=a.getDimensions()[0],n=a.getDimensions()[1],i=a.getDimensions()[2]}return e.jsImageData&&(r=e.jsImageData.width,n=e.jsImageData.height),e.canvas&&(r=e.canvas.width,n=e.canvas.height),e.image&&(r=e.image.width,n=e.image.height),(r>1)+(n>1)+(i>1)},t.getInputAsJsImageData=()=>{if(!e.imageLoaded||t.getInputData())return null;if(e.jsImageData)return e.jsImageData();if(e.canvas)return e.canvas.getContext("2d").getImageData(0,0,e.canvas.width,e.canvas.height);if(e.image){const r=document.createElement("canvas");r.width=e.image.width,r.height=e.image.height;const n=r.getContext("2d");return n.translate(0,r.height),n.scale(1,-1),n.drawImage(e.image,0,0,e.image.width,e.image.height),n.getImageData(0,0,r.width,r.height)}return null}}const Yie=(t,e,r,n)=>{const i=[1,2,1],o=4,a=i,s=o,c=t.length/(e*r);let l=e,f=r,u=t;const d=[u];for(let h=0;hc&&(_+=p),E<-c&&(_-=p),x[_]?S+=x[_]*a[T]:C-=a[T],w+=1}u[m+y]=S/C}x=[...u];for(let m=0;m2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Jie,r),W.obj(t,e),W.algo(t,e,6,0),W.get(t,e,["canvas","image","jsImageData","imageLoaded","resizable"]),W.setGet(t,e,["repeat","edgeClamp","interpolate","mipLevel"]),Xie(t,e)}const Zie=W.newInstance(LR,"vtkTexture"),Qie={generateMipmaps:Yie};var Dh={newInstance:Zie,extend:LR,...Qie};const eoe=[[-1,0,0],[1,0,0],[0,-1,0],[0,1,0],[0,0,-1],[0,0,1]],u_=[[8,7,11,3],[9,1,10,5],[4,9,0,8],[2,11,6,10],[0,3,2,1],[4,5,6,7]],Lg=[[0,1],[1,3],[2,3],[0,2],[4,5],[5,7],[6,7],[4,6],[0,4],[1,5],[3,7],[2,6]],f_=[0,1,0,1,0,1,0,1,2,2,2,2],Rn=[[1,2],[1,2],[0,2],[0,2],[0,1],[0,1]],gt=new Float64Array(3),Ng=new Float64Array(3),Jt=new Float64Array(3),Pc=new Float64Array(3),xc=new Float64Array(3),Pg=new Float64Array(3),jv=new Float64Array(16);function Hv(t,e){t.strokeStyle=e.strokeColor,t.lineWidth=e.strokeSize,t.fillStyle=e.fontColor,t.font=`${e.fontStyle} ${e.fontSize}px ${e.fontFamily}`}function NR(t){const e=[],r=[];for(let n=0;n<3;n++){const i=xC().domain([t[n*2],t[n*2+1]]);e[n]=i.ticks(5);const o=i.tickFormat(5);r[n]=e[n].map(o)}return{ticks:e,tickStrings:r}}function toe(t,e){e.classHierarchy.push("vtkCubeAxesActorHelper"),t.setRenderable=r=>{e.renderable!==r&&(e.renderable=r,e.tmActor.addTexture(e.renderable.getTmTexture()),e.tmActor.setProperty(r.getProperty()),e.tmActor.setParentProp(r),t.modified())},t.createPolyDataForOneLabel=(r,n,i,o,a,s,c)=>{const l=e.renderable.get_tmAtlas().get(r);if(!l)return;const f=e.renderable.getTextPolyData().getPoints().getData(),u=e.lastSize;gt[0]=f[n*3],gt[1]=f[n*3+1],gt[2]=f[n*3+2],et(Jt,gt,i),Jt[0]+=.1,et(Ng,Jt,o),kt(xc,Ng,gt),Jt[0]-=.1,Jt[1]+=.1,et(Ng,Jt,o),kt(Pg,Ng,gt);for(let g=0;g<3;g++)xc[g]/=.5*.1*u[0],Pg[g]/=.5*.1*u[1];let d=c.ptIdx,h=c.cellIdx;gt[0]=f[n*3],gt[1]=f[n*3+1],gt[2]=f[n*3+2],a[0]<-.5?lr(Jt,xc,a[0]*s-l.width):a[0]>.5?lr(Jt,xc,a[0]*s):lr(Jt,xc,a[0]*s-l.width/2),xn(gt,gt,Jt),lr(Jt,Pg,a[1]*s-l.height/2),xn(gt,gt,Jt),c.points[d*3]=gt[0],c.points[d*3+1]=gt[1],c.points[d*3+2]=gt[2],c.tcoords[d*2]=l.tcoords[0],c.tcoords[d*2+1]=l.tcoords[1],d++,lr(Jt,xc,l.width),xn(gt,gt,Jt),c.points[d*3]=gt[0],c.points[d*3+1]=gt[1],c.points[d*3+2]=gt[2],c.tcoords[d*2]=l.tcoords[2],c.tcoords[d*2+1]=l.tcoords[3],d++,lr(Jt,Pg,l.height),xn(gt,gt,Jt),c.points[d*3]=gt[0],c.points[d*3+1]=gt[1],c.points[d*3+2]=gt[2],c.tcoords[d*2]=l.tcoords[4],c.tcoords[d*2+1]=l.tcoords[5],d++,lr(Jt,xc,l.width),kt(gt,gt,Jt),c.points[d*3]=gt[0],c.points[d*3+1]=gt[1],c.points[d*3+2]=gt[2],c.tcoords[d*2]=l.tcoords[6],c.tcoords[d*2+1]=l.tcoords[7],d++,c.polys[h*4]=3,c.polys[h*4+1]=d-4,c.polys[h*4+2]=d-3,c.polys[h*4+3]=d-2,h++,c.polys[h*4]=3,c.polys[h*4+1]=d-4,c.polys[h*4+2]=d-2,c.polys[h*4+3]=d-1,c.ptIdx+=4,c.cellIdx+=2},t.updateTexturePolyData=()=>{const r=e.camera.getCompositeProjectionMatrix(e.lastAspectRatio,-1,1);St(r,r);const n=e.renderable.getTextValues().length,i=n*4,o=n*2,a=new Float64Array(i*3),s=new Uint16Array(o*4),c=new Float32Array(i*2);$n(jv,r);const l={ptIdx:0,cellIdx:0,polys:s,points:a,tcoords:c};let f=0,u=0,d=0;const h=e.renderable.getTextPolyData().getPoints().getData(),g=e.renderable.getTextValues();for(;f{(e.lastSize[0]!==r[0]||e.lastSize[1]!==r[1])&&(e.lastSize[0]=r[0],e.lastSize[1]=r[1],e.lastAspectRatio=r[0]/r[1],e.forceUpdate=!0),e.camera=n,t.updateTexturePolyData()}}const noe=W.newInstance(function(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},r),W.obj(t,e),e.tmPolyData=hr.newInstance(),e.tmMapper=oa.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmActor=ca.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),W.setGet(t,e,["renderable"]),W.get(t,e,["lastSize","lastAspectRatio","axisTextStyle","tickTextStyle","tmActor","ticks"]),e.forceUpdate=!1,e.lastRedrawTime={},W.obj(e.lastRedrawTime,{mtime:0}),e.lastRebuildTime={},W.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.lastTickBounds=[],toe(t,e)},"vtkCubeAxesActorHelper");function roe(t,e){e.classHierarchy.push("vtkCubeAxesActor"),t.setCamera=n=>{e.camera!==n&&(e.cameraModifiedSub&&(e.cameraModifiedSub.unsubscribe(),e.cameraModifiedSub=null),e.camera=n,n&&(e.cameraModifiedSub=n.onModified(t.update)),t.update(),t.modified())},t.computeFacesToDraw=()=>{const n=e.camera.getViewMatrix();St(n,n);let i=!1;const o=qt.getDiagonalLength(e.dataBounds),a=Math.sin(e.faceVisibilityAngle*Math.PI/180);for(let s=0;s<6;s++){let c=!1;const l=Math.floor(s/2),f=(l+1)%3,u=(l+2)%3;e.dataBounds[f*2]!==e.dataBounds[f*2+1]&&e.dataBounds[u*2]!==e.dataBounds[u*2+1]&&(gt[l]=e.dataBounds[s]-.1*o*eoe[s][l],gt[f]=.5*(e.dataBounds[f*2]+e.dataBounds[f*2+1]),gt[u]=.5*(e.dataBounds[u*2]+e.dataBounds[u*2+1]),et(Jt,gt,n),gt[l]=e.dataBounds[s],et(Pc,gt,n),kt(Jt,Pc,Jt),on(Jt,Jt),c=Jt[2]>a,e.camera.getParallelProjection()||(on(Pc,Pc),c=je(Pc,Jt)>a)),c!==e.lastFacesToDraw[s]&&(e.lastFacesToDraw[s]=c,i=!0)}return i},t.updatePolyData=(n,i,o)=>{let a=0,s=0;a+=8;let c=0;for(let h=0;h<12;h++)i[h]>0&&c++;if(s+=c,e.gridLines)for(let h=0;h<6;h++)n[h]&&(a+=o[Rn[h][0]].length*2+o[Rn[h][1]].length*2,s+=o[Rn[h][0]].length+o[Rn[h][1]].length);const l=new Float64Array(a*3),f=new Uint32Array(s*3);let u=0,d=0;for(let h=0;h<2;h++)for(let g=0;g<2;g++)for(let p=0;p<2;p++)l[u*3]=e.dataBounds[p],l[u*3+1]=e.dataBounds[2+g],l[u*3+2]=e.dataBounds[4+h],u++;for(let h=0;h<12;h++)i[h]>0&&(f[d*3]=2,f[d*3+1]=Lg[h][0],f[d*3+2]=Lg[h][1],d++);if(e.gridLines){for(let h=0;h<6;h++)if(n[h]){const g=Math.floor(h/2);let p=o[Rn[h][0]];for(let v=0;v{let s=0;for(let h=0;h<12;h++)i[h]===1&&(s+=2,s+=o[f_[h]].length);const c=e.polyData.getPoints().getData(),l=new Float64Array(s*3);let f=0,u=0,d=0;for(let h=0;h<6;h++)if(n[h])for(let g=0;g<4;g++){const p=u_[h][g];if(i[p]===1){const v=f_[p],x=Lg[p][0]*3,m=Lg[p][1]*3;l[f*3]=.5*(c[x]+c[m]),l[f*3+1]=.5*(c[x+1]+c[m+1]),l[f*3+2]=.5*(c[x+2]+c[m+2]),f++;const y=Math.floor(h/2);l[f*3+y]=e.dataBounds[h],l[f*3+Rn[h][0]]=.5*(e.dataBounds[Rn[h][0]*2]+e.dataBounds[Rn[h][0]*2+1]),l[f*3+Rn[h][1]]=.5*(e.dataBounds[Rn[h][1]*2]+e.dataBounds[Rn[h][1]*2+1]),f++,e.textValues[u]=e.axisLabels[v],u++;const w=(v+1)%3,C=(v+2)%3,S=o[v],T=a[v];e.tickCounts[d]=S.length;for(let _=0;_{if(!e.camera)return;const n=t.computeFacesToDraw(),i=e.lastFacesToDraw;let o=!1;for(let a=0;a<6;a++)e.dataBounds[a]!==e.lastTickBounds[a]&&(o=!0,e.lastTickBounds[a]=e.dataBounds[a]);if(n||o||e.forceUpdate){const a=new Array(12).fill(0);for(let c=0;c<6;c++)if(i[c])for(let l=0;l<4;l++)a[u_[c][l]]++;const s=e.generateTicks(e.dataBounds);t.updatePolyData(i,a,s.ticks),t.updateTextData(i,a,s.ticks,s.tickStrings),(o||e.forceUpdate)&&t.updateTextureAtlas(s.tickStrings)}e.forceUpdate=!1},t.updateTextureAtlas=n=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e._tmAtlas.clear();let i=0,o=1;for(let a=0;a<3;a++){if(!e._tmAtlas.has(e.axisLabels[a])){Hv(e.tmContext,e.axisTextStyle);const s=e.tmContext.measureText(e.axisLabels[a]),c={height:s.actualBoundingBoxAscent+2,startingHeight:o,width:s.width+2,textStyle:e.axisTextStyle};e._tmAtlas.set(e.axisLabels[a],c),o+=c.height,i{a.tcoords=[0,(o-a.startingHeight-a.height)/o,a.width/i,(o-a.startingHeight-a.height)/o,a.width/i,(o-a.startingHeight)/o,0,(o-a.startingHeight)/o]}),e.tmCanvas.width=i,e.tmCanvas.height=o,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,i,o),e._tmAtlas.forEach((a,s)=>{Hv(e.tmContext,a.textStyle),e.tmContext.fillText(s,1,a.startingHeight+a.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified()},t.onModified(()=>{e.forceUpdate=!0,t.update()}),t.setTickTextStyle=n=>{e.tickTextStyle={...e.tickTextStyle,...n},t.modified()},t.setAxisTextStyle=n=>{e.axisTextStyle={...e.axisTextStyle,...n},t.modified()},t.get_tmAtlas=()=>e._tmAtlas,t.getBounds=()=>(t.update(),qt.setBounds(e.bounds,e.gridActor.getBounds()),qt.scaleAboutCenter(e.bounds,e.boundsScaleFactor,e.boundsScaleFactor,e.boundsScaleFactor),e.bounds);const r=W.chain(t.setProperty,e.gridActor.setProperty);t.setProperty=n=>r(n)[0]}function ioe(t,e,r){return{boundsScaleFactor:1.3,camera:null,dataBounds:[...qt.INIT_BOUNDS],faceVisibilityAngle:8,gridLines:!0,axisLabels:null,axisTitlePixelOffset:35,tickLabelPixelOffset:12,generateTicks:NR,...r,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif",...r==null?void 0:r.axisTextStyle},tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif",...r==null?void 0:r.tickTextStyle}}}function PR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};ca.extend(t,e,ioe(t,e,r)),e.lastFacesToDraw=[!1,!1,!1,!1,!1,!1],e.axisLabels=["X-Axis","Y-Axis","Z-Axis"],e.tickCounts=[],e.textValues=[],e.lastTickBounds=[],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.tmTexture=Dh.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),e.gridMapper=oa.newInstance(),e.polyData=hr.newInstance(),e.gridMapper.setInputData(e.polyData),e.gridActor=ca.newInstance(),e.gridActor.setMapper(e.gridMapper),e.gridActor.setProperty(t.getProperty()),e.gridActor.setParentProp(t),e.textPolyData=hr.newInstance(),W.setGet(t,e,["axisTitlePixelOffset","boundsScaleFactor","faceVisibilityAngle","gridLines","tickLabelPixelOffset","generateTicks"]),W.setGetArray(t,e,["dataBounds"],6),W.setGetArray(t,e,["axisLabels"],3),W.get(t,e,["axisTextStyle","tickTextStyle","camera","tmTexture","textValues","textPolyData","tickCounts","gridActor"]),roe(t,e)}const ooe=W.newInstance(PR,"vtkCubeAxesActor");var AR={newInstance:ooe,extend:PR,newCubeAxesActorHelper:noe,defaultGenerateTicks:NR};function aoe(t,e){e.classHierarchy.push("vtkOpenGLCubeAxesActor"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,o=e._openGLRenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e._openGLRenderWindow.getRenderable())}}}const soe={};function coe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,soe,r),tn.extend(t,e,r),e.CubeAxesActorHelper=AR.newCubeAxesActorHelper(),aoe(t,e)}const loe=Bt(coe,"vtkOpenGLCubeAxesActor");ir("vtkCubeAxesActor",loe);const{ColorMode:uoe,ScalarMode:wc,GetArray:Kv}=t2;function foe(t,e){e.classHierarchy.push("vtkMapper2D"),t.createDefaultLookupTable=()=>{e.lookupTable=A1.newInstance()},t.getColorModeAsString=()=>W.enumToString(uoe,e.colorMode),t.setColorModeToDefault=()=>t.setColorMode(0),t.setColorModeToMapScalars=()=>t.setColorMode(1),t.setColorModeToDirectScalars=()=>t.setColorMode(2),t.getScalarModeAsString=()=>W.enumToString(wc,e.scalarMode),t.setScalarModeToDefault=()=>t.setScalarMode(0),t.setScalarModeToUsePointData=()=>t.setScalarMode(1),t.setScalarModeToUseCellData=()=>t.setScalarMode(2),t.setScalarModeToUsePointFieldData=()=>t.setScalarMode(3),t.setScalarModeToUseCellFieldData=()=>t.setScalarMode(4),t.setScalarModeToUseFieldData=()=>t.setScalarMode(5),t.getAbstractScalars=(r,n,i,o,a)=>{if(!r||!e.scalarVisibility)return{scalars:null,cellFLag:!1};let s=null,c=!1;if(n===wc.DEFAULT)s=r.getPointData().getScalars(),s||(s=r.getCellData().getScalars(),c=!0);else if(n===wc.USE_POINT_DATA)s=r.getPointData().getScalars();else if(n===wc.USE_CELL_DATA)s=r.getCellData().getScalars(),c=!0;else if(n===wc.USE_POINT_FIELD_DATA){const l=r.getPointData();i===Kv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===wc.USE_CELL_FIELD_DATA){const l=r.getCellData();c=!0,i===Kv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}else if(n===wc.USE_FIELD_DATA){const l=r.getFieldData();i===Kv.BY_ID?s=l.getArrayByIndex(o):s=l.getArrayByName(a)}return{scalars:s,cellFlag:c}},t.getLookupTable=()=>(e.lookupTable||t.createDefaultLookupTable(),e.lookupTable),t.getMTime=()=>{let r=e.mtime;if(e.lookupTable!==null){const n=e.lookupTable.getMTime();r=n>r?n:r}return r},t.mapScalars=(r,n)=>{const i=t.getAbstractScalars(r,e.scalarMode,e.arrayAccessMode,e.arrayId,e.colorByArrayName).scalars;if(!i){e.colorMapColors=null;return}const o=`${t.getMTime()}${i.getMTime()}${n}`;if(e.colorBuildString===o)return;e.useLookupTableScalarRange||t.getLookupTable().setRange(e.scalarRange[0],e.scalarRange[1]);const a=t.getLookupTable();a&&(a.build(),e.colorMapColors=a.mapScalars(i,e.colorMode,e.fieldDataTupleId)),e.colorBuildString=`${t.getMTime()}${i.getMTime()}${n}`},t.getPrimitiveCount=()=>{const r=t.getInputData();return{points:r.getPoints().getNumberOfValues()/3,verts:r.getVerts().getNumberOfValues()-r.getVerts().getNumberOfCells(),lines:r.getLines().getNumberOfValues()-2*r.getLines().getNumberOfCells(),triangles:r.getPolys().getNumberOfValues()-3*r.getPolys().getNumberOfCells()}}}const doe={static:!1,lookupTable:null,scalarVisibility:!1,scalarRange:[0,1],useLookupTableScalarRange:!1,colorMode:0,scalarMode:0,arrayAccessMode:1,renderTime:0,colorByArrayName:null,transformCoordinate:null,viewSpecificProperties:null,customShaderAttributes:[]};function kR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,doe,r),jb.extend(t,e,r),W.get(t,e,["colorMapColors"]),W.setGet(t,e,["arrayAccessMode","colorByArrayName","colorMode","lookupTable","renderTime","scalarMode","scalarVisibility","static","transformCoordinate","useLookupTableScalarRange","viewSpecificProperties","customShaderAttributes"]),W.setGetArray(t,e,["scalarRange"],2),e.viewSpecificProperties||(e.viewSpecificProperties={}),foe(t,e)}const hoe=W.newInstance(kR,"vtkMapper2D");var goe={newInstance:hoe,extend:kR},poe=`//VTK::System::Dec /*========================================================================= @@ -3410,7 +3410,7 @@ void main() discard; } } -`,uoe=`//VTK::System::Dec +`,moe=`//VTK::System::Dec /*========================================================================= @@ -3463,10 +3463,10 @@ void main() //VTK::PositionVC::Impl } -`;const LR={BACKGROUND:0,FOREGROUND:1};var NR={DisplayLocation:LR};const{primTypes:yo}=ua,{ScalarMode:Ng}=coe,{vtkErrorMacro:Pg}=Gr,foe={type:"StartEvent"},doe={type:"EndEvent"};function hoe(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),t.buildPass=n=>{n&&(e.openGLActor2D=t.getFirstAncestorOfType("vtkOpenGLActor2D"),e._openGLRenderer=e.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.overlayPass=n=>{n&&t.render()},t.getShaderTemplate=(n,i,o)=>{n.Vertex=uoe,n.Fragment=loe,n.Geometry=""},t.render=()=>{const n=e._openGLRenderWindow.getContext();if(e.context!==n){e.context=n;for(let a=yo.Start;a{if(t.invokeEvent(foe),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(doe),!e.currentInput){Pg("No input!");return}!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues()||(t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i))},t.renderPieceStart=(n,i)=>{if(e.primitiveIDOffset=0,e._openGLRenderer.getSelector())switch(e._openGLRenderer.getSelector().getCurrentPass()){default:e._openGLRenderer.getSelector().renderProp(i)}t.updateBufferObjects(n,i),e.lastBoundBO=null},t.getNeedToRebuildShaders=(n,i,o)=>n.getShaderSourceTime().getMTime(){t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i)},t.getNeedToRebuildBufferObjects=(n,i)=>{const o=e.VBOBuildTime.getMTime();return!!(o{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,i.getProperty().getOpacity());const a=e.renderable.getColorMapColors();e.haveCellScalars=!1;const s=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(s===Ng.USE_CELL_DATA||s===Ng.USE_CELL_FIELD_DATA||s===Ng.USE_FIELD_DATA||!o.getPointData().getScalars())&&s!==Ng.USE_POINT_FIELD_DATA&&a&&(e.haveCellScalars=!0);const c=i.getProperty().getRepresentation();let l=o.getPointData().getTCoords();e.openGLActor2D.getActiveTextures()||(l=null);const f=e.renderable.getTransformCoordinate(),d=n.getRenderWindow().getViews()[0].getViewportSize(n),h=`${o.getMTime()}A${c}B${o.getMTime()}C${a?a.getMTime():1}D${l?l.getMTime():1}E${f?n.getMTime():1}F${d}`;if(e.VBOBuildString!==h){let g=o.getPoints();if(f){const v=Md.newInstance(),x=g.getNumberOfPoints();v.setNumberOfPoints(x);const m=[];for(let y=0;yo.getPointData().getArrayByName(v))};p.cellOffset+=e.primitives[yo.Points].getCABO().createVBO(o.getVerts(),"verts",c,p),p.cellOffset+=e.primitives[yo.Lines].getCABO().createVBO(o.getLines(),"lines",c,p),p.cellOffset+=e.primitives[yo.Tris].getCABO().createVBO(o.getPolys(),"polys",c,p),p.cellOffset+=e.primitives[yo.TriStrips].getCABO().createVBO(o.getStrips(),"strips",c,p),e.VBOBuildTime.modified(),e.VBOBuildString=h}},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation();e.context.depthMask(!0);for(let s=yo.Start;s{e.lastBoundBO&&e.lastBoundBO.getVAO().release()},t.replaceShaderValues=(n,i,o)=>{t.replaceShaderColor(n,i,o),t.replaceShaderTCoord(n,i,o),t.replaceShaderPicking(n,i,o),t.replaceShaderPositionVC(n,i,o)},t.replaceShaderColor=(n,i,o)=>{let a=n.Vertex,s=n.Geometry,c=n.Fragment;e.haveCellScalars&&(c=ce.substitute(c,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,c=ce.substitute(c,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0?(a=ce.substitute(a,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",[`in vec4 fcolorVSOutput[]; +`;const VR={BACKGROUND:0,FOREGROUND:1};var FR={DisplayLocation:VR};const{primTypes:xo}=fa,{ScalarMode:Ag}=goe,{vtkErrorMacro:kg}=Br,voe={type:"StartEvent"},yoe={type:"EndEvent"};function xoe(t,e){e.classHierarchy.push("vtkOpenGLPolyDataMapper2D"),t.buildPass=n=>{n&&(e.openGLActor2D=t.getFirstAncestorOfType("vtkOpenGLActor2D"),e._openGLRenderer=e.openGLActor2D.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getLastAncestorOfType("vtkOpenGLRenderWindow"),e.openGLCamera=e._openGLRenderer.getViewNodeFor(e._openGLRenderer.getRenderable().getActiveCamera()))},t.overlayPass=n=>{n&&t.render()},t.getShaderTemplate=(n,i,o)=>{n.Vertex=moe,n.Fragment=poe,n.Geometry=""},t.render=()=>{const n=e._openGLRenderWindow.getContext();if(e.context!==n){e.context=n;for(let a=xo.Start;a{if(t.invokeEvent(voe),e.renderable.getStatic()||e.renderable.update(),e.currentInput=e.renderable.getInputData(),t.invokeEvent(yoe),!e.currentInput){kg("No input!");return}!e.currentInput.getPoints||!e.currentInput.getPoints().getNumberOfValues()||(t.renderPieceStart(n,i),t.renderPieceDraw(n,i),t.renderPieceFinish(n,i))},t.renderPieceStart=(n,i)=>{if(e.primitiveIDOffset=0,e._openGLRenderer.getSelector())switch(e._openGLRenderer.getSelector().getCurrentPass()){default:e._openGLRenderer.getSelector().renderProp(i)}t.updateBufferObjects(n,i),e.lastBoundBO=null},t.getNeedToRebuildShaders=(n,i,o)=>n.getShaderSourceTime().getMTime(){t.getNeedToRebuildBufferObjects(n,i)&&t.buildBufferObjects(n,i)},t.getNeedToRebuildBufferObjects=(n,i)=>{const o=e.VBOBuildTime.getMTime();return!!(o{const o=e.currentInput;if(o===null)return;e.renderable.mapScalars(o,i.getProperty().getOpacity());const a=e.renderable.getColorMapColors();e.haveCellScalars=!1;const s=e.renderable.getScalarMode();e.renderable.getScalarVisibility()&&(s===Ag.USE_CELL_DATA||s===Ag.USE_CELL_FIELD_DATA||s===Ag.USE_FIELD_DATA||!o.getPointData().getScalars())&&s!==Ag.USE_POINT_FIELD_DATA&&a&&(e.haveCellScalars=!0);const c=i.getProperty().getRepresentation();let l=o.getPointData().getTCoords();e.openGLActor2D.getActiveTextures()||(l=null);const f=e.renderable.getTransformCoordinate(),d=n.getRenderWindow().getViews()[0].getViewportSize(n),h=`${o.getMTime()}A${c}B${o.getMTime()}C${a?a.getMTime():1}D${l?l.getMTime():1}E${f?n.getMTime():1}F${d}`;if(e.VBOBuildString!==h){let g=o.getPoints();if(f){const v=Ld.newInstance(),x=g.getNumberOfPoints();v.setNumberOfPoints(x);const m=[];for(let y=0;yo.getPointData().getArrayByName(v))};p.cellOffset+=e.primitives[xo.Points].getCABO().createVBO(o.getVerts(),"verts",c,p),p.cellOffset+=e.primitives[xo.Lines].getCABO().createVBO(o.getLines(),"lines",c,p),p.cellOffset+=e.primitives[xo.Tris].getCABO().createVBO(o.getPolys(),"polys",c,p),p.cellOffset+=e.primitives[xo.TriStrips].getCABO().createVBO(o.getStrips(),"strips",c,p),e.VBOBuildTime.modified(),e.VBOBuildString=h}},t.renderPieceDraw=(n,i)=>{const o=i.getProperty().getRepresentation();e.context.depthMask(!0);for(let s=xo.Start;s{e.lastBoundBO&&e.lastBoundBO.getVAO().release()},t.replaceShaderValues=(n,i,o)=>{t.replaceShaderColor(n,i,o),t.replaceShaderTCoord(n,i,o),t.replaceShaderPicking(n,i,o),t.replaceShaderPositionVC(n,i,o)},t.replaceShaderColor=(n,i,o)=>{let a=n.Vertex,s=n.Geometry,c=n.Fragment;e.haveCellScalars&&(c=ce.substitute(c,"//VTK::Color::Dec",["uniform samplerBuffer texture1;"]).result,c=ce.substitute(c,"//VTK::Color::Impl",["gl_FragData[0] = texelFetchBuffer(texture1, gl_PrimitiveID + PrimitiveIDOffset);"]).result),e.lastBoundBO.getCABO().getColorComponents()!==0?(a=ce.substitute(a,"//VTK::Color::Dec",["in vec4 diffuseColor;","out vec4 fcolorVSOutput;"]).result,a=ce.substitute(a,"//VTK::Color::Impl",["fcolorVSOutput = diffuseColor;"]).result,s=ce.substitute(s,"//VTK::Color::Dec",[`in vec4 fcolorVSOutput[]; `,"out vec4 fcolorGSOutput;"]).result,s=ce.substitute(s,"//VTK::Color::Impl",["fcolorGSOutput = fcolorVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::Color::Dec",["in vec4 fcolorVSOutput;"]).result,c=ce.substitute(c,"//VTK::Color::Impl",["gl_FragData[0] = fcolorVSOutput;"]).result):(c=ce.substitute(c,"//VTK::Color::Dec",["uniform vec4 diffuseColor;"]).result,c=ce.substitute(c,"//VTK::Color::Impl",["gl_FragData[0] = diffuseColor;"]).result),n.Vertex=a,n.Geometry=s,n.Fragment=c},t.replaceShaderTCoord=(n,i,o)=>{if(e.lastBoundBO.getCABO().getTCoordOffset()){let a=n.Vertex,s=n.Geometry,c=n.Fragment;const l=e.lastBoundBO.getCABO().getTCoordComponents();l===1?(a=ce.substitute(a,"//VTK::TCoord::Dec",["in float tcoordMC;","out float tcoordVCVSOutput;"]).result,a=ce.substitute(a,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,s=ce.substitute(s,"//VTK::TCoord::Dec",[`in float tcoordVCVSOutput[]; `,"out float tcoordVCGSOutput;"]).result,s=ce.substitute(s,["//VTK::TCoord::Impl","tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::TCoord::Dec",["in float tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,c=ce.substitute(c,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, vec2(tcoordVCVSOutput,0));"]).result):l===2&&(a=ce.substitute(a,"//VTK::TCoord::Dec",["in vec2 tcoordMC;","out vec2 tcoordVCVSOutput;"]).result,a=ce.substitute(a,"//VTK::TCoord::Impl",["tcoordVCVSOutput = tcoordMC;"]).result,s=ce.substitute(s,"//VTK::TCoord::Dec",[`in vec2 tcoordVCVSOutput[]; -`,"out vec2 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,c=ce.substitute(c,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),e.haveCellScalars&&(s=ce.substitute(s,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),n.Vertex=a,n.Geometry=s,n.Fragment=c}},t.replaceShaderPicking=(n,i,o)=>{let a=n.Fragment;a=ce.substitute(a,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,a=ce.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,n.Fragment=a},t.replaceShaderPositionVC=(n,i,o)=>{e.lastBoundBO.replaceShaderPositionVC(n,i,o)},t.invokeShaderCallbacks=(n,i,o)=>{const a=e.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach(s=>{s.callback(s.userData,n,i,o)})},t.setMapperShaderParameters=(n,i,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),n.getProgram().isAttributeUsed("vertexWC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexWC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||Pg("Error setting vertexWC in shader VAO.")),n.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){e.renderable.getCustomShaderAttributes().forEach((c,l)=>{n.getProgram().isAttributeUsed(`${c}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${c}MC`,n.getCABO().getCustomData()[l].offset,n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getCustomData()[l].components,!1)||Pg(`Error setting ${c}MC in shader VAO.`))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||Pg("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),e.internalColorTexture&&n.getProgram().isUniformUsed("texture1")&&n.getProgram().setUniformi("texture1",e.internalColorTexture.getTextureUnit());const a=e.openGLActor2D.getActiveTextures();if(a)for(let c=0;c{const a=e.renderable.getColorMapColors();if(!a||a.getNumberOfComponents()===0){const s=n.getProgram(),c=o.getProperty(),l=c.getOpacity(),f=c.getColor(),u=[f[0],f[1],f[2],l];s.setUniform4f("diffuseColor",u)}},t.setLightingShaderParameters=(n,i,o)=>{};function r(n,i,o){return i.identity(o),n.reduce((a,s,c)=>c===0?s?i.copy(a,s):i.identity(a):s?i.multiply(a,a,s):a,o)}t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),c=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,f=i.getRenderWindow().getViews()[0].getViewportSize(i),u=i.getViewport(),d=o.getActualPositionCoordinate().getComputedDoubleViewportValue(i),h=[0,0,1,1],g=[0,0,1,1];if(g[0]=u[0]>=h[0]?u[0]:h[0],g[1]=u[1]>=h[1]?u[1]:h[1],g[2]=u[2]<=h[2]?u[2]:h[2],g[3]=u[3]<=h[3]?u[3]:h[3],g[0]>=g[2]||g[1]>=g[3])return;f[0]=xf(f[0]*(g[2]-g[0])/(u[2]-u[0])),f[1]=xf(f[1]*(g[3]-g[1])/(u[3]-u[1]));const p=e._openGLRenderer.getParent().getSize(),v=xf(d[0]-(g[0]-u[0])*p[0]),x=xf(d[1]-(g[1]-u[1])*p[1]),m=-v;let y=-v+f[0];const w=-x;let C=-x+f[1];m===y&&(y=m+1),w===C&&(C=w+1);const S=qe(new Float64Array(16));S[0]=2/(y-m),S[1*4+1]=2/(C-w),S[0*4+3]=-1*(y+m)/(y-m),S[1*4+3]=-1*(C+w)/(C-w),S[2*4+2]=0,S[2*4+3]=o.getProperty().getDisplayLocation()===LR.FOREGROUND?-1:1,S[3*4+3]=1,St(S,S),a.setUniformMatrix("WCVCMatrix",r([S,c],bd,e.tmpMat4))},t.getAllocatedGPUMemoryInBytes=()=>{let n=0;return e.primitives.forEach(i=>{n+=i.getAllocatedGPUMemoryInBytes()}),n}}const goe={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function poe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,goe,r),nn.extend(t,e,r),oa.implementReplaceShaderCoincidentOffset(t,e,r),oa.implementBuildShadersWithReplacements(t,e,r),e.primitives=[],e.primTypes=yo,e.tmpMat4=qe(new Float64Array(16));for(let n=yo.Start;n{const n=r.getLastSize(),i=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(i,o),s=r.getAxisTextStyle(),c=r.getTickTextStyle();Object.assign(s,e.axisTextStyle),Object.assign(c,e.tickTextStyle),s.fontSize=Math.max(24*a,12),r.getLastAspectRatio()>1?c.fontSize=Math.max(20*a,10):c.fontSize=Math.max(16*a,10);const l=r.updateTextureAtlas();r.setTopTitle(!1);const f=r.getBoxSizeByReference();if(r.getLastAspectRatio()>1)r.setTickLabelPixelOffset(.3*c.fontSize),l.titleWidth<=l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize?(r.setTopTitle(!0),r.setAxisTitlePixelOffset(.2*c.fontSize),f[0]=2*(l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize)/n[0],r.setBoxPosition([.98-f[0],-.92])):(r.setAxisTitlePixelOffset(.2*c.fontSize),f[0]=2*(l.titleHeight+r.getAxisTitlePixelOffset()+l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize)/n[0],r.setBoxPosition([.99-f[0],-.92])),f[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{r.setAxisTitlePixelOffset(1.2*c.fontSize),r.setTickLabelPixelOffset(.1*c.fontSize);const u=2*(.8*c.fontSize+l.titleHeight+r.getAxisTitlePixelOffset())/n[1],d=2*l.tickWidth/n[0];f[0]=Math.min(1.9,Math.max(1.4,1.4*d*(r.getTicks().length+3))),f[1]=u,r.setBoxPosition([-.5*f[0],-.97])}r.recomputeBarSegments(l)}}function AR(t,e){return r=>{const n=r.getLastTickBounds(),i=vC().domain([n[0],n[1]]),o=i.ticks(5),a=i.tickFormat(5);r.setTicks(o),r.setTickStrings(o.map(a))}}function yoe(t,e){e.classHierarchy.push("vtkScalarBarActorHelper"),t.setRenderable=i=>{e.renderable!==i&&(e.renderable=i,e.barActor.setProperty(i.getProperty()),e.barActor.setParentProp(i),e.barActor.setCoordinateSystemToDisplay(),e.tmActor.setProperty(i.getProperty()),e.tmActor.setParentProp(i),e.tmActor.setCoordinateSystemToDisplay(),e.generateTicks=i.generateTicks,e.axisTextStyle={...i.getAxisTextStyle()},e.tickTextStyle={...i.getTickTextStyle()},t.modified())},t.updateAPISpecificData=(i,o,a)=>{(e.lastSize[0]!==i[0]||e.lastSize[1]!==i[1])&&(e.lastSize[0]=i[0],e.lastSize[1]=i[1],e.lastAspectRatio=i[0]/i[1],e.forceUpdate=!0);const s=e.renderable.getScalarsToColors();if(!(!s||!e.renderable.getVisibility())&&(e.barMapper.setLookupTable(s),e.camera=o,e.renderWindow=a,e.forceUpdate||Math.max(s.getMTime(),t.getMTime(),e.renderable.getMTime())>e.lastRebuildTime.getMTime())){const c=s.getMappingRange();if(e.lastTickBounds=[...c],e.renderable.getGenerateTicks()(t),e.renderable.getAutomated())e.renderable.getAutoLayout()(t);else{e.axisTextStyle={...e.renderable.getAxisTextStyle()},e.tickTextStyle={...e.renderable.getTickTextStyle()},e.barPosition=[...e.renderable.getBarPosition()],e.barSize=[...e.renderable.getBarSize()],e.boxPosition=[...e.renderable.getBoxPosition()],e.boxSize=[...e.renderable.getBoxSize()],e.axisTitlePixelOffset=e.renderable.getAxisTitlePixelOffset(),e.tickLabelPixelOffset=e.renderable.getTickLabelPixelOffset();const l=t.updateTextureAtlas();t.recomputeBarSegments(l)}t.updatePolyDataForLabels(),t.updatePolyDataForBarSegments(),e.lastRebuildTime.modified(),e.forceUpdate=!1}},t.updateTextureAtlas=()=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left";const i={},o=new Map;let a=0,s=1;Hv(e.tmContext,e.axisTextStyle);let c=e.tmContext.measureText(e.renderable.getAxisLabel()),l={height:c.actualBoundingBoxAscent+2,startingHeight:s,width:c.width+2,textStyle:e.axisTextStyle};o.set(e.renderable.getAxisLabel(),l),s+=l.height,a=l.width,i.titleWidth=l.width,i.titleHeight=l.height,i.tickWidth=0,i.tickHeight=0,Hv(e.tmContext,e.tickTextStyle);const f=[...t.getTickStrings(),"NaN","Below","Above"];for(let u=0;u{u.tcoords=[0,(s-u.startingHeight-u.height)/s,u.width/a,(s-u.startingHeight-u.height)/s,u.width/a,(s-u.startingHeight)/s,0,(s-u.startingHeight)/s]}),e.tmCanvas.width=a,e.tmCanvas.height=s,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,a,s),o.forEach((u,d)=>{Hv(e.tmContext,u.textStyle),e.tmContext.fillText(d,1,u.startingHeight+u.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified(),e._tmAtlas=o,i},t.computeBarSize=i=>{e.vertical=e.boxSize[1]>e.boxSize[0];const o=2*i.tickHeight/e.lastSize[1],a=[1,1];if(e.vertical){const s=2*(i.tickWidth+e.tickLabelPixelOffset)/e.lastSize[0];if(e.topTitle){const c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0]-s,e.barSize[1]=e.boxSize[1]-c}else{const c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[0];e.barSize[0]=e.boxSize[0]-c-s,e.barSize[1]=e.boxSize[1]}e.barPosition[0]=e.boxPosition[0]+s,e.barPosition[1]=e.boxPosition[1],a[1]=o}else{const s=(2*i.tickWidth-8)/e.lastSize[0],c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0],e.barPosition[0]=e.boxPosition[0],e.barSize[1]=e.boxSize[1]-c,e.barPosition[1]=e.boxPosition[1],a[0]=s}return a},t.recomputeBarSegments=i=>{var d,h,g,p;const o=t.computeBarSize(i);e.barSegments=[];const a=[0,0],s=e.vertical?1:0,c=e.vertical?.01:.02;function l(v,x){e.barSegments.push({corners:[[...a],[a[0]+o[0],a[1]],[a[0]+o[0],a[1]+o[1]],[a[0],a[1]+o[1]]],scalars:x,title:v}),a[s]+=o[s]+c}e.renderable.getDrawNanAnnotation()&&e.renderable.getScalarsToColors().getNanColor()&&l("NaN",[NaN,NaN,NaN,NaN]),e.renderable.getDrawBelowRangeSwatch()&&((h=(d=e.renderable.getScalarsToColors()).getUseBelowRangeColor)!=null&&h.call(d))&&l("Below",[-.1,-.1,-.1,-.1]);const f=(p=(g=e.renderable.getScalarsToColors()).getUseAboveRangeColor)==null?void 0:p.call(g);a[s]+=c;const u=o[s];o[s]=f?1-2*c-o[s]-a[s]:1-c-a[s],l("ticks",e.vertical?[0,0,.995,.995]:[0,.995,.995,0]),e.renderable.getDrawAboveRangeSwatch()&&f&&(o[s]=u,a[s]+=c,l("Above",[1.1,1.1,1.1,1.1]))};const r=new Float64Array(3);t.createPolyDataForOneLabel=(i,o,a,s,c,l)=>{const f=e._tmAtlas.get(i);if(!f)return;let u=l.ptIdx,d=l.cellIdx;r[0]=(.5*o[0]+.5)*e.lastSize[0],r[1]=(.5*o[1]+.5)*e.lastSize[1],r[2]=o[2],r[0]+=c[0],r[1]+=c[1];const h=[],g=s==="vertical"?[1,0]:[0,1];s==="vertical"?(h[0]=f.width,h[1]=-f.height,a[0]==="middle"?r[1]-=f.width/2:a[0]==="right"&&(r[1]-=f.width),a[1]==="middle"?r[0]+=f.height/2:a[1]==="top"&&(r[0]+=f.height)):(h[0]=f.width,h[1]=f.height,a[0]==="middle"?r[0]-=f.width/2:a[0]==="right"&&(r[0]-=f.width),a[1]==="middle"?r[1]-=f.height/2:a[1]==="top"&&(r[1]-=f.height)),l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[0],l.tcoords[u*2+1]=f.tcoords[1],u++,r[g[0]]+=h[0],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[2],l.tcoords[u*2+1]=f.tcoords[3],u++,r[g[1]]+=h[1],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[4],l.tcoords[u*2+1]=f.tcoords[5],u++,r[g[0]]-=h[0],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[6],l.tcoords[u*2+1]=f.tcoords[7],u++,l.polys[d*4]=3,l.polys[d*4+1]=u-4,l.polys[d*4+2]=u-3,l.polys[d*4+3]=u-2,d++,l.polys[d*4]=3,l.polys[d*4+1]=u-4,l.polys[d*4+2]=u-2,l.polys[d*4+3]=u-1,l.ptIdx+=4,l.cellIdx+=2};const n=new Float64Array(3);t.updatePolyDataForLabels=()=>{const i=t.getTickStrings().length+e.barSegments.length,o=i*4,a=i*2,s=new Float64Array(o*3),c=new Uint16Array(a*4),l=new Float32Array(o*2),f={ptIdx:0,cellIdx:0,polys:c,points:s,tcoords:l},u=e.vertical?0:1,d=e.vertical?1:0;n[2]=-.99;const h=e.vertical?["right","middle"]:["middle","bottom"];let g=[0,1];const p=[0,0];e.vertical?(p[0]=-e.tickLabelPixelOffset,e.topTitle?(n[0]=e.boxPosition[0]+.5*e.boxSize[0],n[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)):(n[0]=e.barPosition[0]+e.barSize[0],n[1]=e.barPosition[1]+.5*e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","top"],"vertical",[e.axisTitlePixelOffset,0],f)),g=[-1,0]):(p[1]=e.tickLabelPixelOffset,n[0]=e.barPosition[0]+.5*e.barSize[0],n[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)),n[u]=e.barPosition[u]+(.5*g[u]+.5)*e.barSize[u],n[d]=e.barPosition[d]+e.barSize[d]*.5;let v=null;for(let S=0;S{var p,v;const i=e.renderable.getScalarsToColors();let o=0;e.renderable.getDrawNanAnnotation()&&i.getNanColor()&&(o+=1),e.renderable.getDrawBelowRangeSwatch()&&((p=i.getUseBelowRangeColor)!=null&&p.call(i))&&(o+=1),e.renderable.getDrawAboveRangeSwatch()&&((v=i.getUseAboveRangeColor)!=null&&v.call(i))&&(o+=1);const a=4*(1+o),s=a;let c=1;i.getVectorMode()===voe.COMPONENT&&(c=i.getVectorComponent()+1);const l=new Float64Array(a*3),f=new Uint16Array(s*5),u=new Float32Array(a*c);let d=0,h=0;for(let x=0;x2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},r),W.obj(t,e),W.setGet(t,e,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),W.get(t,e,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),W.getArray(t,e,["boxPosition","boxSize"]),W.setArray(t,e,["boxPosition","boxSize"],2),e.forceUpdate=!1,e.lastRebuildTime={},W.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.barMapper=ia.newInstance(),e.barMapper.setInterpolateScalarsBeforeMapping(!0),e.barMapper.setUseLookupTableScalarRange(!0),e.polyData=dr.newInstance(),e.barMapper.setInputData(e.polyData),e.barActor=sa.newInstance(),e.barActor.setMapper(e.barMapper),e.tmPolyData=dr.newInstance(),e.tmMapper=ia.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmTexture=_h.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),e.tmActor=sa.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),e.tmActor.addTexture(e.tmTexture),e.barPosition=[0,0],e.barSize=[0,0],e.boxPosition=[.88,-.92],e.boxSize=[.1,1.1],e.lastTickBounds=[],yoe(t,e)},"vtkScalarBarActorHelper");function woe(t,e){e.classHierarchy.push("vtkScalarBarActor"),t.setTickTextStyle=r=>{e.tickTextStyle={...e.tickTextStyle,...r},t.modified()},t.setAxisTextStyle=r=>{e.axisTextStyle={...e.axisTextStyle,...r},t.modified()},t.resetAutoLayoutToDefault=()=>{t.setAutoLayout(PR(t,e))},t.resetGenerateTicksToDefault=()=>{t.setGenerateTicks(AR())}}function Coe(t){return{automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,...t}}function kR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Coe(r)),e.autoLayout||(e.autoLayout=PR(t,e)),e.generateTicks||(e.generateTicks=AR()),sa.extend(t,e,r),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),W.setGet(t,e,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),W.get(t,e,["axisTextStyle","tickTextStyle"]),W.getArray(t,e,["barPosition","barSize","boxPosition","boxSize"]),W.setArray(t,e,["barPosition","barSize","boxPosition","boxSize"],2),woe(t,e)}const Soe=W.newInstance(kR,"vtkScalarBarActor");var VR={newInstance:Soe,extend:kR,newScalarBarActorHelper:xoe};function Toe(t,e){e.classHierarchy.push("vtkOpenGLScalarBarActor"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,o=e._openGLRenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e._openGLRenderWindow.getRenderable())}}}const _oe={};function Eoe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,_oe,r),nn.extend(t,e,r),e.scalarBarActorHelper=VR.newScalarBarActorHelper(),Toe(t,e)}const Doe=Bt(Eoe,"vtkOpenGLScalarBarActor");ir("vtkScalarBarActor",Doe);const{CoordinateSystem:l_}=vh;function boe(t,e){e.classHierarchy.push("vtkWebGPUActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const n=e.renderable.getMatrix();e.bufferShift[0]=n[3],e.bufferShift[1]=n[7],e.bufferShift[2]=n[11];const i=r.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===l_.WORLD&&(e.bufferShift[0]-=i[0],e.bufferShift[1]-=i[1],e.bufferShift[2]-=i[2]),St(e.keyMatrices.bcwc,n),e.renderable.getIsIdentity()?qe(e.keyMatrices.normalMatrix):(En(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),rn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===l_.WORLD?rn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-i[0],-i[1],-i[2]]):En(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const Ioe={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Ooe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Ioe,r),nn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],boe(t,e)}const Moe=W.newInstance(Ooe);lo("vtkActor",Moe);const{CoordinateSystem:u_}=vh;function Roe(t,e){e.classHierarchy.push("vtkWebGPUActor2D"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.bufferShift[0]=0,e.bufferShift[1]=0,e.bufferShift[2]=0;const n=r.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===u_.WORLD&&(e.bufferShift[0]-=n[0],e.bufferShift[1]-=n[1],e.bufferShift[2]-=n[2]),qe(e.keyMatrices.bcwc),qe(e.keyMatrices.normalMatrix),rn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===u_.WORLD?rn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]):En(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const Loe={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Noe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Loe,r),nn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],Roe(t,e)}const Poe=W.newInstance(Noe);lo("vtkActor2D",Poe);function Aoe(t,e){e.classHierarchy.push("vtkWebGPUCubeAxesActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,o=e.WebGPURenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e.WebGPURenderWindow.getRenderable())}}}const koe={};function Voe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,koe,r),nn.extend(t,e,r),e.CubeAxesActorHelper=MR.newCubeAxesActorHelper(),Aoe(t,e)}const Foe=Bt(Voe,"vtkWebGPUCubeAxesActor");lo("vtkCubeAxesActor",Foe);const{DisplayLocation:d3}=NR;function Uoe(t,e){e.classHierarchy.push("vtkProperty2D"),t.setDisplayLocationToBackground=()=>t.setDisplayLocation(d3.BACKGROUND),t.setDisplayLocationToForeground=()=>t.setDisplayLocation(d3.FOREGROUND),t.setRepresentationToWireframe=()=>t.setRepresentation(Vr.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(Vr.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(Vr.POINTS),t.getRepresentationAsString=()=>W.enumToString(Vr,e.representation)}const Boe={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:Vr.SURFACE,displayLocation:d3.FOREGROUND};function FR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Boe,r),W.obj(t,e),W.setGet(t,e,["opacity","lineWidth","pointSize","displayLocation","representation"]),W.setGetArray(t,e,["color"],3),Uoe(t,e)}const Goe=W.newInstance(FR,"vtkProperty2D");var Woe={newInstance:Goe,extend:FR,...NR};const{BufferUsage:Tr,PrimitiveTypes:ri}=C0,{Representation:Ag}=m0,{ScalarMode:kg}=ia,{CoordinateSystem:zoe}=vh,{DisplayLocation:$oe}=Woe,joe=` +`,"out vec2 tcoordVCGSOutput;"]).result,s=ce.substitute(s,"//VTK::TCoord::Impl",["tcoordVCGSOutput = tcoordVCVSOutput[i];"]).result,c=ce.substitute(c,"//VTK::TCoord::Dec",["in vec2 tcoordVCVSOutput;","uniform sampler2D texture1;"]).result,c=ce.substitute(c,"//VTK::TCoord::Impl",["gl_FragData[0] = gl_FragData[0]*texture2D(texture1, tcoordVCVSOutput.st);"]).result),e.haveCellScalars&&(s=ce.substitute(s,"//VTK::PrimID::Impl",["gl_PrimitiveID = gl_PrimitiveIDIn;"]).result),n.Vertex=a,n.Geometry=s,n.Fragment=c}},t.replaceShaderPicking=(n,i,o)=>{let a=n.Fragment;a=ce.substitute(a,"//VTK::Picking::Dec",["uniform vec3 mapperIndex;","uniform int picking;"]).result,a=ce.substitute(a,"//VTK::Picking::Impl"," gl_FragData[0] = picking != 0 ? vec4(mapperIndex,1.0) : gl_FragData[0];").result,n.Fragment=a},t.replaceShaderPositionVC=(n,i,o)=>{e.lastBoundBO.replaceShaderPositionVC(n,i,o)},t.invokeShaderCallbacks=(n,i,o)=>{const a=e.renderable.getViewSpecificProperties().ShadersCallbacks;a&&a.forEach(s=>{s.callback(s.userData,n,i,o)})},t.setMapperShaderParameters=(n,i,o)=>{if(n.getProgram().isUniformUsed("PrimitiveIDOffset")&&n.getProgram().setUniformi("PrimitiveIDOffset",e.primitiveIDOffset),n.getProgram().isAttributeUsed("vertexWC")&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"vertexWC",n.getCABO().getVertexOffset(),n.getCABO().getStride(),e.context.FLOAT,3,!1)||kg("Error setting vertexWC in shader VAO.")),n.getCABO().getElementCount()&&(e.VBOBuildTime.getMTime()>n.getAttributeUpdateTime().getMTime()||n.getShaderSourceTime().getMTime()>n.getAttributeUpdateTime().getMTime())){e.renderable.getCustomShaderAttributes().forEach((c,l)=>{n.getProgram().isAttributeUsed(`${c}MC`)&&(n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),`${c}MC`,n.getCABO().getCustomData()[l].offset,n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getCustomData()[l].components,!1)||kg(`Error setting ${c}MC in shader VAO.`))}),n.getProgram().isAttributeUsed("tcoordMC")&&n.getCABO().getTCoordOffset()?n.getVAO().addAttributeArray(n.getProgram(),n.getCABO(),"tcoordMC",n.getCABO().getTCoordOffset(),n.getCABO().getStride(),e.context.FLOAT,n.getCABO().getTCoordComponents(),!1)||kg("Error setting tcoordMC in shader VAO."):n.getVAO().removeAttributeArray("tcoordMC"),e.internalColorTexture&&n.getProgram().isUniformUsed("texture1")&&n.getProgram().setUniformi("texture1",e.internalColorTexture.getTextureUnit());const a=e.openGLActor2D.getActiveTextures();if(a)for(let c=0;c{const a=e.renderable.getColorMapColors();if(!a||a.getNumberOfComponents()===0){const s=n.getProgram(),c=o.getProperty(),l=c.getOpacity(),f=c.getColor(),u=[f[0],f[1],f[2],l];s.setUniform4f("diffuseColor",u)}},t.setLightingShaderParameters=(n,i,o)=>{};function r(n,i,o){return i.identity(o),n.reduce((a,s,c)=>c===0?s?i.copy(a,s):i.identity(a):s?i.multiply(a,a,s):a,o)}t.setCameraShaderParameters=(n,i,o)=>{const a=n.getProgram(),c=n.getCABO().getCoordShiftAndScaleEnabled()?n.getCABO().getInverseShiftAndScaleMatrix():null,f=i.getRenderWindow().getViews()[0].getViewportSize(i),u=i.getViewport(),d=o.getActualPositionCoordinate().getComputedDoubleViewportValue(i),h=[0,0,1,1],g=[0,0,1,1];if(g[0]=u[0]>=h[0]?u[0]:h[0],g[1]=u[1]>=h[1]?u[1]:h[1],g[2]=u[2]<=h[2]?u[2]:h[2],g[3]=u[3]<=h[3]?u[3]:h[3],g[0]>=g[2]||g[1]>=g[3])return;f[0]=Cf(f[0]*(g[2]-g[0])/(u[2]-u[0])),f[1]=Cf(f[1]*(g[3]-g[1])/(u[3]-u[1]));const p=e._openGLRenderer.getParent().getSize(),v=Cf(d[0]-(g[0]-u[0])*p[0]),x=Cf(d[1]-(g[1]-u[1])*p[1]),m=-v;let y=-v+f[0];const w=-x;let C=-x+f[1];m===y&&(y=m+1),w===C&&(C=w+1);const S=qe(new Float64Array(16));S[0]=2/(y-m),S[1*4+1]=2/(C-w),S[0*4+3]=-1*(y+m)/(y-m),S[1*4+3]=-1*(C+w)/(C-w),S[2*4+2]=0,S[2*4+3]=o.getProperty().getDisplayLocation()===VR.FOREGROUND?-1:1,S[3*4+3]=1,St(S,S),a.setUniformMatrix("WCVCMatrix",r([S,c],Od,e.tmpMat4))},t.getAllocatedGPUMemoryInBytes=()=>{let n=0;return e.primitives.forEach(i=>{n+=i.getAllocatedGPUMemoryInBytes()}),n}}const woe={context:null,VBOBuildTime:0,VBOBuildString:null,primitives:null,primTypes:null,shaderRebuildString:null};function Coe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,woe,r),tn.extend(t,e,r),aa.implementReplaceShaderCoincidentOffset(t,e,r),aa.implementBuildShadersWithReplacements(t,e,r),e.primitives=[],e.primTypes=xo,e.tmpMat4=qe(new Float64Array(16));for(let n=xo.Start;n{const n=r.getLastSize(),i=(n[0]/700)**.8,o=(n[1]/700)**.8,a=Math.min(i,o),s=r.getAxisTextStyle(),c=r.getTickTextStyle();Object.assign(s,e.axisTextStyle),Object.assign(c,e.tickTextStyle),s.fontSize=Math.max(24*a,12),r.getLastAspectRatio()>1?c.fontSize=Math.max(20*a,10):c.fontSize=Math.max(16*a,10);const l=r.updateTextureAtlas();r.setTopTitle(!1);const f=r.getBoxSizeByReference();if(r.getLastAspectRatio()>1)r.setTickLabelPixelOffset(.3*c.fontSize),l.titleWidth<=l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize?(r.setTopTitle(!0),r.setAxisTitlePixelOffset(.2*c.fontSize),f[0]=2*(l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize)/n[0],r.setBoxPosition([.98-f[0],-.92])):(r.setAxisTitlePixelOffset(.2*c.fontSize),f[0]=2*(l.titleHeight+r.getAxisTitlePixelOffset()+l.tickWidth+r.getTickLabelPixelOffset()+.8*c.fontSize)/n[0],r.setBoxPosition([.99-f[0],-.92])),f[1]=Math.max(1.2,Math.min(1.84/o,1.84));else{r.setAxisTitlePixelOffset(1.2*c.fontSize),r.setTickLabelPixelOffset(.1*c.fontSize);const u=2*(.8*c.fontSize+l.titleHeight+r.getAxisTitlePixelOffset())/n[1],d=2*l.tickWidth/n[0];f[0]=Math.min(1.9,Math.max(1.4,1.4*d*(r.getTicks().length+3))),f[1]=u,r.setBoxPosition([-.5*f[0],-.97])}r.recomputeBarSegments(l)}}function BR(t,e){return r=>{const n=r.getLastTickBounds(),i=xC().domain([n[0],n[1]]),o=i.ticks(5),a=i.tickFormat(5);r.setTicks(o),r.setTickStrings(o.map(a))}}function _oe(t,e){e.classHierarchy.push("vtkScalarBarActorHelper"),t.setRenderable=i=>{e.renderable!==i&&(e.renderable=i,e.barActor.setProperty(i.getProperty()),e.barActor.setParentProp(i),e.barActor.setCoordinateSystemToDisplay(),e.tmActor.setProperty(i.getProperty()),e.tmActor.setParentProp(i),e.tmActor.setCoordinateSystemToDisplay(),e.generateTicks=i.generateTicks,e.axisTextStyle={...i.getAxisTextStyle()},e.tickTextStyle={...i.getTickTextStyle()},t.modified())},t.updateAPISpecificData=(i,o,a)=>{(e.lastSize[0]!==i[0]||e.lastSize[1]!==i[1])&&(e.lastSize[0]=i[0],e.lastSize[1]=i[1],e.lastAspectRatio=i[0]/i[1],e.forceUpdate=!0);const s=e.renderable.getScalarsToColors();if(!(!s||!e.renderable.getVisibility())&&(e.barMapper.setLookupTable(s),e.camera=o,e.renderWindow=a,e.forceUpdate||Math.max(s.getMTime(),t.getMTime(),e.renderable.getMTime())>e.lastRebuildTime.getMTime())){const c=s.getMappingRange();if(e.lastTickBounds=[...c],e.renderable.getGenerateTicks()(t),e.renderable.getAutomated())e.renderable.getAutoLayout()(t);else{e.axisTextStyle={...e.renderable.getAxisTextStyle()},e.tickTextStyle={...e.renderable.getTickTextStyle()},e.barPosition=[...e.renderable.getBarPosition()],e.barSize=[...e.renderable.getBarSize()],e.boxPosition=[...e.renderable.getBoxPosition()],e.boxSize=[...e.renderable.getBoxSize()],e.axisTitlePixelOffset=e.renderable.getAxisTitlePixelOffset(),e.tickLabelPixelOffset=e.renderable.getTickLabelPixelOffset();const l=t.updateTextureAtlas();t.recomputeBarSegments(l)}t.updatePolyDataForLabels(),t.updatePolyDataForBarSegments(),e.lastRebuildTime.modified(),e.forceUpdate=!1}},t.updateTextureAtlas=()=>{e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left";const i={},o=new Map;let a=0,s=1;qv(e.tmContext,e.axisTextStyle);let c=e.tmContext.measureText(e.renderable.getAxisLabel()),l={height:c.actualBoundingBoxAscent+2,startingHeight:s,width:c.width+2,textStyle:e.axisTextStyle};o.set(e.renderable.getAxisLabel(),l),s+=l.height,a=l.width,i.titleWidth=l.width,i.titleHeight=l.height,i.tickWidth=0,i.tickHeight=0,qv(e.tmContext,e.tickTextStyle);const f=[...t.getTickStrings(),"NaN","Below","Above"];for(let u=0;u{u.tcoords=[0,(s-u.startingHeight-u.height)/s,u.width/a,(s-u.startingHeight-u.height)/s,u.width/a,(s-u.startingHeight)/s,0,(s-u.startingHeight)/s]}),e.tmCanvas.width=a,e.tmCanvas.height=s,e.tmContext.textBaseline="bottom",e.tmContext.textAlign="left",e.tmContext.clearRect(0,0,a,s),o.forEach((u,d)=>{qv(e.tmContext,u.textStyle),e.tmContext.fillText(d,1,u.startingHeight+u.height-1)}),e.tmTexture.setCanvas(e.tmCanvas),e.tmTexture.modified(),e._tmAtlas=o,i},t.computeBarSize=i=>{e.vertical=e.boxSize[1]>e.boxSize[0];const o=2*i.tickHeight/e.lastSize[1],a=[1,1];if(e.vertical){const s=2*(i.tickWidth+e.tickLabelPixelOffset)/e.lastSize[0];if(e.topTitle){const c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0]-s,e.barSize[1]=e.boxSize[1]-c}else{const c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[0];e.barSize[0]=e.boxSize[0]-c-s,e.barSize[1]=e.boxSize[1]}e.barPosition[0]=e.boxPosition[0]+s,e.barPosition[1]=e.boxPosition[1],a[1]=o}else{const s=(2*i.tickWidth-8)/e.lastSize[0],c=2*(i.titleHeight+e.axisTitlePixelOffset)/e.lastSize[1];e.barSize[0]=e.boxSize[0],e.barPosition[0]=e.boxPosition[0],e.barSize[1]=e.boxSize[1]-c,e.barPosition[1]=e.boxPosition[1],a[0]=s}return a},t.recomputeBarSegments=i=>{var d,h,g,p;const o=t.computeBarSize(i);e.barSegments=[];const a=[0,0],s=e.vertical?1:0,c=e.vertical?.01:.02;function l(v,x){e.barSegments.push({corners:[[...a],[a[0]+o[0],a[1]],[a[0]+o[0],a[1]+o[1]],[a[0],a[1]+o[1]]],scalars:x,title:v}),a[s]+=o[s]+c}e.renderable.getDrawNanAnnotation()&&e.renderable.getScalarsToColors().getNanColor()&&l("NaN",[NaN,NaN,NaN,NaN]),e.renderable.getDrawBelowRangeSwatch()&&((h=(d=e.renderable.getScalarsToColors()).getUseBelowRangeColor)!=null&&h.call(d))&&l("Below",[-.1,-.1,-.1,-.1]);const f=(p=(g=e.renderable.getScalarsToColors()).getUseAboveRangeColor)==null?void 0:p.call(g);a[s]+=c;const u=o[s];o[s]=f?1-2*c-o[s]-a[s]:1-c-a[s],l("ticks",e.vertical?[0,0,.995,.995]:[0,.995,.995,0]),e.renderable.getDrawAboveRangeSwatch()&&f&&(o[s]=u,a[s]+=c,l("Above",[1.1,1.1,1.1,1.1]))};const r=new Float64Array(3);t.createPolyDataForOneLabel=(i,o,a,s,c,l)=>{const f=e._tmAtlas.get(i);if(!f)return;let u=l.ptIdx,d=l.cellIdx;r[0]=(.5*o[0]+.5)*e.lastSize[0],r[1]=(.5*o[1]+.5)*e.lastSize[1],r[2]=o[2],r[0]+=c[0],r[1]+=c[1];const h=[],g=s==="vertical"?[1,0]:[0,1];s==="vertical"?(h[0]=f.width,h[1]=-f.height,a[0]==="middle"?r[1]-=f.width/2:a[0]==="right"&&(r[1]-=f.width),a[1]==="middle"?r[0]+=f.height/2:a[1]==="top"&&(r[0]+=f.height)):(h[0]=f.width,h[1]=f.height,a[0]==="middle"?r[0]-=f.width/2:a[0]==="right"&&(r[0]-=f.width),a[1]==="middle"?r[1]-=f.height/2:a[1]==="top"&&(r[1]-=f.height)),l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[0],l.tcoords[u*2+1]=f.tcoords[1],u++,r[g[0]]+=h[0],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[2],l.tcoords[u*2+1]=f.tcoords[3],u++,r[g[1]]+=h[1],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[4],l.tcoords[u*2+1]=f.tcoords[5],u++,r[g[0]]-=h[0],l.points[u*3]=r[0],l.points[u*3+1]=r[1],l.points[u*3+2]=r[2],l.tcoords[u*2]=f.tcoords[6],l.tcoords[u*2+1]=f.tcoords[7],u++,l.polys[d*4]=3,l.polys[d*4+1]=u-4,l.polys[d*4+2]=u-3,l.polys[d*4+3]=u-2,d++,l.polys[d*4]=3,l.polys[d*4+1]=u-4,l.polys[d*4+2]=u-2,l.polys[d*4+3]=u-1,l.ptIdx+=4,l.cellIdx+=2};const n=new Float64Array(3);t.updatePolyDataForLabels=()=>{const i=t.getTickStrings().length+e.barSegments.length,o=i*4,a=i*2,s=new Float64Array(o*3),c=new Uint16Array(a*4),l=new Float32Array(o*2),f={ptIdx:0,cellIdx:0,polys:c,points:s,tcoords:l},u=e.vertical?0:1,d=e.vertical?1:0;n[2]=-.99;const h=e.vertical?["right","middle"]:["middle","bottom"];let g=[0,1];const p=[0,0];e.vertical?(p[0]=-e.tickLabelPixelOffset,e.topTitle?(n[0]=e.boxPosition[0]+.5*e.boxSize[0],n[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)):(n[0]=e.barPosition[0]+e.barSize[0],n[1]=e.barPosition[1]+.5*e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","top"],"vertical",[e.axisTitlePixelOffset,0],f)),g=[-1,0]):(p[1]=e.tickLabelPixelOffset,n[0]=e.barPosition[0]+.5*e.barSize[0],n[1]=e.barPosition[1]+e.barSize[1],t.createPolyDataForOneLabel(e.renderable.getAxisLabel(),n,["middle","bottom"],"horizontal",[0,e.axisTitlePixelOffset],f)),n[u]=e.barPosition[u]+(.5*g[u]+.5)*e.barSize[u],n[d]=e.barPosition[d]+e.barSize[d]*.5;let v=null;for(let S=0;S{var p,v;const i=e.renderable.getScalarsToColors();let o=0;e.renderable.getDrawNanAnnotation()&&i.getNanColor()&&(o+=1),e.renderable.getDrawBelowRangeSwatch()&&((p=i.getUseBelowRangeColor)!=null&&p.call(i))&&(o+=1),e.renderable.getDrawAboveRangeSwatch()&&((v=i.getUseAboveRangeColor)!=null&&v.call(i))&&(o+=1);const a=4*(1+o),s=a;let c=1;i.getVectorMode()===Toe.COMPONENT&&(c=i.getVectorComponent()+1);const l=new Float64Array(a*3),f=new Uint16Array(s*5),u=new Float32Array(a*c);let d=0,h=0;for(let x=0;x2&&arguments[2]!==void 0?arguments[2]:{renderable:null};Object.assign(e,{},r),W.obj(t,e),W.setGet(t,e,["axisTitlePixelOffset","tickLabelPixelOffset","renderable","topTitle","ticks","tickStrings"]),W.get(t,e,["lastSize","lastAspectRatio","lastTickBounds","axisTextStyle","tickTextStyle","barActor","tmActor"]),W.getArray(t,e,["boxPosition","boxSize"]),W.setArray(t,e,["boxPosition","boxSize"],2),e.forceUpdate=!1,e.lastRebuildTime={},W.obj(e.lastRebuildTime,{mtime:0}),e.lastSize=[-1,-1],e.tmCanvas=document.createElement("canvas"),e.tmContext=e.tmCanvas.getContext("2d"),e._tmAtlas=new Map,e.barMapper=oa.newInstance(),e.barMapper.setInterpolateScalarsBeforeMapping(!0),e.barMapper.setUseLookupTableScalarRange(!0),e.polyData=hr.newInstance(),e.barMapper.setInputData(e.polyData),e.barActor=ca.newInstance(),e.barActor.setMapper(e.barMapper),e.tmPolyData=hr.newInstance(),e.tmMapper=oa.newInstance(),e.tmMapper.setInputData(e.tmPolyData),e.tmTexture=Dh.newInstance({resizable:!0}),e.tmTexture.setInterpolate(!1),e.tmActor=ca.newInstance({parentProp:t}),e.tmActor.setMapper(e.tmMapper),e.tmActor.addTexture(e.tmTexture),e.barPosition=[0,0],e.barSize=[0,0],e.boxPosition=[.88,-.92],e.boxSize=[.1,1.1],e.lastTickBounds=[],_oe(t,e)},"vtkScalarBarActorHelper");function Doe(t,e){e.classHierarchy.push("vtkScalarBarActor"),t.setTickTextStyle=r=>{e.tickTextStyle={...e.tickTextStyle,...r},t.modified()},t.setAxisTextStyle=r=>{e.axisTextStyle={...e.axisTextStyle,...r},t.modified()},t.resetAutoLayoutToDefault=()=>{t.setAutoLayout(UR(t,e))},t.resetGenerateTicksToDefault=()=>{t.setGenerateTicks(BR())}}function boe(t){return{automated:!0,autoLayout:null,axisLabel:"Scalar Value",barPosition:[0,0],barSize:[0,0],boxPosition:[.88,-.92],boxSize:[.1,1.1],scalarToColors:null,axisTitlePixelOffset:36,axisTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:18,fontFamily:"serif"},tickLabelPixelOffset:14,tickTextStyle:{fontColor:"white",fontStyle:"normal",fontSize:14,fontFamily:"serif"},generateTicks:null,drawNanAnnotation:!0,drawBelowRangeSwatch:!0,drawAboveRangeSwatch:!0,...t}}function GR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,boe(r)),e.autoLayout||(e.autoLayout=UR(t,e)),e.generateTicks||(e.generateTicks=BR()),ca.extend(t,e,r),t.getProperty().setDiffuse(0),t.getProperty().setAmbient(1),W.setGet(t,e,["automated","autoLayout","axisTitlePixelOffset","axisLabel","scalarsToColors","tickLabelPixelOffset","generateTicks","drawNanAnnotation","drawBelowRangeSwatch","drawAboveRangeSwatch"]),W.get(t,e,["axisTextStyle","tickTextStyle"]),W.getArray(t,e,["barPosition","barSize","boxPosition","boxSize"]),W.setArray(t,e,["barPosition","barSize","boxPosition","boxSize"],2),Doe(t,e)}const Ioe=W.newInstance(GR,"vtkScalarBarActor");var WR={newInstance:Ioe,extend:GR,newScalarBarActorHelper:Eoe};function Ooe(t,e){e.classHierarchy.push("vtkOpenGLScalarBarActor"),t.buildPass=r=>{r&&(e._openGLRenderer=t.getFirstAncestorOfType("vtkOpenGLRenderer"),e._openGLRenderWindow=e._openGLRenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e._openGLRenderer?e._openGLRenderer.getRenderable().getActiveCamera():null,o=e._openGLRenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e._openGLRenderWindow.getRenderable())}}}const Moe={};function Roe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Moe,r),tn.extend(t,e,r),e.scalarBarActorHelper=WR.newScalarBarActorHelper(),Ooe(t,e)}const Loe=Bt(Roe,"vtkOpenGLScalarBarActor");ir("vtkScalarBarActor",Loe);const{CoordinateSystem:d_}=xh;function Noe(t,e){e.classHierarchy.push("vtkWebGPUActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.renderable.computeMatrix();const n=e.renderable.getMatrix();e.bufferShift[0]=n[3],e.bufferShift[1]=n[7],e.bufferShift[2]=n[11];const i=r.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===d_.WORLD&&(e.bufferShift[0]-=i[0],e.bufferShift[1]-=i[1],e.bufferShift[2]-=i[2]),St(e.keyMatrices.bcwc,n),e.renderable.getIsIdentity()?qe(e.keyMatrices.normalMatrix):(_n(e.keyMatrices.normalMatrix,e.keyMatrices.bcwc),e.keyMatrices.normalMatrix[3]=0,e.keyMatrices.normalMatrix[7]=0,e.keyMatrices.normalMatrix[11]=0,$n(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix),St(e.keyMatrices.normalMatrix,e.keyMatrices.normalMatrix)),nn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===d_.WORLD?nn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-i[0],-i[1],-i[2]]):_n(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const Poe={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Aoe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Poe,r),tn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],Noe(t,e)}const koe=W.newInstance(Aoe);uo("vtkActor",koe);const{CoordinateSystem:h_}=xh;function Voe(t,e){e.classHierarchy.push("vtkWebGPUActor2D"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getFirstAncestorOfType("vtkWebGPURenderWindow"),e.propID===void 0&&(e.propID=e.WebGPURenderWindow.getUniquePropID()),t.prepareNodes(),t.addMissingNode(e.renderable.getMapper()),t.removeUnusedNodes())},t.traverseOpaquePass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||!e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.traverseTranslucentPass=r=>{!e.renderable||!e.renderable.getNestedVisibility()||e.renderable.getIsOpaque()||e.WebGPURenderer.getSelector()&&!e.renderable.getNestedPickable()||(t.apply(r,!0),e.children[0]&&e.children[0].traverse(r),t.apply(r,!1))},t.queryPass=(r,n)=>{if(r){if(!e.renderable||!e.renderable.getVisibility())return;e.renderable.getIsOpaque()?n.incrementOpaqueActorCount():n.incrementTranslucentActorCount()}},t.getBufferShift=r=>(t.getKeyMatrices(r),e.bufferShift),t.getKeyMatrices=r=>{if(Math.max(e.renderable.getMTime(),r.getStabilizedTime())>e.keyMatricesTime.getMTime()){e.bufferShift[0]=0,e.bufferShift[1]=0,e.bufferShift[2]=0;const n=r.getStabilizedCenterByReference();e.renderable.getCoordinateSystem()===h_.WORLD&&(e.bufferShift[0]-=n[0],e.bufferShift[1]-=n[1],e.bufferShift[2]-=n[2]),qe(e.keyMatrices.bcwc),qe(e.keyMatrices.normalMatrix),nn(e.keyMatrices.bcwc,e.keyMatrices.bcwc,[-e.bufferShift[0],-e.bufferShift[1],-e.bufferShift[2]]),e.renderable.getCoordinateSystem()===h_.WORLD?nn(e.keyMatrices.bcsc,e.keyMatrices.bcwc,[-n[0],-n[1],-n[2]]):_n(e.keyMatrices.bcsc,e.keyMatrices.bcwc),e.keyMatricesTime.modified()}return e.keyMatrices}}const Foe={keyMatricesTime:null,keyMatrices:null,propID:void 0,bufferShift:void 0};function Uoe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Foe,r),tn.extend(t,e,r),e.keyMatricesTime={},W.obj(e.keyMatricesTime,{mtime:0}),e.keyMatrices={normalMatrix:new Float64Array(16),bcwc:new Float64Array(16),bcsc:new Float64Array(16)},W.get(t,e,["propID","keyMatricesTime"]),e.bufferShift=[0,0,0,0],Voe(t,e)}const Boe=W.newInstance(Uoe);uo("vtkActor2D",Boe);function Goe(t,e){e.classHierarchy.push("vtkWebGPUCubeAxesActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.CubeAxesActorHelper.getRenderable()||e.CubeAxesActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.CubeAxesActorHelper.getTmActor()),t.addMissingNode(e.renderable.getGridActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,o=e.WebGPURenderer.getTiledSizeAndOrigin();e.CubeAxesActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e.WebGPURenderWindow.getRenderable())}}}const Woe={};function zoe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Woe,r),tn.extend(t,e,r),e.CubeAxesActorHelper=AR.newCubeAxesActorHelper(),Goe(t,e)}const $oe=Bt(zoe,"vtkWebGPUCubeAxesActor");uo("vtkCubeAxesActor",$oe);const{DisplayLocation:p3}=FR;function joe(t,e){e.classHierarchy.push("vtkProperty2D"),t.setDisplayLocationToBackground=()=>t.setDisplayLocation(p3.BACKGROUND),t.setDisplayLocationToForeground=()=>t.setDisplayLocation(p3.FOREGROUND),t.setRepresentationToWireframe=()=>t.setRepresentation(kr.WIREFRAME),t.setRepresentationToSurface=()=>t.setRepresentation(kr.SURFACE),t.setRepresentationToPoints=()=>t.setRepresentation(kr.POINTS),t.getRepresentationAsString=()=>W.enumToString(kr,e.representation)}const Hoe={color:[1,1,1],opacity:1,pointSize:1,lineWidth:1,representation:kr.SURFACE,displayLocation:p3.FOREGROUND};function zR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hoe,r),W.obj(t,e),W.setGet(t,e,["opacity","lineWidth","pointSize","displayLocation","representation"]),W.setGetArray(t,e,["color"],3),joe(t,e)}const Koe=W.newInstance(zR,"vtkProperty2D");var qoe={newInstance:Koe,extend:zR,...FR};const{BufferUsage:Sr,PrimitiveTypes:ri}=_0,{Representation:Vg}=x0,{ScalarMode:Fg}=oa,{CoordinateSystem:Xoe}=xh,{DisplayLocation:Yoe}=qoe,Joe=` //VTK::Renderer::Dec //VTK::Color::Dec @@ -3503,7 +3503,7 @@ fn main( return output; } -`,Hoe=` +`,Zoe=` struct PBRData { diffuse: vec3, specular: vec3, @@ -3779,15 +3779,15 @@ fn main( return output; } -`;function f_(t){return t.indexOf("edge")>=0}function Koe(t,e){e.classHierarchy.push("vtkWebGPUCellArrayMapper"),t.buildPass=r=>{r&&(e.is2D?(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.forceZValue=!0):(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.forceZValue=!1),e.coordinateSystem=e.WebGPUActor.getRenderable().getCoordinateSystem(),e.useRendererMatrix=e.coordinateSystem!==zoe.DISPLAY,e.WebGPURenderer=e.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.device=e.WebGPURenderWindow.getDevice())},t.translucentPass=r=>{r&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.opaquePass=r=>{r&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.updateUBO=()=>{var o;const n=e.WebGPUActor.getRenderable().getProperty(),i=e.UBO.getSendTime();if(t.getMTime()>i||n.getMTime()>i||e.renderable.getMTime()>i){const a=e.WebGPUActor.getKeyMatrices(e.WebGPURenderer);if(e.UBO.setArray("BCWCMatrix",a.bcwc),e.UBO.setArray("BCSCMatrix",a.bcsc),e.UBO.setArray("MCWCNormals",a.normalMatrix),e.is2D){e.UBO.setValue("ZValue",e.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===$oe.FOREGROUND?1:0);const l=n.getColorByReference();e.UBO.setValue("AmbientIntensity",1),e.UBO.setArray("DiffuseColor",[l[0],l[1],l[2],1]),e.UBO.setValue("DiffuseIntensity",0),e.UBO.setValue("SpecularIntensity",0)}else{let l=n.getAmbientColorByReference();e.UBO.setValue("AmbientIntensity",n.getAmbient()),e.UBO.setArray("AmbientColor",[l[0],l[1],l[2],1]),e.UBO.setValue("DiffuseIntensity",n.getDiffuse()),l=n.getDiffuseColorByReference(),e.UBO.setArray("DiffuseColor",[l[0],l[1],l[2],1]),e.UBO.setValue("Roughness",n.getRoughness()),e.UBO.setValue("BaseIOR",n.getBaseIOR()),e.UBO.setValue("Metallic",n.getMetallic()),e.UBO.setValue("NormalStrength",n.getNormalStrength()),e.UBO.setValue("Emission",n.getEmission()),e.UBO.setValue("SpecularIntensity",n.getSpecular()),l=n.getSpecularColorByReference(),e.UBO.setArray("SpecularColor",[l[0],l[1],l[2],1])}const s=(o=n.getEdgeColorByReference)==null?void 0:o.call(n);s&&e.UBO.setArray("EdgeColor",[s[0],s[1],s[2],1]),e.UBO.setValue("LineWidth",n.getLineWidth()),e.UBO.setValue("Opacity",n.getOpacity()),e.UBO.setValue("PropID",e.WebGPUActor.getPropID());const c=e.WebGPURenderWindow.getDevice();e.UBO.sendIfNeeded(c)}},t.haveWideLines=()=>{const r=e.WebGPUActor.getRenderable(),n=r.getProperty().getRepresentation();return r.getProperty().getLineWidth()<=1||e.primitiveType===ri.Verts?!1:e.primitiveType===ri.Triangles||e.primitiveType===ri.TriangleStrips?n===Ag.WIREFRAME:!0},t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position"),o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");let a=o.getCode();e.useRendererMatrix?(a=Qt.substitute(a,"//VTK::Position::Impl",[" var pCoord: vec4 = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,e.forceZValue&&(a=Qt.substitute(a,"//VTK::Position::Impl",["pCoord = vec4(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(a=Qt.substitute(a,"//VTK::Position::Impl",[" var pCoord: vec4 = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,e.forceZValue&&(a=Qt.substitute(a,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),t.haveWideLines()&&(o.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),a=Qt.substitute(a,"//VTK::Position::Impl",[" var tmpPos: vec4 = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),a=Qt.substitute(a,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderNormal=(r,n,i)=>{const o=i.getBuffer("normalMC"),a=e.WebGPUActor.getRenderable();if(o){const s=n.getShaderDescription("vertex");s.hasOutput("normalVC")||s.addOutput("vec3","normalVC",o.getArrayInformation()[0].interpolation),s.hasOutput("tangentVC")||s.addOutput("vec3","tangentVC",o.getArrayInformation()[0].interpolation),s.hasOutput("bitangentVC")||s.addOutput("vec3","bitangentVC",o.getArrayInformation()[0].interpolation);let c=s.getCode();c=Qt.substitute(c,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3 = cross(output.normalVC, vec3(0, 0, 1));"," var c2: vec3 = cross(output.normalVC, vec3(0, 1, 0));"," var tangent: vec3 = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,s.setCode(c);const l=n.getShaderDescription("fragment");c=l.getCode(),a.getProperty().getNormalTexture()?c=Qt.substitute(c,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3 = input.tangentVC;"," var bitangent: vec3 = input.bitangentVC;"," var TCVCMatrix: mat3x3 = mat3x3("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3 = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:c=Qt.substitute(c,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,l.setCode(c)}},e.shaderReplacements.set("replaceShaderNormal",t.replaceShaderNormal),t.replaceShaderLight=(r,n,i)=>{var l;if(r.includes("sel"))return;const o=n.getShaderDescription("vertex");o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");const a=e.WebGPURenderer.getRenderable(),s=n.getShaderDescription("fragment");let c=s.getCode();if(c.includes("var normal:")&&e.useRendererMatrix&&!f_(r)&&!e.is2D&&!r.includes("sel")){const f=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3 = vec3(input.vertexVC.xyz);"," var V: vec3 = mix(normalize(-fragPos), vec3(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3 = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3 = vec3(0.);"," var specular: vec3 = vec3(0.);"," var emission: vec3 = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2 = vec2(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1.0, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3 = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3 = mix(vec3(fresnel), fresnelMetallic, metallic);"," kS = min(vec3(1.0), kS);"," var kD: vec3 = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3 = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4(PBR, mapperUBO.Opacity);"];(l=a.getEnvironmentTexture())!=null&&l.getImageLoaded()&&f.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3 = (transpose(rendererUBO.WCVCNormals) * vec4(normal, 1.)).xyz;"," var diffuseCoords: vec2 = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3 = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4(VreflN, 1.)).xyz;"," var specularCoords: vec2 = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3 = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3 = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4(diffuseIBLContribution*kD, 0);"),c=Qt.substitute(c,"//VTK::Light::Impl",f).result,s.setCode(c)}else c=Qt.substitute(c,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,s.setCode(c)},e.shaderReplacements.set("replaceShaderLight",t.replaceShaderLight),t.replaceShaderColor=(r,n,i)=>{if(f_(r)){const l=n.getShaderDescription("fragment");let f=l.getCode();f=Qt.substitute(f,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,l.setCode(f);return}const o=i.getBuffer("colorVI");if(!o)return;const a=n.getShaderDescription("vertex");a.addOutput("vec4","color",o.getArrayInformation()[0].interpolation);let s=a.getCode();s=Qt.substitute(s,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,a.setCode(s);const c=n.getShaderDescription("fragment");s=c.getCode(),s=Qt.substitute(s,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderColor",t.replaceShaderColor),t.replaceShaderTCoord=(r,n,i)=>{var h,g,p,v,x,m,y,w,C,S,T,_,E,D,b,I,R,M,L,A;if(!i.hasAttribute("tcoord"))return;const o=n.getShaderDescription("vertex"),a=i.getBuffer("tcoord"),s=kr.getNumberOfComponentsFromBufferFormat(a.getArrayInformation()[0].format);let c=o.getCode();o.addOutput(`vec${s}`,"tcoordVS"),c=Qt.substitute(c,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,o.setCode(c);const l=n.getShaderDescription("fragment");c=l.getCode();const f=e.WebGPUActor.getRenderable(),u=G=>G?G.getDimensionality()===s:!1,d=[];((p=(g=(h=f.getProperty()).getDiffuseTexture)==null?void 0:g.call(h))!=null&&p.getImageLoaded()||f.getTextures()[0]||e.colorTexture)&&(u((x=(v=f.getProperty()).getDiffuseTexture)==null?void 0:x.call(v))||u(f.getTextures()[0])||u(e.colorTexture))&&d.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),(w=(y=(m=f.getProperty()).getRoughnessTexture)==null?void 0:y.call(m))!=null&&w.getImageLoaded()&&u(f.getProperty().getRoughnessTexture())&&d.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),(T=(S=(C=f.getProperty()).getMetallicTexture)==null?void 0:S.call(C))!=null&&T.getImageLoaded()&&u(f.getProperty().getMetallicTexture())&&d.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),(D=(E=(_=f.getProperty()).getNormalTexture)==null?void 0:E.call(_))!=null&&D.getImageLoaded()&&u(f.getProperty().getNormalTexture())&&d.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),(R=(I=(b=f.getProperty()).getAmbientOcclusionTexture)==null?void 0:I.call(b))!=null&&R.getImageLoaded()&&u(f.getProperty().getAmbientOcclusionTexture())&&d.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),(A=(L=(M=f.getProperty()).getEmissionTexture)==null?void 0:L.call(M))!=null&&A.getImageLoaded()&&u(f.getProperty().getEmissionTexture())&&d.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),c=Qt.substitute(c,"//VTK::TCoord::Impl",d).result,l.setCode(c)},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.replaceShaderSelect=(r,n,i)=>{if(r.includes("sel")){const o=n.getShaderDescription("fragment");let a=o.getCode();a=Qt.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,o.setCode(a)}},e.shaderReplacements.set("replaceShaderSelect",t.replaceShaderSelect),t.getUsage=(r,n)=>r===Ag.POINTS||n===ri.Points?Tr.Verts:n===ri.Lines?Tr.Lines:r===Ag.WIREFRAME?n===ri.Triangles?Tr.LinesFromTriangles:Tr.LinesFromStrips:n===ri.Triangles?Tr.Triangles:n===ri.TriangleStrips?Tr.Strips:n===ri.TriangleEdges?Tr.LinesFromTriangles:Tr.LinesFromStrips,t.getHashFromUsage=r=>`pt${r}`,t.getTopologyFromUsage=r=>{switch(r){case Tr.Triangles:return"triangle-list";case Tr.Verts:return"point-list";case Tr.Lines:default:return"line-list"}},t.buildVertexInput=()=>{var p,v;const r=e.currentInput,n=e.cellArray,i=e.primitiveType;let a=e.WebGPUActor.getRenderable().getProperty().getRepresentation();const s=e.WebGPURenderWindow.getDevice();let c=!1;i===ri.TriangleEdges&&(c=!0,a=Ag.WIREFRAME);const l=e.vertexInput,f=r.getPoints();let u;if(n){const x={hash:`R${a}P${i}${n.getMTime()}`,usage:Tr.Index,cells:n,numberOfPoints:f.getNumberOfPoints(),primitiveType:i,representation:a};u=s.getBufferManager().getBuffer(x),l.setIndexBuffer(u)}else l.setIndexBuffer(null);if(f){const x=e.WebGPUActor.getBufferShift(e.WebGPURenderer),m={hash:`${f.getMTime()}I${u.getMTime()}${x.join()}float32x4`,usage:Tr.PointArray,format:"float32x4",dataArray:f,indexBuffer:u,shift:x,packExtra:!0},y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["vertexBC"])}else l.removeBufferIfPresent("vertexBC");const d=t.getUsage(a,i);if(e._usesCellNormals=!1,!e.is2D&&(d===Tr.Triangles||d===Tr.Strips)){const x=r.getPointData().getNormals(),m={format:"snorm8x4",indexBuffer:u,packExtra:!0,shift:0,scale:127};if(x){m.hash=`${x.getMTime()}I${u.getMTime()}snorm8x4`,m.dataArray=x,m.usage=Tr.PointArray;const y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["normalMC"])}else if(i===ri.Triangles){e._usesCellNormals=!0,m.hash=`PFN${f.getMTime()}I${u.getMTime()}snorm8x4`,m.dataArray=f,m.cells=n,m.usage=Tr.NormalsFromPoints;const y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["normalMC"])}else l.removeBufferIfPresent("normalMC")}else l.removeBufferIfPresent("normalMC");let h=!1;if(e.renderable.getScalarVisibility()){const x=e.renderable.getColorMapColors();if(x&&!c){const m=e.renderable.getScalarMode();let y=!1;(m===kg.USE_CELL_DATA||m===kg.USE_CELL_FIELD_DATA||m===kg.USE_FIELD_DATA||!r.getPointData().getScalars())&&m!==kg.USE_POINT_FIELD_DATA&&x&&(y=!0);const w={usage:Tr.PointArray,format:"unorm8x4",hash:`${y}${x.getMTime()}I${u.getMTime()}unorm8x4`,dataArray:x,indexBuffer:u,cellData:y,cellOffset:0},C=s.getBufferManager().getBuffer(w);l.addBuffer(C,["colorVI"]),h=!0}}h||l.removeBufferIfPresent("colorVI");let g=null;if((v=(p=e.renderable).getInterpolateScalarsBeforeMapping)!=null&&v.call(p)&&e.renderable.getColorCoordinates()?g=e.renderable.getColorCoordinates():g=r.getPointData().getTCoords(),g&&!c){const x=s.getBufferManager().getBufferForPointArray(g,l.getIndexBuffer());l.addBuffer(x,["tcoord"])}else l.removeBufferIfPresent("tcoord")},t.updateTextures=()=>{var c,l,f,u,d,h,g,p,v,x,m,y,w,C,S;const r=[],n=[],i=(l=(c=e.renderable).getColorTextureMap)==null?void 0:l.call(c);i&&(e.colorTexture||(e.colorTexture=_h.newInstance({label:"polyDataColor"})),e.colorTexture.setInputData(i),n.push(["Diffuse",e.colorTexture]));const o=e.WebGPUActor.getRenderable(),a=e.WebGPURenderer.getRenderable(),s=[];if((u=(f=o.getProperty()).getDiffuseTexture)!=null&&u.call(f)){const T=["Diffuse",o.getProperty().getDiffuseTexture()];s.push(T)}if(o.getTextures()[0]){const T=["Diffuse",o.getTextures()[0]];s.push(T)}if(e.colorTexture){const T=["Diffuse",e.colorTexture];s.push(T)}if((h=(d=o.getProperty()).getRoughnessTexture)!=null&&h.call(d)){const T=["Roughness",o.getProperty().getRoughnessTexture()];s.push(T)}if((p=(g=o.getProperty()).getMetallicTexture)!=null&&p.call(g)){const T=["Metallic",o.getProperty().getMetallicTexture()];s.push(T)}if((x=(v=o.getProperty()).getNormalTexture)!=null&&x.call(v)){const T=["Normal",o.getProperty().getNormalTexture()];s.push(T)}if((y=(m=o.getProperty()).getAmbientOcclusionTexture)!=null&&y.call(m)){const T=["AmbientOcclusion",o.getProperty().getAmbientOcclusionTexture()];s.push(T)}if((C=(w=o.getProperty()).getEmissionTexture)!=null&&C.call(w)){const T=["Emission",o.getProperty().getEmissionTexture()];s.push(T)}if((S=a.getEnvironmentTexture)!=null&&S.call(a)){const T=["Environment",a.getEnvironmentTexture()];s.push(T)}for(let T=0;T=0;T--)r[T]||(e.textures.splice(T,1),e.textureViews.splice(T,1))},t.computePipelineHash=()=>{let r=`pd${e.useRendererMatrix?"r":""}${e.forceZValue?"z":""}`;if(e.primitiveType===ri.TriangleEdges||e.primitiveType===ri.TriangleStripEdges)r+="edge";else{if(e.vertexInput.hasAttribute("normalMC")&&(r+="n"),e.vertexInput.hasAttribute("colorVI")&&(r+="c"),e.vertexInput.hasAttribute("tcoord")){const i=e.vertexInput.getBuffer("tcoord"),o=kr.getNumberOfComponentsFromBufferFormat(i.getArrayInformation()[0].format);r+=`t${o}`}e.textures.length&&(r+=`tx${e.textures.length}`)}e._usesCellNormals&&(r+="cn"),e.SSBO&&(r+="ssbo");const n=t.getHashFromUsage(e.usage);r+=n,r+=e.renderEncoder.getPipelineHash(),e.pipelineHash=r},t.updateBuffers=()=>{e.primitiveType!==ri.TriangleEdges&&e.primitiveType!==ri.TriangleStripEdges&&t.updateTextures();const r=e.WebGPUActor.getRenderable(),n=r.getProperty().getRepresentation();e.usage=t.getUsage(n,e.primitiveType),t.buildVertexInput();const i=e.vertexInput.getBuffer("vertexBC");if(t.setNumberOfVertices(i.getSizeInBytes()/i.getStrideInBytes()),t.setTopology(t.getTopologyFromUsage(e.usage)),t.updateUBO(),t.haveWideLines()){const o=r.getProperty();t.setNumberOfInstances(Math.ceil(o.getLineWidth()*2))}else t.setNumberOfInstances(1)}}const qoe={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function UR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qoe,r),fM.extend(t,e,r),e.fragmentShaderTemplate=Hoe,e.vertexShaderTemplate=joe,e._tmpMat3=oo(new Float64Array(9)),e._tmpMat4=qe(new Float64Array(16)),e.UBO=_u.newInstance({label:"mapperUBO"}),e.UBO.addEntry("BCWCMatrix","mat4x4"),e.UBO.addEntry("BCSCMatrix","mat4x4"),e.UBO.addEntry("MCWCNormals","mat4x4"),e.UBO.addEntry("AmbientColor","vec4"),e.UBO.addEntry("DiffuseColor","vec4"),e.UBO.addEntry("EdgeColor","vec4"),e.UBO.addEntry("SpecularColor","vec4"),e.UBO.addEntry("AmbientIntensity","f32"),e.UBO.addEntry("DiffuseIntensity","f32"),e.UBO.addEntry("Roughness","f32"),e.UBO.addEntry("Metallic","f32"),e.UBO.addEntry("Ambient","f32"),e.UBO.addEntry("Normal","f32"),e.UBO.addEntry("Emission","f32"),e.UBO.addEntry("NormalStrength","f32"),e.UBO.addEntry("BaseIOR","f32"),e.UBO.addEntry("SpecularIntensity","f32"),e.UBO.addEntry("LineWidth","f32"),e.UBO.addEntry("Opacity","f32"),e.UBO.addEntry("ZValue","f32"),e.UBO.addEntry("PropID","u32"),e.UBO.addEntry("ClipNear","f32"),e.UBO.addEntry("ClipFar","f32"),e.UBO.addEntry("Time","u32"),Jn(t,e,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),e.textures=[],Koe(t,e)}const Xoe=Bt(UR,"vtkWebGPUCellArrayMapper");var BR={newInstance:Xoe,extend:UR};const{PrimitiveTypes:Vg}=C0;function Yoe(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper"),t.createCellArrayMapper=()=>BR.newInstance(),t.buildPass=r=>{if(r){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.renderable.getStatic()||e.renderable.update();const n=e.renderable.getInputData();e.renderable.mapScalars(n,1),t.updateCellArrayMappers(n)}},t.updateCellArrayMappers=r=>{const n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],i=[];let o=0;for(let a=Vg.Points;a<=Vg.Triangles;a++)if(n[a].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(a),s.setRenderable(e.renderable),o+=n[a].getNumberOfCells(),i.push(s)}else e.primitives[a]=null;if(e.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(let a=Vg.TriangleEdges;a<=Vg.TriangleStripEdges;a++)if(n[a-2].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a-2]),s.setCurrentInput(r),s.setCellOffset(e.primitives[a-2].getCellOffset()),s.setPrimitiveType(a),s.setRenderable(e.renderable),i.push(s)}else e.primitives[a]=null;t.prepareNodes(),t.addMissingChildren(i),t.removeUnusedNodes()}}const Joe={primitives:null};function Zoe(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Joe,r),nn.extend(t,e,r),e.primitives=[],Yoe(t,e)}const Qoe=Bt(Zoe,"vtkWebGPUPolyDataMapper");lo("vtkMapper",Qoe);const{PrimitiveTypes:d_}=C0;function eae(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),t.createCellArrayMapper=()=>BR.newInstance(),t.buildPass=r=>{if(r){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.renderable.getStatic()||e.renderable.update();const n=e.renderable.getInputData();e.renderable.mapScalars(n,1),t.updateCellArrayMappers(n)}},t.updateCellArrayMappers=r=>{const n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],i=[];let o=0;for(let a=d_.Points;a<=d_.Triangles;a++)if(n[a].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(a),s.setRenderable(e.renderable),s.setIs2D(!0),o+=n[a].getNumberOfCells(),i.push(s)}else e.primitives[a]=null;t.prepareNodes(),t.addMissingChildren(i),t.removeUnusedNodes()}}function tae(t){return{primitives:[],...t}}function nae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,tae(r)),nn.extend(t,e,r),e.primitives=[],eae(t,e)}const rae=Bt(nae,"vtkWebGPUPolyDataMapper2D");lo("vtkMapper2D",rae);function iae(t,e){e.classHierarchy.push("vtkWebGPUScalarBarActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,o=e.WebGPURenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e.WebGPURenderWindow.getRenderable())}}}const oae={};function aae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oae,r),nn.extend(t,e,r),e.scalarBarActorHelper=VR.newScalarBarActorHelper(),iae(t,e)}const sae=Bt(aae,"vtkWebGPUScalarBarActor");lo("vtkScalarBarActor",sae);function cae(t,e){e.classHierarchy.push("vtkWebGPUTextureView"),t.create=(r,n)=>{e.texture=r,e.options=n,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=r.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const i=kr.getDetailsFromTextureFormat(e.texture.getFormat());e.bindGroupLayoutEntry.texture.sampleType=i.sampleType},t.createFromTextureHandle=(r,n)=>{e.texture=null,e.options=n,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=r,e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const i=kr.getDetailsFromTextureFormat(n.format);e.bindGroupLayoutEntry.texture.sampleType=i.sampleType,e.bindGroupTime.modified()},t.getBindGroupEntry=()=>({resource:t.getHandle()}),t.getShaderCode=(r,n)=>{let i="f32";e.bindGroupLayoutEntry.texture.sampleType==="sint"?i="i32":e.bindGroupLayoutEntry.texture.sampleType==="uint"&&(i="u32");let o=`@binding(${r}) @group(${n}) var ${e.label}: texture_${e.options.dimension}<${i}>;`;return e.bindGroupLayoutEntry.texture.sampleType==="depth"&&(o=`@binding(${r}) @group(${n}) var ${e.label}: texture_depth_${e.options.dimension};`),o},t.addSampler=(r,n)=>{const i=xM.newInstance({label:`${e.label}Sampler`});i.create(r,n),t.setSampler(i)},t.getBindGroupTime=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.bindGroupTime),t.getHandle=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.handle)}const lae={texture:null,handle:null,sampler:null,label:null};function GR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,lae,r),W.obj(t,e),e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","texture"]),W.setGet(t,e,["bindGroupLayoutEntry","label","sampler"]),cae(t,e)}const uae=W.newInstance(GR);var fae={newInstance:uae,extend:GR};const{BufferUsage:h_}=C0;function dae(t,e){e.classHierarchy.push("vtkWebGPUTexture"),t.create=(r,n)=>{e.device=r,e.width=n.width,e.height=n.height,e.depth=n.depth?n.depth:1;const i=e.depth===1?"2d":"3d";e.format=n.format?n.format:"rgba8unorm",e.mipLevel=n.mipLevel?n.mipLevel:0,e.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label,dimension:i,mipLevelCount:e.mipLevel+1})},t.assignFromHandle=(r,n,i)=>{e.device=r,e.handle=n,e.width=i.width,e.height=i.height,e.depth=i.depth?i.depth:1,e.format=i.format?i.format:"rgba8unorm",e.usage=i.usage?i.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},t.writeImageData=r=>{let n=[];if(r.canvas){e.device.getHandle().queue.copyExternalImageToTexture({source:r.canvas,flipY:r.flip},{texture:e.handle,premultipliedAlpha:!0},[e.width,e.height,e.depth]),e.ready=!0;return}r.jsImageData&&!r.nativeArray&&(r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format="rgba8unorm",r.flip=!0,r.nativeArray=r.jsImageData.data);const i=kr.getDetailsFromTextureFormat(e.format);let o=e.width*i.stride;const a=(c,l,f)=>{const u=c.length/(l*f)*c.BYTES_PER_ELEMENT,d=i.elementSize===2&&i.sampleType==="float";if(d||u%256){const h=c,g=u/h.BYTES_PER_ELEMENT,p=i.elementSize,v=256*Math.floor((g*p+255)/256),x=v/p,m=W.newTypedArray(d?"Uint16Array":h.constructor.name,x*l*f);for(let y=0;y{const r=kr.getDetailsFromTextureFormat(e.format);return r.elementSize===2&&r.sampleType==="float"?1:255},t.getNumberOfComponents=()=>kr.getDetailsFromTextureFormat(e.format).numComponents,t.getDimensionality=()=>{let r=0;return e.width>1&&r++,e.height>1&&r++,e.depth>1&&r++,r},t.resizeToMatch=r=>{(r.getWidth()!==e.width||r.getHeight()!==e.height||r.getDepth()!==e.depth)&&(e.width=r.getWidth(),e.height=r.getHeight(),e.depth=r.getDepth(),e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.resize=function(r,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;(r!==e.width||n!==e.height||i!==e.depth)&&(e.width=r,e.height=n,e.depth=i,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.createView=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.dimension||(n.dimension=e.depth===1?"2d":"3d");const i=fae.newInstance({label:r});return i.create(t,n),i}}const hae={device:null,handle:null,buffer:null,ready:!1,label:null};function gae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,hae,r),W.obj(t,e),W.get(t,e,["handle","ready","width","height","depth","format","usage"]),W.setGet(t,e,["device","label"]),dae(t,e)}W.newInstance(gae);function pae(t){if(!t||t.data.length===0)throw new Error("Invalid contour set data, see publicContourSetData type for more info");if(!t.id)throw new Error("Invalid contour set data, each contour set must have an id");if(!t.data||!Array.isArray(t.data))throw new Error("Invalid contour set data, each contour set must have an array of contours");t.data.forEach(e=>{if(!e.points||!Array.isArray(e.points))throw new Error("Invalid contour set data, each contour must have an array of points");e.points.forEach(r=>{if(!r||!Array.isArray(r)||r.length!==3)throw new Error("Invalid contour set data, each point must be an array of length 3")})})}class g_{constructor(e){const{points:r,type:n}=e.data;this.id=e.id,this._points=r,this._type=n,this._color=e.color,this._segmentIndex=e.segmentIndex,this.sizeInBytes=this._getSizeInBytes()}_getSizeInBytes(){return this._points.length*3}get points(){return this._points}set points(e){this._points=e}get color(){return this._color}set color(e){this._color=e}get type(){return this._type}set type(e){this._type=e}get segmentIndex(){return this._segmentIndex}set segmentIndex(e){this._segmentIndex=e}get flatPointsArray(){return this._points.map(e=>[...e]).flat()}}class mae{constructor(e){this._color=[200,0,0],this.id=e.id,this._contours=[],this._color=e.color??this._color,this.frameOfReferenceUID=e.frameOfReferenceUID,this._segmentIndex=e.segmentIndex,this._createEachContour(e.data),this.sizeInBytes=this._getSizeInBytes()}_createEachContour(e){e.forEach(r=>{const{points:n,type:i,color:o}=r,a=new g_({id:`${this.id}-segment-${this._segmentIndex}`,data:{points:n,type:i,segmentIndex:this._segmentIndex,color:o??this._color},segmentIndex:this._segmentIndex,color:o??this._color});this._contours.push(a)}),this._updateContourSetCentroid()}_updateContourSetCentroid(){const e=this.totalNumberOfPoints,r=this.flatPointsArray,n=r.reduce((a,s)=>[a[0]+s[0],a[1]+s[1],a[2]+s[2]],[0,0,0]),i=[n[0]/e,n[1]/e,n[2]/e],o=r.reduce((a,s)=>{const c=this._getDistance(i,s),l=this._getDistance(i,a);return ce+r.sizeInBytes,0)}_getDistance(e,r){return Math.sqrt((e[0]-r[0])**2+(e[1]-r[1])**2+(e[2]-r[2])**2)}get centroid(){return this._centroid}get segmentIndex(){return this._segmentIndex}get color(){return this._color}set color(e){this._color=e,this._contours.forEach(r=>{r instanceof g_&&(r.color=e)})}get contours(){return this._contours}get flatPointsArray(){return this._contours.flatMap(e=>e.points)}get numberOfContours(){return this._contours.length}get totalNumberOfPoints(){return this._contours.reduce((e,r)=>e+r.points.length,0)}get numberOfPointsArray(){return this._contours.map(e=>e.points.length)}getPointsInContour(e){return this._contours[e].points}getNumberOfPointsInAContour(e){return this.getPointsInContour(e).length}}function vae(t,e){pae(e);const r=new mae({id:e.id,data:e.data,color:e.color,frameOfReferenceUID:e.frameOfReferenceUID,segmentIndex:e.segmentIndex??1});return{id:t,type:ol.CONTOUR,data:r,sizeInBytes:r.sizeInBytes}}function yae(t){var e,r;if(!t.id)throw new Error("Surface must have an id");if(((e=t.points)==null?void 0:e.length)===0)throw new Error("Surface must have non-empty points array");if(((r=t.polys)==null?void 0:r.length)===0)throw new Error("Surface must have non-empty polys array");if(!t.frameOfReferenceUID)throw new Error("Surface must have a frameOfReferenceUID")}function xae(t,e){yae(e);const r=new Xne({id:e.id,points:e.points,polys:e.polys,color:e.color,frameOfReferenceUID:e.frameOfReferenceUID,segmentIndex:e.segmentIndex??1});return{id:t,type:ol.SURFACE,data:r,sizeInBytes:r.sizeInBytes}}function wae(t,e){if(t===void 0)throw new Error("createAndCacheGeometry: parameter geometryId must not be undefined");let r=Te.getGeometry(t);if(r)return r;if(e.type===ol.CONTOUR)r=vae(t,e.geometryData);else if(e.type===ol.SURFACE)r=xae(t,e.geometryData);else throw new Error("Unknown geometry type");return Te.putGeometrySync(t,r),r}class WR{constructor(e){this.getGroupKey=r=>{if(typeof r=="string")return r;const i=ne(r);if(!i)throw new Error("Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID");return i.FrameOfReferenceUID},this._imageVolumeModifiedHandler=r=>{const n=r.detail,{FrameOfReferenceUID:i}=n,a=this.annotations[i];a&&Object.keys(a).forEach(s=>{a[s].forEach(l=>{l.invalidated!==void 0&&(l.invalidated=!0)})})},this.getFramesOfReference=()=>Object.keys(this.annotations),this.getAnnotations=(r,n)=>{const i=this.annotations;return i[r]?n?i[r][n]?i[r][n]:[]:i[r]:[]},this.getAnnotation=r=>{const n=this.annotations;for(const i in n){const o=n[i];for(const a in o){const s=o[a];for(const c of s)if(r===c.annotationUID)return c}}},this.getNumberOfAnnotations=(r,n)=>{const i=this.getAnnotations(r,n);if(!i.length)return 0;if(n)return i.length;let o=0;for(const a in i)o+=i[a].length;return o},this.addAnnotation=(r,n)=>{const{metadata:i}=r,{FrameOfReferenceUID:o,toolName:a}=i;n=n||o;const s=this.annotations;let c=s[n];c||(s[n]={},c=s[n]);let l=c[a];l||(c[a]=[],l=c[a]),this.preprocessingFn&&(r=this.preprocessingFn(r)),l.push(r)},this.removeAnnotation=r=>{const{annotations:n}=this;for(const i in n){const o=n[i];for(const a in o){const s=o[a],c=s.findIndex(l=>l.annotationUID===r);c!==-1&&(s.splice(c,1),s.length===0&&delete o[a])}Object.keys(o).length===0&&delete n[i]}},this.removeAnnotations=(r,n)=>{const i=this.annotations,o=[];if(!i[r])return o;if(n){const a=i[r][n];for(const s of a)this.removeAnnotation(s.annotationUID),o.push(s)}else for(const a in i[r]){const s=i[r][a];for(const c of s)this.removeAnnotation(c.annotationUID),o.push(c)}return o},this.saveAnnotations=(r,n)=>{const i=this.annotations;if(r&&n){const o=i[r];if(!o)return;const a=o[n];return structuredClone(a)}else if(r){const o=i[r];return structuredClone(o)}return structuredClone(i)},this.restoreAnnotations=(r,n,i)=>{const o=this.annotations;if(n&&i){let a=o[n];a||(o[n]={},a=o[n]),a[i]=r}else n?o[n]=r:this.annotations=structuredClone(r)},this.getAllAnnotations=()=>Object.values(this.annotations).map(r=>Object.values(r)).flat(2),this.getNumberOfAllAnnotations=()=>{let r=0;const n=this.annotations;for(const i in n){const o=n[i];for(const a in o){const s=o[a];r+=s.length}}return r},this.removeAllAnnotations=()=>{const r=[];for(const n of this.getAllAnnotations())this.removeAnnotation(n.annotationUID),r.push(n);return r},e||(e=wn()),this.annotations={},this.uid=e,Ce.addEventListener(Se.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}setPreprocessingFn(e){this.preprocessingFn=e}}const yC=new WR("DEFAULT");function Mn(t){return yC.getAnnotation(t)}var ca;(function(t){t[t.Primary=1]="Primary",t[t.Secondary=2]="Secondary",t[t.Primary_And_Secondary=3]="Primary_And_Secondary",t[t.Auxiliary=4]="Auxiliary",t[t.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",t[t.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",t[t.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",t[t.Fourth_Button=8]="Fourth_Button",t[t.Fifth_Button=16]="Fifth_Button",t[t.Wheel=524288]="Wheel",t[t.Wheel_Primary=524289]="Wheel_Primary"})(ca||(ca={}));var vr;(function(t){t[t.Shift=16]="Shift",t[t.Ctrl=17]="Ctrl",t[t.Alt=18]="Alt",t[t.Meta=91]="Meta",t[t.ShiftCtrl=1617]="ShiftCtrl",t[t.ShiftAlt=1618]="ShiftAlt",t[t.ShiftMeta=1691]="ShiftMeta",t[t.CtrlAlt=1718]="CtrlAlt",t[t.CtrlMeta=1791]="CtrlMeta",t[t.AltMeta=1891]="AltMeta"})(vr||(vr={}));var Ft;(function(t){t.Active="Active",t.Passive="Passive",t.Enabled="Enabled",t.Disabled="Disabled"})(Ft||(Ft={}));var h3;(function(t){t.Default="",t.Highlighted="Highlighted",t.Selected="Selected",t.Locked="Locked",t.AutoGenerated="AutoGenerated"})(h3||(h3={}));const Ia=h3;var F;(function(t){t.TOOL_ACTIVATED="CORNERSTONE_TOOLS_TOOL_ACTIVATED",t.TOOLGROUP_VIEWPORT_ADDED="CORNERSTONE_TOOLS_TOOLGROUP_VIEWPORT_ADDED",t.TOOLGROUP_VIEWPORT_REMOVED="CORNERSTONE_TOOLS_TOOLGROUP_VIEWPORT_REMOVED",t.TOOL_MODE_CHANGED="CORNERSTONE_TOOLS_TOOL_MODE_CHANGED",t.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",t.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",t.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",t.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",t.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",t.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",t.ANNOTATION_VISIBILITY_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_VISIBILITY_CHANGE",t.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",t.ANNOTATION_INTERPOLATION_PROCESS_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_INTERPOLATION_PROCESS_COMPLETED",t.INTERPOLATED_ANNOTATIONS_REMOVED="CORNERSTONE_TOOLS_INTERPOLATED_ANNOTATIONS_REMOVED",t.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",t.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",t.SEGMENTATION_REPRESENTATION_ADDED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_ADDED",t.SEGMENTATION_ADDED="CORNERSTONE_TOOLS_SEGMENTATION_ADDED",t.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",t.SEGMENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",t.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",t.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",t.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",t.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",t.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",t.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",t.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",t.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",t.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",t.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",t.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",t.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL",t.TOUCH_START="CORNERSTONE_TOOLS_TOUCH_START",t.TOUCH_START_ACTIVATE="CORNERSTONE_TOOLS_TOUCH_START_ACTIVATE",t.TOUCH_PRESS="CORNERSTONE_TOOLS_TOUCH_PRESS",t.TOUCH_DRAG="CORNERSTONE_TOOLS_TOUCH_DRAG",t.TOUCH_END="CORNERSTONE_TOOLS_TOUCH_END",t.TOUCH_TAP="CORNERSTONE_TOOLS_TAP",t.TOUCH_SWIPE="CORNERSTONE_TOOLS_SWIPE"})(F||(F={}));var g3;(function(t){t.Labelmap="Labelmap",t.Contour="Contour",t.Surface="Surface"})(g3||(g3={}));const Ge=g3;var Gc;(function(t){t.UP="UP",t.DOWN="DOWN",t.LEFT="LEFT",t.RIGHT="RIGHT"})(Gc||(Gc={}));var p3;(function(t){t.OnInteractionStart="onInteractionStart",t.OnInteractionEnd="onInteractionEnd",t.Preview="preview",t.RejectPreview="rejectPreview",t.AcceptPreview="acceptPreview",t.Fill="fill",t.StrategyFunction="strategyFunction",t.CreateIsInThreshold="createIsInThreshold",t.Initialize="initialize",t.INTERNAL_setValue="setValue",t.ComputeInnerCircleRadius="computeInnerCircleRadius"})(p3||(p3={}));const it=p3;var Bn;(function(t){t.Interaction="Interaction",t.HandlesUpdated="HandlesUpdated",t.StatsUpdated="StatsUpdated",t.InitialSetup="InitialSetup",t.Completed="Completed",t.InterpolationUpdated="InterpolationUpdated"})(Bn||(Bn={}));var m3;(function(t){t.POLYSEG_CONTOUR_TO_LABELMAP="Converting Contour to Labelmap",t.POLYSEG_SURFACE_TO_LABELMAP="Converting Surfaces to Labelmap",t.POLYSEG_CONTOUR_TO_SURFACE="Converting Contour to Surface",t.POLYSEG_LABELMAP_TO_SURFACE="Converting Labelmap to Surface",t.SURFACE_CLIPPING="Clipping Surfaces"})(m3||(m3={}));const _0=m3,zR=Object.freeze(Object.defineProperty({__proto__:null,AnnotationStyleStates:Ia,ChangeTypes:Bn,Events:F,get KeyboardBindings(){return vr},get MouseBindings(){return ca},SegmentationRepresentations:Ge,StrategyCallbacks:it,get Swipe(){return Gc},ToolModes:Ft,WorkerTypes:_0},Symbol.toStringTag,{value:"Module"}));let xC={};function Cae(){xC={}}const p_={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:xC,enabledElements:[],handleRadius:6};let me={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:xC,enabledElements:[],handleRadius:6};function Sae(){Cae(),me={...structuredClone({...p_,svgNodeCache:{}}),svgNodeCache:{...p_.svgNodeCache}}}var Tae="Expected a function",$R="__lodash_hash_undefined__",jR=1/0,_ae="[object Function]",Eae="[object GeneratorFunction]",Dae="[object Symbol]",bae=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Iae=/^\w*$/,Oae=/^\./,Mae=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rae=/[\\^$.*+?()[\]{}|]/g,Lae=/\\(\\)?/g,Nae=/^\[object .+?Constructor\]$/,Pae=typeof br=="object"&&br&&br.Object===Object&&br,Aae=typeof self=="object"&&self&&self.Object===Object&&self,wC=Pae||Aae||Function("return this")();function kae(t,e){return t==null?void 0:t[e]}function Vae(t){var e=!1;if(t!=null&&typeof t.toString!="function")try{e=!!(t+"")}catch{}return e}var Fae=Array.prototype,Uae=Function.prototype,HR=Object.prototype,Kv=wC["__core-js_shared__"],m_=function(){var t=/[^.]+$/.exec(Kv&&Kv.keys&&Kv.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),KR=Uae.toString,CC=HR.hasOwnProperty,qR=HR.toString,Bae=RegExp("^"+KR.call(CC).replace(Rae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),v_=wC.Symbol,Gae=Fae.splice,Wae=XR(wC,"Map"),Bd=XR(Object,"create"),y_=v_?v_.prototype:void 0,x_=y_?y_.toString:void 0;function fl(t){var e=-1,r=t?t.length:0;for(this.clear();++e-1}function Zae(t,e){var r=this.__data__,n=u2(r,t);return n<0?r.push([t,e]):r[n][1]=e,this}E0.prototype.clear=qae;E0.prototype.delete=Xae;E0.prototype.get=Yae;E0.prototype.has=Jae;E0.prototype.set=Zae;function Tl(t){var e=-1,r=t?t.length:0;for(this.clear();++e=0&&n>=0&&(r>0||n>0)&&(i+=` ${r} ${n}`),this.addFallbackStyleProperty(i)}static getUniqueInstanceName(e){return`${e}-${rR(Gd)}`}}const Mt={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:` +`;function g_(t){return t.indexOf("edge")>=0}function Qoe(t,e){e.classHierarchy.push("vtkWebGPUCellArrayMapper"),t.buildPass=r=>{r&&(e.is2D?(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.forceZValue=!0):(e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.forceZValue=!1),e.coordinateSystem=e.WebGPUActor.getRenderable().getCoordinateSystem(),e.useRendererMatrix=e.coordinateSystem!==Xoe.DISPLAY,e.WebGPURenderer=e.WebGPUActor.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.device=e.WebGPURenderWindow.getDevice())},t.translucentPass=r=>{r&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.opaquePass=r=>{r&&(t.prepareToDraw(e.WebGPURenderer.getRenderEncoder()),e.renderEncoder.registerDrawCallback(e.pipeline,t.draw))},t.updateUBO=()=>{var o;const n=e.WebGPUActor.getRenderable().getProperty(),i=e.UBO.getSendTime();if(t.getMTime()>i||n.getMTime()>i||e.renderable.getMTime()>i){const a=e.WebGPUActor.getKeyMatrices(e.WebGPURenderer);if(e.UBO.setArray("BCWCMatrix",a.bcwc),e.UBO.setArray("BCSCMatrix",a.bcsc),e.UBO.setArray("MCWCNormals",a.normalMatrix),e.is2D){e.UBO.setValue("ZValue",e.WebGPUActor.getRenderable().getProperty().getDisplayLocation()===Yoe.FOREGROUND?1:0);const l=n.getColorByReference();e.UBO.setValue("AmbientIntensity",1),e.UBO.setArray("DiffuseColor",[l[0],l[1],l[2],1]),e.UBO.setValue("DiffuseIntensity",0),e.UBO.setValue("SpecularIntensity",0)}else{let l=n.getAmbientColorByReference();e.UBO.setValue("AmbientIntensity",n.getAmbient()),e.UBO.setArray("AmbientColor",[l[0],l[1],l[2],1]),e.UBO.setValue("DiffuseIntensity",n.getDiffuse()),l=n.getDiffuseColorByReference(),e.UBO.setArray("DiffuseColor",[l[0],l[1],l[2],1]),e.UBO.setValue("Roughness",n.getRoughness()),e.UBO.setValue("BaseIOR",n.getBaseIOR()),e.UBO.setValue("Metallic",n.getMetallic()),e.UBO.setValue("NormalStrength",n.getNormalStrength()),e.UBO.setValue("Emission",n.getEmission()),e.UBO.setValue("SpecularIntensity",n.getSpecular()),l=n.getSpecularColorByReference(),e.UBO.setArray("SpecularColor",[l[0],l[1],l[2],1])}const s=(o=n.getEdgeColorByReference)==null?void 0:o.call(n);s&&e.UBO.setArray("EdgeColor",[s[0],s[1],s[2],1]),e.UBO.setValue("LineWidth",n.getLineWidth()),e.UBO.setValue("Opacity",n.getOpacity()),e.UBO.setValue("PropID",e.WebGPUActor.getPropID());const c=e.WebGPURenderWindow.getDevice();e.UBO.sendIfNeeded(c)}},t.haveWideLines=()=>{const r=e.WebGPUActor.getRenderable(),n=r.getProperty().getRepresentation();return r.getProperty().getLineWidth()<=1||e.primitiveType===ri.Verts?!1:e.primitiveType===ri.Triangles||e.primitiveType===ri.TriangleStrips?n===Vg.WIREFRAME:!0},t.replaceShaderPosition=(r,n,i)=>{const o=n.getShaderDescription("vertex");o.addBuiltinOutput("vec4","@builtin(position) Position"),o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");let a=o.getCode();e.useRendererMatrix?(a=Zt.substitute(a,"//VTK::Position::Impl",[" var pCoord: vec4 = rendererUBO.SCPCMatrix*mapperUBO.BCSCMatrix*vertexBC;"," output.vertexVC = rendererUBO.SCVCMatrix * mapperUBO.BCSCMatrix * vec4(vertexBC.xyz, 1.0);","//VTK::Position::Impl"]).result,e.forceZValue&&(a=Zt.substitute(a,"//VTK::Position::Impl",["pCoord = vec4(pCoord.xyz/pCoord.w, 1.0);","pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)):(a=Zt.substitute(a,"//VTK::Position::Impl",[" var pCoord: vec4 = mapperUBO.BCSCMatrix*vertexBC;"," pCoord.x = 2.0* pCoord.x / rendererUBO.viewportSize.x - 1.0;"," pCoord.y = 2.0* pCoord.y / rendererUBO.viewportSize.y - 1.0;"," pCoord.z = 0.5 - 0.5 * pCoord.z;","//VTK::Position::Impl"]).result,e.forceZValue&&(a=Zt.substitute(a,"//VTK::Position::Impl",[" pCoord.z = mapperUBO.ZValue;","//VTK::Position::Impl"]).result)),t.haveWideLines()&&(o.addBuiltinInput("u32","@builtin(instance_index) instanceIndex"),a=Zt.substitute(a,"//VTK::Position::Impl",[" var tmpPos: vec4 = pCoord;"," var numSteps: f32 = ceil(mapperUBO.LineWidth - 1.0);"," var offset: f32 = (mapperUBO.LineWidth - 1.0) * (f32(input.instanceIndex / 2u) - numSteps/2.0) / numSteps;"," var tmpPos2: vec3 = tmpPos.xyz / tmpPos.w;"," tmpPos2.x = tmpPos2.x + 2.0 * (f32(input.instanceIndex) % 2.0) * offset / rendererUBO.viewportSize.x;"," tmpPos2.y = tmpPos2.y + 2.0 * (f32(input.instanceIndex + 1u) % 2.0) * offset / rendererUBO.viewportSize.y;"," tmpPos2.z = min(1.0, tmpPos2.z + 0.00001);"," pCoord = vec4(tmpPos2.xyz * tmpPos.w, tmpPos.w);","//VTK::Position::Impl"]).result),a=Zt.substitute(a,"//VTK::Position::Impl",[" output.Position = pCoord;"]).result,o.setCode(a)},e.shaderReplacements.set("replaceShaderPosition",t.replaceShaderPosition),t.replaceShaderNormal=(r,n,i)=>{const o=i.getBuffer("normalMC"),a=e.WebGPUActor.getRenderable();if(o){const s=n.getShaderDescription("vertex");s.hasOutput("normalVC")||s.addOutput("vec3","normalVC",o.getArrayInformation()[0].interpolation),s.hasOutput("tangentVC")||s.addOutput("vec3","tangentVC",o.getArrayInformation()[0].interpolation),s.hasOutput("bitangentVC")||s.addOutput("vec3","bitangentVC",o.getArrayInformation()[0].interpolation);let c=s.getCode();c=Zt.substitute(c,"//VTK::Normal::Impl",[" output.normalVC = normalize((rendererUBO.WCVCNormals * mapperUBO.MCWCNormals * normalMC).xyz);"," var c1: vec3 = cross(output.normalVC, vec3(0, 0, 1));"," var c2: vec3 = cross(output.normalVC, vec3(0, 1, 0));"," var tangent: vec3 = mix(c1, c2, distance(c1, c2));"," output.tangentVC = normalize(tangent);"," output.bitangentVC = normalize(cross(output.normalVC, tangent));"]).result,s.setCode(c);const l=n.getShaderDescription("fragment");c=l.getCode(),a.getProperty().getNormalTexture()?c=Zt.substitute(c,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," var tangent: vec3 = input.tangentVC;"," var bitangent: vec3 = input.bitangentVC;"," var TCVCMatrix: mat3x3 = mat3x3("," tangent.x, bitangent.x, normal.x,"," tangent.y, bitangent.y, normal.y,"," tangent.z, bitangent.z, normal.z,"," );"," var mappedNormal: vec3 = TCVCMatrix * (_normalMap.xyz * 2 - 1);"," normal = mix(normal, mappedNormal, mapperUBO.NormalStrength);"," normal = normalize(normal);"]).result:c=Zt.substitute(c,"//VTK::Normal::Impl",[" var normal: vec3 = input.normalVC;"," if (!input.frontFacing) { normal = -normal; }"," normal = normalize(normal);"]).result,l.setCode(c)}},e.shaderReplacements.set("replaceShaderNormal",t.replaceShaderNormal),t.replaceShaderLight=(r,n,i)=>{var l;if(r.includes("sel"))return;const o=n.getShaderDescription("vertex");o.hasOutput("vertexVC")||o.addOutput("vec4","vertexVC");const a=e.WebGPURenderer.getRenderable(),s=n.getShaderDescription("fragment");let c=s.getCode();if(c.includes("var normal:")&&e.useRendererMatrix&&!g_(r)&&!e.is2D&&!r.includes("sel")){const f=[" var pi: f32 = 3.14159265359;"," var fragPos: vec3 = vec3(input.vertexVC.xyz);"," var V: vec3 = mix(normalize(-fragPos), vec3(0, 0, 1), f32(rendererUBO.cameraParallel)); // View Vector"," var baseColor: vec3 = _diffuseMap.rgb * diffuseColor.rgb;"," var roughness: f32 = max(0.000001, mapperUBO.Roughness * _roughnessMap.r);"," var metallic: f32 = mapperUBO.Metallic * _metallicMap.r;"," var alpha: f32 = roughness*roughness;"," var ior: f32 = mapperUBO.BaseIOR;"," var k: f32 = alpha*alpha / 2;"," var diffuse: vec3 = vec3(0.);"," var specular: vec3 = vec3(0.);"," var emission: vec3 = _emissionMap.rgb * mapperUBO.Emission;"," {"," var i: i32 = 0;"," loop {"," if !(i < rendererUBO.LightCount) { break; }"," switch (i32(rendererLightSSBO.values[i].LightData.x)) {"," // Point Light"," case 0 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var calculated: PBRData = calcPointLight(normal, V, fragPos, ior, roughness, metallic, pos, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Directional light"," case 1 {"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var calculated: PBRData = calcDirectionalLight(normal, V, ior, roughness, metallic, dir, color, baseColor); // diffuseColor.rgb needs to be fixed with a more dynamic diffuse color"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," // Spot Light"," case 2 {"," var color: vec3 = rendererLightSSBO.values[i].LightColor.rgb * rendererLightSSBO.values[i].LightColor.w;"," var pos: vec3 = (rendererLightSSBO.values[i].LightPos).xyz;"," var dir: vec3 = (rendererUBO.WCVCNormals * vec4(normalize(rendererLightSSBO.values[i].LightDir.xyz), 0.)).xyz;"," dir = normalize(dir);"," var cones: vec2 = vec2(rendererLightSSBO.values[i].LightData.y, rendererLightSSBO.values[i].LightData.z);"," var calculated: PBRData = calcSpotLight(normal, V, fragPos, ior, roughness, metallic, pos, dir, cones, color, baseColor);"," diffuse += max(vec3(0), calculated.diffuse);"," specular += max(vec3(0), calculated.specular);"," }"," default { continue; }"," }"," continuing { i++; }"," }"," }"," var fresnel: f32 = schlickFresnelIOR(V, normal, ior, k); // Fresnel"," fresnel = min(1.0, fresnel);"," // This could be controlled with its own variable (that isnt base color) for better artistic control"," var fresnelMetallic: vec3 = schlickFresnelRGB(V, normal, baseColor); // Fresnel for metal, takes color into account"," var kS: vec3 = mix(vec3(fresnel), fresnelMetallic, metallic);"," kS = min(vec3(1.0), kS);"," var kD: vec3 = (1.0 - kS) * (1.0 - metallic);"," var PBR: vec3 = mapperUBO.DiffuseIntensity*kD*diffuse + kS*specular;"," PBR += emission;"," computedColor = vec4(PBR, mapperUBO.Opacity);"];(l=a.getEnvironmentTexture())!=null&&l.getImageLoaded()&&f.push(" // To get diffuse IBL, the texture is sampled with normals in worldspace"," var diffuseIBLCoords: vec3 = (transpose(rendererUBO.WCVCNormals) * vec4(normal, 1.)).xyz;"," var diffuseCoords: vec2 = vecToRectCoord(diffuseIBLCoords);"," // To get specular IBL, the texture is sampled as the worldspace reflection between the normal and view vectors"," // Reflections are first calculated in viewspace, then converted to worldspace to sample the environment"," var VreflN: vec3 = normalize(reflect(-V, normal));"," var reflectionIBLCoords = (transpose(rendererUBO.WCVCNormals) * vec4(VreflN, 1.)).xyz;"," var specularCoords: vec2 = vecToRectCoord(reflectionIBLCoords);"," var diffuseIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, diffuseCoords, rendererUBO.MaxEnvironmentMipLevel);"," var level = roughness * rendererUBO.MaxEnvironmentMipLevel;"," var specularIBL = textureSampleLevel(EnvironmentTexture, EnvironmentTextureSampler, specularCoords, level);"," var specularIBLContribution: vec3 = specularIBL.rgb*rendererUBO.BackgroundSpecularStrength;"," computedColor += vec4(specularIBLContribution*kS, 0);"," var diffuseIBLContribution: vec3 = diffuseIBL.rgb*rendererUBO.BackgroundDiffuseStrength;"," diffuseIBLContribution *= baseColor * _ambientOcclusionMap.rgb;"," computedColor += vec4(diffuseIBLContribution*kD, 0);"),c=Zt.substitute(c,"//VTK::Light::Impl",f).result,s.setCode(c)}else c=Zt.substitute(c,"//VTK::Light::Impl",[" var diffuse: vec3 = diffuseColor.rgb;"," var specular: vec3 = mapperUBO.SpecularColor.rgb * mapperUBO.SpecularColor.a;"," computedColor = vec4(diffuse * _diffuseMap.rgb, mapperUBO.Opacity);"]).result,s.setCode(c)},e.shaderReplacements.set("replaceShaderLight",t.replaceShaderLight),t.replaceShaderColor=(r,n,i)=>{if(g_(r)){const l=n.getShaderDescription("fragment");let f=l.getCode();f=Zt.substitute(f,"//VTK::Color::Impl",["ambientColor = mapperUBO.EdgeColor;","diffuseColor = mapperUBO.EdgeColor;"]).result,l.setCode(f);return}const o=i.getBuffer("colorVI");if(!o)return;const a=n.getShaderDescription("vertex");a.addOutput("vec4","color",o.getArrayInformation()[0].interpolation);let s=a.getCode();s=Zt.substitute(s,"//VTK::Color::Impl",[" output.color = colorVI;"]).result,a.setCode(s);const c=n.getShaderDescription("fragment");s=c.getCode(),s=Zt.substitute(s,"//VTK::Color::Impl",["ambientColor = input.color;","diffuseColor = input.color;","opacity = mapperUBO.Opacity * input.color.a;"]).result,c.setCode(s)},e.shaderReplacements.set("replaceShaderColor",t.replaceShaderColor),t.replaceShaderTCoord=(r,n,i)=>{var h,g,p,v,x,m,y,w,C,S,T,_,E,D,b,I,R,M,L,A;if(!i.hasAttribute("tcoord"))return;const o=n.getShaderDescription("vertex"),a=i.getBuffer("tcoord"),s=Ar.getNumberOfComponentsFromBufferFormat(a.getArrayInformation()[0].format);let c=o.getCode();o.addOutput(`vec${s}`,"tcoordVS"),c=Zt.substitute(c,"//VTK::TCoord::Impl",[" output.tcoordVS = tcoord;"]).result,o.setCode(c);const l=n.getShaderDescription("fragment");c=l.getCode();const f=e.WebGPUActor.getRenderable(),u=G=>G?G.getDimensionality()===s:!1,d=[];((p=(g=(h=f.getProperty()).getDiffuseTexture)==null?void 0:g.call(h))!=null&&p.getImageLoaded()||f.getTextures()[0]||e.colorTexture)&&(u((x=(v=f.getProperty()).getDiffuseTexture)==null?void 0:x.call(v))||u(f.getTextures()[0])||u(e.colorTexture))&&d.push("_diffuseMap = textureSample(DiffuseTexture, DiffuseTextureSampler, input.tcoordVS);"),(w=(y=(m=f.getProperty()).getRoughnessTexture)==null?void 0:y.call(m))!=null&&w.getImageLoaded()&&u(f.getProperty().getRoughnessTexture())&&d.push("_roughnessMap = textureSample(RoughnessTexture, RoughnessTextureSampler, input.tcoordVS);"),(T=(S=(C=f.getProperty()).getMetallicTexture)==null?void 0:S.call(C))!=null&&T.getImageLoaded()&&u(f.getProperty().getMetallicTexture())&&d.push("_metallicMap = textureSample(MetallicTexture, MetallicTextureSampler, input.tcoordVS);"),(D=(E=(_=f.getProperty()).getNormalTexture)==null?void 0:E.call(_))!=null&&D.getImageLoaded()&&u(f.getProperty().getNormalTexture())&&d.push("_normalMap = textureSample(NormalTexture, NormalTextureSampler, input.tcoordVS);"),(R=(I=(b=f.getProperty()).getAmbientOcclusionTexture)==null?void 0:I.call(b))!=null&&R.getImageLoaded()&&u(f.getProperty().getAmbientOcclusionTexture())&&d.push("_ambientOcclusionMap = textureSample(AmbientOcclusionTexture, AmbientOcclusionTextureSampler, input.tcoordVS);"),(A=(L=(M=f.getProperty()).getEmissionTexture)==null?void 0:L.call(M))!=null&&A.getImageLoaded()&&u(f.getProperty().getEmissionTexture())&&d.push("_emissionMap = textureSample(EmissionTexture, EmissionTextureSampler, input.tcoordVS);"),c=Zt.substitute(c,"//VTK::TCoord::Impl",d).result,l.setCode(c)},e.shaderReplacements.set("replaceShaderTCoord",t.replaceShaderTCoord),t.replaceShaderSelect=(r,n,i)=>{if(r.includes("sel")){const o=n.getShaderDescription("fragment");let a=o.getCode();a=Zt.substitute(a,"//VTK::Select::Impl",[" var compositeID: u32 = 0u;"]).result,o.setCode(a)}},e.shaderReplacements.set("replaceShaderSelect",t.replaceShaderSelect),t.getUsage=(r,n)=>r===Vg.POINTS||n===ri.Points?Sr.Verts:n===ri.Lines?Sr.Lines:r===Vg.WIREFRAME?n===ri.Triangles?Sr.LinesFromTriangles:Sr.LinesFromStrips:n===ri.Triangles?Sr.Triangles:n===ri.TriangleStrips?Sr.Strips:n===ri.TriangleEdges?Sr.LinesFromTriangles:Sr.LinesFromStrips,t.getHashFromUsage=r=>`pt${r}`,t.getTopologyFromUsage=r=>{switch(r){case Sr.Triangles:return"triangle-list";case Sr.Verts:return"point-list";case Sr.Lines:default:return"line-list"}},t.buildVertexInput=()=>{var p,v;const r=e.currentInput,n=e.cellArray,i=e.primitiveType;let a=e.WebGPUActor.getRenderable().getProperty().getRepresentation();const s=e.WebGPURenderWindow.getDevice();let c=!1;i===ri.TriangleEdges&&(c=!0,a=Vg.WIREFRAME);const l=e.vertexInput,f=r.getPoints();let u;if(n){const x={hash:`R${a}P${i}${n.getMTime()}`,usage:Sr.Index,cells:n,numberOfPoints:f.getNumberOfPoints(),primitiveType:i,representation:a};u=s.getBufferManager().getBuffer(x),l.setIndexBuffer(u)}else l.setIndexBuffer(null);if(f){const x=e.WebGPUActor.getBufferShift(e.WebGPURenderer),m={hash:`${f.getMTime()}I${u.getMTime()}${x.join()}float32x4`,usage:Sr.PointArray,format:"float32x4",dataArray:f,indexBuffer:u,shift:x,packExtra:!0},y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["vertexBC"])}else l.removeBufferIfPresent("vertexBC");const d=t.getUsage(a,i);if(e._usesCellNormals=!1,!e.is2D&&(d===Sr.Triangles||d===Sr.Strips)){const x=r.getPointData().getNormals(),m={format:"snorm8x4",indexBuffer:u,packExtra:!0,shift:0,scale:127};if(x){m.hash=`${x.getMTime()}I${u.getMTime()}snorm8x4`,m.dataArray=x,m.usage=Sr.PointArray;const y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["normalMC"])}else if(i===ri.Triangles){e._usesCellNormals=!0,m.hash=`PFN${f.getMTime()}I${u.getMTime()}snorm8x4`,m.dataArray=f,m.cells=n,m.usage=Sr.NormalsFromPoints;const y=s.getBufferManager().getBuffer(m);l.addBuffer(y,["normalMC"])}else l.removeBufferIfPresent("normalMC")}else l.removeBufferIfPresent("normalMC");let h=!1;if(e.renderable.getScalarVisibility()){const x=e.renderable.getColorMapColors();if(x&&!c){const m=e.renderable.getScalarMode();let y=!1;(m===Fg.USE_CELL_DATA||m===Fg.USE_CELL_FIELD_DATA||m===Fg.USE_FIELD_DATA||!r.getPointData().getScalars())&&m!==Fg.USE_POINT_FIELD_DATA&&x&&(y=!0);const w={usage:Sr.PointArray,format:"unorm8x4",hash:`${y}${x.getMTime()}I${u.getMTime()}unorm8x4`,dataArray:x,indexBuffer:u,cellData:y,cellOffset:0},C=s.getBufferManager().getBuffer(w);l.addBuffer(C,["colorVI"]),h=!0}}h||l.removeBufferIfPresent("colorVI");let g=null;if((v=(p=e.renderable).getInterpolateScalarsBeforeMapping)!=null&&v.call(p)&&e.renderable.getColorCoordinates()?g=e.renderable.getColorCoordinates():g=r.getPointData().getTCoords(),g&&!c){const x=s.getBufferManager().getBufferForPointArray(g,l.getIndexBuffer());l.addBuffer(x,["tcoord"])}else l.removeBufferIfPresent("tcoord")},t.updateTextures=()=>{var c,l,f,u,d,h,g,p,v,x,m,y,w,C,S;const r=[],n=[],i=(l=(c=e.renderable).getColorTextureMap)==null?void 0:l.call(c);i&&(e.colorTexture||(e.colorTexture=Dh.newInstance({label:"polyDataColor"})),e.colorTexture.setInputData(i),n.push(["Diffuse",e.colorTexture]));const o=e.WebGPUActor.getRenderable(),a=e.WebGPURenderer.getRenderable(),s=[];if((u=(f=o.getProperty()).getDiffuseTexture)!=null&&u.call(f)){const T=["Diffuse",o.getProperty().getDiffuseTexture()];s.push(T)}if(o.getTextures()[0]){const T=["Diffuse",o.getTextures()[0]];s.push(T)}if(e.colorTexture){const T=["Diffuse",e.colorTexture];s.push(T)}if((h=(d=o.getProperty()).getRoughnessTexture)!=null&&h.call(d)){const T=["Roughness",o.getProperty().getRoughnessTexture()];s.push(T)}if((p=(g=o.getProperty()).getMetallicTexture)!=null&&p.call(g)){const T=["Metallic",o.getProperty().getMetallicTexture()];s.push(T)}if((x=(v=o.getProperty()).getNormalTexture)!=null&&x.call(v)){const T=["Normal",o.getProperty().getNormalTexture()];s.push(T)}if((y=(m=o.getProperty()).getAmbientOcclusionTexture)!=null&&y.call(m)){const T=["AmbientOcclusion",o.getProperty().getAmbientOcclusionTexture()];s.push(T)}if((C=(w=o.getProperty()).getEmissionTexture)!=null&&C.call(w)){const T=["Emission",o.getProperty().getEmissionTexture()];s.push(T)}if((S=a.getEnvironmentTexture)!=null&&S.call(a)){const T=["Environment",a.getEnvironmentTexture()];s.push(T)}for(let T=0;T=0;T--)r[T]||(e.textures.splice(T,1),e.textureViews.splice(T,1))},t.computePipelineHash=()=>{let r=`pd${e.useRendererMatrix?"r":""}${e.forceZValue?"z":""}`;if(e.primitiveType===ri.TriangleEdges||e.primitiveType===ri.TriangleStripEdges)r+="edge";else{if(e.vertexInput.hasAttribute("normalMC")&&(r+="n"),e.vertexInput.hasAttribute("colorVI")&&(r+="c"),e.vertexInput.hasAttribute("tcoord")){const i=e.vertexInput.getBuffer("tcoord"),o=Ar.getNumberOfComponentsFromBufferFormat(i.getArrayInformation()[0].format);r+=`t${o}`}e.textures.length&&(r+=`tx${e.textures.length}`)}e._usesCellNormals&&(r+="cn"),e.SSBO&&(r+="ssbo");const n=t.getHashFromUsage(e.usage);r+=n,r+=e.renderEncoder.getPipelineHash(),e.pipelineHash=r},t.updateBuffers=()=>{e.primitiveType!==ri.TriangleEdges&&e.primitiveType!==ri.TriangleStripEdges&&t.updateTextures();const r=e.WebGPUActor.getRenderable(),n=r.getProperty().getRepresentation();e.usage=t.getUsage(n,e.primitiveType),t.buildVertexInput();const i=e.vertexInput.getBuffer("vertexBC");if(t.setNumberOfVertices(i.getSizeInBytes()/i.getStrideInBytes()),t.setTopology(t.getTopologyFromUsage(e.usage)),t.updateUBO(),t.haveWideLines()){const o=r.getProperty();t.setNumberOfInstances(Math.ceil(o.getLineWidth()*2))}else t.setNumberOfInstances(1)}}const eae={is2D:!1,cellArray:null,currentInput:null,cellOffset:0,primitiveType:0,colorTexture:null,renderEncoder:null,textures:null};function $R(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eae,r),mM.extend(t,e,r),e.fragmentShaderTemplate=Zoe,e.vertexShaderTemplate=Joe,e._tmpMat3=ao(new Float64Array(9)),e._tmpMat4=qe(new Float64Array(16)),e.UBO=bu.newInstance({label:"mapperUBO"}),e.UBO.addEntry("BCWCMatrix","mat4x4"),e.UBO.addEntry("BCSCMatrix","mat4x4"),e.UBO.addEntry("MCWCNormals","mat4x4"),e.UBO.addEntry("AmbientColor","vec4"),e.UBO.addEntry("DiffuseColor","vec4"),e.UBO.addEntry("EdgeColor","vec4"),e.UBO.addEntry("SpecularColor","vec4"),e.UBO.addEntry("AmbientIntensity","f32"),e.UBO.addEntry("DiffuseIntensity","f32"),e.UBO.addEntry("Roughness","f32"),e.UBO.addEntry("Metallic","f32"),e.UBO.addEntry("Ambient","f32"),e.UBO.addEntry("Normal","f32"),e.UBO.addEntry("Emission","f32"),e.UBO.addEntry("NormalStrength","f32"),e.UBO.addEntry("BaseIOR","f32"),e.UBO.addEntry("SpecularIntensity","f32"),e.UBO.addEntry("LineWidth","f32"),e.UBO.addEntry("Opacity","f32"),e.UBO.addEntry("ZValue","f32"),e.UBO.addEntry("PropID","u32"),e.UBO.addEntry("ClipNear","f32"),e.UBO.addEntry("ClipFar","f32"),e.UBO.addEntry("Time","u32"),Jn(t,e,["cellArray","currentInput","cellOffset","is2D","primitiveType","renderEncoder"]),e.textures=[],Qoe(t,e)}const tae=Bt($R,"vtkWebGPUCellArrayMapper");var jR={newInstance:tae,extend:$R};const{PrimitiveTypes:Ug}=_0;function nae(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper"),t.createCellArrayMapper=()=>jR.newInstance(),t.buildPass=r=>{if(r){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor"),e.renderable.getStatic()||e.renderable.update();const n=e.renderable.getInputData();e.renderable.mapScalars(n,1),t.updateCellArrayMappers(n)}},t.updateCellArrayMappers=r=>{const n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],i=[];let o=0;for(let a=Ug.Points;a<=Ug.Triangles;a++)if(n[a].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(a),s.setRenderable(e.renderable),o+=n[a].getNumberOfCells(),i.push(s)}else e.primitives[a]=null;if(e.WebGPUActor.getRenderable().getProperty().getEdgeVisibility())for(let a=Ug.TriangleEdges;a<=Ug.TriangleStripEdges;a++)if(n[a-2].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a-2]),s.setCurrentInput(r),s.setCellOffset(e.primitives[a-2].getCellOffset()),s.setPrimitiveType(a),s.setRenderable(e.renderable),i.push(s)}else e.primitives[a]=null;t.prepareNodes(),t.addMissingChildren(i),t.removeUnusedNodes()}}const rae={primitives:null};function iae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,rae,r),tn.extend(t,e,r),e.primitives=[],nae(t,e)}const oae=Bt(iae,"vtkWebGPUPolyDataMapper");uo("vtkMapper",oae);const{PrimitiveTypes:p_}=_0;function aae(t,e){e.classHierarchy.push("vtkWebGPUPolyDataMapper2D"),t.createCellArrayMapper=()=>jR.newInstance(),t.buildPass=r=>{if(r){e.WebGPUActor=t.getFirstAncestorOfType("vtkWebGPUActor2D"),e.renderable.getStatic()||e.renderable.update();const n=e.renderable.getInputData();e.renderable.mapScalars(n,1),t.updateCellArrayMappers(n)}},t.updateCellArrayMappers=r=>{const n=[r.getVerts(),r.getLines(),r.getPolys(),r.getStrips()],i=[];let o=0;for(let a=p_.Points;a<=p_.Triangles;a++)if(n[a].getNumberOfValues()>0){e.primitives[a]||(e.primitives[a]=t.createCellArrayMapper());const s=e.primitives[a];s.setCellArray(n[a]),s.setCurrentInput(r),s.setCellOffset(o),s.setPrimitiveType(a),s.setRenderable(e.renderable),s.setIs2D(!0),o+=n[a].getNumberOfCells(),i.push(s)}else e.primitives[a]=null;t.prepareNodes(),t.addMissingChildren(i),t.removeUnusedNodes()}}function sae(t){return{primitives:[],...t}}function cae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,sae(r)),tn.extend(t,e,r),e.primitives=[],aae(t,e)}const lae=Bt(cae,"vtkWebGPUPolyDataMapper2D");uo("vtkMapper2D",lae);function uae(t,e){e.classHierarchy.push("vtkWebGPUScalarBarActor"),t.buildPass=r=>{r&&(e.WebGPURenderer=t.getFirstAncestorOfType("vtkWebGPURenderer"),e.WebGPURenderWindow=e.WebGPURenderer.getParent(),e.scalarBarActorHelper.getRenderable()||e.scalarBarActorHelper.setRenderable(e.renderable),t.prepareNodes(),t.addMissingNode(e.scalarBarActorHelper.getBarActor()),t.addMissingNode(e.scalarBarActorHelper.getTmActor()),t.removeUnusedNodes())},t.opaquePass=(r,n)=>{if(r){const i=e.WebGPURenderer?e.WebGPURenderer.getRenderable().getActiveCamera():null,o=e.WebGPURenderer.getTiledSizeAndOrigin();e.scalarBarActorHelper.updateAPISpecificData([o.usize,o.vsize],i,e.WebGPURenderWindow.getRenderable())}}}const fae={};function dae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,fae,r),tn.extend(t,e,r),e.scalarBarActorHelper=WR.newScalarBarActorHelper(),uae(t,e)}const hae=Bt(dae,"vtkWebGPUScalarBarActor");uo("vtkScalarBarActor",hae);function gae(t,e){e.classHierarchy.push("vtkWebGPUTextureView"),t.create=(r,n)=>{e.texture=r,e.options=n,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=r.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const i=Ar.getDetailsFromTextureFormat(e.texture.getFormat());e.bindGroupLayoutEntry.texture.sampleType=i.sampleType},t.createFromTextureHandle=(r,n)=>{e.texture=null,e.options=n,e.options.dimension=e.options.dimension||"2d",e.options.label=e.label,e.textureHandle=r,e.handle=e.textureHandle.createView(e.options),e.bindGroupLayoutEntry.texture.viewDimension=e.options.dimension;const i=Ar.getDetailsFromTextureFormat(n.format);e.bindGroupLayoutEntry.texture.sampleType=i.sampleType,e.bindGroupTime.modified()},t.getBindGroupEntry=()=>({resource:t.getHandle()}),t.getShaderCode=(r,n)=>{let i="f32";e.bindGroupLayoutEntry.texture.sampleType==="sint"?i="i32":e.bindGroupLayoutEntry.texture.sampleType==="uint"&&(i="u32");let o=`@binding(${r}) @group(${n}) var ${e.label}: texture_${e.options.dimension}<${i}>;`;return e.bindGroupLayoutEntry.texture.sampleType==="depth"&&(o=`@binding(${r}) @group(${n}) var ${e.label}: texture_depth_${e.options.dimension};`),o},t.addSampler=(r,n)=>{const i=_M.newInstance({label:`${e.label}Sampler`});i.create(r,n),t.setSampler(i)},t.getBindGroupTime=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.bindGroupTime),t.getHandle=()=>(e.texture&&e.texture.getHandle()!==e.textureHandle&&(e.textureHandle=e.texture.getHandle(),e.handle=e.textureHandle.createView(e.options),e.bindGroupTime.modified()),e.handle)}const pae={texture:null,handle:null,sampler:null,label:null};function HR(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,pae,r),W.obj(t,e),e.bindGroupLayoutEntry={visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d"}},e.bindGroupTime={},W.obj(e.bindGroupTime,{mtime:0}),W.get(t,e,["bindGroupTime","texture"]),W.setGet(t,e,["bindGroupLayoutEntry","label","sampler"]),gae(t,e)}const mae=W.newInstance(HR);var vae={newInstance:mae,extend:HR};const{BufferUsage:m_}=_0;function yae(t,e){e.classHierarchy.push("vtkWebGPUTexture"),t.create=(r,n)=>{e.device=r,e.width=n.width,e.height=n.height,e.depth=n.depth?n.depth:1;const i=e.depth===1?"2d":"3d";e.format=n.format?n.format:"rgba8unorm",e.mipLevel=n.mipLevel?n.mipLevel:0,e.usage=n.usage?n.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label,dimension:i,mipLevelCount:e.mipLevel+1})},t.assignFromHandle=(r,n,i)=>{e.device=r,e.handle=n,e.width=i.width,e.height=i.height,e.depth=i.depth?i.depth:1,e.format=i.format?i.format:"rgba8unorm",e.usage=i.usage?i.usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST},t.writeImageData=r=>{let n=[];if(r.canvas){e.device.getHandle().queue.copyExternalImageToTexture({source:r.canvas,flipY:r.flip},{texture:e.handle,premultipliedAlpha:!0},[e.width,e.height,e.depth]),e.ready=!0;return}r.jsImageData&&!r.nativeArray&&(r.width=r.jsImageData.width,r.height=r.jsImageData.height,r.depth=1,r.format="rgba8unorm",r.flip=!0,r.nativeArray=r.jsImageData.data);const i=Ar.getDetailsFromTextureFormat(e.format);let o=e.width*i.stride;const a=(c,l,f)=>{const u=c.length/(l*f)*c.BYTES_PER_ELEMENT,d=i.elementSize===2&&i.sampleType==="float";if(d||u%256){const h=c,g=u/h.BYTES_PER_ELEMENT,p=i.elementSize,v=256*Math.floor((g*p+255)/256),x=v/p,m=W.newTypedArray(d?"Uint16Array":h.constructor.name,x*l*f);for(let y=0;y{const r=Ar.getDetailsFromTextureFormat(e.format);return r.elementSize===2&&r.sampleType==="float"?1:255},t.getNumberOfComponents=()=>Ar.getDetailsFromTextureFormat(e.format).numComponents,t.getDimensionality=()=>{let r=0;return e.width>1&&r++,e.height>1&&r++,e.depth>1&&r++,r},t.resizeToMatch=r=>{(r.getWidth()!==e.width||r.getHeight()!==e.height||r.getDepth()!==e.depth)&&(e.width=r.getWidth(),e.height=r.getHeight(),e.depth=r.getDepth(),e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.resize=function(r,n){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;(r!==e.width||n!==e.height||i!==e.depth)&&(e.width=r,e.height=n,e.depth=i,e.handle=e.device.getHandle().createTexture({size:[e.width,e.height,e.depth],format:e.format,usage:e.usage,label:e.label}))},t.createView=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};n.dimension||(n.dimension=e.depth===1?"2d":"3d");const i=vae.newInstance({label:r});return i.create(t,n),i}}const xae={device:null,handle:null,buffer:null,ready:!1,label:null};function wae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,xae,r),W.obj(t,e),W.get(t,e,["handle","ready","width","height","depth","format","usage"]),W.setGet(t,e,["device","label"]),yae(t,e)}W.newInstance(wae);function Cae(t){if(!t||t.data.length===0)throw new Error("Invalid contour set data, see publicContourSetData type for more info");if(!t.id)throw new Error("Invalid contour set data, each contour set must have an id");if(!t.data||!Array.isArray(t.data))throw new Error("Invalid contour set data, each contour set must have an array of contours");t.data.forEach(e=>{if(!e.points||!Array.isArray(e.points))throw new Error("Invalid contour set data, each contour must have an array of points");e.points.forEach(r=>{if(!r||!Array.isArray(r)||r.length!==3)throw new Error("Invalid contour set data, each point must be an array of length 3")})})}class v_{constructor(e){const{points:r,type:n}=e.data;this.id=e.id,this._points=r,this._type=n,this._color=e.color,this._segmentIndex=e.segmentIndex,this.sizeInBytes=this._getSizeInBytes()}_getSizeInBytes(){return this._points.length*3}get points(){return this._points}set points(e){this._points=e}get color(){return this._color}set color(e){this._color=e}get type(){return this._type}set type(e){this._type=e}get segmentIndex(){return this._segmentIndex}set segmentIndex(e){this._segmentIndex=e}get flatPointsArray(){return this._points.map(e=>[...e]).flat()}}class Sae{constructor(e){this._color=[200,0,0],this.id=e.id,this._contours=[],this._color=e.color??this._color,this.frameOfReferenceUID=e.frameOfReferenceUID,this._segmentIndex=e.segmentIndex,this._createEachContour(e.data),this.sizeInBytes=this._getSizeInBytes()}_createEachContour(e){e.forEach(r=>{const{points:n,type:i,color:o}=r,a=new v_({id:`${this.id}-segment-${this._segmentIndex}`,data:{points:n,type:i,segmentIndex:this._segmentIndex,color:o??this._color},segmentIndex:this._segmentIndex,color:o??this._color});this._contours.push(a)}),this._updateContourSetCentroid()}_updateContourSetCentroid(){const e=this.totalNumberOfPoints,r=this.flatPointsArray,n=r.reduce((a,s)=>[a[0]+s[0],a[1]+s[1],a[2]+s[2]],[0,0,0]),i=[n[0]/e,n[1]/e,n[2]/e],o=r.reduce((a,s)=>{const c=this._getDistance(i,s),l=this._getDistance(i,a);return ce+r.sizeInBytes,0)}_getDistance(e,r){return Math.sqrt((e[0]-r[0])**2+(e[1]-r[1])**2+(e[2]-r[2])**2)}get centroid(){return this._centroid}get segmentIndex(){return this._segmentIndex}get color(){return this._color}set color(e){this._color=e,this._contours.forEach(r=>{r instanceof v_&&(r.color=e)})}get contours(){return this._contours}get flatPointsArray(){return this._contours.flatMap(e=>e.points)}get numberOfContours(){return this._contours.length}get totalNumberOfPoints(){return this._contours.reduce((e,r)=>e+r.points.length,0)}get numberOfPointsArray(){return this._contours.map(e=>e.points.length)}getPointsInContour(e){return this._contours[e].points}getNumberOfPointsInAContour(e){return this.getPointsInContour(e).length}}function Tae(t,e){Cae(e);const r=new Sae({id:e.id,data:e.data,color:e.color,frameOfReferenceUID:e.frameOfReferenceUID,segmentIndex:e.segmentIndex??1});return{id:t,type:al.CONTOUR,data:r,sizeInBytes:r.sizeInBytes}}function _ae(t){var e,r;if(!t.id)throw new Error("Surface must have an id");if(((e=t.points)==null?void 0:e.length)===0)throw new Error("Surface must have non-empty points array");if(((r=t.polys)==null?void 0:r.length)===0)throw new Error("Surface must have non-empty polys array");if(!t.frameOfReferenceUID)throw new Error("Surface must have a frameOfReferenceUID")}function Eae(t,e){_ae(e);const r=new tre({id:e.id,points:e.points,polys:e.polys,color:e.color,frameOfReferenceUID:e.frameOfReferenceUID,segmentIndex:e.segmentIndex??1});return{id:t,type:al.SURFACE,data:r,sizeInBytes:r.sizeInBytes}}function Dae(t,e){if(t===void 0)throw new Error("createAndCacheGeometry: parameter geometryId must not be undefined");let r=_e.getGeometry(t);if(r)return r;if(e.type===al.CONTOUR)r=Tae(t,e.geometryData);else if(e.type===al.SURFACE)r=Eae(t,e.geometryData);else throw new Error("Unknown geometry type");return _e.putGeometrySync(t,r),r}class KR{constructor(e){this.getGroupKey=r=>{if(typeof r=="string")return r;const i=re(r);if(!i)throw new Error("Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID");return i.FrameOfReferenceUID},this._imageVolumeModifiedHandler=r=>{const n=r.detail,{FrameOfReferenceUID:i}=n,a=this.annotations[i];a&&Object.keys(a).forEach(s=>{a[s].forEach(l=>{l.invalidated!==void 0&&(l.invalidated=!0)})})},this.getFramesOfReference=()=>Object.keys(this.annotations),this.getAnnotations=(r,n)=>{const i=this.annotations;return i[r]?n?i[r][n]?i[r][n]:[]:i[r]:[]},this.getAnnotation=r=>{const n=this.annotations;for(const i in n){const o=n[i];for(const a in o){const s=o[a];for(const c of s)if(r===c.annotationUID)return c}}},this.getNumberOfAnnotations=(r,n)=>{const i=this.getAnnotations(r,n);if(!i.length)return 0;if(n)return i.length;let o=0;for(const a in i)o+=i[a].length;return o},this.addAnnotation=(r,n)=>{const{metadata:i}=r,{FrameOfReferenceUID:o,toolName:a}=i;n=n||o;const s=this.annotations;let c=s[n];c||(s[n]={},c=s[n]);let l=c[a];l||(c[a]=[],l=c[a]),this.preprocessingFn&&(r=this.preprocessingFn(r)),l.push(r)},this.removeAnnotation=r=>{const{annotations:n}=this;for(const i in n){const o=n[i];for(const a in o){const s=o[a],c=s.findIndex(l=>l.annotationUID===r);c!==-1&&(s.splice(c,1),s.length===0&&delete o[a])}Object.keys(o).length===0&&delete n[i]}},this.removeAnnotations=(r,n)=>{const i=this.annotations,o=[];if(!i[r])return o;if(n){const a=i[r][n];for(const s of a)this.removeAnnotation(s.annotationUID),o.push(s)}else for(const a in i[r]){const s=i[r][a];for(const c of s)this.removeAnnotation(c.annotationUID),o.push(c)}return o},this.saveAnnotations=(r,n)=>{const i=this.annotations;if(r&&n){const o=i[r];if(!o)return;const a=o[n];return structuredClone(a)}else if(r){const o=i[r];return structuredClone(o)}return structuredClone(i)},this.restoreAnnotations=(r,n,i)=>{const o=this.annotations;if(n&&i){let a=o[n];a||(o[n]={},a=o[n]),a[i]=r}else n?o[n]=r:this.annotations=structuredClone(r)},this.getAllAnnotations=()=>Object.values(this.annotations).map(r=>Object.values(r)).flat(2),this.getNumberOfAllAnnotations=()=>{let r=0;const n=this.annotations;for(const i in n){const o=n[i];for(const a in o){const s=o[a];r+=s.length}}return r},this.removeAllAnnotations=()=>{const r=[];for(const n of this.getAllAnnotations())this.removeAnnotation(n.annotationUID),r.push(n);return r},e||(e=wn()),this.annotations={},this.uid=e,Ce.addEventListener(Se.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}setPreprocessingFn(e){this.preprocessingFn=e}}const wC=new KR("DEFAULT");function On(t){return wC.getAnnotation(t)}var la;(function(t){t[t.Primary=1]="Primary",t[t.Secondary=2]="Secondary",t[t.Primary_And_Secondary=3]="Primary_And_Secondary",t[t.Auxiliary=4]="Auxiliary",t[t.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",t[t.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",t[t.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",t[t.Fourth_Button=8]="Fourth_Button",t[t.Fifth_Button=16]="Fifth_Button",t[t.Wheel=524288]="Wheel",t[t.Wheel_Primary=524289]="Wheel_Primary"})(la||(la={}));var vr;(function(t){t[t.Shift=16]="Shift",t[t.Ctrl=17]="Ctrl",t[t.Alt=18]="Alt",t[t.Meta=91]="Meta",t[t.ShiftCtrl=1617]="ShiftCtrl",t[t.ShiftAlt=1618]="ShiftAlt",t[t.ShiftMeta=1691]="ShiftMeta",t[t.CtrlAlt=1718]="CtrlAlt",t[t.CtrlMeta=1791]="CtrlMeta",t[t.AltMeta=1891]="AltMeta"})(vr||(vr={}));var Ft;(function(t){t.Active="Active",t.Passive="Passive",t.Enabled="Enabled",t.Disabled="Disabled"})(Ft||(Ft={}));var m3;(function(t){t.Default="",t.Highlighted="Highlighted",t.Selected="Selected",t.Locked="Locked",t.AutoGenerated="AutoGenerated"})(m3||(m3={}));const Oa=m3;var F;(function(t){t.TOOL_ACTIVATED="CORNERSTONE_TOOLS_TOOL_ACTIVATED",t.TOOLGROUP_VIEWPORT_ADDED="CORNERSTONE_TOOLS_TOOLGROUP_VIEWPORT_ADDED",t.TOOLGROUP_VIEWPORT_REMOVED="CORNERSTONE_TOOLS_TOOLGROUP_VIEWPORT_REMOVED",t.TOOL_MODE_CHANGED="CORNERSTONE_TOOLS_TOOL_MODE_CHANGED",t.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",t.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",t.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",t.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",t.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",t.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",t.ANNOTATION_VISIBILITY_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_VISIBILITY_CHANGE",t.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",t.ANNOTATION_INTERPOLATION_PROCESS_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_INTERPOLATION_PROCESS_COMPLETED",t.INTERPOLATED_ANNOTATIONS_REMOVED="CORNERSTONE_TOOLS_INTERPOLATED_ANNOTATIONS_REMOVED",t.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",t.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",t.SEGMENTATION_REPRESENTATION_ADDED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_ADDED",t.SEGMENTATION_ADDED="CORNERSTONE_TOOLS_SEGMENTATION_ADDED",t.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",t.SEGMENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",t.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",t.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",t.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",t.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",t.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",t.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",t.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",t.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",t.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",t.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",t.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",t.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL",t.TOUCH_START="CORNERSTONE_TOOLS_TOUCH_START",t.TOUCH_START_ACTIVATE="CORNERSTONE_TOOLS_TOUCH_START_ACTIVATE",t.TOUCH_PRESS="CORNERSTONE_TOOLS_TOUCH_PRESS",t.TOUCH_DRAG="CORNERSTONE_TOOLS_TOUCH_DRAG",t.TOUCH_END="CORNERSTONE_TOOLS_TOUCH_END",t.TOUCH_TAP="CORNERSTONE_TOOLS_TAP",t.TOUCH_SWIPE="CORNERSTONE_TOOLS_SWIPE"})(F||(F={}));var v3;(function(t){t.Labelmap="Labelmap",t.Contour="Contour",t.Surface="Surface"})(v3||(v3={}));const Ge=v3;var Wc;(function(t){t.UP="UP",t.DOWN="DOWN",t.LEFT="LEFT",t.RIGHT="RIGHT"})(Wc||(Wc={}));var y3;(function(t){t.OnInteractionStart="onInteractionStart",t.OnInteractionEnd="onInteractionEnd",t.Preview="preview",t.RejectPreview="rejectPreview",t.AcceptPreview="acceptPreview",t.Fill="fill",t.StrategyFunction="strategyFunction",t.CreateIsInThreshold="createIsInThreshold",t.Initialize="initialize",t.INTERNAL_setValue="setValue",t.ComputeInnerCircleRadius="computeInnerCircleRadius"})(y3||(y3={}));const it=y3;var Bn;(function(t){t.Interaction="Interaction",t.HandlesUpdated="HandlesUpdated",t.StatsUpdated="StatsUpdated",t.InitialSetup="InitialSetup",t.Completed="Completed",t.InterpolationUpdated="InterpolationUpdated"})(Bn||(Bn={}));var x3;(function(t){t.POLYSEG_CONTOUR_TO_LABELMAP="Converting Contour to Labelmap",t.POLYSEG_SURFACE_TO_LABELMAP="Converting Surfaces to Labelmap",t.POLYSEG_CONTOUR_TO_SURFACE="Converting Contour to Surface",t.POLYSEG_LABELMAP_TO_SURFACE="Converting Labelmap to Surface",t.SURFACE_CLIPPING="Clipping Surfaces"})(x3||(x3={}));const b0=x3,qR=Object.freeze(Object.defineProperty({__proto__:null,AnnotationStyleStates:Oa,ChangeTypes:Bn,Events:F,get KeyboardBindings(){return vr},get MouseBindings(){return la},SegmentationRepresentations:Ge,StrategyCallbacks:it,get Swipe(){return Wc},ToolModes:Ft,WorkerTypes:b0},Symbol.toStringTag,{value:"Module"}));let CC={};function bae(){CC={}}const y_={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:CC,enabledElements:[],handleRadius:6};let ve={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:CC,enabledElements:[],handleRadius:6};function Iae(){bae(),ve={...structuredClone({...y_,svgNodeCache:{}}),svgNodeCache:{...y_.svgNodeCache}}}var Oae="Expected a function",XR="__lodash_hash_undefined__",YR=1/0,Mae="[object Function]",Rae="[object GeneratorFunction]",Lae="[object Symbol]",Nae=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Pae=/^\w*$/,Aae=/^\./,kae=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vae=/[\\^$.*+?()[\]{}|]/g,Fae=/\\(\\)?/g,Uae=/^\[object .+?Constructor\]$/,Bae=typeof Dr=="object"&&Dr&&Dr.Object===Object&&Dr,Gae=typeof self=="object"&&self&&self.Object===Object&&self,SC=Bae||Gae||Function("return this")();function Wae(t,e){return t==null?void 0:t[e]}function zae(t){var e=!1;if(t!=null&&typeof t.toString!="function")try{e=!!(t+"")}catch{}return e}var $ae=Array.prototype,jae=Function.prototype,JR=Object.prototype,Xv=SC["__core-js_shared__"],x_=function(){var t=/[^.]+$/.exec(Xv&&Xv.keys&&Xv.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),ZR=jae.toString,TC=JR.hasOwnProperty,QR=JR.toString,Hae=RegExp("^"+ZR.call(TC).replace(Vae,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),w_=SC.Symbol,Kae=$ae.splice,qae=eL(SC,"Map"),Wd=eL(Object,"create"),C_=w_?w_.prototype:void 0,S_=C_?C_.toString:void 0;function dl(t){var e=-1,r=t?t.length:0;for(this.clear();++e-1}function ise(t,e){var r=this.__data__,n=d2(r,t);return n<0?r.push([t,e]):r[n][1]=e,this}I0.prototype.clear=ese;I0.prototype.delete=tse;I0.prototype.get=nse;I0.prototype.has=rse;I0.prototype.set=ise;function _l(t){var e=-1,r=t?t.length:0;for(this.clear();++e=0&&n>=0&&(r>0||n>0)&&(i+=` ${r} ${n}`),this.addFallbackStyleProperty(i)}static getUniqueInstanceName(e){return`${e}-${cR(zd)}`}}const Mt={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:` - `},pi={x:127,y:60},Fl=` + `},pi={x:127,y:60},Gl=` -`,us=` +`,fs=` -`,Fg='',Ul='',Ug='',d2={Angle:Rt(Mt,{iconContent:`',Wl='',Gg='',g2={Angle:Rt(Mt,{iconContent:``,viewBox:{x:1792,y:1792}}),ArrowAnnotate:Rt(Mt,{iconContent:` @@ -3934,73 +3934,73 @@ fn main( `,viewBox:{x:640,y:512}}),SegmentationFreeHandEraseInside:Rt(Mt,{iconContent:`${Fg} ${Fl}`,viewBox:pi}),SegmentationFreeHandFillInside:Rt(Mt,{iconContent:`${Fg} ${us}`,viewBox:pi}),SegmentationFreeHandEraseOutside:Rt(Mt,{iconContent:`${Fg} ${Fl}`,viewBox:pi}),SegmentationFreeHandFillOutside:Rt(Mt,{iconContent:`${Fg} ${us}`,viewBox:pi}),SegmentationRectangleEraseInside:Rt(Mt,{iconContent:`${Ul} ${Fl}`,viewBox:pi}),RectangleScissor:Rt(Mt,{iconContent:`${Ul} ${us}`,viewBox:pi}),"RectangleScissor.FILL_INSIDE":Rt(Mt,{iconContent:`${Ul} ${us}`,viewBox:pi}),"RectangleScissor.FILL_OUTSIDE":Rt(Mt,{iconContent:`${Ul} ${us}`,viewBox:pi}),"RectangleScissor.ERASE_OUTSIDE":Rt(Mt,{iconContent:`${Ul} ${Fl}`,viewBox:pi}),"RectangleScissor.ERASE_INSIDE":Rt(Mt,{iconContent:`${Ul} ${Fl}`,viewBox:pi}),CircleScissor:Rt(Mt,{iconContent:`${Ug} ${us}`,viewBox:pi}),"CircleScissor.FILL_INSIDE":Rt(Mt,{iconContent:`${Ug} ${us}`,viewBox:pi}),"CircleScissor.ERASE_OUTSIDE":Rt(Mt,{iconContent:`${Ug} ${Fl}`,viewBox:pi}),"CircleScissor.FILL_OUTSIDE":Rt(Mt,{iconContent:`${Ug} ${us}`,viewBox:pi})};function Rt(t,e){return Object.assign(Object.create(t),e)}function Tse(t,e,r){d2[t]=Rt(Mt,{iconContent:e,viewBox:r})}function _se(t){return d2[t]}const Ese=Object.keys(d2);class Dse{constructor(){const e={color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(209, 193, 90)",lineWidth:"1",lineDash:"",shadow:!0,textBoxVisibility:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(209, 193, 90)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0};this._initializeConfig(e)}getAnnotationToolStyles(e){return this.config.annotations&&this.config.annotations[e]}getViewportToolStyles(e){return this.config.viewports&&this.config.viewports[e]}getToolGroupToolStyles(e){return this.config.toolGroups&&this.config.toolGroups[e]}getDefaultToolStyles(){return this.config.default}setAnnotationStyles(e,r){let n=this.config.annotations;n||(this.config={...this.config,annotations:{}},n=this.config.annotations),n[e]=r}setViewportToolStyles(e,r){let n=this.config.viewports;n||(this.config={...this.config,viewports:{}},n=this.config.viewports),n[e]=r}setToolGroupToolStyles(e,r){let n=this.config.toolGroups;n||(this.config={...this.config,toolGroups:{}},n=this.config.toolGroups),n[e]=r}setDefaultToolStyles(e){this.config.default=e}getStyleProperty(e,r){const{annotationUID:n,viewportId:i,toolGroupId:o,toolName:a}=r;return this._getToolStyle(e,n,i,o,a)}_getToolStyle(e,r,n,i,o){if(r){const s=this.getAnnotationToolStyles(r);if(s&&s[e]!==void 0)return s[e]}if(n){const s=this.getViewportToolStyles(n);if(s){if(s[o]&&s[o][e]!==void 0)return s[o][e];if(s.global&&s.global[e]!==void 0)return s.global[e]}}if(i){const s=this.getToolGroupToolStyles(i);if(s){if(s[o]&&s[o][e]!==void 0)return s[o][e];if(s.global&&s.global[e]!==void 0)return s.global[e]}}const a=this.getDefaultToolStyles();if(a[o]&&a[o][e]!==void 0)return a[o][e];if(a.global&&a.global[e]!==void 0)return a.global[e]}_initializeConfig(e){const r={};for(const n in e)r[n]=e[n];this.config={default:{global:r}}}}const _C=new Dse;function bse(t,e,r){const n=[`${t}`];return e&&n.push(`${n[0]}${e}`),r&&n.push(`${n[n.length-1]}${r}`),n}function Ju(t,e,r,n){const i=bse(t,r,n);for(let o=i.length-1;o>=0;--o){const a=_C.getStyleProperty(i[o],e);if(a!==void 0)return a}}const Ise="color",Ose=Ia.Highlighted,Mse=Ft.Active;class bu extends Gd{constructor(e,r,n,i,o){super(e,r,n,i,o)}static getDefinedCursor(e,r=!1,n){n||(n=Ju(Ise,{},Ose,Mse));const i=Rse(e,r,n);let o=super.getDefinedCursor(i);if(!o){const a=_se(e);a&&(o=Lse(a,i,r,n,super.getDefinedCursor("default")),super.setDefinedCursor(i,o))}return o}}function QR(t,e){const r=Object(e),n=Object.prototype.hasOwnProperty.bind(r);return(t+"").replace(/\{\{(\w+)\}\}/g,(i,o)=>n(o)?r[o]+"":"")}function Rse(t,e,r){return`${e?"pointer":"cursor"}:${t}/${r}`}function Lse(t,e,r,n,i){const{x:o,y:a}=t.mousePoint;return new bu(Nse(t,r,{color:n}),o,a,e,i)}function Nse(t,e,r){return URL.createObjectURL(Pse(t,e,r))}function Pse(t,e,r){const n=(e?kse:Ase)(t,r);return new Blob([n],{type:"image/svg+xml"})}function Ase(t,e){const{iconContent:r,iconSize:n,viewBox:i}=t,o=` + 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z" />`,viewBox:{x:640,y:512}}),SegmentationFreeHandEraseInside:Rt(Mt,{iconContent:`${Bg} ${Gl}`,viewBox:pi}),SegmentationFreeHandFillInside:Rt(Mt,{iconContent:`${Bg} ${fs}`,viewBox:pi}),SegmentationFreeHandEraseOutside:Rt(Mt,{iconContent:`${Bg} ${Gl}`,viewBox:pi}),SegmentationFreeHandFillOutside:Rt(Mt,{iconContent:`${Bg} ${fs}`,viewBox:pi}),SegmentationRectangleEraseInside:Rt(Mt,{iconContent:`${Wl} ${Gl}`,viewBox:pi}),RectangleScissor:Rt(Mt,{iconContent:`${Wl} ${fs}`,viewBox:pi}),"RectangleScissor.FILL_INSIDE":Rt(Mt,{iconContent:`${Wl} ${fs}`,viewBox:pi}),"RectangleScissor.FILL_OUTSIDE":Rt(Mt,{iconContent:`${Wl} ${fs}`,viewBox:pi}),"RectangleScissor.ERASE_OUTSIDE":Rt(Mt,{iconContent:`${Wl} ${Gl}`,viewBox:pi}),"RectangleScissor.ERASE_INSIDE":Rt(Mt,{iconContent:`${Wl} ${Gl}`,viewBox:pi}),CircleScissor:Rt(Mt,{iconContent:`${Gg} ${fs}`,viewBox:pi}),"CircleScissor.FILL_INSIDE":Rt(Mt,{iconContent:`${Gg} ${fs}`,viewBox:pi}),"CircleScissor.ERASE_OUTSIDE":Rt(Mt,{iconContent:`${Gg} ${Gl}`,viewBox:pi}),"CircleScissor.FILL_OUTSIDE":Rt(Mt,{iconContent:`${Gg} ${fs}`,viewBox:pi})};function Rt(t,e){return Object.assign(Object.create(t),e)}function Ose(t,e,r){g2[t]=Rt(Mt,{iconContent:e,viewBox:r})}function Mse(t){return g2[t]}const Rse=Object.keys(g2);class Lse{constructor(){const e={color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(209, 193, 90)",lineWidth:"1",lineDash:"",shadow:!0,textBoxVisibility:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(209, 193, 90)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0};this._initializeConfig(e)}getAnnotationToolStyles(e){return this.config.annotations&&this.config.annotations[e]}getViewportToolStyles(e){return this.config.viewports&&this.config.viewports[e]}getToolGroupToolStyles(e){return this.config.toolGroups&&this.config.toolGroups[e]}getDefaultToolStyles(){return this.config.default}setAnnotationStyles(e,r){let n=this.config.annotations;n||(this.config={...this.config,annotations:{}},n=this.config.annotations),n[e]=r}setViewportToolStyles(e,r){let n=this.config.viewports;n||(this.config={...this.config,viewports:{}},n=this.config.viewports),n[e]=r}setToolGroupToolStyles(e,r){let n=this.config.toolGroups;n||(this.config={...this.config,toolGroups:{}},n=this.config.toolGroups),n[e]=r}setDefaultToolStyles(e){this.config.default=e}getStyleProperty(e,r){const{annotationUID:n,viewportId:i,toolGroupId:o,toolName:a}=r;return this._getToolStyle(e,n,i,o,a)}_getToolStyle(e,r,n,i,o){if(r){const s=this.getAnnotationToolStyles(r);if(s&&s[e]!==void 0)return s[e]}if(n){const s=this.getViewportToolStyles(n);if(s){if(s[o]&&s[o][e]!==void 0)return s[o][e];if(s.global&&s.global[e]!==void 0)return s.global[e]}}if(i){const s=this.getToolGroupToolStyles(i);if(s){if(s[o]&&s[o][e]!==void 0)return s[o][e];if(s.global&&s.global[e]!==void 0)return s.global[e]}}const a=this.getDefaultToolStyles();if(a[o]&&a[o][e]!==void 0)return a[o][e];if(a.global&&a.global[e]!==void 0)return a.global[e]}_initializeConfig(e){const r={};for(const n in e)r[n]=e[n];this.config={default:{global:r}}}}const DC=new Lse;function Nse(t,e,r){const n=[`${t}`];return e&&n.push(`${n[0]}${e}`),r&&n.push(`${n[n.length-1]}${r}`),n}function e0(t,e,r,n){const i=Nse(t,r,n);for(let o=i.length-1;o>=0;--o){const a=DC.getStyleProperty(i[o],e);if(a!==void 0)return a}}const Pse="color",Ase=Oa.Highlighted,kse=Ft.Active;class Mu extends zd{constructor(e,r,n,i,o){super(e,r,n,i,o)}static getDefinedCursor(e,r=!1,n){n||(n=e0(Pse,{},Ase,kse));const i=Vse(e,r,n);let o=super.getDefinedCursor(i);if(!o){const a=Mse(e);a&&(o=Fse(a,i,r,n,super.getDefinedCursor("default")),super.setDefinedCursor(i,o))}return o}}function iL(t,e){const r=Object(e),n=Object.prototype.hasOwnProperty.bind(r);return(t+"").replace(/\{\{(\w+)\}\}/g,(i,o)=>n(o)?r[o]+"":"")}function Vse(t,e,r){return`${e?"pointer":"cursor"}:${t}/${r}`}function Fse(t,e,r,n,i){const{x:o,y:a}=t.mousePoint;return new Mu(Use(t,r,{color:n}),o,a,e,i)}function Use(t,e,r){return URL.createObjectURL(Bse(t,e,r))}function Bse(t,e,r){const n=(e?Wse:Gse)(t,r);return new Blob([n],{type:"image/svg+xml"})}function Gse(t,e){const{iconContent:r,iconSize:n,viewBox:i}=t,o=` ${r} - `;return QR(o,e)}function kse(t,e){const{iconContent:r,iconSize:n,viewBox:i,mousePointerGroupString:o}=t,a=n/Math.max(i.x,i.y,1),s=16+n,c=` + `;return iL(o,e)}function Wse(t,e){const{iconContent:r,iconSize:n,viewBox:i,mousePointerGroupString:o}=t,a=n/Math.max(i.x,i.y,1),s=16+n,c=` ${o} ${r} - `;return QR(c,e)}const S_=Symbol("ElementCursorsMap");function EC(t,e){Wd(t)[0]=e,Eh(t,e)}function Eh(t,e){const r=Wd(t);r[1]=r[0],r[0]=e,t.style.cursor=(e instanceof Xr?e:Xr.getDefinedCursor("auto")).getStyleProperty()}function lt(t){Eh(t,Wd(t)[1])}function Ze(t){Eh(t,Xr.getDefinedCursor("none"))}function Wd(t){let e=Wd[S_];e instanceof WeakMap||(e=new WeakMap,Object.defineProperty(Wd,S_,{value:e}));let r=e.get(t);return r||(r=[null,null],e.set(t,r)),r}const Vse=Object.freeze(Object.defineProperty({__proto__:null,hideElementCursor:Ze,initElementCursor:EC,resetElementCursor:lt,setElementCursor:Eh},Symbol.toStringTag,{value:"Module"}));function Fse(t,e){let r=bu.getDefinedCursor(e,!0);r||(r=Xr.getDefinedCursor(e)),r||(console.log(`Cursor ${e} is not defined either as SVG or as a standard cursor.`),r=Xr.getDefinedCursor(e)),Eh(t,r)}const Use=[...Ese,...Cse],Bse=Object.freeze(Object.defineProperty({__proto__:null,CursorNames:Use,CursorSVG:d2,ImageMouseCursor:Gd,MouseCursor:Xr,SVGMouseCursor:bu,elementCursor:Vse,registerCursor:Tse,setCursorForElement:Fse},Symbol.toStringTag,{value:"Module"}));function Wn(t){return me.toolGroups.find(e=>e.id===t)}const{Active:nf,Passive:qv,Enabled:Xv,Disabled:Yv}=Ft,Gse=[{mouseButton:ca.Primary}];class DC{constructor(e){this.viewportsInfo=[],this.toolOptions={},this.currentActivePrimaryToolName=null,this.prevActivePrimaryToolName=null,this.restoreToolOptions={},this._toolInstances={},this.id=e}getViewportIds(){return this.viewportsInfo.map(({viewportId:e})=>e)}getViewportsInfo(){return this.viewportsInfo.slice()}getToolInstance(e){const r=this._toolInstances[e];if(!r){console.warn(`'${e}' is not registered with this toolGroup (${this.id}).`);return}return r}getToolInstances(){return this._toolInstances}hasTool(e){return!!this._toolInstances[e]}addTool(e,r={}){const n=me.tools[e],i=typeof e<"u"&&e!=="",o=this.toolOptions[e];if(!i){console.warn("Tool with configuration did not produce a toolName: ",r);return}if(!n){console.warn(`'${e}' is not registered with the library. You need to use cornerstoneTools.addTool to register it.`);return}if(o){console.warn(`'${e}' is already registered for ToolGroup ${this.id}.`);return}const{toolClass:a}=n,s={name:e,toolGroupId:this.id,configuration:r},c=new a(s);this._toolInstances[e]=c}addToolInstance(e,r,n={}){var o;let i=(o=me.tools[e])==null?void 0:o.toolClass;if(!i){const a=me.tools[r].toolClass;class s extends a{}s.toolName=e,i=s,me.tools[e]={toolClass:s}}this.addTool(i.toolName,n)}addViewport(e,r){if(typeof e!="string")throw new Error("viewportId must be defined and be a string");const n=this._findRenderingEngine(e,r);this.viewportsInfo.some(({viewportId:s})=>s===e)||this.viewportsInfo.push({viewportId:e,renderingEngineId:n});const i=this.getActivePrimaryMouseButtonTool();hn.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(i);const a={toolGroupId:this.id,viewportId:e,renderingEngineId:n};De(Ce,F.TOOLGROUP_VIEWPORT_ADDED,a)}removeViewports(e,r){const n=[];if(this.viewportsInfo.forEach((o,a)=>{let s=!1;o.renderingEngineId===e&&(s=!0,r&&o.viewportId!==r&&(s=!1)),s&&n.push(a)}),n.length)for(let o=n.length-1;o>=0;o--)this.viewportsInfo.splice(n[o],1);const i={toolGroupId:this.id,viewportId:r,renderingEngineId:e};De(Ce,F.TOOLGROUP_VIEWPORT_REMOVED,i)}setActiveStrategy(e,r){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool configuration.`);return}n.setActiveStrategy(r)}setToolMode(e,r,n={}){if(!e){console.warn("setToolMode: toolName must be defined");return}if(r===Ft.Active){this.setToolActive(e,n||this.restoreToolOptions[e]);return}if(r===Ft.Passive){this.setToolPassive(e);return}if(r===Ft.Enabled){this.setToolEnabled(e);return}if(r===Ft.Disabled){this.setToolDisabled(e);return}console.warn("setToolMode: mode must be defined")}setToolActive(e,r={}){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}if(!n){console.warn(`'${e}' instance ${n} is not registered with this toolGroup, can't set tool mode.`);return}const i=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=r.bindings?r.bindings:[],s={bindings:[...i,...o].reduce((u,d)=>{const h=d.numTouchPoints!==void 0,g=d.mouseButton!==void 0;return!u.some(p=>Jv(p,d))&&(h||g)&&u.push(d),u},[]),mode:nf};this.toolOptions[e]=s,this._toolInstances[e].mode=nf;const l=hn.getRuntimeSettings().get("useCursors");if(this._hasMousePrimaryButtonBinding(r)&&l)this.setViewportsCursorByToolName(e);else if(!this.getActivePrimaryMouseButtonTool()&&l){const d=Xr.getDefinedCursor("default");this._setCursorForViewports(d)}this._hasMousePrimaryButtonBinding(r)&&(this.prevActivePrimaryToolName===null?this.prevActivePrimaryToolName=e:this.prevActivePrimaryToolName=this.currentActivePrimaryToolName,this.currentActivePrimaryToolName=e),typeof n.onSetToolActive=="function"&&n.onSetToolActive(),this._renderViewports();const f={toolGroupId:this.id,toolName:e,toolBindingsOptions:r};De(Ce,F.TOOL_ACTIVATED,f),this._triggerToolModeChangedEvent(e,nf,r)}setToolPassive(e,r){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const i=this.getToolOptions(e),o=Object.assign({bindings:i?i.bindings:[]},i,{mode:qv}),a=Array.isArray(r==null?void 0:r.removeAllBindings)?r.removeAllBindings:this.getDefaultPrimaryBindings();o.bindings=o.bindings.filter(c=>(r==null?void 0:r.removeAllBindings)!==!0&&!a.some(l=>Jv(c,l)));let s=qv;o.bindings.length!==0&&(s=nf,o.mode=s),this.toolOptions[e]=o,n.mode=s,typeof n.onSetToolPassive=="function"&&n.onSetToolPassive(),this._renderViewports(),this._triggerToolModeChangedEvent(e,qv)}setToolEnabled(e){const r=this._toolInstances[e];if(r===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const n={bindings:[],mode:Xv};this.toolOptions[e]=n,r.mode=Xv,typeof r.onSetToolEnabled=="function"&&r.onSetToolEnabled(),this._renderViewports(),this._triggerToolModeChangedEvent(e,Xv)}setToolDisabled(e){const r=this._toolInstances[e];if(r===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const n={bindings:[],mode:Yv};this.restoreToolOptions[e]=this.toolOptions[e],this.toolOptions[e]=n,r.mode=Yv,typeof r.onSetToolDisabled=="function"&&r.onSetToolDisabled(),this._renderViewports(),this._triggerToolModeChangedEvent(e,Yv)}getToolOptions(e){const r=this.toolOptions[e];if(r!==void 0)return r}getActivePrimaryMouseButtonTool(){return Object.keys(this.toolOptions).find(e=>{const r=this.toolOptions[e];return r.mode===nf&&this._hasMousePrimaryButtonBinding(r)})}setViewportsCursorByToolName(e,r){const n=this._getCursor(e,r);this._setCursorForViewports(n)}_getCursor(e,r){let n,i;return r&&(n=`${e}.${r}`,i=bu.getDefinedCursor(n,!0),i)||(n=`${e}`,i=bu.getDefinedCursor(n,!0),i)||(n=e,i=bu.getDefinedCursor(n,!0),i)?i:Xr.getDefinedCursor("default")}_setCursorForViewports(e){this.viewportsInfo.forEach(({renderingEngineId:r,viewportId:n})=>{const i=fr(n,r);if(!i)return;const{viewport:o}=i;EC(o.element,e)})}setToolConfiguration(e,r,n){const i=this._toolInstances[e];if(i===void 0)return console.warn(`Tool ${e} not present, can't set tool configuration.`),!1;let o;return n?o=r:o=Object.assign(i.configuration,r),i.configuration=o,typeof i.onSetToolConfiguration=="function"&&i.onSetToolConfiguration(),this._renderViewports(),!0}getDefaultMousePrimary(){return ca.Primary}getDefaultPrimaryBindings(){return Gse}getToolConfiguration(e,r){if(this._toolInstances[e]===void 0){console.warn(`Tool ${e} not present, can't set tool configuration.`);return}const n=wse(this._toolInstances[e].configuration,r)||this._toolInstances[e].configuration;return eo(n)}getPrevActivePrimaryToolName(){return this.prevActivePrimaryToolName}setActivePrimaryTool(e){const r=this.getCurrentActivePrimaryToolName();this.setToolDisabled(r),this.setToolActive(e,{bindings:[{mouseButton:ca.Primary}]})}getCurrentActivePrimaryToolName(){return this.currentActivePrimaryToolName}clone(e,r=null){let n=Wn(e);return n?(console.debug(`ToolGroup ${e} already exists`),n):(n=new DC(e),me.toolGroups.push(n),r=r??(()=>!0),Object.keys(this._toolInstances).filter(r).forEach(i=>{const o=this._toolInstances[i],a=this.toolOptions[i],s=o.mode;n.addTool(i),n.setToolMode(i,s,{bindings:a.bindings??[]})}),n)}_hasMousePrimaryButtonBinding(e){var n;const r=this.getDefaultPrimaryBindings();return(n=e==null?void 0:e.bindings)==null?void 0:n.some(i=>r.some(o=>Jv(i,o)))}_renderViewports(){this.viewportsInfo.forEach(({renderingEngineId:e,viewportId:r})=>{hr(e).renderViewport(r)})}_triggerToolModeChangedEvent(e,r,n){const i={toolGroupId:this.id,toolName:e,mode:r,toolBindingsOptions:n};De(Ce,F.TOOL_MODE_CHANGED,i)}_findRenderingEngine(e,r){const n=_i();if((n==null?void 0:n.length)===0)throw new Error("No rendering engines found.");if(r)return r;const i=n.filter(o=>o.getViewport(e));if(i.length===0){if(n.length===1)return n[0].id;throw new Error("No rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.")}if(i.length>1)throw new Error("Multiple rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.");return i[0].id}}function Jv(t,e){return t.mouseButton!==e.mouseButton||t.numTouchPoints!==e.numTouchPoints?!1:t.modifierKey===e.modifierKey}function eL(t){if(me.toolGroups.some(n=>n.id===t)){console.warn(`'${t}' already exists.`);return}const r=new DC(t);return me.toolGroups.push(r),r}function tL(t){const e=me.toolGroups.findIndex(r=>r.id===t);e>-1&&me.toolGroups.splice(e,1)}function nL(){const t=[...me.toolGroups];for(const e of t)tL(e.id);me.toolGroups=[]}function Cn(t,e){var n;e||(e=(n=_i().find(i=>i.getViewports().find(o=>o.id===t)))==null?void 0:n.id);const r=me.toolGroups.filter(i=>i.viewportsInfo.some(o=>o.renderingEngineId===e&&(!o.viewportId||o.viewportId===t)));if(r.length){if(r.length>1)throw new Error(`Multiple tool groups found for renderingEngineId: ${e} and viewportId: ${t}. You should only - have one tool group per viewport in a renderingEngine.`);return r[0]}}function Wse(){return me.toolGroups}const zse=[Ft.Active,Ft.Passive,Ft.Enabled];function rL(t){return me.toolGroups.filter(({toolOptions:e})=>{const r=Object.keys(e);for(let n=0;n{a.viewportsInfo.forEach(s=>{const{renderingEngineId:c,viewportId:l}=s,{FrameOfReferenceUID:f}=fr(l,c);t.metadata.FrameOfReferenceUID===f&&n.push(s)})});const i=F.ANNOTATION_ADDED,o={annotation:t};if(!n.length){De(Ce,i,o);return}n.forEach(({renderingEngineId:a,viewportId:s})=>{o.viewportId=s,o.renderingEngineId=a,De(Ce,i,o)})}function bC(t){const e=F.ANNOTATION_REMOVED;De(Ce,e,t)}function dn(t,e,r=Bn.HandlesUpdated){const n=ne(e),{viewportId:i,renderingEngineId:o}=n,a=F.ANNOTATION_MODIFIED;De(Ce,a,{annotation:t,viewportId:i,renderingEngineId:o,changeType:r})}function tn(t){iL({annotation:t})}function IC(t,e=!1){iL({annotation:t,contourHoleProcessingEnabled:e})}function iL(t){const e=F.ANNOTATION_COMPLETED;De(Ce,e,t)}const Gs=new Set;function oL(t,e=!0){const r=sL();t&&(e?Yse(t,Gs,r):cL(t,Gs,r)),lL(r,Gs)}function Kse(){const t=sL();Jse(Gs,t),lL(t,Gs)}function qse(){return Array.from(Gs)}function rr(t){return Gs.has(t)}function Xse(){return Gs.size}function aL(t){const e=rr(t);return oL(t,e),e}function sL(){return Object.freeze({added:[],removed:[],locked:[]})}function Yse(t,e,r){if(!e.has(t)){e.add(t),r.added.push(t);const n=Mn(t);n&&(n.isLocked=!0)}}function cL(t,e,r){if(e.delete(t)){r.removed.push(t);const n=Mn(t);n&&(n.isLocked=!1)}}function Jse(t,e){t.forEach(r=>{cL(r,t,e)})}function lL(t,e){(t.added.length>0||t.removed.length>0)&&(e.forEach(r=>void t.locked.push(r)),De(Ce,F.ANNOTATION_LOCK_CHANGE,t))}const Zse=Object.freeze(Object.defineProperty({__proto__:null,checkAndSetAnnotationLocked:aL,getAnnotationsLocked:qse,getAnnotationsLockedCount:Xse,isAnnotationLocked:rr,setAnnotationLocked:oL,unlockAllAnnotations:Kse},Symbol.toStringTag,{value:"Module"})),Qse=t=>(t.data||(t.data={}),t.data.handles||(t.data.handles={}),t.data.handles.textBox||(t.data.handles.textBox={}),t),ece=t=>(t.data||(t.data={}),t.data.cachedStats||(t.data.cachedStats={}),t),Xo=new Set;function Vi(t,e=!0,r=!1){e?tce(t,r):OC(t)}function tce(t,e=!1){const r=fL();if(!e){dL(Xo,r);const n=Mn(t);n&&(n.isSelected=!0)}if(t&&!Xo.has(t)){Xo.add(t),r.added.push(t);const n=Mn(t);n&&(n.isSelected=!0)}hL(r,Xo)}function OC(t){const e=fL();if(t){if(Xo.delete(t)){e.removed.push(t);const r=Mn(t);r.isSelected=!1}}else dL(Xo,e);hL(e,Xo)}function uL(){return Array.from(Xo)}function nce(t){return uL().filter(e=>{var n;const r=Mn(e);return((n=r==null?void 0:r.metadata)==null?void 0:n.toolName)===t})}function Dh(t){return Xo.has(t)}function rce(){return Xo.size}function fL(){return Object.freeze({added:[],removed:[],selection:[]})}function dL(t,e){t.forEach(r=>{if(t.delete(r)){e.removed.push(r);const n=Mn(r);n&&(n.isSelected=!1)}})}function hL(t,e){(t.added.length>0||t.removed.length>0)&&(e.forEach(r=>void t.selection.push(r)),De(Ce,F.ANNOTATION_SELECTION_CHANGE,t))}const ice=Object.freeze(Object.defineProperty({__proto__:null,deselectAnnotation:OC,getAnnotationsSelected:uL,getAnnotationsSelectedByToolName:nce,getAnnotationsSelectedCount:rce,isAnnotationSelected:Dh,setAnnotationSelected:Vi},Symbol.toStringTag,{value:"Module"})),dl=new Set;function gL(t,e=!0){const r=pL();t&&(e?mL(t,dl,r):ace(t,dl,r)),vL(r)}function oce(){const t=pL();dl.forEach(e=>{mL(e,dl,t)}),vL(t)}function Br(t){if(Mn(t))return!dl.has(t)}function pL(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function mL(t,e,r){if(e.delete(t)){r.lastVisible.push(t);const n=Mn(t);n.isVisible=!0}}function ace(t,e,r){e.has(t)||(e.add(t),Dh(t)&&OC(t),r.lastHidden.push(t))}function vL(t){(t.lastHidden.length>0||t.lastVisible.length>0)&&(dl.forEach(e=>void t.hidden.push(e)),De(Ce,F.ANNOTATION_VISIBILITY_CHANGE,t))}function yL(t){const e=!dl.has(t);return gL(t,e),e}const sce=Object.freeze(Object.defineProperty({__proto__:null,checkAndSetAnnotationVisibility:yL,isAnnotationVisible:Br,setAnnotationVisibility:gL,showAllAnnotations:oce},Symbol.toStringTag,{value:"Module"}));let h2=yC;const cce=t=>{t=Qse(t),t=ece(t);const e=t.annotationUID,r=aL(e);t.isLocked=r;const n=yL(e);return t.isVisible=n,t};h2.setPreprocessingFn(cce);function da(){return h2}function lce(t){h2=t}function uce(){h2=yC}function _t(t,e){const r=da(),n=r.getGroupKey(e);return r.getAnnotations(n,t)}function Iu(){return da().getAllAnnotations()}function MC(t){const{annotationUID:e,parentAnnotationUID:r}=t;if(!r)return;const n=Mn(r),i=n.childAnnotationUIDs.indexOf(e);n.childAnnotationUIDs.splice(i,1),t.parentAnnotationUID=void 0}function RC(t,e){const{annotationUID:r}=t,{annotationUID:n}=e;MC(e),t.childAnnotationUIDs||(t.childAnnotationUIDs=[]),!t.childAnnotationUIDs.includes(n)&&(t.childAnnotationUIDs.push(n),e.parentAnnotationUID=r)}function xL(t){return t.parentAnnotationUID?Mn(t.parentAnnotationUID):void 0}function g2(t){var e;return((e=t.childAnnotationUIDs)==null?void 0:e.map(r=>Mn(r)))??[]}function Ut(t,e){t.annotationUID||(t.annotationUID=wn());const r=da();if(e instanceof HTMLDivElement){const n=r.getGroupKey(e);r.addAnnotation(t,n),jse(t,e)}else r.addAnnotation(t,void 0),Hse(t);return t.annotationUID}function fce(t,e){const r=da(),n=r.getGroupKey(e);return r.getNumberOfAnnotations(n,t)}function Ot(t){var n;if(!t)return;const e=da(),r=e.getAnnotation(t);r&&((n=r.childAnnotationUIDs)==null||n.forEach(i=>Ot(i)),e.removeAnnotation(t),bC({annotation:r,annotationManagerUID:e.uid}))}function Mf(){const t=da(),e=t.removeAllAnnotations();for(const r of e)bC({annotation:r,annotationManagerUID:t.uid})}function dce(t,e){const r=da(),n=r.getGroupKey(e),i=r.removeAnnotations(n,t);for(const o of i)bC({annotation:o,annotationManagerUID:r.uid})}function wL(t){let e=t;for(;e;)e.invalidated=!0,e=e.parentAnnotationUID?Mn(e.parentAnnotationUID):void 0}const hce=Object.freeze(Object.defineProperty({__proto__:null,addAnnotation:Ut,addChildAnnotation:RC,clearParentAnnotation:MC,getAllAnnotations:Iu,getAnnotation:Mn,getAnnotationManager:da,getAnnotations:_t,getChildAnnotations:g2,getNumberOfAnnotations:fce,getParentAnnotation:xL,invalidateAnnotation:wL,removeAllAnnotations:Mf,removeAnnotation:Ot,removeAnnotations:dce,resetAnnotationManager:uce,setAnnotationManager:lce},Symbol.toStringTag,{value:"Module"}));function pr(t){const e=t.toolName;if(me.tools[e],!e)throw new Error(`No Tool Found for the ToolClass ${t.name}`);me.tools[e]={toolClass:t}}function gce(t){return!!me.tools[t]}function pce(t){const e=t.toolName;if(!e)throw new Error(`No tool found for: ${t.name}`);if(!me.tools[e]!==void 0)delete me.tools[e];else throw new Error(`${e} cannot be removed because it has not been added`)}function _l(t,e){const r=e||t.currentTarget,{viewport:n}=ne(r)||{};if(!n)return;const i=yce(t),o=vce(t),a=mce(r,o),s=n.canvasToWorld(a);return{page:o,client:i,canvas:a,world:s}}function mce(t,e){const r=t.getBoundingClientRect();return[e[0]-r.left-window.pageXOffset,e[1]-r.top-window.pageYOffset]}function vce(t){return[t.pageX,t.pageY]}function yce(t){return[t.clientX,t.clientY]}function CL(t){const e=t.currentTarget,{viewportId:r,renderingEngineId:n}=ne(e),i=_l(t,e),o={page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},a={event:t,eventName:F.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:n,camera:{},element:e,startPoints:i,lastPoints:i,currentPoints:i,deltaPoints:o};!De(e,F.MOUSE_DOUBLE_CLICK,a)&&(t.stopImmediatePropagation(),t.preventDefault())}const T_=F.MOUSE_MOVE;function bh(t){const e=t.currentTarget,r=ne(e),{renderingEngineId:n,viewportId:i}=r,o=_l(t);!De(e,T_,{renderingEngineId:n,viewportId:i,camera:{},element:e,currentPoints:o,eventName:T_,event:t})&&(t.stopImmediatePropagation(),t.preventDefault())}const{MOUSE_DOWN:__,MOUSE_DOWN_ACTIVATE:xce,MOUSE_CLICK:wce,MOUSE_UP:Cce,MOUSE_DRAG:E_}=F,Sce=400,Tce=150,_ce=3,Ece={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};let at={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};const lr={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function SL(t){if(lr.doubleClickTimeout){if(t.buttons===lr.mouseDownEvent.buttons)return;lr.mouseDownEvent=t,om();return}lr.doubleClickTimeout=setTimeout(om,t.buttons===1?Sce:Tce),lr.mouseDownEvent=t,lr.ignoreDoubleClick=!1,at.element=t.currentTarget,at.mouseButton=t.buttons;const e=ne(at.element),{renderingEngineId:r,viewportId:n}=e;at.renderingEngineId=r,at.viewportId=n,at.preventClickTimeout=setTimeout(bce,at.clickDelay),at.element.removeEventListener("mousemove",bh);const i=_l(t,at.element);at.startPoints=Ws(i),at.lastPoints=Ws(i),document.addEventListener("mouseup",LC),document.addEventListener("mousemove",TL)}function Dce(t){const e=p2(at.startPoints,at.startPoints),r={event:t,eventName:__,element:at.element,mouseButton:at.mouseButton,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},startPoints:at.startPoints,lastPoints:at.startPoints,currentPoints:at.startPoints,deltaPoints:e};at.lastPoints=Ws(r.lastPoints),De(r.element,__,r)&&De(r.element,xce,r)}function TL(t){const e=ne(at.element);if(!(e!=null&&e.viewport))return;const r=_l(t,at.element),n=bL(at.element,at.lastPoints),i=p2(r,n);if(lr.doubleClickTimeout)if(EL(i.canvas))om();else return;const o={event:t,eventName:E_,mouseButton:at.mouseButton,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},element:at.element,startPoints:Ws(at.startPoints),lastPoints:Ws(n),currentPoints:r,deltaPoints:i};!De(at.element,E_,o)&&(t.stopImmediatePropagation(),t.preventDefault()),at.lastPoints=Ws(r)}function LC(t){if(clearTimeout(at.preventClickTimeout),lr.doubleClickTimeout)lr.mouseUpEvent?v3():(lr.mouseUpEvent=t,at.element.addEventListener("mousemove",_L));else{const e=at.isClickEvent?wce:Cce,r=_l(t,at.element),n=p2(r,at.lastPoints),i={event:t,eventName:e,mouseButton:at.mouseButton,element:at.element,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},startPoints:Ws(at.startPoints),lastPoints:Ws(at.lastPoints),currentPoints:r,deltaPoints:n};De(i.element,e,i),v3()}document.removeEventListener("mousemove",TL)}function _L(t){const e=_l(t,at.element),r=bL(at.element,at.lastPoints),n=p2(e,r);EL(n.canvas)&&(om(),bh(t))}function EL(t){return Math.abs(t[0])+Math.abs(t[1])>_ce}function bce(){at.isClickEvent=!1}function om(){lr.ignoreDoubleClick=!0;const t=lr.mouseDownEvent,e=lr.mouseUpEvent;DL(),Dce(t),e&&LC(e)}function DL(){lr.doubleClickTimeout&&(clearTimeout(lr.doubleClickTimeout),lr.doubleClickTimeout=null),lr.mouseDownEvent=null,lr.mouseUpEvent=null}function v3(){var t,e;document.removeEventListener("mouseup",LC),(t=at.element)==null||t.removeEventListener("mousemove",_L),(e=at.element)==null||e.addEventListener("mousemove",bh),DL(),at=JSON.parse(JSON.stringify(Ece))}function Ws(t){return JSON.parse(JSON.stringify(t))}function bL(t,e){const{viewport:r}=ne(t)||{};if(!r)return e;const n=r.canvasToWorld(e.canvas);return{page:e.page,client:e.client,canvas:e.canvas,world:n}}function p2(t,e){return!t||!e?{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}:{page:Zv(t.page,e.page),client:Zv(t.client,e.client),canvas:Zv(t.canvas,e.canvas),world:Ice(t.world,e.world)}}function Zv(t,e){return[t[0]-e[0],t[1]-e[1]]}function Ice(t,e){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function Oce(){return at.mouseButton}function IL(t){lr.ignoreDoubleClick?(lr.ignoreDoubleClick=!1,t.stopImmediatePropagation(),t.preventDefault()):v3()}function OL(t){t.removeEventListener("dblclick",CL),t.removeEventListener("mousedown",SL),t.removeEventListener("mousemove",bh),t.removeEventListener("dblclick",IL,{capture:!0})}function Mce(t){OL(t),t.addEventListener("dblclick",CL),t.addEventListener("mousedown",SL),t.addEventListener("mousemove",bh),t.addEventListener("dblclick",IL,{capture:!0})}const ML={enable:Mce,disable:OL},Rce=2e3,Zu={mouse:0,touch:1};let D_,b_;function RL(t,e){const r=Date.now();if(t!==D_){if(r-b_<=Rce)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!1;D_=t}b_=r}const LL=RL.bind(null,Zu.mouse),NL=RL.bind(null,Zu.touch);function I_(t,e,r){const n=r?LL:NL;e.forEach(function(i){t.addEventListener(i,n,{passive:!1})})}function O_(t,e,r){const n=r?LL:NL;e.forEach(function(i){t.removeEventListener(i,n)})}const PL=["mousedown","mouseup","mousemove"],AL=["touchstart","touchend"];function kL(t){O_(t,PL,Zu.mouse),O_(t,AL,Zu.touch)}function Lce(t){kL(t),I_(t,PL,Zu.mouse),I_(t,AL,Zu.touch)}const VL={enable:Lce,disable:kL};function m2(t,e){const r=e||t.currentTarget,n=t.type==="touchend"?t.changedTouches:t.touches;return Object.keys(n).map(i=>{const o=Ace(n[i]),a=Pce(n[i]),s=Nce(r,a),{viewport:c}=ne(r),l=c.canvasToWorld(s);return{page:a,client:o,canvas:s,world:l,touch:{identifier:i,radiusX:n[i].radiusX,radiusY:n[i].radiusY,force:n[i].force,rotationAngle:n[i].rotationAngle}}})}function Nce(t,e){const r=t.getBoundingClientRect();return[e[0]-r.left-window.pageXOffset,e[1]-r.top-window.pageYOffset]}function Pce(t){return[t.pageX,t.pageY]}function Ace(t){return[t.clientX,t.clientY]}function am(t,e){const r=zd(t),n=zd(e);return{page:Qv(r.page,n.page),client:Qv(r.client,n.client),canvas:Qv(r.canvas,n.canvas),world:Vce(r.world,n.world)}}function NC(t,e){const r=zd(t),n=zd(e);return{page:Ou(r.page,n.page),client:Ou(r.client,n.client),canvas:Ou(r.canvas,n.canvas),world:FL(r.world,n.world)}}function kce(t,e){}function sm(t,e){const r=M_(t),n=M_(e);return{page:r.page-n.page,client:r.client-n.client,canvas:r.canvas-n.canvas,world:r.world-n.world}}function ta(t){return JSON.parse(JSON.stringify(t))}function y3(t){return JSON.parse(JSON.stringify(t))}function zd(t){return t.reduce((e,r)=>({page:[e.page[0]+r.page[0]/t.length,e.page[1]+r.page[1]/t.length],client:[e.client[0]+r.client[0]/t.length,e.client[1]+r.client[1]/t.length],canvas:[e.canvas[0]+r.canvas[0]/t.length,e.canvas[1]+r.canvas[1]/t.length],world:[e.world[0]+r.world[0]/t.length,e.world[1]+r.world[1]/t.length,e.world[2]+r.world[2]/t.length]}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]})}function Oo(t){return t.reduce((e,r)=>({page:[e.page[0]+r.page[0]/t.length,e.page[1]+r.page[1]/t.length],client:[e.client[0]+r.client[0]/t.length,e.client[1]+r.client[1]/t.length],canvas:[e.canvas[0]+r.canvas[0]/t.length,e.canvas[1]+r.canvas[1]/t.length],world:[e.world[0]+r.world[0]/t.length,e.world[1]+r.world[1]/t.length,e.world[2]+r.world[2]/t.length],touch:{identifier:null,radiusX:e.touch.radiusX+r.touch.radiusX/t.length,radiusY:e.touch.radiusY+r.touch.radiusY/t.length,force:e.touch.force+r.touch.force/t.length,rotationAngle:e.touch.rotationAngle+r.touch.rotationAngle/t.length}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:{identifier:null,radiusX:0,radiusY:0,force:0,rotationAngle:0}})}function Qv(t,e){return[t[0]-e[0],t[1]-e[1]]}function Vce(t,e){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function M_(t){const e=[];for(let r=0;r({page:r.page+n.page/e.length,client:r.client+n.client/e.length,canvas:r.canvas+n.canvas/e.length,world:r.world+n.world/e.length}),{page:0,client:0,canvas:0,world:0})}function Ou(t,e){return Math.sqrt(Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2))}function FL(t,e){return Math.sqrt(Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2))}const Fce=Object.freeze(Object.defineProperty({__proto__:null,copyPoints:y3,copyPointsList:ta,getDeltaDistance:NC,getDeltaDistanceBetweenIPoints:sm,getDeltaPoints:am,getDeltaRotation:kce,getMeanPoints:zd,getMeanTouchPoints:Oo},Symbol.toStringTag,{value:"Module"}));hn.getRuntimeSettings();const{TOUCH_START:R_,TOUCH_START_ACTIVATE:Uce,TOUCH_PRESS:L_,TOUCH_DRAG:N_,TOUCH_END:P_,TOUCH_TAP:A_,TOUCH_SWIPE:ey}=F,$d={page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},cm={page:0,client:0,canvas:0,world:0},UL={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...$d,touch:null}],lastPointsList:[{...$d,touch:null}],isTouchStart:!1,startTime:null,pressTimeout:null,pressDelay:700,pressMaxDistance:5,accumulatedDistance:cm,swipeDistanceThreshold:48,swiped:!1,swipeToleranceMs:300},BL={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...$d,touch:null}],taps:0,tapTimeout:null,tapMaxDistance:24,tapToleranceMs:300};let Ke=JSON.parse(JSON.stringify(UL)),Kn=JSON.parse(JSON.stringify(BL));function Js(t,e,r){return De(t,e,r)}function GL(t){Ke.element=t.currentTarget;const e=ne(Ke.element),{renderingEngineId:r,viewportId:n}=e;Ke.renderingEngineId=r,Ke.viewportId=n,!Ke.isTouchStart&&(clearTimeout(Ke.pressTimeout),Ke.pressTimeout=setTimeout(()=>Bce(t),Ke.pressDelay),Gce(t),document.addEventListener("touchmove",WL),document.addEventListener("touchend",zL))}function Bce(t){if(Ke.accumulatedDistance.canvas>Ke.pressMaxDistance)return;const r={event:t,eventName:L_,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,startPointsList:ta(Ke.startPointsList),lastPointsList:ta(Ke.lastPointsList),startPoints:y3(Oo(Ke.startPointsList)),lastPoints:y3(Oo(Ke.lastPointsList))};Js(r.element,L_,r)}function Gce(t){Ke.isTouchStart=!0,Ke.startTime=new Date;const e=m2(t,Ke.element),r=Oo(e),n=$d,i=cm,o={event:t,eventName:R_,element:Ke.element,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},startPointsList:e,lastPointsList:e,currentPointsList:e,startPoints:r,lastPoints:r,currentPoints:r,deltaPoints:n,deltaDistance:i};Ke.startPointsList=ta(o.startPointsList),Ke.lastPointsList=ta(o.lastPointsList),Js(o.element,R_,o)&&Js(o.element,Uce,o)}function WL(t){const e=m2(t,Ke.element),r=$L(Ke.element,Ke.lastPointsList),n=e.length===r.length?am(e,r):$d,i=e.length===r.length?sm(e,r):cm,o=e.length===r.length?NC(e,Ke.lastPointsList):cm;Ke.accumulatedDistance={page:Ke.accumulatedDistance.page+o.page,client:Ke.accumulatedDistance.client+o.client,canvas:Ke.accumulatedDistance.canvas+o.canvas,world:Ke.accumulatedDistance.world+o.world};const a={event:t,eventName:N_,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,startPoints:Oo(Ke.startPointsList),lastPoints:Oo(r),currentPoints:Oo(e),startPointsList:ta(Ke.startPointsList),lastPointsList:ta(r),currentPointsList:e,deltaPoints:n,deltaDistance:i};Js(Ke.element,N_,a),zce(t,n),Ke.lastPointsList=ta(e)}function zL(t){clearTimeout(Ke.pressTimeout);const e=m2(t,Ke.element),r=$L(Ke.element,Ke.lastPointsList),n=e.length===r.length?am(e,r):am(e,e),i=e.length===r.length?sm(e,r):sm(e,e),o={event:t,eventName:P_,element:Ke.element,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},startPointsList:ta(Ke.startPointsList),lastPointsList:ta(r),currentPointsList:e,startPoints:Oo(Ke.startPointsList),lastPoints:Oo(r),currentPoints:Oo(e),deltaPoints:n,deltaDistance:i};Js(o.element,P_,o),Wce(t),Ke=JSON.parse(JSON.stringify(UL)),document.removeEventListener("touchmove",WL),document.removeEventListener("touchend",zL)}function Wce(t){const e=new Date().getTime(),r=Ke.startTime.getTime();if(e-r>Kn.tapToleranceMs||(Kn.taps===0&&(Kn.element=Ke.element,Kn.renderingEngineId=Ke.renderingEngineId,Kn.viewportId=Ke.viewportId,Kn.startPointsList=Ke.startPointsList),Kn.taps>0&&!(Kn.element==Ke.element&&Kn.renderingEngineId==Ke.renderingEngineId&&Kn.viewportId==Ke.viewportId)))return;const n=m2(t,Kn.element);NC(n,Kn.startPointsList).canvas>Kn.tapMaxDistance||(clearTimeout(Kn.tapTimeout),Kn.taps+=1,Kn.tapTimeout=setTimeout(()=>{const o={event:t,eventName:A_,element:Kn.element,renderingEngineId:Kn.renderingEngineId,viewportId:Kn.viewportId,camera:{},currentPointsList:n,currentPoints:Oo(n),taps:Kn.taps};Js(o.element,A_,o),Kn=JSON.parse(JSON.stringify(BL))},Kn.tapToleranceMs))}function zce(t,e){const r=new Date().getTime(),n=Ke.startTime.getTime();if(Ke.swiped||r-n>Ke.swipeToleranceMs)return;const[i,o]=e.canvas,a={event:t,eventName:ey,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,swipe:null};Math.abs(i)>Ke.swipeDistanceThreshold&&(a.swipe=i>0?Gc.RIGHT:Gc.LEFT,Js(a.element,ey,a),Ke.swiped=!0),Math.abs(o)>Ke.swipeDistanceThreshold&&(a.swipe=o>0?Gc.DOWN:Gc.UP,Js(a.element,ey,a),Ke.swiped=!0)}function $L(t,e){const{viewport:r}=ne(t);return e.map(n=>{const i=r.canvasToWorld(n.canvas);return{page:n.page,client:n.client,canvas:n.canvas,world:i,touch:n.touch}})}function jL(t){VL.disable(t),t.removeEventListener("touchstart",GL)}function $ce(t){jL(t),VL.enable(t),t.addEventListener("touchstart",GL,{passive:!1})}const HL={enable:$ce,disable:jL},k_=10,V_=40,F_=800;function jce(t){let e=0,r=0,n=0,i=0;return"detail"in t&&(r=t.detail),"wheelDelta"in t&&(r=-t.wheelDelta/120),"wheelDeltaY"in t&&(r=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),n=e*k_,i=r*k_,"deltaY"in t&&(i=t.deltaY),"deltaX"in t&&(n=t.deltaX),(n||i)&&t.deltaMode&&(t.deltaMode===1?(n*=V_,i*=V_):(n*=F_,i*=F_)),n&&!e&&(e=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:e,spinY:r,pixelX:n,pixelY:i}}function KL(t){const e=t.currentTarget,r=ne(e),{renderingEngineId:n,viewportId:i}=r;if(t.deltaY>-1&&t.deltaY<1)return;t.preventDefault();const{spinX:o,spinY:a,pixelX:s,pixelY:c}=jce(t),l=a<0?-1:1,f={event:t,eventName:F.MOUSE_WHEEL,renderingEngineId:n,viewportId:i,element:e,camera:{},detail:t,wheel:{spinX:o,spinY:a,pixelX:s,pixelY:c,direction:l},points:_l(t)};De(e,F.MOUSE_WHEEL,f)}function Hce(t){qL(t),t.addEventListener("wheel",KL,{passive:!1})}function qL(t){t.removeEventListener("wheel",KL)}const XL={enable:Hce,disable:qL},Kce={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};let Qn={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function v2(t){Qn.element=t.currentTarget;const e=ne(Qn.element),{renderingEngineId:r,viewportId:n}=e;Qn.renderingEngineId=r,Qn.viewportId=n,Qn.key=t.key,Qn.keyCode=t.keyCode,t.preventDefault();const i={renderingEngineId:Qn.renderingEngineId,viewportId:Qn.viewportId,element:Qn.element,key:Qn.key,keyCode:Qn.keyCode};De(i.element,F.KEY_DOWN,i),document.addEventListener("keyup",YL),document.addEventListener("visibilitychange",PC),Qn.element.removeEventListener("keydown",v2)}function PC(){document.removeEventListener("visibilitychange",PC),document.visibilityState==="hidden"&&JL()}function YL(t){const e={renderingEngineId:Qn.renderingEngineId,viewportId:Qn.viewportId,element:Qn.element,key:Qn.key,keyCode:Qn.keyCode};document.removeEventListener("keyup",YL),document.removeEventListener("visibilitychange",PC),Qn.element.addEventListener("keydown",v2),Qn=structuredClone(Kce),De(e.element,F.KEY_UP,e)}function qce(){return Qn.keyCode}function JL(){Qn.keyCode=void 0}function Xce(t){ZL(t),t.addEventListener("keydown",v2)}function ZL(t){t.removeEventListener("keydown",v2)}const D0={enable:Xce,disable:ZL,getModifierKey:qce},{EPSILON:Bl}=Cl;function QL(t,e,r=!1){var f;let n=1/0,i=r?-1/0:0,o=1/0,a=r?-1/0:0,s=1/0,c=r?-1/0:0;const l=((f=t[0])==null?void 0:f.length)===3;for(let u=0;uJSON.stringify(t)===JSON.stringify(e);function AC(t,e,r,n){const i=r[0]/2,o=r[1]/2,a=r[2]/2,s=new Array(8);s[0]=Gn(t,[n[0]-i,n[1]-o,n[2]-a]);const c=[[1,-1,-1],[-1,1,-1],[1,1,-1],[-1,-1,1],[1,-1,1],[-1,1,1],[1,1,1]];for(let l=0;l<7;l++){const[f,u,d]=c[l];s[l+1]=Gn(t,[n[0]+f*i,n[1]+u*o,n[2]+d*a])}return Zs(s,e)}function tN(t,e){const{spacing:r}=t,n=t.voxelManager.getScalarDataLength(),i=[];let o=0;for(let a=0;a{const e=kC.get(t);e&&(e.isDirty=!0)},Zce=t=>{const e=kC.get(t);return e&&!e.isDirty?e.indices:null},Qce=(t,e)=>{kC.set(t,{indices:e,isDirty:!1})};function Ei(t,e){const r={segmentationId:t,modifiedSlicesToUse:e};Jce(t),De(Ce,F.SEGMENTATION_DATA_MODIFIED,r)}function Di(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_MODIFIED,e)}function VC(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_REMOVED,e)}function Yo(t,e,r){const n={segmentationId:e,type:r,viewportId:t};De(Ce,F.SEGMENTATION_REPRESENTATION_ADDED,n)}function x3(t,e,r){const n={viewportId:t,segmentationId:e,type:r};De(Ce,F.SEGMENTATION_REPRESENTATION_REMOVED,n)}const ele=Object.freeze(Object.defineProperty({__proto__:null,triggerSegmentationDataModified:Ei,triggerSegmentationModified:Di,triggerSegmentationRemoved:VC,triggerSegmentationRepresentationModified:Yo,triggerSegmentationRepresentationRemoved:x3},Symbol.toStringTag,{value:"Module"})),tle={renderOutline:!0,outlineWidthAutoGenerated:3,outlineWidth:1,outlineWidthInactive:1,outlineOpacity:1,outlineOpacityInactive:.85,outlineDash:void 0,outlineDashInactive:void 0,outlineDashAutoGenerated:"5,3",activeSegmentOutlineWidthDelta:0,renderFill:!0,fillAlpha:.5,fillAlphaInactive:.3,fillAlphaAutoGenerated:.3};function nle(){return tle}const rle={renderOutline:!0,renderOutlineInactive:!0,outlineWidth:3,outlineWidthInactive:2,activeSegmentOutlineWidthDelta:0,renderFill:!0,renderFillInactive:!0,fillAlpha:.5,fillAlphaInactive:.4,outlineOpacity:1,outlineOpacityInactive:.85};function ile(){return rle}class ole{constructor(){this.config={global:{},segmentations:{},viewportsStyle:{}}}setStyle(e,r){const{viewportId:n,segmentationId:i,type:o,segmentIndex:a}=e,s=this.getStyle(e);let c;if(!n&&!i?c={...s,...r}:c=this.copyActiveToInactiveIfNotProvided({...s,...r},o),!o)throw new Error("Type is required to set a style");if(n){this.config.viewportsStyle[n]||(this.config.viewportsStyle[n]={renderInactiveSegmentations:!1,representations:{}});const l=this.config.viewportsStyle[n].representations;if(i){l[i]||(l[i]={}),l[i][o]||(l[i][o]={});const f=l[i][o];a!==void 0?(f.perSegment||(f.perSegment={}),f.perSegment[a]=c):f.allSegments=c}else{const f="__allSegmentations__";l[f]||(l[f]={}),l[f][o]||(l[f][o]={}),l[f][o].allSegments=c}}else if(i){this.config.segmentations[i]||(this.config.segmentations[i]={}),this.config.segmentations[i][o]||(this.config.segmentations[i][o]={});const l=this.config.segmentations[i][o];a!==void 0?(l.perSegment||(l.perSegment={}),l.perSegment[a]=c):l.allSegments=c}else this.config.global[o]=c}copyActiveToInactiveIfNotProvided(e,r){const n={...e};if(r===Ge.Labelmap){const i=n;i.renderOutlineInactive=i.renderOutline,i.outlineWidthInactive=i.outlineWidth,i.renderFillInactive=i.renderFill,i.fillAlphaInactive=i.fillAlpha,i.outlineOpacityInactive=i.outlineOpacity}else if(r===Ge.Contour){const i=n;i.outlineWidthInactive=i.outlineWidth,i.outlineOpacityInactive=i.outlineOpacity,i.outlineDashInactive=i.outlineDash,i.renderOutlineInactive=i.renderOutline,i.renderFillInactive=i.renderFill,i.fillAlphaInactive=i.fillAlpha}return n}getStyle(e){var s,c,l,f,u;const{viewportId:r,segmentationId:n,type:i,segmentIndex:o}=e;let a=this.getDefaultStyle(i);if(this.config.global[i]&&(a={...a,...this.config.global[i]}),(s=this.config.segmentations[n])!=null&&s[i]&&(a={...a,...this.config.segmentations[n][i].allSegments},o!==void 0&&((c=this.config.segmentations[n][i].perSegment)!=null&&c[o])&&(a={...a,...this.config.segmentations[n][i].perSegment[o]})),r&&this.config.viewportsStyle[r]){this.config.viewportsStyle[r].renderInactiveSegmentations;const d="__allSegmentations__";(l=this.config.viewportsStyle[r].representations[d])!=null&&l[i]&&(a={...a,...this.config.viewportsStyle[r].representations[d][i].allSegments}),n&&((f=this.config.viewportsStyle[r].representations[n])!=null&&f[i])&&(a={...a,...this.config.viewportsStyle[r].representations[n][i].allSegments},o!==void 0&&((u=this.config.viewportsStyle[r].representations[n][i].perSegment)!=null&&u[o])&&(a={...a,...this.config.viewportsStyle[r].representations[n][i].perSegment[o]}))}return a}getRenderInactiveSegmentations(e){var r;return(r=this.config.viewportsStyle[e])==null?void 0:r.renderInactiveSegmentations}setRenderInactiveSegmentations(e,r){this.config.viewportsStyle[e]||(this.config.viewportsStyle[e]={renderInactiveSegmentations:!1,representations:{}}),this.config.viewportsStyle[e].renderInactiveSegmentations=r}getDefaultStyle(e){switch(e){case Ge.Labelmap:return ile();case Ge.Contour:return nle();case Ge.Surface:return{};default:throw new Error(`Unknown representation type: ${e}`)}}clearSegmentationStyle(e){this.config.segmentations[e]&&delete this.config.segmentations[e]}clearAllSegmentationStyles(){this.config.segmentations={}}clearViewportStyle(e){this.config.viewportsStyle[e]&&delete this.config.viewportsStyle[e]}clearAllViewportStyles(){for(const e in this.config.viewportsStyle){const n=this.config.viewportsStyle[e].renderInactiveSegmentations;this.config.viewportsStyle[e]={renderInactiveSegmentations:n,representations:{}}}}resetToGlobalStyle(){this.clearAllSegmentationStyles(),this.clearAllViewportStyles()}hasCustomStyle(e){const{type:r}=e,n=this.getStyle(e),i=this.getDefaultStyle(r);return!pR(n,i)}}const Fi=new ole;function ale(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_ADDED,e)}const U_={colorLUT:[],segmentations:[],viewportSegRepresentations:{}};class sle{constructor(e){this._stackLabelmapImageIdReferenceMap=new Map,e||(e=wn()),this.state=Object.freeze(eo(U_)),this.uid=e}getState(){return this.state}updateState(e){const r=eo(this.state);e(r),this.state=Object.freeze(r)}getColorLUT(e){return this.state.colorLUT[e]}getNextColorLUTIndex(){return this.state.colorLUT.length}resetState(){this.state=Object.freeze(eo(U_))}getSegmentation(e){return this.state.segmentations.find(r=>r.segmentationId===e)}updateSegmentation(e,r){this.updateState(n=>{const i=n.segmentations.find(o=>o.segmentationId===e);if(!i){console.warn(`Segmentation with id ${e} not found. Update aborted.`);return}Object.assign(i,r)}),Di(e)}addSegmentation(e){if(this.getSegmentation(e.segmentationId))throw new Error(`Segmentation with id ${e.segmentationId} already exists`);this.updateState(r=>{const n=eo(e);if(n.representationData.Labelmap&&"volumeId"in n.representationData.Labelmap&&!("imageIds"in n.representationData.Labelmap)){const i=this.getLabelmapImageIds(n.representationData);n.representationData.Labelmap.imageIds=i}r.segmentations.push(n)}),ale(e.segmentationId)}removeSegmentation(e){this.updateState(r=>{const n=r.segmentations.filter(i=>i.segmentationId!==e);r.segmentations.splice(0,r.segmentations.length,...n)}),VC(e)}addSegmentationRepresentation(e,r,n,i){if(!Xn(e))return;if(this.getSegmentationRepresentations(e,{type:n,segmentationId:r}).length>0){console.debug("A segmentation representation of type",n,"already exists in viewport",e,"for segmentation",r);return}this.updateState(s=>{s.viewportSegRepresentations[e]||(s.viewportSegRepresentations[e]=[],Fi.setRenderInactiveSegmentations(e,!0)),n!==Ge.Labelmap?this.addDefaultSegmentationRepresentation(s,e,r,n,i):this.addLabelmapRepresentation(s,e,r,i)}),Yo(e,r,n)}addDefaultSegmentationRepresentation(e,r,n,i,o){const a=e.segmentations.find(c=>c.segmentationId===n);if(!a)return;const s={};Object.keys(a.segments).forEach(c=>{s[Number(c)]={visible:!0}}),e.viewportSegRepresentations[r].push({segmentationId:n,type:i,active:!0,visible:!0,colorLUTIndex:0,segments:s,config:{...B_(i),...o}}),this._setActiveSegmentation(e,r,n)}addLabelmapRepresentation(e,r,n,i=B_(Ge.Labelmap)){if(!Xn(r))return;const a=this.getSegmentation(n);if(!a)return;const{representationData:s}=a;if(!s.Labelmap)return this.addDefaultSegmentationRepresentation(e,r,n,Ge.Labelmap,i);this.processLabelmapRepresentationAddition(r,n),this.addDefaultSegmentationRepresentation(e,r,n,Ge.Labelmap,i)}async processLabelmapRepresentationAddition(e,r){const n=Xn(e);if(!n)return;const i=this.getSegmentation(r);if(!i)return;const o=n.viewport instanceof Rn,{representationData:a}=i,s="volumeId"in a.Labelmap;n.viewport,!o&&!s&&this.updateLabelmapSegmentationImageReferences(e,i.segmentationId)}_updateLabelmapSegmentationReferences(e,r,n,i){const o=r.getCurrentImageId();let a=!1;for(const s of n)r.isReferenceViewable({referencedImageId:s},{asOverlay:!0})&&(a=!0,this._stackLabelmapImageIdReferenceMap.get(e).set(o,s));return i&&i(r,e,n),a?this._stackLabelmapImageIdReferenceMap.get(e).get(o):void 0}updateLabelmapSegmentationImageReferences(e,r){const n=this.getSegmentation(r);if(!n)return;this._stackLabelmapImageIdReferenceMap.has(r)||this._stackLabelmapImageIdReferenceMap.set(r,new Map);const{representationData:i}=n;if(!i.Labelmap)return;const o=this.getLabelmapImageIds(i),s=Xn(e).viewport;return this._updateLabelmapSegmentationReferences(r,s,o,null)}_updateAllLabelmapSegmentationImageReferences(e,r){const n=this.getSegmentation(r);if(!n)return;this._stackLabelmapImageIdReferenceMap.has(r)||this._stackLabelmapImageIdReferenceMap.set(r,new Map);const{representationData:i}=n;if(!i.Labelmap)return;const o=this.getLabelmapImageIds(i),s=Xn(e).viewport;this._updateLabelmapSegmentationReferences(r,s,o,(c,l,f)=>{c.getImageIds().forEach((d,h)=>{for(const g of f)c.isReferenceViewable({referencedImageId:g,sliceIndex:h},{asOverlay:!0,withNavigation:!0})&&this._stackLabelmapImageIdReferenceMap.get(l).set(d,g)})})}getLabelmapImageIds(e){const r=e.Labelmap;let n;if(r.imageIds)n=r.imageIds;else if(!n&&r.volumeId){const i=r.volumeId;n=Te.getVolume(i).imageIds}return n}getCurrentLabelmapImageIdForViewport(e,r){const n=Xn(e);if(!n||!this._stackLabelmapImageIdReferenceMap.has(r))return;const o=n.viewport.getCurrentImageId();return this._stackLabelmapImageIdReferenceMap.get(r).get(o)}getStackSegmentationImageIdsForViewport(e,r){if(!this.getSegmentation(r))return[];this._updateAllLabelmapSegmentationImageReferences(e,r);const{viewport:i}=Xn(e),o=i.getImageIds(),a=this._stackLabelmapImageIdReferenceMap.get(r);return o.map(s=>a.get(s))}removeSegmentationRepresentationsInternal(e,r){const n=[];return this.updateState(i=>{if(!i.viewportSegRepresentations[e])return;const o=i.viewportSegRepresentations[e];let a=!1;if(!r||Object.values(r).every(s=>s===void 0))n.push(...o),delete i.viewportSegRepresentations[e];else{const{segmentationId:s,type:c}=r;i.viewportSegRepresentations[e]=o.filter(l=>{const f=s&&c&&l.segmentationId===s&&l.type===c||s&&!c&&l.segmentationId===s||!s&&c&&l.type===c;return f&&(n.push(l),l.active&&(a=!0)),!f}),i.viewportSegRepresentations[e].length===0?delete i.viewportSegRepresentations[e]:a&&(i.viewportSegRepresentations[e][0].active=!0)}}),n}removeSegmentationRepresentations(e,r){const n=this.removeSegmentationRepresentationsInternal(e,r);n.forEach(o=>{x3(e,o.segmentationId,o.type)});const i=this.getSegmentationRepresentations(e);return i.length>0&&i[0].active&&Yo(e,i[0].segmentationId,i[0].type),n}removeSegmentationRepresentation(e,r,n){const i=this.removeSegmentationRepresentationsInternal(e,r);return n||i.forEach(({segmentationId:o,type:a})=>{x3(e,o,a)}),i}_setActiveSegmentation(e,r,n){const i=e.viewportSegRepresentations[r];i&&i.forEach(o=>{o.active=o.segmentationId===n})}setActiveSegmentation(e,r){this.updateState(n=>{const i=n.viewportSegRepresentations[e];i&&i.forEach(o=>{o.active=o.segmentationId===r})}),Yo(e,r)}getActiveSegmentation(e){if(!this.state.viewportSegRepresentations[e])return;const r=this.state.viewportSegRepresentations[e].find(n=>n.active);if(r)return this.getSegmentation(r.segmentationId)}getSegmentationRepresentations(e,r={}){const n=this.state.viewportSegRepresentations[e];return n?!r.type&&!r.segmentationId?n:n.filter(i=>{const o=r.type?i.type===r.type:!0,a=r.segmentationId?i.segmentationId===r.segmentationId:!0;return o&&a}):[]}getSegmentationRepresentation(e,r){return this.getSegmentationRepresentations(e,r)[0]}getSegmentationRepresentationVisibility(e,r){const n=this.getSegmentationRepresentation(e,r);return n==null?void 0:n.visible}setSegmentationRepresentationVisibility(e,r,n){this.updateState(i=>{const o=this.getSegmentationRepresentations(e,r);o&&o.forEach(a=>{a.visible=n,Object.entries(a.segments).forEach(([s,c])=>{c.visible=n})})}),Yo(e,r.segmentationId,r.type)}addColorLUT(e,r){this.updateState(n=>{n.colorLUT[r]&&console.warn("Color LUT table already exists, overwriting"),n.colorLUT[r]=eo(e)})}removeColorLUT(e){this.updateState(r=>{delete r.colorLUT[e]})}_getStackIdForImageIds(e){return e.map(r=>r.slice(-Math.round(r.length*.15))).join("_")}getAllViewportSegmentationRepresentations(){return Object.entries(this.state.viewportSegRepresentations).map(([e,r])=>({viewportId:e,representations:r}))}getSegmentationRepresentationsBySegmentationId(e){const r=[];return Object.entries(this.state.viewportSegRepresentations).forEach(([n,i])=>{const o=i.filter(a=>a.segmentationId===e);o.length>0&&r.push({viewportId:n,representations:o})}),r}}async function nN({imageIds:t,options:e}){const r=t,n=(e==null?void 0:e.volumeId)||wn();return await rC(n,r),{volumeId:n}}async function cle({segmentationId:t,options:e}){const r=Yt.getSegmentation(t),n=r.representationData.Labelmap,{volumeId:i}=await nN({imageIds:n.imageIds,options:e});r.representationData.Labelmap.volumeId=i}function B_(t){const e=Xs.newInstance(),r=ju.newInstance();return r.addPoint(0,0),t===Ge.Labelmap?{cfun:e,ofun:r}:{}}const Yt=new sle("DEFAULT");function Ti(t,e={}){return Yt.getSegmentationRepresentations(t,e)}function y2(t,e){const r=Yt;if(!e.segmentationId||!e.type)throw new Error("getSegmentationRepresentation: No segmentationId or type provided, you need to provide at least one of them");const n=r.getSegmentationRepresentations(t,e);return n==null?void 0:n[0]}function lle(t){return Yt.getSegmentationRepresentationsBySegmentationId(t)}function rN(t,e,r){const n=Xn(t);if(!n)return;const{renderingEngine:i,viewport:o}=n;if(!i||!o)return;const s=o.getActors().filter(r);return s.length>0?s[0]:void 0}function ule(t,e){const r=Ba(t,e);return r==null?void 0:r.uid}function Ba(t,e){return rN(t,e,r=>{var n;return(n=r.representationUID)==null?void 0:n.startsWith(`${e}-${Ge.Labelmap}`)})}function iN(t,e,r){return rN(t,e,n=>{var i;return(i=n.representationUID)==null?void 0:i.startsWith(`${e}-${Ge.Surface}-${r}`)})}function oN(t,e,r){const n=r?r.toString():"",i=iN(t,e,n);return i==null?void 0:i.uid}function fle(t,e){const r=ne(t),{viewport:n}=r,o=n.getActors().filter(a=>a.uid.startsWith(oN(n.id,e,"")));n.removeActors(o.map(a=>a.uid))}function dle(t,e,r){const n=ne(t),{viewport:i}=n,o=oN(i.id,r,e.segmentIndex),a=iN(i.id,r,e.segmentIndex),s=a==null?void 0:a.actor;if(s){const v=s.getMapper(),x=v.getInputData(),m=e.points,y=e.polys,w=x.getPoints().getData(),C=x.getPolys().getData();if(m.length===w.length&&y.length===C.length)return;const S=dr.newInstance();S.getPoints().setData(m,3);const T=ll.newInstance({values:Float32Array.from(y)});S.setPolys(T),v.setInputData(S),v.modified(),i.getRenderer().resetCameraClippingRange();return}const c=e.points,l=e.polys,f=e.color,u=dr.newInstance();u.getPoints().setData(c,3);const d=ll.newInstance({values:Float32Array.from(l)});u.setPolys(d);const h=ia.newInstance({});let g;h.setInputData(u);const p=sa.newInstance();p.setMapper(h),p.getProperty().setColor(f[0]/255,f[1]/255,f[2]/255),p.getProperty().setLineWidth(2),i.addActor({uid:wn(),actor:p,clippingFilter:g,representationUID:o}),i.resetCamera(),i.getRenderer().resetCameraClippingRange(),i.render()}function Ct(t){return Yt.getSegmentation(t)}function b0(t){return Yt.getColorLUT(t)}function hle(t){if("volumeId"in t){if(t=t,!Te.getVolume(t.volumeId))throw new Error(`volumeId of ${t.volumeId} not found in cache, you should load and cache volume before adding segmentation`)}else if("imageIds"in t){if(t=t,!t.imageIds)throw new Error("The segmentationInput.representationData.imageIds is undefined, please provide a valid representationData.imageIds for stack data")}else throw new Error("The segmentationInput.representationData is undefined, please provide a valid representationData")}function gle(t){hle(t)}const ple=new Map([[Ge.Labelmap,new Set([Ge.Surface,Ge.Contour])],[Ge.Contour,new Set([Ge.Labelmap,Ge.Surface])],[Ge.Surface,new Set([Ge.Labelmap])]]);function x2(t,e){const{representationData:r}=Ct(t);return mle(r).some(i=>vle(i,e))}function mle(t){const e=[];return Object.keys(t).forEach(r=>{const n=t[r];let i;switch(r){case Ge.Labelmap:i=gle;break}if(i)try{i(n),e.push(r)}catch{console.warn(`Validation failed for labelmap of type ${r}`)}else e.push(r)}),e}async function vle(t,e){var r;return((r=ple.get(t))==null?void 0:r.has(e))||!1}function yle({segmentationId:t,type:e,data:r}){const n=Ct(t);if(!n)throw new Error(`Segmentation ${t} not found`);switch(n.representationData[e]&&console.warn(`Representation data of type ${e} already exists for segmentation ${t}, overwriting it.`),e){case Ge.Labelmap:r&&(n.representationData[e]=r);break;case Ge.Contour:r&&(n.representationData[e]=r);break;case Ge.Surface:r&&(n.representationData[e]=r);break;default:throw new Error(`Invalid representation type ${e}`)}}function FC(t){const e=typeof t;return t!==null&&(e==="object"||e==="function")}function w2(t,e,r){let n,i,o,a,s,c,l=0,f=!1,u=!1,d=!0;const h=!e&&e!==0&&typeof window.requestAnimationFrame=="function";if(typeof t!="function")throw new TypeError("Expected a function");e=Number(e)||0,FC(r)&&(f=!!r.leading,u="maxWait"in r,o=u?Math.max(Number(r.maxWait)||0,e):o,d="trailing"in r?!!r.trailing:d);function g(D){const b=n,I=i;return n=i=void 0,l=D,a=t.apply(I,b),a}function p(D,b){return h?window.requestAnimationFrame(D):setTimeout(D,b)}function v(D){if(h)return window.cancelAnimationFrame(D);clearTimeout(D)}function x(D){return l=D,s=p(w,e),f?g(D):a}function m(D){const b=D-c,I=D-l,R=e-b;return u?Math.min(R,o-I):R}function y(D){const b=D-c,I=D-l;return c===void 0||b>=e||b<0||u&&I>=o}function w(){const D=Date.now();if(y(D))return C(D);s=p(w,m(D))}function C(D){return s=void 0,d&&n?g(D):(n=i=void 0,a)}function S(){s!==void 0&&v(s),l=0,n=c=i=s=void 0}function T(){return s===void 0?a:C(Date.now())}function _(){return s!==void 0}function E(...D){const b=Date.now(),I=y(b);if(n=D,i=this,c=b,I){if(s===void 0)return x(c);if(u)return s=p(w,e),g(c)}return s===void 0&&(s=p(w,e)),a}return E.cancel=S,E.flush=T,E.pending=_,E}let G_=!1;function aN(){if(G_)return;G_=!0;const t=()=>new Worker(new URL("/static/dv3d/assets/polySegConverters-Bo1kNbAR.js",import.meta.url),{name:"polySeg",type:"module"}),e=sc(),r={maxWorkerInstances:1,autoTerminateOnIdle:{enabled:!0,idleTimeThreshold:2e3}};e.registerWorker("polySeg",t,r)}const Fp=new Map;async function UC(t,e,r,n,i){aN();const o=await r();yle({segmentationId:t,type:e,data:o}),i==null||i(),Fp.has(t)||Fp.set(t,[]);const a=Fp.get(t);return a.includes(e)||a.push(e),xle(n),Di(t),o}function xle(t){const e=r=>{wle(r,t)};t._debouncedUpdateFunction=e,Ce.removeEventListener(F.SEGMENTATION_DATA_MODIFIED,t._debouncedUpdateFunction),Ce.addEventListener(F.SEGMENTATION_DATA_MODIFIED,t._debouncedUpdateFunction)}const wle=w2((t,e)=>{const r=t.detail.segmentationId,n=Fp.get(r);!n||!n.length||(e(r),n.length&&Di(r))},300);function ha(t){const e=Zce(t);if(e)return e;const r=Ct(t);if(!r)throw new Error(`No segmentation found for segmentationId ${t}`);let n;if(r.representationData.Labelmap)n=Cle(r,t);else if(r.representationData.Contour)n=_le(r);else if(r.representationData.Surface)n=Ele(r);else throw new Error(`Unsupported segmentation type: ${r.representationData}`);return Qce(t,n),n}function Cle(t,e){const r=t.representationData[Ge.Labelmap],n=new Set;return r.imageIds?Tle(n,r.imageIds):Sle(n,e),Array.from(n).map(Number).sort((i,o)=>i-o)}function Sle(t,e){Te.getVolume(e).voxelManager.forEach(({value:n})=>{n!==0&&t.add(n)})}function Tle(t,e){e.forEach(r=>{Te.getImage(r).voxelManager.getScalarData().forEach(o=>{o!==0&&t.add(o)})})}function _le(t){const{annotationUIDsMap:e,geometryIds:r}=t.representationData.Contour||{};if(!r)throw new Error(`No geometryIds found for segmentationId ${t.segmentationId}`);const n=new Set([...e.keys()]);return r.forEach(i=>{const o=Te.getGeometry(i);n.add(o.data.segmentIndex)}),Array.from(n).sort((i,o)=>i-o)}function Ele(t){var r;const e=((r=t.representationData.Surface)==null?void 0:r.geometryIds)??[];return Array.from(e.keys()).map(Number).sort((n,i)=>n-i)}const Dle=sc(),ty=(t,e,r)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:_0.POLYSEG_CONTOUR_TO_SURFACE,id:r})};async function ble(t,e){const{annotationUIDsMap:r}=t,n=[],i=[],o=r.get(e);for(const s of o){const c=Mn(s),{polyline:l}=c.data.contour;i.push(l.length),l.forEach(f=>n.push(...f))}ty(Ce,0,e);const a=await Dle.executeTask("polySeg","convertContourToSurface",{polylines:n,numPointsArray:i},{callbacks:[s=>{ty(Ce,s,e)}]});return ty(Ce,100,e),a}function BC(){return Yt.getNextColorLUTIndex()}const GC=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function WC(t,e){const r=Yt,n=e??BC();let i=[...t];if(mt(i[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),i=[[0,0,0,0],...i]),i=i.map(o=>o.length===3?[o[0],o[1],o[2],255]:o),i.length<255){const o=GC.slice(i.length);i=[...i,...o]}return r.addColorLUT(i,n),n}function Ile(t,e){if(!t)throw new Error("addColorLUT: colorLUT is required");return WC(t,e)}function Ole(t,e,r){if(!b0(r))throw new Error(`setColorLUT: could not find colorLUT with index ${r}`);const n=Ti(t,{segmentationId:e});if(!n)throw new Error(`viewport specific state for viewport ${t} does not exist`);n.forEach(i=>{i.colorLUTIndex=r}),Yo(t,e)}function es(t,e,r){const n=Ti(t,{segmentationId:e});if(!n||n.length===0)return null;const i=n[0],{colorLUTIndex:o}=i,a=b0(o);let s=a[r];if(!s){if(typeof r!="number")throw new Error(`Can't create colour for LUT index ${r}`);s=a[r]=[0,0,0,0]}return s}function sN(t,e,r,n){const i=es(t,e,r);for(let o=0;o{const s=e[a],c=s.segmentIndex,l=es(r.viewport.id,n.segmentationId,c).slice(0,3);if(!l)throw new Error("No color found for segment index, unable to create surface");const f={id:`segmentation_${n.segmentationId}_surface_${c}`,color:l,frameOfReferenceUID:"test-frameOfReferenceUID",points:s.data.points,polys:s.data.polys,segmentIndex:c},u=f.id;return i.set(c,u),wae(u,{type:ol.SURFACE,geometryData:f})});return await Promise.all(o),{geometryIds:i}}async function lN(t){return nN(t)}const Rle=sc(),ny=(t,e,r)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:_0.POLYSEG_LABELMAP_TO_SURFACE,id:r})};async function Lle(t,e){let r;if(t.volumeId)r=t.volumeId;else{const{imageIds:f}=t;({volumeId:r}=await lN({imageIds:f}))}const n=Te.getVolume(r),i=n.voxelManager.getCompleteScalarDataArray(),{dimensions:o,spacing:a,origin:s,direction:c}=n;ny(Ce,0,e);const l=await Rle.executeTask("polySeg","convertLabelmapToSurface",{scalarData:i,dimensions:o,spacing:a,origin:s,direction:c,segmentIndex:e},{callbacks:[f=>{ny(Ce,f,e)}]});return ny(Ce,100,e),l}async function Nle(t,e={}){var s;const r=(s=e.segmentIndices)!=null&&s.length?e.segmentIndices:ha(t);let n;const i=Ct(t),o=i.representationData;try{o.Contour?n=await Ple(t,{segmentIndices:r,...e}):o.Labelmap&&(n=await zC(i.segmentationId,{segmentIndices:r,...e}))}catch(c){throw console.error(c),c}if(!n)throw new Error("Not enough data to convert to surface, currently only support converting volume labelmap to surface if available");return await cN(t,n,e)}async function zC(t,e={}){var l;const r=Ct(t);if(!((l=r==null?void 0:r.representationData)!=null&&l.Labelmap)){console.warn("Only support surface update from labelmaps");return}const n=r.representationData.Labelmap,i=e.segmentIndices||ha(t),o=i.map(f=>Lle(n,f)),a=await Promise.allSettled(o),s=a.filter(f=>f.status==="rejected");if(s.length>0)throw console.error(s),new Error("Failed to convert labelmap to surface");return a.map((f,u)=>{if(f.status==="fulfilled")return{segmentIndex:i[u],data:f.value}}).filter(Boolean)}async function Ple(t,e={}){const n=Ct(t).representationData.Contour,o=(e.segmentIndices||ha(t)).map(async s=>{const c=await ble(n,s);return{segmentIndex:s,data:c}});return await Promise.all(o)}function I0(t){const n=Yt.getState().viewportSegRepresentations;return Object.entries(n).filter(([,o])=>o.some(a=>a.segmentationId===t)).map(([o])=>o)}async function Ale(t){const e=await zC(t);if(!e)return;const r=Ct(t),n=ha(t);if(!n.length){r.representationData.Surface.geometryIds.forEach(a=>{const c=Te.getGeometry(a).data;c.points=[],c.polys=[]}),Di(t);return}const i=e.map(({data:o,segmentIndex:a})=>{const s=`segmentation_${t}_surface_${a}`,c=Te.getGeometry(s);if(c)if(n.includes(a)){const l=c.data;l.points=o.points,l.polys=o.polys}else{const l=c.data;l.points=[],l.polys=[]}else return I0(t).map(f=>[y2(f,{segmentationId:t,type:Ge.Surface})].map(d=>(r.representationData.Surface.geometryIds.set(a,s),cN(t,[{segmentIndex:a,data:o}],{segmentationId:d.segmentationId}))))});await Promise.all(i),Di(t)}function uN(t,e={}){return UC(t,Ge.Surface,()=>Nle(t,e),()=>Ale(t))}function kle(t,e,r=!1){const n=Xn(t);if(!n)return;const{viewport:i}=n;fle(i.element,e),r&&i.render()}async function Vle(t,e){const{segmentationId:r}=e,n=Ct(r);if(!n)return;let i=n.representationData[Ge.Surface];if(!i&&x2(r,Ge.Surface)&&(i=await uN(r,{viewport:t}),!i))throw new Error(`No Surface data found for segmentationId ${r}.`);const{geometryIds:o}=i;o!=null&&o.size||console.warn(`No Surfaces found for segmentationId ${r}. Skipping render.`);const{colorLUTIndex:a}=e,s=b0(a);o.forEach(c=>{const l=Te.getGeometry(c);if(!(l!=null&&l.data)){console.warn(`No Surfaces found for geometryId ${c}. Skipping render.`);return}const f=l.data.segmentIndex,u=l.data,d=s[f];u.color=d.slice(0,3),dle(t.element,u,r)}),t.render()}const fN={render:Vle,removeRepresentation:kle};function Fle(t,e,r,n){const i=t.getViewReference(),{viewPlaneNormal:o,FrameOfReferenceUID:a}=i,s={annotationUID:(n==null?void 0:n.annotationUID)||wn(),data:{handles:{points:r}},highlighted:!1,autoGenerated:!1,invalidated:!1,isLocked:!1,isVisible:!0,metadata:{toolName:e,viewPlaneNormal:o,FrameOfReferenceUID:a,referencedImageId:Ule(t,r[0],o),...n}};return Ut(s,t.element),s}function Ule(t,e,r){let n;if(t instanceof un)n=$C(t,e,r);else if(t instanceof Rn){const i=Ble(t),o=fa(i),a=Te.getVolume(o);n=qa(a,e,r)}else throw new Error("getReferencedImageId: viewport must be a StackViewport or BaseVolumeViewport");return n}function Ble(t){var r;const e=(r=t.getViewReferenceId)==null?void 0:r.call(t);if(e)return e;if(t instanceof Rn)return`volumeId:${Gle(t)}`;throw new Error("getTargetId: viewport must have a getTargetId method")}function Gle(t){var r;const e=t.getActors();if(e)return(r=e.find(n=>n.actor.getClassName()==="vtkVolume"))==null?void 0:r.uid}function $C(t,e,r){const n=t.getImageIds();if(!n||!n.length)return;const i=n.map(o=>{const{imagePositionPatient:a}=Pe("imagePlaneModule",o),s=Wle(e,a,r);return{imageId:o,distance:s}});return i.sort((o,a)=>o.distance-a.distance),i[0].imageId}function Wle(t,e,r){const n=xe();en(n,t,e);const i=je(n,r);return Math.abs(i)}function dN(t,e){const{segmentation:r}=t.data,{segmentation:n}=e.data;return r.segmentationId===n.segmentationId&&r.segmentIndex===n.segmentIndex}function Ih(t){var e;return!!((e=t.data)!=null&&e.segmentation)}function Qu(t){if(t.parentAnnotationUID)return;if(!t.data.segmentation)throw new Error("addContourSegmentationAnnotation: annotation does not have a segmentation data");const{segmentationId:e,segmentIndex:r}=t.data.segmentation,n=Ct(e);n.representationData.Contour||(n.representationData.Contour={annotationUIDsMap:new Map});const{annotationUIDsMap:i}=n.representationData.Contour;let o=i.get(r);o||(o=new Set,i.set(r,o)),i.set(r,o.add(t.annotationUID))}function C2(t){if(!t.data.segmentation)throw new Error("removeContourSegmentationAnnotation: annotation does not have a segmentation data");const{segmentationId:e,segmentIndex:r}=t.data.segmentation,n=Ct(e),{annotationUIDsMap:i}=(n==null?void 0:n.representationData.Contour)||{},o=i==null?void 0:i.get(r);o&&(o.delete(t.annotationUID),o.size||i.delete(r))}const zle=Object.freeze(Object.defineProperty({__proto__:null,addContourSegmentationAnnotation:Qu,areSameSegment:dN,isContourSegmentationAnnotation:Ih,removeContourSegmentationAnnotation:C2},Symbol.toStringTag,{value:"Module"}));function $le(t){if(!t)throw new Error(`No contours found for geometryId ${t.id}`);const e=t.id;if(t.type!==ol.CONTOUR)throw new Error(`Geometry type ${t.type} not supported for rendering.`);if(!t.data){console.warn(`No contours found for geometryId ${e}. Skipping render.`);return}}function jle(t,e,r,n){r.size?t.render():Hle(t,e,n)}function Hle(t,e,r){const{segmentationId:n}=r,i=new Map;e.forEach(o=>{const a=Te.getGeometry(o);if(!a){console.warn(`No geometry found for geometryId ${o}. Skipping render.`);return}const s=a.data.segmentIndex;$le(a);const c=Fi.getStyle({viewportId:t.id,segmentationId:n,type:Ge.Contour,segmentIndex:s}),l=a.data,f=t.getCamera().viewPlaneNormal;l.contours.forEach(u=>{const{points:d,color:h,id:g}=u,p=$C(t,d[0],f),v={annotationUID:wn(),data:{contour:{closed:!0,polyline:d},segmentation:{segmentationId:n,segmentIndex:s,color:h,id:g},handles:{}},handles:{},highlighted:!1,autoGenerated:!1,invalidated:!1,isLocked:!0,isVisible:!0,metadata:{referencedImageId:p,toolName:"PlanarFreehandContourSegmentationTool",FrameOfReferenceUID:t.getFrameOfReferenceUID(),viewPlaneNormal:t.getCamera().viewPlaneNormal}},x=t.element;Ut(v,x),Qu(v)}),c&&i.set(s,c)}),t.resetCamera(),t.render()}function jC(t,e=5){return parseFloat(t[0]).toFixed(e)+","+parseFloat(t[1]).toFixed(e)+","+parseFloat(t[2]).toFixed(e)+","}const hN=sc(),w3=new Map,C3=new Map,Up=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:_0.SURFACE_CLIPPING})};async function gN(t,e){var a;aN();const r=(a=e.getSlicesClippingPlanes)==null?void 0:a.call(e);if(!r)return;const n=e.getSliceIndex();r.sort((s,c)=>{const l=Math.abs(s.sliceIndex-n),f=Math.abs(c.sliceIndex-n);return l-f}),Up(Ce,0),await Kle(t);const i=new Map;t.forEach(s=>{i.set(s.id,C3.get(s.id))});const o=e.getCamera();return await hN.executeTask("polySeg","cutSurfacesIntoPlanes",{surfacesInfo:t,planesInfo:r,surfacesAABB:i},{callbacks:[({progress:s})=>{Up(Ce,s)},({sliceIndex:s,polyDataResults:c})=>{c.forEach((l,f)=>{const u=Number(f),d=qle(e,o.viewPlaneNormal,s);Xle(u,d,l)})}]}).catch(s=>{console.error(s)}),Up(Ce,100),w3}async function Kle(t){const e=t.filter(n=>!C3.has(n.id));if(!e.length)return;(await hN.executeTask("polySeg","getSurfacesAABBs",{surfacesInfo:e},{callbacks:[({progress:n})=>{Up(Ce,n)}]})).forEach((n,i)=>{C3.set(i,n)})}function qle(t,e,r){return`${t.id}-${jC(e)}-${r}`}function Xle(t,e,r){const{points:n,lines:i,numberOfCells:o}=r;let a=w3.get(t);a||(a=new Map,w3.set(t,a)),a.set(e,{points:n,lines:i,numberOfCells:o})}function pN(t){const e=new Map;for(const[r,n]of t){const i=Number(r);for(const[o,a]of n)a&&(e.has(i)||e.set(i,[]),e.get(i).push(a))}return e}const{CalibrationTypes:rf}=Po,wc="px",mN=[1],Yle=["3,3"],Jle=["4,3"],S3={0:"px",1:"percent",2:"dB",3:"cm",4:"seconds",5:"hertz",6:"dB/seconds",7:"cm/sec",8:"cm²",9:"cm²/s",12:"degrees"},Zle=.001,of="²",Bi=(t,e)=>{const{calibration:r,hasPixelSpacing:n}=t;let i=n?"mm":wc,o=i+of,a=1,s="";if(!r||!r.type&&!r.sequenceOfUltrasoundRegions)return{unit:i,areaUnit:o,scale:a};if(r.type===rf.UNCALIBRATED)return{unit:wc,areaUnit:wc+of,scale:a};if(r.sequenceOfUltrasoundRegions){let l,f;if(Array.isArray(e)&&e.length===2)[l,f]=e;else if(typeof e=="function"){const v=e();l=v[0],f=v[1]}let u=r.sequenceOfUltrasoundRegions.filter(v=>l[0]>=v.regionLocationMinX0&&l[0]<=v.regionLocationMaxX1&&l[1]>=v.regionLocationMinY0&&l[1]<=v.regionLocationMaxY1&&f[0]>=v.regionLocationMinX0&&f[0]<=v.regionLocationMaxX1&&f[1]>=v.regionLocationMinY0&&f[1]<=v.regionLocationMaxY1);if(!(u!=null&&u.length))return{unit:i,areaUnit:o,scale:a};if(u=u.filter(v=>mN.includes(v.regionDataType)&&Yle.includes(`${v.physicalUnitsXDirection},${v.physicalUnitsYDirection}`)),!u.length)return{unit:wc,areaUnit:wc+of,scale:a};const d=u[0],h=Math.abs(d.physicalDeltaX),g=Math.abs(d.physicalDeltaY);if(mt(h,g,Zle))a=1/h,s="US Region",i=S3[d.physicalUnitsXDirection]||"unknown",o=i+of;else return{unit:wc,areaUnit:wc+of,scale:a}}else r.scale&&(a=r.scale);return[rf.ERMF,rf.USER,rf.ERROR,rf.PROJECTION].includes(r==null?void 0:r.type)&&(s=r.type),{unit:i+(s?` ${s}`:""),areaUnit:o+(s?` ${s}`:""),scale:a}},lm=(t,e)=>{const[r]=e,{calibration:n}=t;let i=["raw"],o=[null],a="";if(!n||!n.type&&!n.sequenceOfUltrasoundRegions)return{units:i,values:o};if(n.sequenceOfUltrasoundRegions){const s=n.sequenceOfUltrasoundRegions.filter(p=>mN.includes(p.regionDataType)&&Jle.includes(`${p.physicalUnitsXDirection},${p.physicalUnitsYDirection}`));if(!(s!=null&&s.length))return{units:i,values:o};const c=s.find(p=>r[0]>=p.regionLocationMinX0&&r[0]<=p.regionLocationMaxX1&&r[1]>=p.regionLocationMinY0&&r[1]<=p.regionLocationMaxY1);if(!c)return{units:i,values:o};const{referencePixelX0:l=0,referencePixelY0:f=0}=c,{physicalDeltaX:u,physicalDeltaY:d}=c,h=(r[1]-c.regionLocationMinY0-f)*d,g=(r[0]-c.regionLocationMinX0-l)*u;a="US Region",o=[g,h],i=[S3[c.physicalUnitsXDirection],S3[c.physicalUnitsYDirection]]}return{units:i,values:o,calibrationType:a}},HC=t=>{var e;return((e=t.calibration)==null?void 0:e.aspect)||1};function vN(t,e){return t.minX<=e.maxX&&t.maxX>=e.minX&&t.minY<=e.maxY&&t.maxY>=e.minY}function um(t,e){const r=t.maxX-t.minX,n=t.maxY-t.minY,i=[r,n],o=[t.minX+r/2,t.minY+n/2],a=[Math.abs(e[0]-o[0]),Math.abs(e[1]-o[1])],s=a[0]-i[0]*.5,c=a[1]-i[1]*.5;if(s>0&&c>0)return s*s+c*c;const l=Math.max(s,0)+Math.max(c,0);return l*l}function Qle(t,e){return Math.sqrt(um(t,e))}const eue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:Qle,distanceToPointSquared:um,intersectAABB:vN},Symbol.toStringTag,{value:"Module"}));class yN{}const{PointsManager:W_}=Jt,rt=class rt extends yN{static statsInit(e){e.storePointData||(rt.pointsInShape=null)}};rt.max=[-1/0],rt.min=[1/0],rt.sum=[0],rt.count=0,rt.runMean=[0],rt.m2=[0],rt.pointsInShape=W_.create3(1024),rt.statsCallback=({value:e,pointLPS:r=null})=>{var i;Array.isArray(e)&&e.length>1&&rt.max.length===1&&(rt.max.push(rt.max[0],rt.max[0]),rt.min.push(rt.min[0],rt.min[0]),rt.sum.push(rt.sum[0],rt.sum[0]),rt.runMean.push(0,0),rt.m2.push(rt.m2[0],rt.m2[0])),(i=rt.pointsInShape)==null||i.push(r);const n=Array.isArray(e)?e:[e];rt.count+=1,rt.max.map((o,a)=>{const s=n[a],c=s-rt.runMean[a];rt.sum[a]+=s,rt.runMean[a]+=c/rt.count;const l=s-rt.runMean[a];rt.m2[a]+=c*l,rt.min[a]=Math.min(rt.min[a],s),rt.max[a]=Math.max(o,s)})},rt.getStatistics=e=>{const r=rt.sum.map(a=>a/rt.count),n=rt.m2.map(a=>Math.sqrt(a/rt.count)),i=(e==null?void 0:e.unit)||null,o={max:{name:"max",label:"Max Pixel",value:Bg(rt.max),unit:i},min:{name:"min",label:"Min Pixel",value:Bg(rt.min),unit:i},mean:{name:"mean",label:"Mean Pixel",value:Bg(r),unit:i},stdDev:{name:"stdDev",label:"Standard Deviation",value:Bg(n),unit:i},count:{name:"count",label:"Pixel Count",value:rt.count,unit:null},pointsInShape:rt.pointsInShape,array:[]};return o.array.push(o.max,o.mean,o.stdDev,o.stdDev,o.count),rt.max=[-1/0],rt.min=[1/0],rt.sum=[0],rt.m2=[0],rt.runMean=[0],rt.count=0,rt.pointsInShape=W_.create3(1024),o};let Xa=rt;function Bg(t){return t.length===1?t[0]:t}const tue=Object.freeze(Object.defineProperty({__proto__:null,BasicStatsCalculator:Xa,Calculator:yN},Symbol.toStringTag,{value:"Module"}));function S2(t,e,r={}){return r.precalculated||KC(t,r),r.precalculated(e)}const KC=(t,e={})=>{const{xRadius:r,yRadius:n,zRadius:i}=t;(e.invXRadiusSq===void 0||e.invYRadiusSq===void 0||e.invZRadiusSq===void 0)&&(e.invXRadiusSq=r!==0?1/r**2:0,e.invYRadiusSq=n!==0?1/n**2:0,e.invZRadiusSq=i!==0?1/i**2:0);const{invXRadiusSq:o,invYRadiusSq:a,invZRadiusSq:s}=e,{center:c}=t,[l,f,u]=c;return e.precalculated=d=>{const h=d[0]-l;let g=h*h*o;if(g>1)return!1;const p=d[1]-f;if(g+=p*p*a,g>1)return!1;const v=d[2]-u;return g+=v*v*s,g<=1},e};function qf(t){const[e,r,n,i]=t,o=[n[0],r[1]],a=[i[0],e[1]];return[o,a]}const nue=Object.freeze(Object.defineProperty({__proto__:null,getCanvasEllipseCorners:qf,pointInEllipse:S2,precalculatePointInEllipse:KC},Symbol.toStringTag,{value:"Module"}));function Ya(t,e){if(t.length!==e.length)throw Error("Both points should have the same dimensionality");const[r,n,i=0]=t,[o,a,s=0]=e,c=o-r,l=a-n,f=s-i;return c*c+l*l+f*f}function ao(t,e){return Math.sqrt(Ya(t,e))}function T3(t,e){const[r,n]=t,[i,o]=e,a=2*i-r,s=2*o-n;return[a,s]}const rue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:ao,distanceToPointSquared:Ya,mirror:T3},Symbol.toStringTag,{value:"Module"}));function fm(t,e,r){let n;const i=Ya(t,e);if(t[0]===e[0]&&t[1]===e[1]&&(n=t),!n){const o=((r[0]-t[0])*(e[0]-t[0])+(r[1]-t[1])*(e[1]-t[1]))/i;o<0?n=t:o>1?n=e:n=[t[0]+o*(e[0]-t[0]),t[1]+o*(e[1]-t[1])]}return{point:[...n],distanceSquared:Ya(r,n)}}function Oh(t,e,r){return fm(t,e,r).distanceSquared}function Ar(t,e,r){if(t.length!==2||e.length!==2||r.length!==2)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(Oh(t,e,r))}function Gg(t){return typeof t=="number"?t?t<0?-1:1:t===t?0:NaN:NaN}function _3(t,e,r,n){const[i,o]=t,[a,s]=e,[c,l]=r,[f,u]=n,d=s-o,h=i-a,g=a*o-i*s,p=d*c+h*l+g,v=d*f+h*u+g;if(p!==0&&v!==0&&Gg(p)===Gg(v))return;const x=u-l,m=c-f,y=f*l-c*u,w=x*i+m*o+y,C=x*a+m*s+y;if(w!==0&&C!==0&&Gg(w)===Gg(C))return;const S=d*m-x*h;let T;T=h*y-m*g;const _=T/S;T=x*g-d*y;const E=T/S;return[_,E]}const af=.01;function Bp(t,e,r){const n=t[0]<=e[0]?t[0]:e[0],i=t[0]>=e[0]?t[0]:e[0],o=t[1]<=e[1]?t[1]:e[1],a=t[1]>=e[1]?t[1]:e[1];if(!(r[0]>=n-af&&r[0]<=i+af&&r[1]>=o-af&&r[1]<=a+af))return!1;const c=(e[1]-t[1])*(r[0]-e[0])-(e[0]-t[0])*(r[1]-e[1]);return(c>=0?c:-c)<=af}const iue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:Ar,distanceToPointSquared:Oh,distanceToPointSquaredInfo:fm,intersectLine:_3,isPointOnLineSegment:Bp},Symbol.toStringTag,{value:"Module"}));function xN(t){if(t.length<3)return!1;const e=t.length,r=t[0],n=t[e-1],i=Ya(r,n);return qs(0,i)}function hl(t,e,r={closed:void 0}){if(t.length<3)return!1;const n=t.length;let i=0;const{closed:o,holes:a}=r;if(a!=null&&a.length){for(const l of a)if(hl(l,e))return!1}const s=!(o===void 0?xN(t):o),c=t.length-(s?1:2);for(let l=0;l<=c;l++){const f=t[l],u=l===n-1?0:l+1,d=t[u],h=f[0]>=d[0]?f[0]:d[0],g=f[1]>=d[1]?f[1]:d[1],p=f[1]<=d[1]?f[1]:d[1];if(e[0]<=h&&e[1]>=p&&e[1]h?s:h,c=c>g?c:g,i&&(l=lp?f:p)}return i?{minX:o,maxX:s,minY:a,maxY:c,minZ:l,maxZ:f}:{minX:o,maxX:s,minY:a,maxY:c}}function Mh(t){const e=t.length;let r=0,n=e-1;for(let i=0;i=0?1:-1}function oue(t){const e=xe(),r=t[0];for(let n=0,i=t.length;ne[0]?t[0]:e[0],c=t[1]>e[1]?t[1]:e[1],l=r[0]n[0]?r[0]:n[0],d=r[1]>n[1]?r[1]:n[1];if(o>u||sd||c0?1:2}function zg(t,e,r){return e[0]<=Math.max(t[0],r[0])&&e[0]>=Math.min(t[0],r[0])&&e[1]<=Math.max(t[1],r[1])&&e[1]>=Math.min(t[1],r[1])}function JC(t,e,r,n=!0){const i=[],o=t.length,a=o-(n?1:2);for(let s=0;s<=a;s++){const c=t[s],l=s===o-1?0:s+1,f=t[l];YC(e,r,c,f)&&i.push([s,l])}return i}const sue=.01;function wN(t,e,r,n){const i=[e[0]-t[0],e[1]-t[1]],o=[n[0]-r[0],n[1]-r[1]],a=o[1]*i[0]-o[0]*i[1];if((a>=0?a:-a)e[0]?t[0]:e[0],t[1]e[1]?t[1]:e[1]],p=[r[0]n[0]?r[0]:n[0],r[1]n[1]?r[1]:n[1]];if(!(g[0]<=p[1]&&g[1]>=p[0]&&g[2]<=p[3]&&g[3]>=p[2])||!(Bp(t,e,r)||Bp(t,e,n)||Bp(r,n,t)))return;const m=g[0]>p[0]?g[0]:p[0],y=g[1]p[2]?g[2]:p[2],C=g[3]{const p=g[0],v=e[g[0]],x=e[g[1]],m=wN(l,d,v,x),y=Ya(l,m);return{sourceLineSegmentId:p,coordinate:m,targetStartPointDistSquared:y}});h.sort((g,p)=>g.targetStartPointDistSquared-p.targetStartPointDistSquared),h.forEach(g=>{const{sourceLineSegmentId:p,coordinate:v}=g,x={type:Yc.Intersection,coordinates:v,position:Mu.Edge,direction:a,visited:!1,next:null},m={...x,direction:au.Unknown,cloned:!0};a===au.Entering?x.next=m:m.next=x;let y=i.get(p);y||(y=[],i.set(p,y)),r.push(x),y.push(m),a*=-1})}for(let s=0,c=e.length;s({intersectionPoint:h,lineSegStartDistSquared:Ya(f,h.coordinates)})).sort((h,g)=>h.lineSegStartDistSquared-g.lineSegStartDistSquared).map(({intersectionPoint:h})=>h).forEach(h=>n.push(h))}return z_(r),z_(n),{targetPolylinePoints:r,sourcePolylinePoints:n}}function SN(t){for(let e=0,r=t.length;ed&&(d=v,h=g)}d{const u=[t[f[0]],t[f[1]]],d=[(u[0][0]+u[1][0])/2,(u[0][1]+u[1][1])/2];s.push(In(d,e))});const c=Math.min(...s),l=s.indexOf(c);return{segment:a[l],distance:c}}const Gl=.001,uue=(t,e)=>{let r,n,i;if(t instanceof un){const a=t.getImageData();n=a.direction.slice(0,3),i=a.direction.slice(3,6),r=a.spacing}else{const a=t.getImageData(),{direction:s,spacing:c}=a,{viewPlaneNormal:l,viewUp:f}=t.getCamera(),u=s.slice(0,3),d=s.slice(3,6),h=s.slice(6,9),g=xe();qt(g,f,l);const p=Math.abs(je(g,u)),v=Math.abs(je(g,d)),x=Math.abs(je(g,h));let m;if(Math.abs(1-p)_w(t,e){const{xDir:i,yDir:o,spacing:a}=n,s=ne(t),{viewport:c}=s;if(!e.length)return e.push(r),console.log(">>>>> !canvasPoints. :: RETURN"),1;const l=c.canvasToWorld(e[e.length-1]),f=c.canvasToWorld(r),u=xe();kt(u,f,l);const d=Math.abs(je(u,i)),h=Math.abs(je(u,o)),g=Math.max(Math.floor(d/a[0]),Math.floor(h/a[0]));if(g>1){const p=e[e.length-1],v=_w(p,r),x=ot();kn(x,r,p),Qi(x,x[0]/v,x[1]/v);const m=v/g;for(let y=1;y<=g;y++)e.push([p[0]+m*x[0]*y,p[1]+m*x[1]*y])}else e.push(r);return g},hue=(t,e,r,n)=>{const i=[t[0]-e[0],t[1]-e[1]],o=[r[0]-e[0],r[1]-e[1]],a=i[0]*o[0]+i[1]*o[1];if(a<0)return!1;const s=Math.sqrt(o[0]*o[0]+o[1]*o[1]);if(s===0)return!1;const c=a/s,l=[o[0]/s,o[1]/s],f=[l[0]*c,l[1]*c],u=[e[0]+f[0],e[1]+f[1]];return!(In(t,u)>n||In(e,u)>In(e,r))},gue=1e-6;function ON(t){let e;const r=gR(t,50);for(let a=0;a<3;a++)if(r.every((s,c,l)=>Math.abs(s[a]-l[0][a]){const[l,f]=s[c],u=Ar(l,f,e);u0){if(o>i)return 0;o>n&&(r[0]=o)}else{if(o=r[0]&&o<=r[2]&&a>=r[1]&&a<=r[3])return $_;const u=[0,1];if($g(r[0]-o,l,u)&&$g(o-r[2],-l,u)&&$g(r[1]-a,f,u)&&$g(a-r[3],-f,u)){const[d,h]=u;return h<1&&(i[0]=o+h*l,i[1]=a+h*f),d>0&&(n[0]+=d*l,n[1]+=d*f),$_}return yue}const xue=Object.freeze(Object.defineProperty({__proto__:null,findClosestPoint:E3,liangBarksyClip:Rf},Symbol.toStringTag,{value:"Module"})),wue=Object.freeze(Object.defineProperty({__proto__:null,BasicStatsCalculator:tue,aabb:eue,ellipse:nue,lineSegment:iue,point:rue,polyline:cc,rectangle:mue,vec2:xue},Symbol.toStringTag,{value:"Module"})),{EPSILON:Cue}=Cl,Sue=1-Cue;function QC(t,e,r){const{viewPlaneNormal:n}=e,i=t.filter(c=>{let l=c.metadata.viewPlaneNormal;if(!l){const{referencedImageId:u}=c.metadata,{imageOrientationPatient:d}=Pe("imagePlaneModule",u),h=Ye(d[0],d[1],d[2]),g=Ye(d[3],d[4],d[5]);l=xe(),qt(l,h,g),c.metadata.viewPlaneNormal=l}const f=Math.abs(je(n,l))>Sue;return l&&f});if(!i.length)return[];const o=r/2,{focalPoint:a}=e,s=[];for(const c of i){const f=c.data.handles.points[0];if(!c.isVisible)continue;const u=xe();en(u,a,f);const d=je(u,n);Math.abs(d)n.isVisible?n.data.isCanvasAnnotation?!0:t.isReferenceViewable(n.metadata,r):!1)}function eS(t,e,r,n,i=.25){const o=t.getCamera(),{position:a}=o,{spacingInNormalDirection:s}=S0(t,o,r),c=s*i,l=t.getBounds(),f=l[0],u=l[1],d=[0,0,0];let h=[0,0,0];nt.subtract(e,a,d);let g;for(let p=f;p<=u;p=p+c){h=[p,0,0];const v=(p-a[0])/d[0];if(h[1]=v*d[1]+a[1],h[2]=v*d[2]+a[2],Tue(h,l)){const x=t.getIntensityFromWorld(h),m=n(x,h);m&&(g=m)}}return g}const Tue=function(t,e){const[r,n,i,o,a,s]=e;return t[0]>r&&t[0]i&&t[1]a&&t[2]{const c=[Ye(r,n,i),Ye(o,n,i),Ye(r,a,i),Ye(o,a,i),Ye(r,n,s),Ye(o,n,s),Ye(r,a,s),Ye(o,a,s)],l=Ye(e[0],e[1],e[2]),f=Ye(t[0],t[1],t[2]),u=-je(l,f);let d=null;for(const h of c){const g=je(l,h)+u;if(d===null)d=Math.sign(g);else if(Math.sign(g)!==d)return!0}return!1},{EPSILON:_ue}=Cl,Eue=1-_ue;function E2(t,e){const{viewPlaneNormal:r}=e,n=t.filter(i=>{let o=i.metadata.viewPlaneNormal;if(!o){const{referencedImageId:s}=i.metadata,{imageOrientationPatient:c}=Pe("imagePlaneModule",s),l=Ye(c[0],c[1],c[2]),f=Ye(c[3],c[4],c[5]);o=xe(),qt(o,l,f),i.metadata.viewPlaneNormal=o}const a=Math.abs(je(r,o))>Eue;return o&&a});return n.length?n:[]}const Due={filterAnnotationsWithinSlice:QC,getWorldWidthAndHeightFromCorners:T2,filterAnnotationsForDisplay:_2,getPointInLineOfSightWithCriteria:eS,isPlaneIntersectingAABB:RN,filterAnnotationsWithinSamePlane:E2},bue=Object.freeze(Object.defineProperty({__proto__:null,default:Due,filterAnnotationsForDisplay:_2,filterAnnotationsWithinSamePlane:E2,filterAnnotationsWithinSlice:QC,getPointInLineOfSightWithCriteria:eS,getWorldWidthAndHeightFromCorners:T2,isPlaneIntersectingAABB:RN},Symbol.toStringTag,{value:"Module"}));function ei(t,e,r){let n=!0,i=!0;if(typeof t!="function")throw new TypeError("Expected a function");return FC(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),w2(t,e,{leading:n,trailing:i,maxWait:e})}function LN(t,e){const r=t.length,n=[];for(let i=0;i{const i=n.getCamera();return Math.abs(je(i.viewPlaneNormal,e.viewPlaneNormal))>r})}function He(t,e,r=!0){const n=ne(t),{renderingEngine:i,FrameOfReferenceUID:o}=n;let a=i.getViewports();a=LN(a,o),a=D2(a,e);const s=i.getViewport(n.viewportId);return r&&(a=NN(a,s.getCamera())),a.map(l=>l.id)}const Lue=Object.freeze(Object.defineProperty({__proto__:null,filterViewportsWithFrameOfReferenceUID:LN,filterViewportsWithParallelNormals:NN,filterViewportsWithToolEnabled:D2,getViewportIdsWithToolToRender:He},Symbol.toStringTag,{value:"Module"})),Nue="viewport-element";function Pue(t){const e=ne(t),{viewportId:r,renderingEngineId:n}=e,i=`${r}:${n}`,o=Aue(t);return Object.keys(me.svgNodeCache[i]).forEach(a=>{me.svgNodeCache[i][a].touched=!1}),{svgLayerElement:o,svgNodeCacheForCanvas:me.svgNodeCache,getSvgNode:kue.bind(this,i),appendNode:Vue.bind(this,o,i),setNodeTouched:Fue.bind(this,i),clearUntouched:Uue.bind(this,o,i)}}function Aue(t){const e=`.${Nue}`,r=t.querySelector(e);return r==null?void 0:r.querySelector(":scope > .svg-layer")}function kue(t,e){if(me.svgNodeCache[t]&&me.svgNodeCache[t][e])return me.svgNodeCache[t][e].domRef}function Vue(t,e,r,n){if(!me.svgNodeCache[e])return null;me.svgNodeCache[e][n]={touched:!0,domRef:r},t.appendChild(r)}function Fue(t,e){me.svgNodeCache[t]&&me.svgNodeCache[t][e]&&(me.svgNodeCache[t][e].touched=!0)}function Uue(t,e){me.svgNodeCache[e]&&Object.keys(me.svgNodeCache[e]).forEach(r=>{const n=me.svgNodeCache[e][r];!n.touched&&n.domRef&&(t.removeChild(n.domRef),delete me.svgNodeCache[e][r])})}function PN(t,e){const r=Pue(t);e(r),r.clearUntouched()}function ts(t,e,r){return`${t}::${e}::${r}`}function so(t,e){Object.keys(t).forEach(r=>{const n=e.getAttribute(r),i=t[r];i===void 0||i===""?e.removeAttribute(r):n!==i&&e.setAttribute(r,i)})}function ns(t,e){Object.keys(t).forEach(r=>{const n=t[r];n!==void 0&&n!==""&&e.setAttribute(r,n)})}function bi(t,e,r,n,i,o={},a=""){const{color:s,fill:c,width:l,lineWidth:f,lineDash:u,fillOpacity:d,strokeOpacity:h}=Object.assign({color:"rgb(0, 255, 0)",fill:"transparent",width:"2",lineDash:void 0,lineWidth:void 0,strokeOpacity:1,fillOpacity:1},o),g=f||l,p="http://www.w3.org/2000/svg",v=ts(e,"circle",r),x=t.getSvgNode(v),m={cx:`${n[0]}`,cy:`${n[1]}`,r:`${i}`,stroke:s,fill:c,"stroke-width":g,"stroke-dasharray":u,"fill-opacity":d,"stroke-opacity":h};if(x)so(m,x),t.setNodeTouched(v);else{const y=document.createElementNS(p,"circle");a!==""&&y.setAttribute("data-id",a),ns(m,y),t.appendNode(y,v)}}function tS(t,e,r,n,i={},o=""){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},i),f=c||s,u="http://www.w3.org/2000/svg",d=ts(e,"ellipse",r),h=t.getSvgNode(d),[g,p,v,x]=n,m=Math.hypot(v[0]-x[0],v[1]-x[1]),y=Math.hypot(p[0]-g[0],p[1]-g[1]),w=Math.atan2(v[1]-x[1],v[0]-x[0])*180/Math.PI,C=[(v[0]+x[0])/2,(p[1]+g[1])/2],S=m/2,T=y/2,_={cx:`${C[0]}`,cy:`${C[1]}`,rx:`${S}`,ry:`${T}`,stroke:a,fill:"transparent",transform:`rotate(${w} ${C[0]} ${C[1]})`,"stroke-width":f,"stroke-dasharray":l};if(h)so(_,h),t.setNodeTouched(d);else{const E=document.createElementNS(u,"ellipse");o!==""&&E.setAttribute("data-id",o),ns(_,E),t.appendNode(E,d)}}function Bue(t,e,r,n,i,o={},a=""){const s=[(n[0]+i[0])/2,n[1]],c=[(n[0]+i[0])/2,i[1]],l=[n[0],(n[1]+i[1])/2],f=[i[0],(n[1]+i[1])/2];tS(t,e,r,[c,s,l,f],o={},a="")}function dm(t,e,r,n,i={},o){const{color:a,handleRadius:s,width:c,lineWidth:l,fill:f,type:u,opacity:d}=Object.assign({color:"rgb(0, 255, 0)",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle",opacity:1},i),h=l||c,g="http://www.w3.org/2000/svg",p=ts(e,"handle",`hg-${r}-index-${o}`);let v;if(u==="circle")v={cx:`${n[0]}`,cy:`${n[1]}`,r:s,stroke:a,fill:f,"stroke-width":h,opacity:d};else if(u==="rect"){const y=parseFloat(s)*1.5,w=n[0]-y*.5,C=n[1]-y*.5;v={x:`${w}`,y:`${C}`,width:`${y}`,height:`${y}`,stroke:a,fill:f,"stroke-width":h,rx:`${y*.1}`,opacity:d}}else throw new Error(`Unsupported handle type: ${u}`);const x=t.getSvgNode(p);if(x)so(v,x),t.setNodeTouched(p);else{const m=document.createElementNS(g,u);ns(v,m),t.appendNode(m,p)}}function cn(t,e,r,n,i={}){n.forEach((o,a)=>{dm(t,e,r,o,i,a)})}function It(t,e,r,n,i,o={},a=""){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:s,width:c,lineWidth:l,lineDash:f,shadow:u}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},o),d=l||c,h="http://www.w3.org/2000/svg",g=ts(e,"line",r),p=t.getSvgNode(g),v=u?`filter:url(#shadow-${t.svgLayerElement.id});`:"",x={x1:`${n[0]}`,y1:`${n[1]}`,x2:`${i[0]}`,y2:`${i[1]}`,stroke:s,style:v,"stroke-width":d,"stroke-dasharray":f};if(p)so(x,p),t.setNodeTouched(g);else{const m=document.createElementNS(h,"line");a!==""&&m.setAttribute("data-id",a),ns(x,m),t.appendNode(m,g)}}function AN(t,e,r,n,i,o={}){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o),f=i[0]+(n[0]-i[0])/2,u=[f,n[1]],d=[f,i[1]],h={start:n,end:u},g={start:u,end:d},p={start:d,end:i};It(t,e,"1",h.start,h.end,{color:a,width:s,lineWidth:c}),It(t,e,"2",g.start,g.end,{color:a,width:s,lineWidth:c}),It(t,e,"3",p.start,p.end,{color:a,width:s,lineWidth:c})}function la(t,e,r,n,i){if(n.length<2)return;const{color:o="rgb(0, 255, 0)",width:a=10,fillColor:s="none",fillOpacity:c=0,lineWidth:l,lineDash:f,closePath:u=!1}=i,d=l||a,h="http://www.w3.org/2000/svg",g=ts(e,"polyline",r),p=t.getSvgNode(g);let v="";for(const m of n)v+=`${m[0].toFixed(1)}, ${m[1].toFixed(1)} `;if(u){const m=n[0];v+=`${m[0]}, ${m[1]}`}const x={points:v,stroke:o,fill:s,"fill-opacity":c,"stroke-width":d,"stroke-dasharray":f};if(p)so(x,p),t.setNodeTouched(g);else{const m=document.createElementNS(h,"polyline");ns(x,m),t.appendNode(m,g)}}function zs(t,e,r,n,i){const a=n.length&&n[0].length&&Array.isArray(n[0][0])?n:[n],{color:s="rgb(0, 255, 0)",width:c=10,fillColor:l="none",fillOpacity:f=0,lineWidth:u,lineDash:d,closePath:h=!1}=i,g=u||c,p="http://www.w3.org/2000/svg",v=ts(e,"path",r),x=t.getSvgNode(v);let m="";for(let w=0,C=a.length;wm.length){for(let C=0;C0?E3(n,i):i,c=$ue(o),l=E3(c,s),f=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},a);It(t,e,`link-${r}`,s,l,f)}function $ue(t){const{x:e,y:r,height:n,width:i}=t,o=i/2,a=n/2,s=[e+o,r],c=[e,r+a],l=[e+o,r+n],f=[e+i,r+a];return[s,c,l,f]}function ti(t,e,r,n,i,o,a,s={}){const c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},s),l=gl(t,e,r,n,i,c);return zue(t,e,r,o,i,l,c),l}function nS(t,e,r,n,i={},o=""){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},i),f=c||s,u="http://www.w3.org/2000/svg",d=ts(e,"rect",r),h=t.getSvgNode(d),[g,p,v,x]=n,m=Math.hypot(g[0]-p[0],g[1]-p[1]),y=Math.hypot(g[0]-v[0],g[1]-v[1]),w=[(x[0]+g[0])/2,(x[1]+g[1])/2],C=[(v[0]+g[0])/2,(v[1]+g[1])/2],S=Math.atan2(w[1]-C[1],w[0]-C[0])*180/Math.PI,T={x:`${w[0]-m/2}`,y:`${w[1]-y/2}`,width:`${m}`,height:`${y}`,stroke:a,fill:"transparent",transform:`rotate(${S} ${w[0]} ${w[1]})`,"stroke-width":f,"stroke-dasharray":l};if(h)so(T,h),t.setNodeTouched(d);else{const _=document.createElementNS(u,"rect");o!==""&&_.setAttribute("data-id",o),ns(T,_),t.appendNode(_,d)}}function Rh(t,e,r,n,i,o={},a=""){const s=[n[0],n[1]],c=[i[0],n[1]],l=[n[0],i[1]],f=[i[0],i[1]];nS(t,e,r,[s,c,l,f],o,a)}function hm(t,e,r,n,i,o={}){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o);It(t,e,r,n,i,{color:a,width:s,lineWidth:c,lineDash:l});const f=10,u=Math.atan2(i[1]-n[1],i[0]-n[0]),d={start:[i[0]-f*Math.cos(u-Math.PI/7),i[1]-f*Math.sin(u-Math.PI/7)],end:i},h={start:[i[0]-f*Math.cos(u+Math.PI/7),i[1]-f*Math.sin(u+Math.PI/7)],end:i};It(t,e,"2",d.start,d.end,{color:a,width:s,lineWidth:c}),It(t,e,"3",h.start,h.end,{color:a,width:s,lineWidth:c})}function kN(t,e,r,n,i,o={}){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o),f=c||s,u="http://www.w3.org/2000/svg",d=ts(e,"rect",r),h=t.getSvgNode(d),g=[Math.min(n[0],i[0]),Math.min(n[1],i[1])],p=Math.abs(n[0]-i[0]),v=Math.abs(n[1]-i[1]),x={x:`${g[0]}`,y:`${g[1]}`,width:`${p}`,height:`${v}`,stroke:a,fill:"black","stroke-width":f,"stroke-dasharray":l};if(h)so(x,h),t.setNodeTouched(d);else{const m=document.createElementNS(u,"rect");ns(x,m),t.appendNode(m,d)}}const jue=Object.freeze(Object.defineProperty({__proto__:null,draw:PN,drawArrow:hm,drawCircle:bi,drawEllipse:Bue,drawEllipseByCoordinates:tS,drawHandle:dm,drawHandles:cn,drawHeight:AN,drawLine:It,drawLinkedTextBox:ti,drawPath:zs,drawPolyline:la,drawRect:Rh,drawRectByCoordinates:nS,drawRedactionRect:kN,drawTextBox:gl,setAttributesIfNecessary:so,setNewAttributesIfValid:ns},Symbol.toStringTag,{value:"Module"}));function VN(t,e){const r=ne(t),{renderingEngineId:n,viewportId:i}=r,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;c{this._throwIfDestroyed();const e=Array.from(this._viewportElements.values());for(let r=0;r{this._needsRender.add(r)}),this._renderFlaggedViewports()}_setViewportsToBeRenderedNextFrame(e){const r=[...this._viewportElements.values()];e.forEach(n=>{r.indexOf(n)!==-1&&this._needsRender.add(n)}),this._render()}_render(){this._needsRender.size>0&&this._animationFrameSet===!1&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}_triggerRender(e){const r=ne(e);if(!r)return;if(!hr(r.renderingEngineId)){console.warn("rendering Engine has been destroyed");return}const i=VN(e,[Hue,Kue,que]),{renderingEngineId:o,viewportId:a}=r,s={element:e,renderingEngineId:o,viewportId:a};PN(e,c=>{let l=!1;const f=u=>{if(u.renderAnnotation){const d=u.renderAnnotation(r,c);l=l||d}};i.forEach(f),l&&De(e,F.ANNOTATION_RENDERED,{...s})})}_reset(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null,this._setAllViewportsToBeRenderedNextFrame()}}const rS=new Xue;function O0(t){rS.renderViewport(t)}function pe(t){t.length&&t.forEach(e=>{const r=Xn(e);if(!r){console.warn(`Viewport not available for ${e}`);return}const{viewport:n}=r;if(!n){console.warn(`Viewport not available for ${e}`);return}const i=n.element;O0(i)})}function Yue(t){var e;return((e=t[0])==null?void 0:e.length)===3}function Jue(t,e){if(!e||e.length===0||e.length===t.length)return t;const r=e[e.length-1]-e[0]+1,n=Gv(e.map(o=>t[o][0])),i=Gv(e.map(o=>t[o][1]));if(Yue(t)){const o=Gv(e.map(a=>t[a][2]));return j8(tf(n,r),tf(i,r),tf(o,r))}else return j8(tf(n,r),tf(i,r))}function Zue(t,e){const r=[],[n,i]=e,o=i-n+1,a=Math.floor(o/t);let s=0,c=Math.round((o-1)/(a-1)*s)+n;for(;c<=i;)r.push(c),s++,c=Math.round((o-1)/(a-1)*s)+n;return r}function b3(t,e,r,n){const i=r-e+1,o=Math.floor(n/100*i)??1,a=Math.floor(i/o)??1;if(isNaN(i)||!i||!a||i/a<2)return t;const s=Math.max(0,e),c=Math.min(t.length-1,r),l=t.slice(0,s),f=t.slice(c+1,t.length),u=Zue(a,[s,c]),d=Jue(t,u);return[...l,...d,...f]}function b2(t,e){var n,i;return e!=null&&e.autoGenerated?!1:((n=t==null?void 0:t.smoothing)==null?void 0:n.smoothOnAdd)===!0||((i=t==null?void 0:t.smoothing)==null?void 0:i.smoothOnEdit)===!0}function Que(t,e){return ao(t,e)<.001}function e0e(t,e){return ao(t,e)===0}function t0e(t,e){for(let r=0;rQue(c,l)===!1,[o,a]=K_([su(r,t.length,1),r,t],[su(n,e.length,1),n,e],i,1),[s]=K_([su(o,t.length,-1),o,t],[su(a,e.length,-1),a,e],i,-1);return[o,s]}function I2(t,e,r){const{interpolation:n,smoothing:i}=t,o=e;if(n){const{knotsRatioPercentageOnAdd:a,knotsRatioPercentageOnEdit:s,smoothOnAdd:c=!1,smoothOnEdit:l=!1}=i,f=r?s:a;if(r?l:c){const[d,h]=r?n0e(e,r):[0,e.length-1];return!e[d]||!e[h]?e:b3(e,d,h,f)}}return o}const M0=t=>{if(t.shiftKey)return t.ctrlKey?vr.ShiftCtrl:t.altKey?vr.ShiftAlt:t.metaKey?vr.ShiftMeta:vr.Shift;if(t.ctrlKey)return t.altKey?vr.CtrlAlt:t.metaKey?vr.CtrlMeta:vr.Ctrl;if(t.altKey)return t.metaKey&&vr.AltMeta||vr.Alt;if(t.metaKey)return vr.Meta};function iS(t,e){const r=t[0],n=t[t.length-1],i=ot();Qi(i,n[0]-r[0],n[1]-r[1]),La(i,i);const o=ot(),a=ot();Qi(o,-i[1],i[0]),Qi(a,i[1],-i[0]);const s=[(r[0]+n[0])/2,(r[1]+n[1])/2],c={dist:0,index:null};for(let u=0;uc.dist&&(c.dist=h,c.index=u)}return[t[c.index],s].map(e.canvasToWorld)}function r0e(t,e){const{viewport:r}=t,n=e.data.contour.polyline.map(r.worldToCanvas);return iS(n,r)}var Qs;(function(t){t[t.CounterClockwise=-1]="CounterClockwise",t[t.Unknown=0]="Unknown",t[t.Clockwise=1]="Clockwise"})(Qs||(Qs={}));const{addCanvasPointsToArray:oS,pointsAreWithinCloseContourProximity:FN,getFirstLineSegmentIntersectionIndexes:UN,getSubPixelSpacingAndXYDirections:i0e}=cc;function o0e(t,e,r){this.isDrawing=!0;const n=t.detail,{currentPoints:i,element:o}=n,a=i.canvas,s=ne(o),{viewport:c}=s,l=M0(t.detail.event)===this.configuration.contourHoleAdditionModifierKey,{spacing:f,xDir:u,yDir:d}=i0e(c,this.configuration.subPixelResolution);this.drawData={canvasPoints:[a],polylineIndex:0,contourHoleProcessingEnabled:l},this.commonData={annotation:e,viewportIdsToRender:r,spacing:f,xDir:u,yDir:d,movingTextBox:!1},me.isInteractingWithTool=!0,o.addEventListener(F.MOUSE_UP,this.mouseUpDrawCallback),o.addEventListener(F.MOUSE_DRAG,this.mouseDragDrawCallback),o.addEventListener(F.MOUSE_CLICK,this.mouseUpDrawCallback),o.addEventListener(F.TOUCH_END,this.mouseUpDrawCallback),o.addEventListener(F.TOUCH_DRAG,this.mouseDragDrawCallback),o.addEventListener(F.TOUCH_TAP,this.mouseUpDrawCallback),Ze(o)}function a0e(t){me.isInteractingWithTool=!1,t.removeEventListener(F.MOUSE_UP,this.mouseUpDrawCallback),t.removeEventListener(F.MOUSE_DRAG,this.mouseDragDrawCallback),t.removeEventListener(F.MOUSE_CLICK,this.mouseUpDrawCallback),t.removeEventListener(F.TOUCH_END,this.mouseUpDrawCallback),t.removeEventListener(F.TOUCH_DRAG,this.mouseDragDrawCallback),t.removeEventListener(F.TOUCH_TAP,this.mouseUpDrawCallback),lt(t)}function s0e(t){const e=t.detail,{currentPoints:r,element:n}=e,i=r.world,o=r.canvas,a=ne(n),{renderingEngine:s,viewport:c}=a,{annotation:l,viewportIdsToRender:f,xDir:u,yDir:d,spacing:h,movingTextBox:g}=this.commonData,{polylineIndex:p,canvasPoints:v}=this.drawData,x=v[v.length-1],m=c.canvasToWorld(x),y=xe();kt(y,i,m);const w=Math.abs(je(y,u)),C=Math.abs(je(y,d));if(!(w<=h[0]&&C<=h[1])){if(g){this.isDrawing=!1;const{deltaPoints:S}=e,T=S.world,{textBox:_}=l.data.handles,{worldPosition:E}=_;E[0]+=T[0],E[1]+=T[1],E[2]+=T[2],_.hasMoved=!0}else{const S=this.findCrossingIndexDuringCreate(t);if(S!==void 0)this.applyCreateOnCross(t,S);else{const T=oS(n,v,o,this.commonData);this.drawData.polylineIndex=p+T}}pe(f)}}function c0e(t){const{allowOpenContours:e}=this.configuration,{canvasPoints:r,contourHoleProcessingEnabled:n}=this.drawData,i=r[0],o=r[r.length-1],a=t.detail,{element:s}=a;e&&!FN(i,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(s,{contourHoleProcessingEnabled:n}):this.completeDrawClosedContour(s,{contourHoleProcessingEnabled:n})}function l0e(t,e){this.removeCrossedLinesOnCompleteDraw();const{canvasPoints:r}=this.drawData,{contourHoleProcessingEnabled:n,minPointsToSave:i}=e??{};if(i&&r.length=2)if(c.length>this.configuration.checkCanvasEditFallbackProximity){const u=c[0],d=[];for(let p=0;pp.distance-v.distance);const h=[d[0],d[1]],g=Math.min(h[0].index,h[1].index);this.editData.startCrossingIndex=g}else{const u=ot();kn(u,c[1],c[0]),La(u,u);const d=6,h=[c[0][0]-u[0]*d,c[0][1]-u[1]*d],g=pl(l,h,c[0],e);if(g){const p=[h];y0e(n,p,c[0],this.commonData),c.unshift(...p),this.removePointsUpUntilFirstCrossing(e),this.editData.editIndex=c.length-1,this.editData.startCrossingIndex=g[0]}}}function w0e(t){const{editCanvasPoints:e,prevCanvasPoints:r}=this.editData;let n=0;for(let i=0;i0;n--){const i=[r[n],r[n-1]],o=!!pl(e,i[0],i[1],t);if(r.pop(),o)break}}function T0e(){const{editCanvasPoints:t,prevCanvasPoints:e,startCrossingIndex:r}=this.editData;if(r===void 0)return;const n=t[t.length-1],i=[];for(let a=0;aa.distance-s.distance);const o=t.slice(0,-1);for(let a=0;a3){const x=Ya(c[0],c[u-1]);v=mt(0,x)}f=v}if((n==null?void 0:n.updateWindingDirection)!==!1){let v=h?h.data.contour.windingDirection*-1:s;v===void 0&&(v=l),v!==l&&c.reverse();const x=a.handles.points.map(m=>o(m));x.length>2&&Gp(x)!==v&&a.handles.points.reverse(),l=v}for(let v=0;v1&&this.checkForFirstCrossing(t,!0),this.editData.snapIndex=this.findSnapIndex(),this.editData.snapIndex===-1){this.finishEditAndStartNewEdit(t);return}this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(t),p!==void 0&&this.checkForSecondCrossing(t,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(t)),pe(l)}function M0e(t){const e=t.detail,{element:r}=e,n=ne(r),{viewport:i,renderingEngine:o}=n,{annotation:a,viewportIdsToRender:s}=this.commonData,{fusedCanvasPoints:c,editCanvasPoints:l}=this.editData;rs(a,{points:c,closed:!0,targetWindingDirection:Qs.Clockwise},i),a.autoGenerated&&(a.autoGenerated=!1),dn(a,r);const f=l.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[f],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},pe(s)}function R0e(t){const{prevCanvasPoints:e,editCanvasPoints:r,startCrossingIndex:n,snapIndex:i}=this.editData;if(n===void 0||i===void 0)return;const o=t.detail,{element:a}=o,s=[...r];BN(a,s,e[i],this.commonData),s.length>r.length&&s.pop();let c,l;n>i?(c=i,l=n):(c=n,l=i);const f=In(e[c],s[0]),u=In(e[c],s[s.length-1]),d=In(e[l],s[0]),h=In(e[l],s[s.length-1]),g=[];for(let C=0;C=0;C--){const S=s[C];g.push([S[0],S[1]])}for(let C=l;C=0;C--){const S=s[C];x.push([S[0],S[1]])}const m=q_(g),y=q_(x);return m>y?g:x}function L0e(t){const e=t.detail,{element:r}=e;this.completeClosedContourEdit(r)}function N0e(t){var c;const e=ne(t),{viewport:r,renderingEngine:n}=e,{annotation:i,viewportIdsToRender:o}=this.commonData,{fusedCanvasPoints:a,prevCanvasPoints:s}=this.editData;if(a){const l=b2(this.configuration,i)?I2(this.configuration,a,s):a,f=((c=this.configuration)==null?void 0:c.decimate)||{};rs(i,{points:l,closed:!0,targetWindingDirection:Qs.Clockwise},r,{decimate:{enabled:!!f.enabled,epsilon:f.epsilon}}),i.autoGenerated&&(i.autoGenerated=!1),dn(i,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,pe(o),this.deactivateClosedContourEdit(t)}function P0e(t){this.completeClosedContourEdit(t)}function A0e(t){t.activateClosedContourEdit=b0e.bind(t),t.deactivateClosedContourEdit=I0e.bind(t),t.mouseDragClosedContourEditCallback=O0e.bind(t),t.mouseUpClosedContourEditCallback=L0e.bind(t),t.finishEditAndStartNewEdit=M0e.bind(t),t.fuseEditPointsWithClosedContour=R0e.bind(t),t.cancelClosedContourEdit=P0e.bind(t),t.completeClosedContourEdit=N0e.bind(t)}const{addCanvasPointsToArray:GN,getSubPixelSpacingAndXYDirections:k0e}=cc;function V0e(t,e,r){this.isEditingOpen=!0;const n=t.detail,{currentPoints:i,element:o}=n,a=i.canvas,s=ne(o),{viewport:c}=s,l=e.data.contour.polyline.map(c.worldToCanvas),{spacing:f,xDir:u,yDir:d}=k0e(c,this.configuration.subPixelResolution);this.editData={prevCanvasPoints:l,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:e,viewportIdsToRender:r,spacing:f,xDir:u,yDir:d,movingTextBox:!1},me.isInteractingWithTool=!0,o.addEventListener(F.MOUSE_UP,this.mouseUpOpenContourEditCallback),o.addEventListener(F.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),o.addEventListener(F.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),o.addEventListener(F.TOUCH_END,this.mouseUpOpenContourEditCallback),o.addEventListener(F.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),o.addEventListener(F.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Ze(o)}function F0e(t){me.isInteractingWithTool=!1,t.removeEventListener(F.MOUSE_UP,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),t.removeEventListener(F.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.TOUCH_END,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),t.removeEventListener(F.TOUCH_TAP,this.mouseUpOpenContourEditCallback),lt(t)}function U0e(t){const e=t.detail,{currentPoints:r,element:n}=e,i=r.world,o=r.canvas,a=ne(n),{renderingEngine:s,viewport:c}=a,{viewportIdsToRender:l,xDir:f,yDir:u,spacing:d}=this.commonData,{editIndex:h,editCanvasPoints:g,startCrossingIndex:p}=this.editData,v=g[g.length-1],x=c.canvasToWorld(v),m=xe();kt(m,i,x);const y=Math.abs(je(m,f)),w=Math.abs(je(m,u));if(y<=d[0]&&w<=d[1])return;p!==void 0&&this.checkAndRemoveCrossesOnEditLine(t);const C=GN(n,g,o,this.commonData),S=h+C;this.editData.editIndex=S,p===void 0&&g.length>1&&this.checkForFirstCrossing(t,!1),this.editData.snapIndex=this.findSnapIndex(),this.editData.fusedCanvasPoints=this.fuseEditPointsWithOpenContour(t),p!==void 0&&this.checkForSecondCrossing(t,!1)?(this.removePointsAfterSecondCrossing(!1),this.finishEditOpenOnSecondCrossing(t)):this.checkIfShouldOverwriteAnEnd(t)&&this.openContourEditOverwriteEnd(t),pe(l)}function B0e(t){const e=t.detail,{element:r}=e,n=ne(r),{viewport:i}=n,{annotation:o,viewportIdsToRender:a}=this.commonData,s=this.fuseEditPointsForOpenContourEndEdit();rs(o,{points:s,closed:!1},i);const c=o.data.contour.polyline;o.data.handles.points=[c[0],c[c.length-1]],o.data.handles.activeHandleIndex=1,dn(o,r),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(r),this.activateOpenContourEndEdit(t,o,a,null)}function G0e(t){const e=t.detail,{currentPoints:r,lastPoints:n}=e,i=r.canvas,o=n.canvas,{snapIndex:a,prevCanvasPoints:s,startCrossingIndex:c}=this.editData;if(c===void 0||a===void 0)return!1;if(a===-1)return!0;if(a!==0&&a!==s.length-1)return!1;const l=i,f=o,u=s[a],d=ot(),h=ot();Qi(d,l[0]-f[0],l[1]-f[1]),Qi(h,l[0]-u[0],l[1]-u[1]);const g=Tw(d,h),p=Math.sqrt(d[0]*d[0]+d[1]*d[1]),v=Math.sqrt(h[0]*h[0]+h[1]*h[1]);return Math.acos(g/(p*v))=n;s--){const c=e[s];i.push([c[0],c[1]])}else for(let s=0;s=0;s--){const c=r[s];i.push([c[0],c[1]])}return i}function z0e(t){const{prevCanvasPoints:e,editCanvasPoints:r,startCrossingIndex:n,snapIndex:i}=this.editData;if(n===void 0||i===void 0)return;const o=t.detail,{element:a}=o,s=[...r];GN(a,s,e[i],this.commonData),s.length>r.length&&s.pop();let c,l;n>i?(c=i,l=n):(c=n,l=i);const f=In(e[c],s[0]),u=In(e[c],s[s.length-1]),d=In(e[l],s[0]),h=In(e[l],s[s.length-1]),g=[];for(let x=0;x=0;x--){const m=s[x];g.push([m[0],m[1]])}for(let x=l;xMn(r).data.contour.polyline)}function Lh(t,e){const r=WN(t),n=[];return r.forEach(i=>{const o=i.length,a=new Array(o);for(let s=0;sn.worldToCanvas(l)),a=Lh(r,n),s=[o,...a];zs(e,r.annotationUID,"1",s,i)}function rfe(t,e,r){var c;const{viewport:n}=t,i=this._getRenderingOptions(t,r),o=r.data.contour.polyline.map(l=>n.worldToCanvas(l));la(e,r.annotationUID,"1",o,i);const s=r.data.handles.activeHandleIndex;if(((c=this.configuration.alwaysRenderOpenContourHandles)==null?void 0:c.enabled)===!0){const l=this.configuration.alwaysRenderOpenContourHandles.radius,f="0",u=[o[0],o[o.length-1]];s===0?u.shift():s===1&&u.pop(),cn(e,r.annotationUID,f,u,{color:i.color,handleRadius:l})}if(s!==null){const l="1",f=s===0?0:o.length-1,u=o[f];cn(e,r.annotationUID,l,[u],{color:i.color})}}function ife(t,e,r){const{viewport:n}=t,{openUShapeContourVectorToPeak:i}=r.data,{polyline:o}=r.data.contour;if(this.renderOpenContour(t,e,r),!i)return;const a=n.worldToCanvas(o[0]),s=n.worldToCanvas(o[o.length-1]),c=[n.worldToCanvas(i[0]),n.worldToCanvas(i[1])],l=this._getRenderingOptions(t,r);la(e,r.annotationUID,"first-to-last",[a,s],{color:l.color,width:l.width,closePath:!1,lineDash:"2,2"}),la(e,r.annotationUID,"midpoint-to-open-contour",[c[0],c[1]],{color:l.color,width:l.width,closePath:!1,lineDash:"2,2"})}function ofe(t,e,r){const n=this._getRenderingOptions(t,r),{allowOpenContours:i}=this.configuration,{canvasPoints:o}=this.drawData;if(n.closePath=!1,la(e,r.annotationUID,"1",o,n),i){const a=o[0],s=o[o.length-1];Z0e(a,s,this.configuration.closeContourProximity)?la(e,r.annotationUID,"2",[s,a],n):cn(e,r.annotationUID,"0",[a],{color:n.color,handleRadius:2})}}function afe(t,e,r){const{viewport:n}=t,{fusedCanvasPoints:i}=this.editData;if(i===void 0){this.renderClosedContour(t,e,r);return}const o=Lh(r,n),a=[i,...o],s=this._getRenderingOptions(t,r),c="preview-1";r.parentAnnotationUID&&s.fillOpacity&&(s.fillOpacity=0),zs(e,r.annotationUID,c,a,s)}function sfe(t,e,r){const{fusedCanvasPoints:n}=this.editData;if(n===void 0){this.renderOpenContour(t,e,r);return}const i=this._getRenderingOptions(t,r);la(e,r.annotationUID,"preview-1",n,i)}function cfe(t,e,r){if(r.parentAnnotationUID)return;const{viewport:n}=t,i=this._getRenderingOptions(t,r),o=r.data.contour.polyline.map(g=>n.worldToCanvas(g)),a=Lh(r,n),s="1",c=o[0],l=6,f=100,u=[];for(let g=0;g0}else if(t instanceof un){const{preScale:r}=t.getImageData()||{};return!!(r!=null&&r.scaled)}else return!1}function I3(t,e){let r=0;for(let n=0;no.getCurrentImageId()===r),!i||!i.length)?void 0:i[0].getImageData()}else if(e.startsWith("volumeId:")){const r=fa(e),n=Ch(r);return!n||!n.length?void 0:n[0].getImageData()}else if(e.startsWith("videoId:")){const r=Pn(e),n=X1(r);return!n||!n.length?void 0:n[0].getImageData()}else throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}getTargetId(e){var n;const r=(n=e.getViewReferenceId)==null?void 0:n.call(e);if(r)return r;throw new Error("getTargetId: viewport must have a getViewReferenceId method")}}or.toolName="BaseTool";function zN(t){if(t){if(t.data&&t.highlighted)return Ia.Highlighted;if(Dh(t.annotationUID))return Ia.Selected;if(rr(t.annotationUID))return Ia.Locked;if(t.data&&t.autoGenerated)return Ia.AutoGenerated}return Ia.Default}function dfe(t,e,r){const n=Ju("textBoxFontSize",t,e,r),i=Ju("textBoxFontFamily",t,e,r);return`${n}px ${i}`}const hfe=Object.freeze(Object.defineProperty({__proto__:null,getFont:dfe,getState:zN,style:_C},Symbol.toStringTag,{value:"Module"}));class lc extends or{constructor(){super(...arguments),this.onImageSpacingCalibrated=e=>{const{element:r,imageId:n}=e.detail,i=Pn(n),o=da();o.getFramesOfReference().forEach(s=>{const l=o.getAnnotations(s)[this.getToolName()];!l||!l.length||(l.forEach(f=>{var d;if(!((d=f.metadata)!=null&&d.referencedImageId))return;Pn(f.metadata.referencedImageId)===i&&(f.invalidated=!0,f.data.cachedStats={})}),O0(r))})}}filterInteractableAnnotationsForElement(e,r){if(!r||!r.length)return;const n=ne(e),{viewport:i}=n;return _2(i,r)}getReferencedImageId(e,r,n,i){const o=this.getTargetId(e);let a=o.split(/^[a-zA-Z]+:/)[1];if(e instanceof Rn){const s=fa(o),c=Te.getVolume(s);a=qa(c,r,n)}return a}getStyle(e,r,n){return Ju(e,r,zN(n),this.mode)}}lc.toolName="AnnotationDisplayTool";class ar extends lc{static createAnnotation(...e){let r={annotationUID:null,highlighted:!0,invalidated:!0,metadata:{toolName:this.toolName},data:{text:"",handles:{points:new Array,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};for(const n of e)r=Qr(r,n);return r}static createAnnotationForViewport(e,...r){return this.createAnnotation({metadata:e.getViewReference()},...r)}static createAndAddAnnotation(e,...r){const n=this.createAnnotationForViewport(e,...r);Ut(n,e.element),dn(n,e.element)}constructor(e,r){var n,i;super(e,r),this.mouseMoveCallback=(o,a)=>{if(!a)return!1;const{element:s,currentPoints:c}=o.detail,l=c.canvas;let f=!1;for(const u of a){if(rr(u.annotationUID)||!Br(u.annotationUID))continue;const{data:d}=u,h=d.handles?d.handles.activeHandleIndex:void 0,g=this._imagePointNearToolOrHandle(s,u,l,6),p=g&&!u.highlighted,v=!g&&u.highlighted;p||v?(u.highlighted=!u.highlighted,f=!0):d.handles&&d.handles.activeHandleIndex!==h&&(f=!0)}return f},(n=e.configuration)!=null&&n.getTextLines&&(this.configuration.getTextLines=e.configuration.getTextLines),(i=e.configuration)!=null&&i.statsCalculator&&(this.configuration.statsCalculator=e.configuration.statsCalculator)}getHandleNearImagePoint(e,r,n,i){const o=ne(e),{viewport:a}=o,{data:s}=r,{isCanvasAnnotation:c}=s,{points:l,textBox:f}=s.handles;if(f){const{worldBoundingBox:u}=f;if(u){const d={topLeft:a.worldToCanvas(u.topLeft),topRight:a.worldToCanvas(u.topRight),bottomLeft:a.worldToCanvas(u.bottomLeft),bottomRight:a.worldToCanvas(u.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return s.handles.activeHandleIndex=null,f}}for(let u=0;u<(l==null?void 0:l.length);u++){const d=l[u],h=c?d.slice(0,2):a.worldToCanvas(d);if(In(n,h)this.getStyle(h,n,r),{annotationUID:o}=r,a=Br(o),s=rr(o),c=i("lineWidth"),l=i("lineDash"),f=i("color"),u=i("shadow"),d=this.getLinkedTextBoxStyle(n,r);return{visibility:a,locked:s,color:f,lineWidth:c,lineDash:l,lineOpacity:1,fillColor:f,fillOpacity:0,shadow:u,textbox:d}}_imagePointNearToolOrHandle(e,r,n,i){if(this.getHandleNearImagePoint(e,r,n,i)||this.isPointNearTool(e,r,n,i,"mouse"))return!0}}ar.toolName="AnnotationTool";class gfe extends ar{constructor(e,r){super(e,r)}renderAnnotation(e,r){let n=!1;const{viewport:i}=e,{element:o}=i;if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),n;let a=_t(this.getToolName(),o);if(!(a!=null&&a.length)||(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length)))return n;const s=this.getTargetId(i),c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id};for(let l=0;lthis.moveAnnotation(i,r))}updateContourPolyline(e,r,n,i){var a;const o=((a=this.configuration)==null?void 0:a.decimate)||{};rs(e,r,n,{decimate:{enabled:!!o.enabled,epsilon:o.epsilon},updateWindingDirection:i==null?void 0:i.updateWindingDirection})}getPolylinePoints(e){var r;return((r=e.data.contour)==null?void 0:r.polyline)??e.data.polyline}renderAnnotationInstance(e){const{enabledElement:r,annotationStyle:n,svgDrawingHelper:i}=e,o=e.annotation;if(o.parentAnnotationUID)return;const{annotationUID:a}=o,{viewport:s}=r,{worldToCanvas:c}=s,l=this.getPolylinePoints(o).map(x=>c(x)),{lineWidth:f,lineDash:u,color:d,fillColor:h,fillOpacity:g}=n,p=Lh(o,s),v=[l,...p];return zs(i,a,"contourPolyline",v,{color:d,lineDash:u,lineWidth:Math.max(.1,f),fillColor:h,fillOpacity:g}),!0}}class pfe{constructor(){this.annotationUIDs=new Set,this._isVisible=!0,this.visibleFilter=this.unboundVisibleFilter.bind(this)}unboundVisibleFilter(e){return!this._isVisible||!this.annotationUIDs.has(e)}has(e){return this.annotationUIDs.has(e)}setVisible(e=!0,r,n){this._isVisible!==e&&(this._isVisible=e,this.annotationUIDs.forEach(i=>{const o=Mn(i);if(!o){this.annotationUIDs.delete(i);return}if(o.isVisible===e||!e&&(n==null?void 0:n(i))===!1)return;o.isVisible=e;const a={...r,annotation:o};De(Ce,F.ANNOTATION_MODIFIED,a)}))}get isVisible(){return this._isVisible}findNearby(e,r){const n=[...this.annotationUIDs];if(n.length===0)return null;if(!e)return n[r===1?0:n.length-1];const i=n.indexOf(e);return i===-1||i+r<0||i+r>=n.length?null:n[i+r]}add(...e){e.forEach(r=>this.annotationUIDs.add(r))}remove(...e){e.forEach(r=>this.annotationUIDs.delete(r))}clear(){this.annotationUIDs.clear()}}const mfe=Object.freeze(Object.defineProperty({__proto__:null,AnnotationGroup:pfe,FrameOfReferenceSpecificAnnotationManager:WR,config:hfe,locking:Zse,selection:ice,state:hce,visibility:sce},Symbol.toStringTag,{value:"Module"})),X_="PlanarFreehandContourSegmentationTool";function aS(t,e=[]){const{viewport:r,sliceData:n,annotation:i}=t,o=new Map,{toolName:a,originalToolName:s}=i.metadata,c=s||a,l=(_t(c,r.element)||[]).filter(f=>!f.metadata.originalToolName||f.metadata.originalToolName===c);if(c!==X_){const f=_t(X_,r.element);f!=null&&f.length&&f.forEach(u=>{const{metadata:d}=u;d.originalToolName===c&&d.originalToolName!==d.toolName&&l.push(u)})}if(!(l!=null&&l.length))return o;for(let f=0;fh.metadata.sliceIndex===f);if(!(u!=null&&u.length))continue;const d=u.filter(h=>e.every(g=>{const p=g.parentKey?g.parentKey(h):h,v=p==null?void 0:p[g.key];return Array.isArray(v)?v.every((x,m)=>x===g.value[m]):v===g.value}));d.length&&o.set(f,d)}return o}function vfe(t,e){const r=aS(t,e),n=[];if(!(r!=null&&r.size))return n;for(const i of r.values())i.forEach(o=>{n.push(o)});return n}function $N(t,e,r){const n=Qr({data:{},metadata:{}},r);return Object.assign(n,{highlighted:!1,invalidated:!0,autoGenerated:!0,annotationUID:void 0,cachedStats:{},childAnnotationUIDs:[],parentAnnotationUID:void 0}),Object.assign(n.data,{handles:{points:e.points||e||[],interpolationSources:e.sources,activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},contour:{...r.data.contour,polyline:t}}),n}function yfe(t,e){const r=aS(e,[{key:"interpolationUID",value:e.interpolationUID}]),n=xfe(r);if(!n){console.warn("No annotations found to interpolate",r);return}const i=wfe(r,t.annotationUID),o=[];for(let a=n[0]+1;a=e[0];o--){const a=r.get(o);if(a!=null&&a.length){if(a[0].autoGenerated)continue;a.length>1&&(i=!1),n.push(o);break}}if(!(!i||!n.length)){for(let o=t+1;o<=e[1];o++){const a=r.get(o);if(a!=null&&a.length){if(a[0].autoGenerated)continue;a.length>1&&(i=!1),n.push(o);break}}if(!(!i||n.length<2))return n}}const{PointsManager:Y_}=Jt;function _fe(t,e=12){const r=Y_.create3(e);r.sources=[];const{sources:n}=r,{length:i,sources:o=[]}=t,a=5;if(in.push(Y_.create3(e)));const c=Efe(t,a),l=Dfe(c,e),f=[];if((l==null?void 0:l.length)>2){let u=-1;const d=s/3;l.forEach(p=>{const[v,,x]=p,m=Math.ceil((v+x)/2);x-u2*d?(Wl(f,u,v,s,i),u=Wl(f,v,m,s,i)):u=Wl(f,u,m,s,i),x-u>d&&(u=Wl(f,u,x,s,i)))});const h=f[0];O3(h+i-u,i)>2*d&&Wl(f,u,h-d,s,i)}else{const u=Math.floor(i/e);Wl(f,-1,i-u,u,i)}return f.forEach(u=>{const d=t.getPointArray(u);r.push(d),o.forEach((h,g)=>n[g].push(h.getPoint(u)))}),r}function Efe(t,e=6){const{length:r}=t,n=xe(),i=xe(),o=new Float32Array(r);for(let a=0;a{if(r.FrameOfReferenceUID===e.FrameOfReferenceUID){const n=r.viewport,{viewPlaneNormal:i,viewUp:o}=n.getCamera();return J_(i,e.viewPlaneNormal)&&(!e.viewUp||J_(o,e.viewUp))}}).map(r=>r.viewport)}const Xf="PlanarFreehandContourSegmentationTool";async function Ofe(t){const e=t.detail.annotation;if(!Ih(e))return;const r=Mfe(e),n=Rfe(r,e);if(!n.length)return;const i=O2(e.data.contour.polyline,r),o=Lfe(r,i,n);if(!o)return;const{targetAnnotation:a,targetPolyline:s,isContourHole:c}=o;if(c){const{contourHoleProcessingEnabled:l=!1}=t.detail;if(!l)return;KN(r,a,e)}else Pfe(r,a,s,e,i)}function HN(t,e=!1){const r="PlanarFreehandContourSegmentationTool",n=Cn(t.id,t.renderingEngineId);let i;return n.hasTool(r)?n.getToolOptions(r)||(i=`Tool ${r} must be in active/passive state`):i=`Tool ${r} not added to ${n.id} toolGroup`,i&&!e&&console.warn(i),!i}function Mfe(t){const e=jN(t);return e.find(n=>HN(n,!0))??e[0]}function O2(t,e){const r=t.length,n=new Array(r);for(let i=0;ii.annotationUID&&i.annotationUID!==r&&Ih(i)&&dN(i,e)&&t.isReferenceViewable(i.metadata))}function Lfe(t,e,r){const n=e0(e);for(let i=0;i{const n=O2(r.data.contour.polyline,t);return{annotation:r,polyline:n}})}function Pfe(t,e,r,n,i){var y;if(!gce(Xf)){console.warn(`${Xf} is not registered in cornerstone`);return}if(!HN(t))return;const o=i[0],a=hl(r,o),s=Nfe(t,e),c=new Set(s),l=new Map,f=(w,C)=>{let S=l.get(w);S||(S=[],l.set(w,S)),S.push(C),c.delete(C)},u=[];if(a){const w=TN(r,i);u.push(w),Array.from(c.keys()).forEach(C=>f(w,C))}else _N(r,i).forEach(C=>{u.push(C),Array.from(c.keys()).forEach(S=>{qC(C,S.polyline)&&(f(C,S),c.delete(S))})});Array.from(l.values()).forEach(w=>w.forEach(C=>MC(C.annotation)));const{element:d}=t,h=ne(d),{metadata:g,data:p}=e,{handles:v,segmentation:x}=p,{textBox:m}=v;Ot(n.annotationUID),Ot(e.annotationUID);for(let w=0;wRC(_,E.annotation))}Afe(h,e,n)}function Afe(t,e,r){const{viewport:n}=t,{element:i}=n,o=new Set([Xf,e.metadata.toolName,r.metadata.toolName]);for(const a of o.values()){const s=He(i,a);pe(s)}return new Promise(a=>window.requestAnimationFrame(a))}const{PointsManager:sf}=Jt,Z_=.2;function Wp(t){if(!t.annotation)return;const{isInterpolationUpdate:e,annotation:r}=t;queueMicrotask(()=>{try{e&&(r.isInterpolationUpdate=!0,r.autoGenerated=!1),kfe(t)}finally{e&&(r.autoGenerated=!0)}})}function kfe(t){const{annotation:e}=t;Ife(e);const{interpolationData:r,interpolationList:n}=yfe(e,t)||{};if(!r||!n)return;const i={toolName:e.metadata.toolName,toolType:e.metadata.toolName,viewport:t.viewport};for(let l=0;ls.x.length,n)})}function Ffe(t,e,r,n,i,o,a){const[s,c]=n,l=(r-s)/(c-s),f=i.get(s)[0],u=i.get(c)[0],d=Gfe(t,e,l,o),h=l>.5?u:f,g=_fe(d);i.has(r)?Bfe(d,g,r,h,a):Ufe(d,g,r,h,a)}function Ufe(t,e,r,n,i){var f;const o=t.points,{viewport:a}=i,s=$N(o,e,n),c=a.getViewReference({sliceIndex:r});if(!c)throw new Error(`Can't find slice ${r}`);Object.assign(s.metadata,c),Ut(s,a.element),(f=n.onInterpolationComplete)==null||f.call(n,s,n);const{parentAnnotationUID:l}=n;if(l){const u=Mn(l),d=qN(u,r,i);KN(a,d,s)}}function qN(t,e,r){const{viewport:n}=r,i=_t(t.metadata.toolName,n.element);for(let o=0;o!f.autoGenerated)||(s=o||s===n||c.forEach(l=>{l.autoGenerated&&(Ot(l.annotationUID),a.push(l))});if(a.length){const s={annotations:a,element:t.viewport.element,viewportId:t.viewport.id,renderingEngineId:t.viewport.getRenderingEngine().id};De(t.viewport.element,F.INTERPOLATED_ANNOTATIONS_REMOVED,s)}if(i>=0&&o{var h;const r=e.detail.annotation;if(!(r!=null&&r.metadata))return;const{toolName:n,originalToolName:i}=r.metadata;if(!Xi.toolNames.includes(n)&&!Xi.toolNames.includes(i))return;const o=zp(r);if(!o){console.warn("Unable to find viewport for",r);return}const a=ry(o),s={viewport:o,sliceData:a,annotation:r,interpolationUID:r.interpolationUID},c=!!r.interpolationUID;if(r.autoGenerated=!1,c){aE(s),Wp(s);return}const l=[{key:"segmentIndex",value:r.data.segmentation.segmentIndex,parentKey:g=>g.data.segmentation},{key:"viewPlaneNormal",value:r.metadata.viewPlaneNormal,parentKey:g=>g.metadata},{key:"viewUp",value:r.metadata.viewUp,parentKey:g=>g.metadata}];let f=vfe(s,l);const{sliceIndex:u}=r.metadata,d=new Set;f.forEach(g=>{if(g.interpolationCompleted||g.metadata.sliceIndex===u){const{interpolationUID:p}=g;d.add(p)}}),f=f.filter(g=>!d.has(g.interpolationUID)),r.interpolationUID=((h=f[0])==null?void 0:h.interpolationUID)||jfe(),s.interpolationUID=r.interpolationUID,Wp(s)},Xi.handleAnnotationUpdate=e=>{const r=e.detail.annotation,{changeType:n=Bn.HandlesUpdated}=e.detail;if(!(r!=null&&r.metadata))return;const{toolName:i,originalToolName:o}=r.metadata;if(!Xi.toolNames.includes(i)&&!Xi.toolNames.includes(o)||!Hfe.includes(n))return;const a=zp(r);if(!a){console.warn("Unable to find matching viewport for annotation interpolation",r);return}r.autoGenerated&&(Qu(r),r.autoGenerated=!1);const s=ry(a),c={viewport:a,sliceData:s,annotation:r,interpolationUID:r.interpolationUID,isInterpolationUpdate:n===Bn.InterpolationUpdated};Wp(c)},Xi.handleAnnotationDelete=e=>{const r=e.detail.annotation;if(!(r!=null&&r.metadata))return;const{toolName:n}=r.metadata;if(!Xi.toolNames.includes(n)||r.autoGenerated)return;const i=zp(r);if(!i){console.warn("No viewport, can't delete interpolated results",r);return}const o=ry(i),a={viewport:i,sliceData:o,annotation:r,interpolationUID:r.interpolationUID};r.autoGenerated=!1,aE(a)};let na=Xi;function ry(t){return{numberOfSlices:t.getNumberOfSlices(),imageIndex:t.getCurrentImageIdIndex()}}function XN(t){t.forEach(e=>{const r=Wn(e);if(!r){console.warn(`ToolGroup not available for ${e}`);return}r.getViewportsInfo().forEach(i=>{const{renderingEngineId:o,viewportId:a}=i,s=hr(o);if(!s){console.warn(`RenderingEngine not available for ${o}`);return}const c=s.getViewport(a);O0(c.element)})})}function Hd(t){return Yt.getActiveSegmentation(t)}function YN(t,e){return Yt.getSegmentationRepresentationVisibility(t,e)}function Lo(t){const e=Ct(t);if(e){const r=Object.keys(e.segments).find(n=>e.segments[n].active);return r?Number(r):void 0}}function Kfe(t,e){const r=Ct(t);if(!r)throw new Error(`No segmentation state found for ${t}`);const{segments:n}=r;return n[e].locked}function qfe(t,e,r=!0){const n=Ct(t);if(!n)throw new Error(`No segmentation state found for ${t}`);const{segments:i}=n;i[e].locked=r,Di(t)}function El(t){const e=Ct(t);if(!e)throw new Error(`No segmentation state found for ${t}`);const{segments:r}=e;return Object.keys(r).filter(i=>r[i].locked).map(i=>parseInt(i))}const Xfe=Object.freeze(Object.defineProperty({__proto__:null,getLockedSegmentIndices:El,isSegmentIndexLocked:Kfe,setSegmentIndexLocked:qfe},Symbol.toStringTag,{value:"Module"}));function JN(t,e){const r=y2(t,e);return r?Object.entries(r.segments).reduce((i,[o,a])=>(a.visible||i.add(Number(o)),i),new Set):new Set}class sS extends gfe{constructor(e,r){var n;super(e,r),(n=this.configuration.interpolation)!=null&&n.enabled&&na.addTool(this.getToolName())}isContourSegmentationTool(){return!0}createAnnotation(e){const r=e.detail,{element:n}=r,i=ne(n);if(!i)return;const{viewport:o}=i,a=super.createAnnotation(e);if(!this.isContourSegmentationTool())return a;const s=Hd(o.id);if(!s)throw new Error("No active segmentation detected, create one before using scissors tool");if(!s.representationData.Contour)throw new Error("A contour segmentation must be active");const{segmentationId:c}=s,l=Lo(c);return Qr(a,{data:{segmentation:{segmentationId:c,segmentIndex:l}}})}addAnnotation(e,r){const n=super.addAnnotation(e,r);return this.isContourSegmentationTool()&&Qu(e),n}cancelAnnotation(e){this.isContourSegmentationTool()&&C2(e),super.cancelAnnotation(e)}getAnnotationStyle(e){const r=super.getAnnotationStyle(e);if(!this.isContourSegmentationTool())return r;const n=this._getContourSegmentationStyle(e);return Qr(r,n)}renderAnnotationInstance(e){const{annotation:r}=e,{invalidated:n}=r,i=super.renderAnnotationInstance(e);if(n&&this.isContourSegmentationTool()){const{segmentationId:o}=r.data.segmentation;Ei(o);const s=I0(o).map(c=>Cn(c).id);XN(s)}return i}_getContourSegmentationStyle(e){const r=e.annotation,{segmentationId:n,segmentIndex:i}=r.data.segmentation,{viewportId:o}=e.styleSpecifier,a=Ti(o,{segmentationId:n});if(!(a!=null&&a.length))return{};a.length>1?a.find(_=>_.segmentationId===n&&_.type===Ge.Contour):a[0];const{autoGenerated:s}=r,l=El(n).includes(i),f=es(e.styleSpecifier.viewportId,n,i),u=YN(o,{segmentationId:n,type:Ge.Contour}),d=Hd(o),h=(d==null?void 0:d.segmentationId)===n,p=Fi.getStyle({viewportId:o,segmentationId:n,type:Ge.Contour,segmentIndex:i});let v=1,x,m=1,y=0;s?(v=p.outlineWidthAutoGenerated??v,x=p.outlineDashAutoGenerated??x,m=p.outlineOpacity??m,y=p.fillAlphaAutoGenerated??y):h?(v=p.outlineWidth??v,x=p.outlineDash??x,m=p.outlineOpacity??m,y=p.fillAlpha??y):(v=p.outlineWidthInactive??v,x=p.outlineDashInactive??x,m=p.outlineOpacityInactive??m,y=p.fillAlphaInactive??y),Lo(n)===i&&(v+=p.activeSegmentOutlineWidthDelta),v=p.renderOutline?v:0,y=p.renderFill?y:0;const w=`rgba(${f[0]}, ${f[1]}, ${f[2]}, ${m})`,C=`rgb(${f[0]}, ${f[1]}, ${f[2]})`,T=!JN(o,{segmentationId:n,type:Ge.Contour}).has(i);return{color:w,fillColor:C,lineWidth:v,fillOpacity:y,lineDash:x,textbox:{color:w},visibility:u&&T,locked:l}}}function Dl(t,e,r){return t==="CT"?"HU":t==="PT"?Yfe(e,r):""}function Yfe(t,e){if(!e.isPreScaled)return"raw";if(e.isSuvScaled)return"SUV";const r=Pe("generalSeriesModule",t);if((r==null?void 0:r.modality)==="PT"){const n=Pe("petSeriesModule",t);return(n==null?void 0:n.units)||"unitless"}return"unknown"}const{pointCanProjectOnLine:sE}=cc,{EPSILON:Jfe}=Cl,Zfe=1-Jfe;class ml extends sS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{storePointData:!1,shadow:!0,preventHandleOutsideImage:!1,contourHoleAdditionModifierKey:vr.Shift,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,makeClockWise:!0,subPixelResolution:4,smoothing:{smoothOnAdd:!1,smoothOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40},interpolation:{enabled:!1,onInterpolationComplete:null},decimate:{enabled:!1,epsilon:.1},displayOnePointAsCrosshairs:!1,calculateStats:!0,getTextLines:Qfe,statsCalculator:Xa}}){super(e,r),this.isDrawing=!1,this.isEditingClosed=!1,this.isEditingOpen=!1,this.addNewAnnotation=n=>{const i=n.detail,{element:o}=i,a=this.createAnnotation(n);this.addAnnotation(a,o);const s=He(o,this.getToolName());return this.activateDraw(n,a,s),n.preventDefault(),pe(s),a},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,c=He(s,this.getToolName());this.activateOpenContourEndEdit(n,i,c,o)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o,s=He(a,this.getToolName());i.data.contour.closed?this.activateClosedContourEdit(n,i,s):this.activateOpenContourEdit(n,i,s),n.preventDefault()},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{polyline:l}=i.data.contour;let f=c.worldToCanvas(l[0]);for(let h=1;h{const i=this.isDrawing,o=this.isEditingOpen,a=this.isEditingClosed;i?this.cancelDrawing(n):o?this.cancelOpenContourEdit(n):a&&this.cancelClosedContourEdit(n)},this._calculateCachedStats=(n,i,o,a)=>{const{data:s}=n,{cachedStats:c}=s,{polyline:l,closed:f}=s.contour,u=Object.keys(c);for(let d=0;di.worldToCanvas(C)),m={isPreScaled:is(i,h),isSuvScaled:this.isSuvScaled(i,h,n.metadata.referencedImageId)},y=Dl(v.Modality,n.metadata.referencedImageId,m),w=Bi(g,()=>{const C=s.contour.polyline,S=C.length,T=new Array(S);for(let A=0;A{const{data:s}=n,c=this.getTargetId(i),l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:o.viewport.id},f=this.getLinkedTextBoxStyle(l,n);if(!f.visibility)return;const u=this.configuration.getTextLines(s,c);if(!u||u.length===0)return;const d=s.contour.polyline.map(w=>i.worldToCanvas(w));if(!s.handles.textBox.hasMoved){const w=$i(d);s.handles.textBox.worldPosition=i.canvasToWorld(w)}const h=i.worldToCanvas(s.handles.textBox.worldPosition),p=ti(a,n.annotationUID??"","1",u,h,d,{},f),{x:v,y:x,width:m,height:y}=p;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([v,x]),topRight:i.canvasToWorld([v+m,x]),bottomLeft:i.canvasToWorld([v,x+y]),bottomRight:i.canvasToWorld([v+m,x+y])}},v0e(this),E0e(this),A0e(this),q0e(this),J0e(this),lfe(this),this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}filterInteractableAnnotationsForElement(e,r){if(!r||!r.length)return;const n=ne(e),{viewport:i}=n;let o;if(i instanceof sn){const a=i.getCamera(),{spacingInNormalDirection:s}=S0(i,a);o=this.filterAnnotationsWithinSlice(r,a,s)}else o=_2(i,r);return o}filterAnnotationsWithinSlice(e,r,n){const{viewPlaneNormal:i}=r,o=e.filter(l=>{const f=l.metadata.viewPlaneNormal,u=Math.abs(je(i,f))>Zfe;return f&&u});if(!o.length)return[];const a=n/2,{focalPoint:s}=r,c=[];for(const l of o){const u=l.data.contour.polyline[0];if(!l.isVisible)continue;const d=xe();en(d,s,u);const h=je(d,i);Math.abs(h){a.data.handles.points.length=0};return Qr(n,{data:{contour:{polyline:[[...r]]},label:"",cachedStats:{}},onInterpolationComplete:i})}getAnnotationStyle(e){return super.getAnnotationStyle(e)}renderAnnotationInstance(e){const{enabledElement:r,targetId:n,svgDrawingHelper:i}=e,o=e.annotation;let a=!1;const{viewport:s,renderingEngine:c}=r,l=this.isDrawing,f=this.isEditingOpen,u=this.isEditingClosed;if(!(l||f||u))this.configuration.displayOnePointAsCrosshairs&&o.data.contour.polyline.length===1?this.renderPointContourWithMarker(r,i,o):this.renderContour(r,i,o);else{const d=this.commonData.annotation.annotationUID;if(o.annotationUID===d)if(l)this.renderContourBeingDrawn(r,i,o);else if(u)this.renderClosedContourBeingEdited(r,i,o);else if(f)this.renderOpenContourBeingEdited(r,i,o);else throw new Error(`Unknown ${this.getToolName()} annotation rendering state`);else this.configuration.displayOnePointAsCrosshairs&&o.data.contour.polyline.length===1?this.renderPointContourWithMarker(r,i,o):this.renderContour(r,i,o);a=!0}if(this.configuration.calculateStats)return this._calculateStatsIfActive(o,n,s,c,r),this._renderStats(o,s,r,i),a}_calculateStatsIfActive(e,r,n,i,o){var s,c,l;const a=(s=this.commonData)==null?void 0:s.annotation.annotationUID;if(!(e.annotationUID===a&&!((c=this.commonData)!=null&&c.movingTextBox))&&!((l=this.commonData)!=null&&l.movingTextBox)){const{data:f}=e;!f.cachedStats[r]||f.cachedStats[r].areaUnit==null?(f.cachedStats[r]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(e,n,i,o)):e.invalidated&&this._throttledCalculateCachedStats(e,n,i,o)}}updateClosedCachedStats({viewport:e,points:r,imageData:n,metadata:i,cachedStats:o,targetId:a,modalityUnit:s,canvasCoordinates:c,calibratedScale:l}){var te,Q,re;const{scale:f,areaUnit:u,units:d}=l,{voxelManager:h}=e.getImageData(),g=c[0],p=e.canvasToWorld(g),v=e.canvasToWorld([g[0]+1,g[1]]),x=e.canvasToWorld([g[0],g[1]+1]),m=Cr(p,v),y=Cr(p,x),w=Gn(n,r[0]);w[0]=Math.floor(w[0]),w[1]=Math.floor(w[1]),w[2]=Math.floor(w[2]);let C=w[0],S=w[0],T=w[1],_=w[1],E=w[2],D=w[2];for(let de=1;de{let se=!0;const k=e.worldToCanvas(de);return k[1]!=N&&($=0,N=k[1],V=IN(c,k,[P[0],k[1]]),V.sort(function(O){return function(B,U){return B[O]===U[O]?0:B[O]V[0][0]&&(V.shift(),$++),$%2===0&&(se=!1),se},boundsIJK:A,returnPoints:this.configuration.storePointData}),Y=this.configuration.statsCalculator.getStatistics();o[a]={Modality:i.Modality,area:I,perimeter:I3(c,closed)/f,mean:(te=Y.mean)==null?void 0:te.value,max:(Q=Y.max)==null?void 0:Q.value,stdDev:(re=Y.stdDev)==null?void 0:re.value,statsArray:Y.array,pointsInShape:j,areaUnit:u,modalityUnit:s,unit:d}}updateOpenCachedStats({targetId:e,metadata:r,canvasCoordinates:n,cachedStats:i,modalityUnit:o,calibratedScale:a}){const{scale:s,units:c}=a;i[e]={Modality:r.Modality,length:I3(n,!1)/s,modalityUnit:o,getPixelValueUnitunit:c}}}function Qfe(t,e){const r=t.cachedStats[e],{area:n,mean:i,stdDev:o,length:a,perimeter:s,max:c,isEmptyArea:l,unit:f,areaUnit:u,modalityUnit:d}=r||{},h=[];if(n){const g=l?"Area: Oblique not supported":`Area: ${xt(n)} ${u}`;h.push(g)}return i&&h.push(`Mean: ${xt(i)} ${d}`),Number.isFinite(c)&&h.push(`Max: ${xt(c)} ${d}`),o&&h.push(`Std Dev: ${xt(o)} ${d}`),s&&h.push(`Perimeter: ${xt(s)} ${f}`),a&&h.push(`${xt(a)} ${f}`),h}ml.toolName="PlanarFreehandROI";class Ja extends ml{constructor(e){const r=Qr({configuration:{calculateStats:!1,allowOpenContours:!1}},e);super(r)}isContourSegmentationTool(){return!0}renderAnnotationInstance(e){const r=e.annotation,{invalidated:n}=r,i=super.renderAnnotationInstance(e);if(n){const{segmentationId:o}=r.data.segmentation;Ei(o)}return i}}Ja.toolName="PlanarFreehandContourSegmentationTool";function ede(t,e,r){const n=new Map;for(const[i,o]of t)for(const a of o){const{points:s}=a,{lineSegments:c,linesNumberOfPoints:l}=tde(a);for(let f=0;f{const{numberOfCells:e,lines:r}=t,n=[],i=[];for(let o=0;o({id:s.segmentIndex.toString(),points:s.data.points,polys:s.data.polys,segmentIndex:s.segmentIndex})),o=await gN(i,n);return pN(o)}async function ide(t,e={}){var u;if(!e.viewport)throw new Error("Viewport is required to compute contour from surface");const{viewport:r}=e,n=(u=e.segmentIndices)!=null&&u.length?e.segmentIndices:ha(t),i=new Map,o=new Map,s=Ct(t).representationData.Surface,c=[];s.geometryIds.forEach((d,h)=>{var g;if(n.includes(h)){i.set(h,d);const p=(g=Te.getGeometry(d))==null?void 0:g.data;p&&c.push({id:d,points:p.points,polys:p.polys,segmentIndex:h})}}),i.forEach((d,h)=>{o.set(d,h)});const l=await gN(c,r);return pN(l)}function ZN(t,e={}){return UC(t,Ge.Contour,()=>nde(t,e),()=>{})}function ode(t,e,r=!1){const n=Ct(e),{annotationUIDsMap:i}=n.representationData.Contour;i.forEach(o=>{o.forEach(a=>{Ot(a)})})}let iy=!1;function ade(t,e,r=!1){const n=Xn(t);if(!n)return;const{viewport:i}=n;r&&(ode(t,e),i.render())}async function sde(t,e){var o;const{segmentationId:r}=e,n=Ct(r);if(!n)return;let i=n.representationData[Ge.Contour];!i&&x2(r,Ge.Contour)&&!iy&&(iy=!0,i=await ZN(r,{viewport:t}),iy=!1),i&&(o=i.geometryIds)!=null&&o.length&&jle(t,i.geometryIds,i.annotationUIDsMap,e)}const QN={render:sde,removeRepresentation:ade};function Gi(t,e){return Yt.getCurrentLabelmapImageIdForViewport(t,e)}const{uuidv4:eP}=Jt;async function cde(t,e,r){const n=ne(t),{renderingEngine:i,viewport:o}=n,{id:a}=o,s=!0,c=!1,l=!0;if(o instanceof Rn){const u=lde(e,r);Te.getVolume(u)||await ude(e);const d=[{volumeId:u,visibility:s,blendMode:Gu.MAXIMUM_INTENSITY_BLEND,representationUID:`${r}-${Ge.Labelmap}`}];await Gne(i,d,[a],c,l)}else{const u=[{imageId:Gi(o.id,r),representationUID:`${r}-${Ge.Labelmap}`}];await Wne(i,u,[a])}}function lde(t,e){let{volumeId:r}=t;if(!r){r=eP();const n=Ct(e);n.representationData.Labelmap={...n.representationData.Labelmap,volumeId:r},t.volumeId=r,Di(e)}return r}async function ude(t){const e=t;if(!(e.imageIds.length>0))throw new Error("cannot create labelmap, no imageIds found for the volume labelmap");return await rC(t.volumeId||eP(),e.imageIds)}function fde(t,e){const r=ne(t),{viewport:n}=r;n.removeActors([ule(n.id,e)])}function dde(t,e){Yt.setActiveSegmentation(t,e)}function bl(t){return Hd(t)}function hde(t,e,r=!1){dde(t,e)}const gde=Object.freeze(Object.defineProperty({__proto__:null,getActiveSegmentation:bl,setActiveSegmentation:hde},Symbol.toStringTag,{value:"Module"})),tP=sc(),Ru=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:_0.POLYSEG_CONTOUR_TO_LABELMAP})};async function pde(t,e={}){var p;const r=e.viewport,n=r.getVolumeId();if(!hR(r))throw new Error("No imageIds found, labelmap computation from contour requires viewports with imageIds");const o=wn(),a=iC(n,{volumeId:o}),{dimensions:s,origin:c,direction:l,spacing:f,voxelManager:u}=a,{segmentIndices:d,annotationUIDsInSegmentMap:h}=nP(t,e);Ru(Ce,0);const g=await tP.executeTask("polySeg","convertContourToVolumeLabelmap",{segmentIndices:d,dimensions:s,scalarData:(p=u.getCompleteScalarDataArray)==null?void 0:p.call(u),origin:c,direction:l,spacing:f,annotationUIDsInSegmentMap:h},{callbacks:[v=>{Ru(Ce,v)}]});return Ru(Ce,100),u.setCompleteScalarDataArray(g),a.modified(),{volumeId:a.volumeId}}async function mde(t,e={}){if(!e.viewport)throw new Error("No viewport provided, labelmap computation from contour requires viewports");const n=e.viewport.getImageIds();if(!n)throw new Error("No imageIds found, labelmap computation from contour requires viewports with imageIds");n.forEach(u=>{if(!Te.getImageLoadObject(u))throw new Error("ImageIds must be cached before converting contour to labelmap")});const o=(await EM(n)).map(u=>u.imageId),{segmentIndices:a,annotationUIDsInSegmentMap:s}=nP(t,e),c=new Map;o.forEach((u,d)=>{const h=Te.getImage(u),g=Pe(si.IMAGE_PLANE,u);let{columnCosines:p,rowCosines:v,rowPixelSpacing:x,columnPixelSpacing:m,imagePositionPatient:y}=g;p=p??[0,1,0],v=v??[1,0,0],x=x??1,m=m??1,y=y??[0,0,0];const w=Ye(v[0],v[1],v[2]),C=Ye(p[0],p[1],p[2]),S=xe();qt(S,w,C);const T=[...w,...C,...S],_=[x,m,1],E=y;c.set(n[d],{direction:T,spacing:_,origin:E,scalarData:h.voxelManager.getScalarData(),imageId:u,dimensions:[h.width,h.height,1]})}),Ru(Ce,0);const l=await tP.executeTask("polySeg","convertContourToStackLabelmap",{segmentationsInfo:c,annotationUIDsInSegmentMap:s,segmentIndices:a},{callbacks:[u=>{Ru(Ce,u)}]});Ru(Ce,100);const f=[];return l.forEach(({scalarData:u},d)=>{var v,x;const h=c.get(d),{imageId:g}=h,p=Te.getImage(g);p.voxelManager.getScalarData().set(u),(x=(v=p.imageFrame)==null?void 0:v.pixelData)==null||x.set(u),f.push(g)}),{imageIds:f}}function nP(t,e={}){var o;const r=t.annotationUIDsMap,n=(o=e.segmentIndices)!=null&&o.length?e.segmentIndices:Array.from(r.keys()),i=new Map;return n.forEach(a=>{const s=r.get(a);let c=Array.from(s);c=c.filter(f=>!Mn(f).parentAnnotationUID);const l=c.map(f=>{var h;const u=Mn(f),d=(h=u.childAnnotationUIDs)==null?void 0:h.length;return{polyline:u.data.contour.polyline,referencedImageId:u.metadata.referencedImageId,holesPolyline:d&&u.childAnnotationUIDs.map(g=>Mn(g).data.contour.polyline)}});i.set(a,l)}),{segmentIndices:n,annotationUIDsInSegmentMap:i}}const vde=sc(),oy=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:_0.POLYSEG_SURFACE_TO_LABELMAP})};async function yde(t,e){const{geometryIds:r}=t;if(!(r!=null&&r.size))throw new Error("No geometry IDs found for surface representation");const n=new Map;r.forEach((f,u)=>{const h=Te.getGeometry(f).data,g=h.points,p=h.polys;n.set(u,{points:g,polys:p})});const{dimensions:i,direction:o,origin:a,spacing:s,voxelManager:c}=e;oy(Ce,0);const l=await vde.executeTask("polySeg","convertSurfacesToVolumeLabelmap",{segmentsInfo:n,dimensions:i,spacing:s,direction:o,origin:a},{callbacks:[f=>{oy(Ce,f)}]});return oy(Ce,100),c.setCompleteScalarDataArray(l),e.modified(),{volumeId:e.volumeId}}function xde(t,e){const{segmentationId:r,config:n}=e,i={colorLUTIndex:wde(n)};Yt.addSegmentationRepresentation(t,r,e.type,i),e.type===Ge.Contour&&pe([t]),Di(r)}function wde(t){const{colorLUTOrIndex:e}=t||{},r=typeof e=="number",n=r?b0(e):GC,i=r?e:BC();return r||WC(n,i),i}function R0(t,e){e.map(r=>xde(t,r))}function rP(t,e){return R0(t,e.map(r=>({...r,type:Ge.Contour})))}function Cde(t){const e={};for(const[r,n]of Object.entries(t))e[r]=rP(r,n);return e}function iP(t,e){return R0(t,e.map(r=>({...r,type:Ge.Labelmap})))}function Sde(t){for(const[e,r]of Object.entries(t))iP(e,r.map(n=>({...n,type:Ge.Labelmap})))}function oP(t,e){return R0(t,e.map(r=>({...r,type:Ge.Surface})))}function Tde(t){const e={};for(const[r,n]of Object.entries(t))e[r]=oP(r,n);return e}async function _de({segmentationId:t,viewportId:e,imageIds:r,options:n}){const i=Ct(t);if(n!=null&&n.removeOriginal){const o=i.representationData.Labelmap;Te.getVolume(o.volumeId)&&Te.removeVolumeLoadObject(o.volumeId),i.representationData.Labelmap={imageIds:r}}else i.representationData.Labelmap={...i.representationData.Labelmap,imageIds:r};await R0(e,[{segmentationId:t,type:Ge.Labelmap}]),Ce.addEventListenerOnce(F.SEGMENTATION_RENDERED,()=>Ei(t))}async function Ede({volumeId:t}){return{imageIds:Te.getVolume(t).imageIds}}function Dde({segmentationId:t,options:e}){const r=Ct(t);if(!r)return;const{volumeId:n}=r.representationData.Labelmap,i=Te.getVolume(n);return _de({segmentationId:t,viewportId:e.viewportId,imageIds:i.imageIds,options:e})}async function bde(t,e={}){var a;const r=(a=e.segmentIndices)!=null&&a.length?e.segmentIndices:ha(t);let n;const i=Ct(t),o=i.representationData;try{o.Contour?n=await Ide(t,{segmentIndices:r,...e}):o.Surface&&(n=await Ode(i.segmentationId,{segmentIndices:r,...e}))}catch(s){throw console.error(s),s}if(!n)throw new Error("Not enough data to convert to surface, currently only support converting volume labelmap to surface if available");return n}async function Ide(t,e={}){var c;const r=e.viewport instanceof sn;if(r&&!e.viewport)throw new Error("Cannot compute labelmap from contour segmentation without providing the viewport");const n=(c=e.segmentIndices)!=null&&c.length?e.segmentIndices:ha(t),o=Ct(t).representationData.Contour;return await(r?pde:mde)(o,{segmentIndices:n,viewport:e.viewport})}async function Ode(t,e={}){var u;const{viewport:r}=e,n=r instanceof sn,i=(u=e.segmentIndices)!=null&&u.length?e.segmentIndices:ha(t),o=Ct(t),a=new Map;if(o.representationData.Surface.geometryIds.forEach((d,h)=>{i.includes(h)&&a.set(h,d)}),n&&!r)throw new Error("Cannot compute labelmap from surface segmentation without providing the viewport");let c;if(n){const d=r.getVolumeId();c=await iC(d)}else{const d=e.viewport.getImageIds(),g=EM(d).map(p=>p.imageId);c=await rC("generatedSegmentationVolumeId",g)}const l=await yde({geometryIds:a},c);return n?l:await Ede({volumeId:c.volumeId})}async function aP(t,e={}){return UC(t,Ge.Labelmap,()=>bde(t,e),()=>null,()=>{Yt.processLabelmapRepresentationAddition(e.viewport.id,t),setTimeout(()=>{Ei(t)},0)})}const ay=255,Yf=new Map;let sy=!1;function Mde(t,e,r=!1){const n=Xn(t);if(Yf.forEach((o,a)=>{a.includes(e)&&Yf.delete(a)}),!n)return;const{viewport:i}=n;fde(i.element,e),r&&i.render()}async function Rde(t,e){const{segmentationId:r}=e,n=Ct(r);if(!n){console.warn("No segmentation found for segmentationId: ",r);return}let i=n.representationData[Ge.Labelmap],o=Ba(t.id,r);if(!i&&x2(r,Ge.Labelmap)&&!sy){if(sy=!0,i=await aP(r,{viewport:t}),!i)throw new Error(`No labelmap data found for segmentationId ${r}.`);sy=!1}if(i){if(t instanceof sn)o||await lE(t,i,r),o=Ba(t.id,r);else{if(!Gi(t.id,r))return;o||await lE(t,i,r),o=Ba(t.id,r)}o&&Lde(t.id,o,e)}}function Lde(t,e,r){const{segmentationId:n}=r,{cfun:i,ofun:o}=r.config,{colorLUTIndex:a}=r,s=bl(t),c=(s==null?void 0:s.segmentationId)===n,l=Fi.getStyle({viewportId:t,type:Ge.Labelmap,segmentationId:n}),f=Fi.getRenderInactiveSegmentations(t),u=b0(a),d=Math.min(256,u.length),{outlineWidth:h,renderOutline:g,outlineOpacity:p,activeSegmentOutlineWidthDelta:v}=cE(l,c),x=JN(t,{segmentationId:n,type:Ge.Labelmap});for(let w=0;w_i().flatMap(r=>r.getViewports()),this._renderFlaggedSegmentations=()=>{this._throwIfDestroyed(),Array.from(this._needsRender).forEach(r=>{this._triggerRender(r)}),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}renderSegmentationsForViewport(e){const r=e?[e]:this._getViewportIdsForSegmentation();this._setViewportsToBeRenderedNextFrame(r)}renderSegmentation(e){const r=this._getViewportIdsForSegmentation(e);this._setViewportsToBeRenderedNextFrame(r)}_getViewportIdsForSegmentation(e){const r=this._getAllViewports(),n=[];for(const i of r){const o=i.id;if(e){const a=Ti(o,{segmentationId:e});(a==null?void 0:a.length)>0&&n.push(o)}else{const a=Ti(o);(a==null?void 0:a.length)>0&&n.push(o)}}return n}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}_setViewportsToBeRenderedNextFrame(e){e.forEach(r=>{this._needsRender.add(r)}),this._render()}_render(){this._needsRender.size>0&&this._animationFrameSet===!1&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedSegmentations),this._animationFrameSet=!0)}_triggerRender(e){const r=Ti(e);if(!(r!=null&&r.length))return;const{viewport:n}=Xn(e)||{};if(!n)return;const i=[],o=r.map(a=>{a.type===Ge.Contour&&this._addPlanarFreeHandToolIfAbsent(n);const s=Pde[a.type];try{const c=s.render(n,a);i.push(c)}catch(c){console.error(c)}return Promise.resolve({segmentationId:a.segmentationId,type:a.type})});Promise.allSettled(o).then(a=>{const s=a.filter(f=>f.status==="fulfilled").map(f=>f.value);function c(f){const{element:u,viewportId:d}=f.detail;u.removeEventListener(Se.IMAGE_RENDERED,c),s.forEach(h=>{const g={viewportId:d,segmentationId:h.segmentationId,type:h.type};De(Ce,F.SEGMENTATION_RENDERED,{...g})})}n.element.addEventListener(Se.IMAGE_RENDERED,c),n.render()})}_addPlanarFreeHandToolIfAbsent(e){Hg in me.tools||pr(Ja);const r=Cn(e.id);r.hasTool(Hg)||(r.addTool(Hg),r.setToolPassive(Hg))}}function L0(t){cP.renderSegmentationsForViewport(t)}function M2(t){cP.renderSegmentation(t)}const cP=new Ade;function R2(){return Yt.getState().segmentations}function kde(t){const{segmentationId:e,representation:r,config:n}=t,{type:i,data:o}=r,a=o?{...o}:{};if(!a)throw new Error("Segmentation representation data may not be undefined");i===Ge.Contour&&Vde(a);const s=Fde(n==null?void 0:n.segments,i,a);return n==null||delete n.segments,{segmentationId:e,label:(n==null?void 0:n.label)??null,cachedStats:(n==null?void 0:n.cachedStats)??{},segments:s,representationData:{[i]:{...a}}}}function Vde(t){t.geometryIds=t.geometryIds??[],t.annotationUIDsMap=t.annotationUIDsMap??new Map}function Fde(t,e,r){const n={};return t?Object.entries(t).forEach(([i,o])=>{n[i]={segmentIndex:Number(i),label:o.label??`Segment ${i}`,locked:o.locked??!1,cachedStats:o.cachedStats??{},active:o.active??!1}}):e===Ge.Surface?Ude(n,r):n[1]=Bde(),n}function Ude(t,e){const{geometryIds:r}=e;r.forEach(n=>{const i=Te.getGeometry(n);if(i!=null&&i.data){const{segmentIndex:o}=i.data;t[o]={segmentIndex:o}}})}function Bde(){return{segmentIndex:1,label:"Segment 1",locked:!1,cachedStats:{},active:!0}}function lP(t,e){const r=Yt;t.forEach(n=>{const i=kde(n);r.addSegmentation(i),e||Di(i.segmentationId)})}function N0(t,e,r){return fP(t,e,r)}function uP(t,e,r){return fP(t,e,r)}function fP(t,e,r){const{segmentationId:n,type:i}=e;return Gde(t,n,i,r),Yt.removeSegmentationRepresentations(t,{segmentationId:n,type:i})}function dP(){Yt.getAllViewportSegmentationRepresentations().forEach(({viewportId:e,representations:r})=>{r.forEach(({segmentationId:n,type:i})=>{N0(e,{segmentationId:n,type:i})})}),Yt.resetState()}function hP(t,e,r){N0(t,{segmentationId:e,type:Ge.Labelmap},r)}function gP(t,e,r){N0(t,{segmentationId:e,type:Ge.Contour},r)}function pP(t,e,r){N0(t,{segmentationId:e,type:Ge.Surface},r)}function Gde(t,e,r,n){Ti(t,{segmentationId:e,type:r}).forEach(a=>{a.type===Ge.Labelmap?sP.removeRepresentation(t,a.segmentationId,n):a.type===Ge.Contour?QN.removeRepresentation(t,a.segmentationId,n):a.type===Ge.Surface&&fN.removeRepresentation(t,a.segmentationId,n)});const{viewport:o}=Xn(t)||{};o&&o.render()}function cS(t){const e=Yt;e.getAllViewportSegmentationRepresentations().filter(({representations:n})=>n.some(i=>i.segmentationId===t)).map(({viewportId:n})=>n).forEach(n=>{uP(n,{segmentationId:t})}),e.removeSegmentation(t),VC(t)}function mP(){const t=Yt;t.getState().segmentations.forEach(r=>{cS(r.segmentationId)}),t.resetState()}function Wde(t){Yt.removeColorLUT(t)}function vP(t,e){return Yt.getState().viewportSegRepresentations[t].map(s=>(e&&s.type===e,Ct(s.segmentationId))).filter(s=>s!==void 0)}function yP(t,e){return Yt.updateLabelmapSegmentationImageReferences(t,e)}function xP(t,e){return Yt.getStackSegmentationImageIdsForViewport(t,e)}function zde(){Yt.resetState()}const $de=Object.freeze(Object.defineProperty({__proto__:null,addColorLUT:WC,addSegmentations:lP,destroy:zde,getColorLUT:b0,getCurrentLabelmapImageIdForViewport:Gi,getNextColorLUTIndex:BC,getSegmentation:Ct,getSegmentationRepresentation:y2,getSegmentationRepresentations:Ti,getSegmentationRepresentationsBySegmentationId:lle,getSegmentations:R2,getStackSegmentationImageIdsForViewport:xP,getViewportIdsWithSegmentation:I0,getViewportSegmentations:vP,removeAllSegmentationRepresentations:dP,removeAllSegmentations:mP,removeColorLUT:Wde,removeContourRepresentation:gP,removeLabelmapRepresentation:hP,removeSegmentation:cS,removeSegmentationRepresentation:N0,removeSurfaceRepresentation:pP,updateLabelmapSegmentationImageReferences:yP},Symbol.toStringTag,{value:"Module"})),jde=function(t){const{segmentationId:e,modifiedSlicesToUse:r}=t.detail,{representationData:n}=Ct(e),i=I0(e),o=i.some(c=>{const{viewport:l}=Xn(c);return l instanceof sn}),a=i.some(c=>{const{viewport:l}=Xn(c);return l instanceof un}),s=o&&a;i.forEach(c=>{const{viewport:l}=Xn(c);l instanceof sn&&Hde({modifiedSlicesToUse:s?[]:r,representationData:n,type:Ge.Labelmap}),l instanceof un&&Kde({viewportIds:i,segmentationId:e})})};function Hde({modifiedSlicesToUse:t,representationData:e,type:r}){const n=Te.getVolume(e[r].volumeId);if(!n){console.warn("segmentation not found in cache");return}const{imageData:i,vtkOpenGLTexture:o}=n;let a;if((t==null?void 0:t.length)>0)a=t;else{const s=i.getDimensions()[2];a=[...Array(s).keys()]}a.forEach(s=>{o.setUpdatedFrame(s)}),i.modified()}function Kde({viewportIds:t,segmentationId:e}){t.forEach(r=>{let n=Ti(r,{segmentationId:e});n=n.filter(i=>i.type===Ge.Labelmap),n.forEach(i=>{if(i.segmentationId!==e)return;const o=Xn(r);if(!o)return;const{viewport:a}=o;if(a instanceof sn)return;const s=Ba(r,e);if(!s)return;const c=s.actor.getMapper().getInputData(),l=Gi(r,e),f=Te.getImage(l);c.modified(),c2(c,f)})})}const wP=function(t){const{segmentationId:e}=t.detail,{representationData:r}=Ct(e);r.Labelmap&&jde(t),M2(e)},CP=function(t){const{segmentationId:e}=t.detail;M2(e)},qde=function(t){const{viewport:e}=ne(t);e instanceof Rn||(t.addEventListener(Se.STACK_NEW_IMAGE,Kd),t.addEventListener(Se.IMAGE_RENDERED,Kd))},Xde=function(t){t.removeEventListener(Se.STACK_NEW_IMAGE,Kd),t.removeEventListener(Se.IMAGE_RENDERED,Kd)};function Kd(t){const e=t.detail,{viewportId:r,renderingEngineId:n}=e,{viewport:i}=fr(r,n),o=Ti(r);if(!(o!=null&&o.length))return;const a=o.filter(l=>l.type===Ge.Labelmap),s=i.getActors();a.forEach(l=>{const{segmentationId:f}=l;yP(r,f)});const c=a.map(l=>Ba(r,l.segmentationId)).filter(l=>l!==void 0);c.length&&(c.forEach(l=>{a.find(u=>Gi(r,u.segmentationId)===l.referencedId)||i.removeActors([l.uid])}),a.forEach(l=>{const{segmentationId:f}=l,u=i.getCurrentImageId(),d=Gi(r,f);if(!d)return;const h=Te.getImage(d);if(!h){console.warn("No derived image found in the cache for segmentation representation",l);return}const g=s.find(p=>p.referencedId===d);if(g){const p=g.actor.getMapper().getInputData();p.setDerivedImage?p.setDerivedImage(h):c2(p,h)}else{const{dimensions:p,spacing:v,direction:x}=i.getImageDataMetadata(h),m=Te.getImage(u)||{imageId:u},{origin:y}=i.getImageDataMetadata(m),w=y,C=tt.newInstance({name:"Pixels",numberOfComponents:1,values:[...h.voxelManager.getScalarData()]}),S=y0.newInstance();S.setDimensions(p[0],p[1],1),S.setSpacing(v),S.setDirection(x),S.setOrigin(w),S.getPointData().setScalars(C),S.modified(),i.addImages([{imageId:d,representationUID:`${f}-${Ge.Labelmap}`,callback:({imageActor:T})=>{T.getMapper().setInputData(S)}}]),L0(r);return}i.render(),t.type===Se.IMAGE_RENDERED&&i.element.removeEventListener(Se.IMAGE_RENDERED,Kd)}))}const SP={enable:qde,disable:Xde};function Yde(t){const e=t.detail.annotation;C2(e)}function TP(t){const e=t.detail.annotation;Ih(e)&&Ofe(t)}function gm(t){if(!t.detail.removed.length)return;_i().forEach(n=>{const o=n.getViewports().map(a=>a.id);pe(o)})}function _P(t){const{viewportId:e}=t.detail;pe([e])}function Jde(t){const e=t.detail.annotation;Ih(e)&&Yde(t)}const EP=function(t){O0(t.detail.element)},Zde=function(t){t.addEventListener(Se.IMAGE_RENDERED,EP)},Qde=function(t){t.removeEventListener(Se.IMAGE_RENDERED,EP)},DP={enable:Zde,disable:Qde},{Active:ehe}=Ft;function P0(t,e,r){if(me.isInteractingWithTool)return!1;const{renderingEngineId:n,viewportId:i}=r.detail,o=Cn(i,n);if(!o)return!1;let a;const s=Object.keys(o.toolOptions);for(let c=0;c{for(const c of s){if(c.isLocked||!c.isVisible)continue;const l=a.getHandleNearImagePoint(t,c,r,i);if(l){o.push({tool:a,annotation:c,handle:l});break}}}),o}function Nh(t,e){const r=[];for(let n=0;n0&&r.push({tool:i,annotations:o}))}return r}function lS(t,e,r,n="mouse"){const i=n==="touch"?36:6,o=[];return e.forEach(({tool:a,annotations:s})=>{for(const c of s){if(c.isLocked||!c.isVisible)continue;if(a.isPointNearTool(t,c,r,i,n)){o.push({tool:a,annotation:c});break}}}),o}const{Active:the}=Ft;function L2(t){const{renderingEngineId:e,viewportId:r,event:n}=t.detail,i=M0(n)||D0.getModifierKey(),o=Cn(r,e);if(!o)return null;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary(),c=t.detail.buttons??(n==null?void 0:n.buttons)??s;for(let l=0;lh.mouseButton===c&&h.modifierKey===i);if(u.mode===the&&d)return o.getToolInstance(f)}}function t0(t,e,r){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;cd.mouseButton===r);if(e.includes(f.mode)&&(!r||u)){const d=o.getToolInstance(l);a.push(d)}}return a}function nhe(t,e){var u;const r=new Map,{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return r;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary(),c=t.detail.event,l=(c==null?void 0:c.buttons)??s,f=M0(c)||D0.getModifierKey();for(let d=0;dm.bindings.length&&m.bindings.some(y=>y.mouseButton===l&&y.modifierKey===f));x&&r.set(g,x)}return r}const{Active:rhe,Passive:ihe}=Ft;function ohe(t){if(me.isInteractingWithTool)return!1;const e=t.detail,{element:r}=e,n=ne(r),{canvas:i}=e.currentPoints;if(!n)return!1;const o=nhe(t,[rhe,ihe]),a=Array.from(o.keys()),s=Nh(r,a),c=lS(r,s,i);if(c.length>0){const{tool:l,annotation:f}=c[0],u=o.get(l);return(typeof u.method=="string"?l[u.method]:u.method).call(l,t,f),!0}return!1}const{Active:ahe,Passive:she}=Ft;function MP(t){if(me.isInteractingWithTool)return;const e=L2(t);if(e&&typeof e.preMouseDownCallback=="function"&&e.preMouseDownCallback(t))return;const r=t.detail.event.buttons===1,n=t0(t,[ahe],t.detail.event.buttons),i=r?t0(t,[she]):void 0,o=[...n||[],...i||[]];if(ohe(t))return;const s=t.detail,{element:c}=s,l=Nh(c,o),f=s.currentPoints.canvas,u=OP(c,l,f,"mouse"),d=!!t.detail.event.shiftKey;if(u.length>0){const{tool:g,annotation:p,handle:v}=uE(u);fE(p.annotationUID,d),g.handleSelectedCallback(t,p,v,"Mouse");return}const h=lS(c,l,f,"mouse");if(h.length>0){const{tool:g,annotation:p}=uE(h);fE(p.annotationUID,d),g.toolSelectedCallback(t,p,"Mouse",f);return}e&&typeof e.postMouseDownCallback=="function"&&e.postMouseDownCallback(t)}function uE(t){if(t.length>1){const e=t.find(r=>{const n=!rr(r.annotation.annotationUID),i=Br(r.annotation.annotationUID);return n&&i});if(e)return e}return t[0]}function fE(t,e=!1){e?Dh(t)?Vi(t,!1):Vi(t,!0,!0):Vi(t,!0,!1)}function RP(t){if(me.isInteractingWithTool)return;const e=L2(t);if(e&&!me.isMultiPartToolActive&&e.addNewAnnotation){const r=e.addNewAnnotation(t,"mouse");Vi(r.annotationUID)}}function LP(t){if(me.isInteractingWithTool)return;const e=L2(t);!e||typeof e.mouseDragCallback!="function"||e.mouseDragCallback(t)}const{Active:che,Passive:lhe}=Ft;function NP(t){if(me.isInteractingWithTool||me.isMultiPartToolActive)return;const e=t0(t,[che,lhe]),r=t.detail,{element:n}=r,i=Nh(n,e),o=e.filter(s=>!i.some(l=>l.tool.getToolName()===s.getToolName()));let a=!1;for(const{tool:s,annotations:c}of i)typeof s.mouseMoveCallback=="function"&&(a=s.mouseMoveCallback(t,c)||a);o.forEach(s=>{typeof s.mouseMoveCallback=="function"&&s.mouseMoveCallback(t)}),a===!0&&O0(n),me.isInteractingWithTool||EC(n,null)}const PP=P0.bind(null,"Mouse","mouseUpCallback");function AP(t){if(me.isInteractingWithTool)return;t.detail.buttons=ca.Wheel|(t.detail.event.buttons||0);const e=L2(t);if(e)return e.mouseWheelCallback(t)}const uhe=function(t){t.addEventListener(F.MOUSE_CLICK,bP),t.addEventListener(F.MOUSE_DOWN,MP),t.addEventListener(F.MOUSE_DOWN_ACTIVATE,RP),t.addEventListener(F.MOUSE_DOUBLE_CLICK,IP),t.addEventListener(F.MOUSE_DRAG,LP),t.addEventListener(F.MOUSE_MOVE,NP),t.addEventListener(F.MOUSE_UP,PP),t.addEventListener(F.MOUSE_WHEEL,AP)},fhe=function(t){t.removeEventListener(F.MOUSE_CLICK,bP),t.removeEventListener(F.MOUSE_DOWN,MP),t.removeEventListener(F.MOUSE_DOWN_ACTIVATE,RP),t.removeEventListener(F.MOUSE_DOUBLE_CLICK,IP),t.removeEventListener(F.MOUSE_DRAG,LP),t.removeEventListener(F.MOUSE_MOVE,NP),t.removeEventListener(F.MOUSE_UP,PP),t.removeEventListener(F.MOUSE_WHEEL,AP)},kP={enable:uhe,disable:fhe},{Active:dhe}=Ft;function VP(t){const{renderingEngineId:e,viewportId:r}=t.detail,n=Oce(),i=D0.getModifierKey(),o=Cn(r,e);if(!o)return null;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary();for(let c=0;cd.mouseButton===(n??s)&&d.modifierKey===i))return o.getToolInstance(l)}}function hhe(t,e){var c;const r=new Map,{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return r;const a=Object.keys(o.toolOptions),s=t.detail.key;for(let l=0;lp.bindings.some(v=>v.key===s));g&&r.set(u,g)}return r}function FP(t){const e=VP(t);if(e){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n),a=e.getToolName();Object.keys(o.toolOptions).includes(a)&&o.setViewportsCursorByToolName(a)}const r=hhe(t,[Ft.Active]);if(r!=null&&r.size){const{element:n}=t.detail;for(const[i,o]of[...r.entries()])(typeof o.method=="function"?o.method:i[o.method]).call(i,n,o,t)}}function UP(t){const e=VP(t);if(!e)return;const{renderingEngineId:r,viewportId:n}=t.detail,i=Cn(n,r);JL();const o=e.getToolName();Object.keys(i.toolOptions).includes(o)&&i.setViewportsCursorByToolName(o)}const ghe=function(t){t.addEventListener(F.KEY_DOWN,FP),t.addEventListener(F.KEY_UP,UP)},phe=function(t){t.removeEventListener(F.KEY_DOWN,FP),t.removeEventListener(F.KEY_UP,UP)},BP={enable:ghe,disable:phe},{Active:mhe,Passive:vhe,Enabled:yhe}=Ft,GP=function(t){t0(t,[mhe,vhe,yhe]).forEach(r=>{r.onCameraModified&&r.onCameraModified(t)})},xhe=function(t){t.addEventListener(Se.CAMERA_MODIFIED,GP)},whe=function(t){t.removeEventListener(Se.CAMERA_MODIFIED,GP)},WP={enable:xhe,disable:whe},{Active:Che,Passive:She,Enabled:The}=Ft,zP=function(t){t0(t,[Che,She,The]).forEach(r=>{r.onImageSpacingCalibrated&&r.onImageSpacingCalibrated(t)})},_he=function(t){t.addEventListener(Se.IMAGE_SPACING_CALIBRATED,zP)},Ehe=function(t){t.removeEventListener(Se.IMAGE_SPACING_CALIBRATED,zP)},$P={enable:_he,disable:Ehe},{Active:Dhe}=Ft;function uS(t){const{renderingEngineId:e,viewportId:r}=t.detail,n=t.detail.event,i=Cn(r,e);if(!i)return null;const o=Object.keys(i.toolOptions),a=Object.keys(n.touches).length,s=M0(n)||D0.getModifierKey(),c=i.getDefaultMousePrimary();for(let l=0;l(h.numTouchPoints===a||a===1&&h.mouseButton===c)&&h.modifierKey===s);if(u.mode===Dhe&&d)return i.getToolInstance(f)}}function dE(t,e,r){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;cd.numTouchPoints===r);if(e.includes(f.mode)&&(!r||u)){const d=o.getToolInstance(l);a.push(d)}}return a}const{Active:bhe,Passive:Ihe}=Ft;function jP(t){if(me.isInteractingWithTool)return;const e=uS(t);if(e&&typeof e.preTouchStartCallback=="function"&&e.preTouchStartCallback(t))return;const r=Object.keys(t.detail.event.touches).length===1,n=dE(t,[bhe],Object.keys(t.detail.event.touches).length),i=r?dE(t,[Ihe]):void 0,o=[...n||[],...i||[],e],a=t.detail,{element:s}=a,c=Nh(s,o),l=a.currentPoints.canvas,f=OP(s,c,l,"touch"),u=!1;if(f.length>0){const{tool:h,annotation:g,handle:p}=hE(f);gE(g.annotationUID,u),h.handleSelectedCallback(t,g,p,"Touch");return}const d=lS(s,c,l,"touch");if(d.length>0){const{tool:h,annotation:g}=hE(d);gE(g.annotationUID,u),h.toolSelectedCallback(t,g,"Touch");return}e&&typeof e.postTouchStartCallback=="function"&&e.postTouchStartCallback(t)}function hE(t){return t.length>1&&t.find(e=>!rr(e.annotation.annotationUID)&&Br(e.annotation.annotationUID))||t[0]}function gE(t,e=!1){e?Dh(t)?Vi(t,!1):Vi(t,!0,!0):Vi(t,!0,!1)}function HP(t){if(me.isInteractingWithTool)return;const e=uS(t);if(e&&!me.isMultiPartToolActive&&e.addNewAnnotation){const r=e.addNewAnnotation(t,"touch");Vi(r.annotationUID)}}function KP(t){if(me.isInteractingWithTool)return;const e=uS(t);!e||typeof e.touchDragCallback!="function"||e.touchDragCallback(t)}const qP=P0.bind(null,"Touch","touchEndCallback"),Ohe=P0.bind(null,"Touch","touchTapCallback"),XP=P0.bind(null,"Touch","touchPressCallback"),Mhe=function(t){t.addEventListener(F.TOUCH_START,jP),t.addEventListener(F.TOUCH_START_ACTIVATE,HP),t.addEventListener(F.TOUCH_DRAG,KP),t.addEventListener(F.TOUCH_END,qP),t.addEventListener(F.TOUCH_TAP,Ohe),t.addEventListener(F.TOUCH_PRESS,XP)},Rhe=function(t){t.removeEventListener(F.TOUCH_START,jP),t.removeEventListener(F.TOUCH_START_ACTIVATE,HP),t.removeEventListener(F.TOUCH_DRAG,KP),t.removeEventListener(F.TOUCH_END,qP),t.removeEventListener(F.TOUCH_PRESS,XP)},YP={enable:Mhe,disable:Rhe},Lhe=function(){Ce.addEventListener(F.ANNOTATION_COMPLETED,na.handleAnnotationCompleted),Ce.addEventListener(F.ANNOTATION_MODIFIED,na.handleAnnotationUpdate),Ce.addEventListener(F.ANNOTATION_REMOVED,na.handleAnnotationDelete)},Nhe=function(){Ce.removeEventListener(F.ANNOTATION_COMPLETED,na.handleAnnotationCompleted),Ce.removeEventListener(F.ANNOTATION_MODIFIED,na.handleAnnotationUpdate),Ce.removeEventListener(F.ANNOTATION_REMOVED,na.handleAnnotationDelete)},JP={enable:Lhe,disable:Nhe},{Active:Phe,Passive:Ahe,Enabled:khe}=Ft,ZP=function(t){t0(t,[Phe,Ahe,khe]).forEach(r=>{r.onResetCamera&&r.onResetCamera(t)})},Vhe=function(t){t.addEventListener(Se.CAMERA_RESET,ZP)},Fhe=function(t){t.removeEventListener(Se.CAMERA_RESET,ZP)},QP={enable:Vhe,disable:Fhe};function eA(t){const{element:e,viewportId:r}=t.detail,n=Uhe(r);Bhe(e),Ghe(n,e),rS.addViewportElement(r,e),ML.enable(e),XL.enable(e),HL.enable(e),D0.enable(e),SP.enable(e),DP.enable(e),WP.enable(e),$P.enable(e),QP.enable(e),kP.enable(e),BP.enable(e),YP.enable(e),me.enabledElements.push(e)}function Uhe(t){const e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg"),n=`svg-layer-${t}`;r.classList.add("svg-layer"),r.setAttribute("id",n),r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.style.width="100%",r.style.height="100%",r.style.pointerEvents="none",r.style.position="absolute";const i=document.createElementNS(e,"defs"),o=document.createElementNS(e,"filter"),a=document.createElementNS(e,"feOffset"),s=document.createElementNS(e,"feColorMatrix"),c=document.createElementNS(e,"feBlend");return o.setAttribute("id",`shadow-${n}`),o.setAttribute("filterUnits","userSpaceOnUse"),a.setAttribute("result","offOut"),a.setAttribute("in","SourceGraphic"),a.setAttribute("dx","0.5"),a.setAttribute("dy","0.5"),s.setAttribute("result","matrixOut"),s.setAttribute("in","offOut"),s.setAttribute("in2","matrix"),s.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),c.setAttribute("in","SourceGraphic"),c.setAttribute("in2","matrixOut"),c.setAttribute("mode","normal"),o.appendChild(a),o.appendChild(s),o.appendChild(c),i.appendChild(o),r.appendChild(i),r}function Bhe(t){const{viewportUid:e,renderingEngineUid:r}=t.dataset,n=`${e}:${r}`;me.svgNodeCache[n]={}}function Ghe(t,e){e.querySelector("div.viewport-element").appendChild(t)}function tA(t,e){const r=[];if(!e&&!t)throw new Error("At least one of renderingEngineId or viewportId should be given");for(let n=0;n{const e=ne(t);tA(e.viewportId,e.renderingEngineId).forEach(n=>{n.remove(e)})},$he=t=>{const{renderingEngineId:e,viewportId:r}=ne(t),n=Cn(r,e);n&&n.removeViewports(e,r)};function jhe(t){const{viewportUid:e,renderingEngineUid:r}=t.dataset,n=`${e}:${r}`;delete me.svgNodeCache[n]}function Hhe(t){const e=t.querySelector(`div.${Whe}`),r=e.querySelector("svg");r&&e.removeChild(r)}const Khe=function(t){const e=me.enabledElements.findIndex(r=>r===t);e>-1&&me.enabledElements.splice(e,1)};function qhe(t){const e=VN(t,[Ft.Active,Ft.Passive]),r=Nh(t,e);for(const{tool:n}of r){const i=n.cancel(t);if(i)return i}}class rA{constructor(e,r,n,i){this._viewportOptions={},this._onEvent=o=>{var l;if(this._ignoreFiredEvents===!0||!this._targetViewports.length)return;const a=this._eventSource==="element"?ne(o.currentTarget):Xn((l=o.detail)==null?void 0:l.viewportId);if(!a)return;const{renderingEngineId:s,viewportId:c}=a;this._sourceViewports.find(f=>f.viewportId===c)&&this.fireEvent({renderingEngineId:s,viewportId:c},o)},this._enabled=!0,this._eventName=r,this._eventHandler=n,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this._options=i||{},this._eventSource=this._options.eventSource||"element",this._auxiliaryEvents=this._options.auxiliaryEvents||[],this.id=e}isDisabled(){return!this._enabled||!this._hasSourceElements()}setOptions(e,r={}){this._viewportOptions[e]=r}setEnabled(e){this._enabled=e}getOptions(e){return this._viewportOptions[e]}add(e){this.addTarget(e),this.addSource(e)}addSource(e){if(Kg(this._sourceViewports,e))return;const{renderingEngineId:r,viewportId:n}=e,i=hr(r).getViewport(n);if(!i){console.warn(`Synchronizer.addSource: No viewport for ${r} ${n}`);return}(this._eventSource==="element"?i.element:Ce).addEventListener(this._eventName,this._onEvent.bind(this)),this._auxiliaryEvents.forEach(({name:a,source:s})=>{(s==="element"?i.element:Ce).addEventListener(a,this._onEvent.bind(this))}),this._updateDisableHandlers(),this._sourceViewports.push(e)}addTarget(e){Kg(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}getSourceViewports(){return this._sourceViewports}getTargetViewports(){return this._targetViewports}destroy(){this._sourceViewports.forEach(e=>this.removeSource(e)),this._targetViewports.forEach(e=>this.removeTarget(e))}remove(e){this.removeTarget(e),this.removeSource(e)}removeSource(e){const r=pE(this._sourceViewports,e);if(r===-1)return;const n=this._eventSource==="element"?this.getViewportElement(e):Ce;this._sourceViewports.splice(r,1),n.removeEventListener(this._eventName,this._eventHandler),this._auxiliaryEvents.forEach(({name:i,source:o})=>{(o==="element"?this.getViewportElement(e):Ce).removeEventListener(i,this._eventHandler)}),this._updateDisableHandlers()}removeTarget(e){const r=pE(this._targetViewports,e);r!==-1&&(this._targetViewports.splice(r,1),this._updateDisableHandlers())}hasSourceViewport(e,r){return Kg(this._sourceViewports,{renderingEngineId:e,viewportId:r})}hasTargetViewport(e,r){return Kg(this._targetViewports,{renderingEngineId:e,viewportId:r})}fireEvent(e,r){if(this.isDisabled()||this._ignoreFiredEvents)return;this._ignoreFiredEvents=!0;const n=[];try{for(let i=0;i{this._ignoreFiredEvents=!1}):this._ignoreFiredEvents=!1}}_hasSourceElements(){return this._sourceViewports.length!==0}_updateDisableHandlers(){const e=Xhe(this._sourceViewports,this._targetViewports),r=this.remove.bind(this),n=i=>{r(i.detail.element)};e.forEach(i=>{const o=this.getEventSource(i);o.removeEventListener(Se.ELEMENT_DISABLED,n),o.addEventListener(Se.ELEMENT_DISABLED,n)})}getEventSource(e){return this._eventSource==="element"?this.getViewportElement(e):Ce}getViewportElement(e){const{renderingEngineId:r,viewportId:n}=e,i=hr(r);if(!i)throw new Error(`No RenderingEngine for Id: ${r}`);return i.getViewport(n).element}}function Xhe(t,e){const r=[],n=t.concat(e);for(let i=0;io.renderingEngineId===a.renderingEngineId&&o.viewportId===a.viewportId)||r.push(o)}return r}function pE(t,e){return t.findIndex(r=>e.renderingEngineId===r.renderingEngineId&&e.viewportId===r.viewportId)}function Kg(t,e){return t.some(r=>r.renderingEngineId===e.renderingEngineId&&r.viewportId===e.viewportId)}function Il(t,e,r,n){if(me.synchronizers.some(a=>a.id===t))throw new Error(`Synchronizer with id '${t}' already exists.`);const o=new rA(t,e,r,n);return me.synchronizers.push(o),o}function Yhe(){for(;me.synchronizers.length>0;)me.synchronizers.pop().destroy()}function Jhe(t){return me.synchronizers.find(e=>e.id===t)}function Zhe(){return me.synchronizers}function Qhe(t){const e=me.synchronizers.findIndex(r=>r.id===t);e>-1&&(me.synchronizers[e].destroy(),me.synchronizers.splice(e,1))}const ege=Object.freeze(Object.defineProperty({__proto__:null,createSynchronizer:Il,destroy:Yhe,destroySynchronizer:Qhe,getAllSynchronizers:Zhe,getSynchronizer:Jhe,getSynchronizersForViewport:tA},Symbol.toStringTag,{value:"Module"})),pm=function(t){const{viewportId:e}=t.detail;L0(e)};let M3=!1;function iA(t={}){M3||(nge(),rge(),M3=!0)}function tge(){oA(),aA(),nL(),Sae();const t=da(),e=Yt;t.restoreAnnotations({}),e.resetState(),M3=!1}function nge(){oA();const t=Se.ELEMENT_ENABLED,e=Se.ELEMENT_DISABLED;Ce.addEventListener(t,eA),Ce.addEventListener(e,nA),JP.enable()}function oA(){const t=Se.ELEMENT_ENABLED,e=Se.ELEMENT_DISABLED;Ce.removeEventListener(t,eA),Ce.removeEventListener(e,nA),JP.disable()}function rge(){aA(),Ce.addEventListener(F.ANNOTATION_COMPLETED,TP),Ce.addEventListener(F.ANNOTATION_MODIFIED,_P),Ce.addEventListener(F.ANNOTATION_SELECTION_CHANGE,gm),Ce.addEventListener(F.ANNOTATION_SELECTION_CHANGE,gm),Ce.addEventListener(F.ANNOTATION_REMOVED,Jde),Ce.addEventListener(F.SEGMENTATION_MODIFIED,CP),Ce.addEventListener(F.SEGMENTATION_DATA_MODIFIED,wP),Ce.addEventListener(F.SEGMENTATION_REPRESENTATION_MODIFIED,pm),Ce.addEventListener(F.SEGMENTATION_REPRESENTATION_ADDED,pm)}function aA(){Ce.removeEventListener(F.ANNOTATION_COMPLETED,TP),Ce.removeEventListener(F.ANNOTATION_MODIFIED,_P),Ce.removeEventListener(F.ANNOTATION_SELECTION_CHANGE,gm),Ce.removeEventListener(F.ANNOTATION_SELECTION_CHANGE,gm),Ce.removeEventListener(F.SEGMENTATION_MODIFIED,CP),Ce.removeEventListener(F.SEGMENTATION_DATA_MODIFIED,wP),Ce.removeEventListener(F.SEGMENTATION_REPRESENTATION_MODIFIED,pm),Ce.removeEventListener(F.SEGMENTATION_REPRESENTATION_ADDED,pm)}const ige=Object.freeze(Object.defineProperty({__proto__:null,COLOR_LUT:GC},Symbol.toStringTag,{value:"Module"}));function oge(t,e,r,n){const{camera:i}=n.detail,o=hr(r.renderingEngineId);if(!o)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const a=o.getViewport(r.viewportId);a.setCamera(i),a.render()}const{CAMERA_MODIFIED:age}=Se;function sge(t){return Il(t,age,oge)}function cge(t,e,r,n,i){const o=hr(r.renderingEngineId);if(!o)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const a=o.getViewport(r.viewportId),c=o.getViewport(e.viewportId).getViewPresentation(i);a.setViewPresentation(c),a.render()}const{CAMERA_MODIFIED:lge}=Se;function uge(t,e){return Il(t,lge,cge,{viewPresentation:e})}function fge(t,e,r,n,i){const o=n.detail,{volumeId:a,range:s,invertStateChanged:c,invert:l,colormap:f}=o,u=hr(r.renderingEngineId);if(!u)throw new Error(`Rendering Engine does not exist: ${r.renderingEngineId}`);const d=u.getViewport(r.viewportId),h={voiRange:s};if(i!=null&&i.syncInvertState&&c&&(h.invert=l),i!=null&&i.syncColormap&&f&&(h.colormap=f),d instanceof Rn)d._actors&&d._actors.size>1?d.setProperties(h,a):d.setProperties(h);else if(d instanceof un)d.setProperties(h);else throw new Error("Viewport type not supported.");d.render()}function dge(t,e){return e=Object.assign({syncInvertState:!0,syncColormap:!0},e),Il(t,Se.VOI_MODIFIED,fge,{auxiliaryEvents:[{name:Se.COLORMAP_MODIFIED}],...e})}function hge(t,e,r){const n=hr(r.renderingEngineId);if(!n)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const i=t.getOptions(r.viewportId),o=n.getViewport(r.viewportId),a=n.getViewport(e.viewportId);if((i==null?void 0:i.syncZoom)!==!1){const s=a.getZoom();o.setZoom(s)}if((i==null?void 0:i.syncPan)!==!1){const s=a.getPan();o.setPan(s)}o.render()}const{CAMERA_MODIFIED:gge}=Se;function pge(t){return Il(t,gge,hge)}function mge(t,e){const{viewPlaneNormal:r}=t.getCamera(),{viewPlaneNormal:n}=e.getCamera(),i=je(r,n);return Math.abs(i)>.9}const mE=(t,e)=>kd.get("spatialRegistrationModule",t,e);async function vge(t,e,r){const n=hr(r.renderingEngineId);if(!n)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const i=n.getViewport(e.viewportId),o=t.getOptions(r.viewportId);if(o!=null&&o.disabled)return;const a=n.getViewport(r.viewportId),s=i.getCurrentImageId(),l=Pe("imagePlaneModule",s).imagePositionPatient,f=a.getImageIds();if(!mge(i,a))return;let u=mE(r.viewportId,e.viewportId);if(!u){const p=i.getFrameOfReferenceUID(),v=a.getFrameOfReferenceUID();if(p===v&&(o==null?void 0:o.useInitialPosition)!==!1?u=qe(co()):(lR(i,a),u=mE(r.viewportId,e.viewportId)),!u)return}const d=et(xe(),l,u),h=yge(d,f);let g=h.index;a instanceof sn&&(g=f.length-h.index-1),h.index!==-1&&a.getCurrentImageIdIndex()!==h.index&&await jo(a.element,{imageIndex:g})}function yge(t,e){return e.reduce((r,n,i)=>{const{imagePositionPatient:o}=Pe("imagePlaneModule",n),a=Cr(o,t);return a{i.getImageIds().includes(t)&&i.calibrateSpacing(t)})}function lA(t,e){const r=t.findIndex(([n,i])=>n===i);if(r===-1)throw new Error("3D bounding boxes not supported in an oblique plane");return t[r][0]-=e,t[r][1]+=e,t}const Oge=Object.freeze(Object.defineProperty({__proto__:null,extend2DBoundingBoxInViewAxis:lA,getBoundingBoxAroundShape:Zs,getBoundingBoxAroundShapeIJK:Zs,getBoundingBoxAroundShapeWorld:eN},Symbol.toStringTag,{value:"Module"})),{transformWorldToIndex:cy}=Jt;function uA(t,e,r){const[n,i]=t,o=Ye((n[0]+i[0])/2,(n[1]+i[1])/2,(n[2]+i[2])/2),a=Cr(n,i)/2;if(!r)throw new Error("viewport is required in order to calculate the sphere bounds");const{boundsIJK:s,topLeftWorld:c,bottomRightWorld:l}=Mge(e,r,t,o,a);return{boundsIJK:s,centerWorld:o,radiusWorld:a,topLeftWorld:c,bottomRightWorld:l}}function Mge(t,e,r,n,i){const[o,a]=r,s=t.getDimensions(),c=e.getCamera(),l=Ye(c.viewUp[0],c.viewUp[1],c.viewUp[2]),f=Ye(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),u=xe();qt(u,l,f);const d=xe(),h=xe();Vt(d,a,f,i),Vt(h,o,f,-i),Vt(d,d,u,-i),Vt(h,h,u,i);const g=cy(t,d),p=cy(t,h),v=r.map(m=>cy(t,m));return{boundsIJK:Zs([g,p,...v],s),topLeftWorld:d,bottomRightWorld:h}}const zS=class zS{static imageIdToFrames(e){const r=e.match(this.frameRangeExtractor);if(!r||!r[2])return null;const n=r[2].split("-").map(i=>Number(i));return n.length===1?n[0]:n}static framesToString(e){return Array.isArray(e)?`${e[0]}-${e[1]}`:String(e)}static framesToImageId(e,r){const n=e.match(this.frameRangeExtractor);if(!n||!n[2])return null;const i=this.framesToString(r);return e.replace(this.frameRangeExtractor,`${n[1]}${i}`)}static setFrameRange(e,r,n){const{referencedImageId:i}=e.metadata;e.metadata.referencedImageId=this.framesToImageId(i,r);const o={...n,annotation:e};De(Ce,F.ANNOTATION_MODIFIED,o)}static getFrameRange(e){return this.imageIdToFrames(e.metadata.referencedImageId)}};zS.frameRangeExtractor=/(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;let R3=zS;function Rge(t,e){const{viewPlaneNormal:r}=t.metadata,{viewPlaneNormal:n}=e.metadata,i=je(r,n);if(!qs(1,Math.abs(i)))return!1;const{polyline:a}=t.data.contour,{polyline:s}=e.data.contour,c=je(r,a[0]),l=je(r,s[0]);return qs(c,l)}function fA(t,e,r){let n=-1;if(e.forEach((i,o)=>{n>=0||i.a==t.b&&(n=o)}),n>=0){const i=e[n];return e.splice(n,1),r.push(i.b),r[0]==i.b?{remainingLines:e,contourPoints:r,type:"CLOSED_PLANAR"}:fA(i,e,r)}return{remainingLines:e,contourPoints:r,type:"OPEN_PLANAR"}}function fS(t){if(t.length==0)return[];const e=[],r=t.shift();e.push(r.a),e.push(r.b);const n=fA(r,t,e);if(n.remainingLines.length==0)return[{type:n.type,contourPoints:n.contourPoints}];{const i=fS(n.remainingLines);return i.push({type:n.type,contourPoints:n.contourPoints}),i}}function dA(t){return fS(t)}const Lge={findContours:fS,findContoursFromReducedSet:dA};function hA(t,e=!1){const r=t.getPoints(),n=t.getLines(),i=new Array(r.getNumberOfPoints()).fill(0).map((c,l)=>r.getPoint(l).slice()),o=new Array(n.getNumberOfCells()).fill(0).map((c,l)=>{const f=n.getCell(l*3).slice();return{a:f[0],b:f[1]}});if(e)return{points:i,lines:o};const a=[];for(const[c,l]of i.entries()){const f=a.findIndex(u=>u[0]===l[0]&&u[1]===l[1]&&u[2]===l[2]);if(f>=0)o.map(u=>(u.a===c&&(u.a=f),u.b===c&&(u.b=f),u));else{const u=a.length;a.push(l),o.map(d=>(d.a===c&&(d.a=u),d.b===c&&(d.b=u),d))}}const s=o.filter(c=>c.a!==c.b);return{points:a,lines:s}}const Nge=(t,e)=>{const r=t[0],n=t[1];let i=!1;for(let o=0,a=e.length-1;on!=f>n&&r<(l-s)*(n-c)/(f-c)+s&&(i=!i)}return i};function Pge(t,e,r){const n=[];t.contourPoints.forEach(o=>{n.push([r[o][0],r[o][1]])});let i=0;return e.contourPoints.forEach(o=>{Nge([r[o][0],r[o][1]],n)||i++}),i===0}function Age(t,e,r=!0){const n=t.filter(s=>s.type!=="CLOSED_PLANAR"),i=t.filter(s=>s.type==="CLOSED_PLANAR"),o=[];let a=[];return i.forEach((s,c)=>{const l=[];i.forEach((f,u)=>{c!=u&&Pge(s,f,e)&&l.push(u)}),l.length>0?o.push({contour:s,holes:l}):a.push(c)}),r&&(o.forEach(s=>{s.contour.type="CLOSEDPLANAR_XOR",n.push(s.contour),s.holes.forEach(c=>{i[c].type="CLOSEDPLANAR_XOR",n.push(i[c]),a=a.filter(l=>l!==c)})}),a.forEach(s=>{n.push(i[s])})),n}const kge={processContourHoles:Age};class Vge{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.oriented=e,this.edgeMap=new Map}initialize(){this.edgeMap.clear()}computeEdgeKey(e,r){return this.oriented||e0&&arguments[0]!==void 0?arguments[0]:{};return new Vge(t.oriented)}var Uge={newInstance:Fge};const Bge=[[-1,-1,-1,-1,-1],[0,3,-1,-1,-1],[1,0,-1,-1,-1],[1,3,-1,-1,-1],[2,1,-1,-1,-1],[0,3,2,1,-1],[2,0,-1,-1,-1],[2,3,-1,-1,-1],[3,2,-1,-1,-1],[0,2,-1,-1,-1],[1,0,3,2,-1],[1,2,-1,-1,-1],[3,1,-1,-1,-1],[0,1,-1,-1,-1],[3,0,-1,-1,-1],[-1,-1,-1,-1,-1]],Gge=[[0,1],[1,3],[2,3],[0,2]];function Wge(t){return Bge[t]}function zge(t){return Gge[t]}var vE={getCase:Wge,getEdge:zge};const{vtkErrorMacro:yE,vtkDebugMacro:$ge}=W;function jge(t,e){function r(){let s=0,c=1;return e.slicingMode===1?(s=0,c=2):e.slicingMode===0&&(s=1,c=2),[s,c]}e.classHierarchy.push("vtkImageMarchingSquares"),t.getContourValues=()=>e.contourValues,t.setContourValues=s=>{e.contourValues=s,t.modified()};const n=[],i=[],o=[],a=Uge.newInstance();t.getPixelScalars=(s,c,l,f,u,d)=>{const[h,g,p]=s;n[0]=p*c[1]*c[0]+g*c[0]+h,n[1]=n[0]+f[u],n[2]=n[0]+f[d],n[3]=n[2]+f[u];for(let v=0;v<4;++v)i[v]=l[n[v]]},t.getPixelPoints=(s,c,l,f,u)=>{const d=s[f],h=s[u];o[0]=c[f]+d*l[f],o[1]=c[u]+h*l[u],o[2]=o[0]+l[f],o[3]=o[1],o[4]=o[0],o[5]=o[1]+l[u],o[6]=o[2],o[7]=o[5]},t.produceLines=(s,c,l,f,u,d,h,g,p,v,x)=>{var E;const m=c[e.slicingMode],y=[1,2,8,4],w=[];let C;t.getPixelScalars(c,l,d,p,v,x);let S=0;for(let D=0;D<4;D++)i[D]>=s&&(S|=y[D]);const T=vE.getCase(S);if(T[0]<0)return;t.getPixelPoints(c,f,u,v,x);const _=f[e.slicingMode]+m*u[e.slicingMode];for(let D=0;T[D]>=0;D+=2){g.push(2);for(let b=0;b<2;b++){const I=vE.getEdge(T[D+b]);if(C=void 0,e.mergePoints&&(C=(E=a.isInsertedEdge(n[I[0]],n[I[1]]))==null?void 0:E.value),C===void 0){const R=(s-i[I[0]])/(i[I[1]]-i[I[0]]),M=o.slice(I[0]*2,(I[0]+1)*2),L=o.slice(I[1]*2,(I[1]+1)*2);w[v]=M[0]+R*(L[0]-M[0]),w[x]=M[1]+R*(L[1]-M[1]),w[e.slicingMode]=_,C=h.length/3,h.push(w[0],w[1],w[2]),e.mergePoints&&a.insertEdge(n[I[0]],n[I[1]],C)}g.push(C)}}},t.requestData=(s,c)=>{const l=s[0];if(!l){yE("Invalid or missing input");return}if(e.slicingMode==null||e.slicingMode<0||e.slicingMode>2){yE("Invalid or missing slicing mode");return}console.time("msquares");const f=l.getOrigin(),u=l.getSpacing(),d=l.getDimensions(),h=l.getExtent(),g=l.computeIncrements(h),p=l.getPointData().getScalars().getData(),[v,x]=r(),m=[],y=[];let w=Math.round(e.slice);w>=d[e.slicingMode]&&(w=0);const C=[0,0,0];C[e.slicingMode]=w;for(let T=0;T2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Hge,r),W.obj(t,e),W.algo(t,e,1,1),W.setGet(t,e,["slicingMode","slice","mergePoints"]),W.algo(t,e,1,1),jge(t,e)}const Kge=W.newInstance(gA,"vtkImageMarchingSquares");var qge={newInstance:Kge,extend:gA};const{Labelmap:Xge}=Ge;function pA({segmentations:t}){var u;const{representationData:e,segments:r=[0,1]}=t,{volumeId:n}=e[Xge],i=Te.getVolume(n);if(!i){console.warn(`No volume found for ${n}`);return}const o=i.dimensions[2],a=i.voxelManager,s=i.dimensions[0]*i.dimensions[1];for(let d=0;d{const c=Jge(a),l=Zge(o[s],r);return{NumberOfContourPoints:c.length/3,ContourImageSequence:l,ContourGeometricType:"CLOSED_PLANAR",ContourData:c}})}}mA.toolName="RectangleROIStartEndThreshold";function Jge(t){return[...t[0],...t[1],...t[3],...t[2]].flat().map(i=>i.toFixed(2))}function Zge(t,e){const r=e.get("sopCommonModule",t);return{ReferencedSOPClassUID:r.sopClassUID,ReferencedSOPInstanceUID:r.sopInstanceUID}}function Qge(t){if(!(t!=null&&t.data))throw new Error("Tool data is empty");if(!t.metadata||t.metadata.referencedImageId)throw new Error("Tool data is not associated with any imageId")}const od=class od{constructor(){}static convert(e,r,n){Qge(e);const{toolName:i}=e.metadata,o=od.TOOL_NAMES[i];if(!o)throw new Error(`Unknown tool type: ${i}, cannot convert to RTSSReport`);const a=o.getContourSequence(e,n),s=[Math.floor(Math.random()*255),Math.floor(Math.random()*255),Math.floor(Math.random()*255)];return{ReferencedROINumber:r+1,ROIDisplayColor:s,ContourSequence:a}}static register(e){od.TOOL_NAMES[e.toolName]=e}};od.TOOL_NAMES={};let mm=od;mm.register(mA);function epe(t,e){na.acceptAutoGenerated(t,e)}const{isEqual:tpe}=Jt;function L3(t,e){const{polyline:r}=t.data.contour,{points:n}=t.data.handles,{length:i}=n;if(e===i)return r.length;if(e<0&&(e=(e+i)%i),e===0)return 0;const o=n[e],a=r.findIndex(c=>tpe(o,c));if(a!==-1)return a;let s=1/0;return r.reduce((c,l,f)=>{const u=Q7(l,o);return u{const C=({value:R})=>{d=d+1,R>=h.lower&&R<=h.upper&&(u=u+1)},{imageData:S,dimensions:T,lower:_,upper:E}=m,D=AC(S,T,y,w);d=0,u=0,h={lower:_,upper:E};let b=!1;const{voxelManager:I}=S.get("voxelManager");return I.forEach(C,{imageData:S,boundsIJK:D}),a===0?b=u>0:a==1&&(b=u===d),b},p=(m,y)=>{const{imageData:w,lower:C,upper:S}=m,T=w.get("voxelManager").voxelManager,_=T.toIndex(y),E=T.getAtIndex(_);return!(E<=C||E>=S)},v=({index:m,pointIJK:y,pointLPS:w})=>{let C=f.length>0;for(let S=0;S{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{points:[[...s],[...s],[...s],[...s]],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=c.worldToCanvas(f[0]),d=c.worldToCanvas(f[3]),h=this._getRectangleImageCoordinates([u,d]),g=[o[0],o[1]],{left:p,top:v,width:x,height:m}=h;return ZC([p,v,x,m],g)<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;o.worldPosition?l=!0:f=c.handles.points.findIndex(d=>d===o);const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),Ze(s),ne(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a))},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world,{points:h}=f.handles;h.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=ne(o),{worldToCanvas:h,canvasToWorld:g}=d.viewport,p=u.world,{points:v}=f.handles;v[c]=[...p];let x,m,y,w,C,S,T,_;switch(c){case 0:case 3:x=h(v[0]),w=h(v[3]),m=[w[0],x[1]],y=[x[0],w[1]],S=g(m),T=g(y),v[1]=S,v[2]=T;break;case 1:case 2:m=h(v[1]),y=h(v[2]),x=[y[0],m[1]],w=[m[0],y[1]],C=g(x),_=g(w),v[0]=C,v[3]=_;break}a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(V));u.annotationUID=g;const{color:y,lineWidth:w,lineDash:C}=this.getAnnotationStyle({annotation:h,styleSpecifier:u}),{viewPlaneNormal:S,viewUp:T}=a.getCamera();if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(h,S,T,f,n);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,S,T,f,n),a instanceof sn)){const{referencedImageId:V}=h.metadata;for(const $ in p.cachedStats)$.startsWith("imageId")&&f.getStackViewports().find(te=>{const Q=Pn(V),re=te.hasImageURI(Q),de=Pn(te.getCurrentImageId());return re&&de!==Q})&&delete p.cachedStats[$]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let _;if(!Br(g))continue;!rr(g)&&!this.editData&&x!==null&&(_=[m[x]]),_&&cn(i,g,"0",_,{color:y});const E=`${g}-rect`;nS(i,g,"0",m,{color:y,lineDash:C,lineWidth:w},E),o=!0;const b=this.getLinkedTextBoxStyle(u,h);if(!b.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const I=this.configuration.getTextLines(p,l);if(!I||I.length===0)continue;if(!p.handles.textBox.hasMoved){const V=$i(m);p.handles.textBox.worldPosition=a.canvasToWorld(V)}const R=a.worldToCanvas(p.handles.textBox.worldPosition),L=ti(i,g,"1",I,R,m,{},b),{x:A,y:G,width:P,height:N}=L;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([A,G]),topRight:a.canvasToWorld([A+P,G]),bottomLeft:a.canvasToWorld([A,G+N]),bottomRight:a.canvasToWorld([A+P,G+N])}}return o},this._getRectangleImageCoordinates=n=>{const[i,o]=n;return{left:Math.min(i[0],o[0]),top:Math.min(i[1],o[1]),width:Math.abs(i[0]-o[0]),height:Math.abs(i[1]-o[1])}},this._calculateCachedStats=(n,i,o,a,s)=>{var p,v,x;const{data:c}=n,{viewport:l}=s,{element:f}=l,u=c.handles.points[0],d=c.handles.points[3],{cachedStats:h}=c,g=Object.keys(h);for(let m=0;mOn(n,o)&&On(i,o),this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}}function rpe(t,e){const r=t.cachedStats[e],{area:n,mean:i,max:o,stdDev:a,areaUnit:s,modalityUnit:c}=r;if(i===void 0)return;const l=[];return l.push(`Area: ${xt(n)} ${s}`),l.push(`Mean: ${xt(i)} ${c}`),l.push(`Max: ${xt(o)} ${c}`),l.push(`Std Dev: ${xt(a)} ${c}`),l}ec.toolName="RectangleROI";const{transformWorldToIndex:cf}=Jt;class dS extends ec{constructor(e={},r={configuration:{storePointData:!1,numSlicesToPropagate:10,computePointsInsideVolume:!1,getTextLines:ipe,statsCalculator:Xa,showTextBox:!1}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u;let g,p,v;if(l instanceof un)throw new Error("Stack Viewport Not implemented");{const T=this.getTargetId(l);v=fa(T),p=Te.getVolume(v),g=qa(p,s,d)}const x=Ka(p,d),m=this._getStartCoordinate(s,d),y=this._getEndCoordinate(s,x,d),w=l.getFrameOfReferenceUID(),C={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...d],enabledElement:c,viewUp:[...h],FrameOfReferenceUID:w,referencedImageId:g,toolName:this.getToolName(),volumeId:v,spacingInNormal:x},data:{label:"",startCoordinate:m,endCoordinate:y,cachedStats:{pointsInVolume:[],projectionPoints:[],projectionPointsImageIds:[g],statistics:[]},handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},labelmapUID:null}};this._computeProjectionPoints(C,p),Ut(C,a);const S=He(a,this.getToolName());return this.editData={annotation:C,viewportIdsToRender:S,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(S),C},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(c&&!l)return;f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o);const u=ne(o);this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const d=this.getTargetId(u.viewport),h=Te.getVolume(d.split(/volumeId:|\?/)[1]);this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(a,d,h,u),pe(s),c&&tn(a)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;let s=_t(this.getToolName(),a.element);if(!(s!=null&&s.length))return o;s=E2(s,a.getCamera());const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let l=0;la.worldToCanvas(G));c.annotationUID=u;const m=this.getStyle("lineWidth",c,f),y=this.getStyle("lineDash",c,f),w=this.getStyle("color",c,f),C=a.getCamera().focalPoint,S=a.getCamera().viewPlaneNormal;let T=h,_=g;Array.isArray(h)&&(T=this._getCoordinateForViewplaneNormal(T,S),d.startCoordinate=T,d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(S)]=T,d.startCoordinate=T,d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(S)]=T),Array.isArray(g)&&(_=this._getCoordinateForViewplaneNormal(_,S),d.endCoordinate=_,d.endCoordinate=_);const E=Ms(T),D=Ms(_),b=this._getCoordinateForViewplaneNormal(C,S),I=Ms(b);if(IMath.max(E,D))continue;f.invalidated&&this._throttledCalculateCachedStats(f,n);let R=!1;if((I===E||I===D)&&(R=!0),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let M;if(!Br(u))continue;!rr(u)&&!this.editData&&v!==null&&R&&(M=[x[v]]),M&&cn(i,u,"0",M,{color:w});let L=y;if(R||(L=2),Rh(i,u,"0",x[0],x[3],{color:w,lineDash:L,lineWidth:m}),o=!0,this.configuration.showTextBox&&this.configuration.calculatePointsInsideVolume){const G=this.getLinkedTextBoxStyle(c,f);if(!G.visibility){d.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const P=this.configuration.getTextLines(d);if(!P||P.length===0)continue;if(!d.handles.textBox.hasMoved){const re=$i(x);d.handles.textBox.worldPosition=a.canvasToWorld(re)}const N=a.worldToCanvas(d.handles.textBox.worldPosition),$=ti(i,u,"1",P,N,x,{},G),{x:j,y:Y,width:te,height:Q}=$;d.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([j,Y]),topRight:a.canvasToWorld([j+te,Y]),bottomLeft:a.canvasToWorld([j,Y+Q]),bottomRight:a.canvasToWorld([j+te,Y+Q])}}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStatsTool,100,{trailing:!0})}_computeProjectionPoints(e,r){const{data:n,metadata:i}=e,{viewPlaneNormal:o,spacingInNormal:a}=i,{imageData:s}=r,{startCoordinate:c,endCoordinate:l}=n,{points:f}=n.handles,u=cf(s,f[0]),d=cf(s,f[0]),h=xe();s.indexToWorldVec3(u,h);const g=xe();s.indexToWorldVec3(d,g),this._getIndexOfCoordinatesForViewplaneNormal(o)==2?(h[2]=c,g[2]=l):this._getIndexOfCoordinatesForViewplaneNormal(o)==0?(h[0]=c,g[0]=l):this._getIndexOfCoordinatesForViewplaneNormal(o)==1&&(h[1]=c,g[1]=l);const p=Cr(h,g),v=[];for(let x=0;x{const y=xe();return Vt(y,m,o,x),Array.from(y)}));n.cachedStats.projectionPoints=v}_computePointsInsideVolume(e,r,n,i){var S,T,_;const{data:o,metadata:a}=e,{viewPlaneNormal:s,viewUp:c}=a,{viewport:l}=i,f=o.cachedStats.projectionPoints,u=[[]],d=this.getTargetImageData(r),h=o.handles.points[0],g=o.handles.points[3],{worldWidth:p,worldHeight:v}=T2(s,c,h,g),x=Bi(d,o.habdles),m=Math.abs(p*v)/(x.scale*x.scale),y={isPreScaled:is(l,r),isSuvScaled:this.isSuvScaled(l,r,e.metadata.referencedImageId)},w=Dl(a.Modality,e.metadata.referencedImageId,y);for(let E=0;E{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getTargetId(l);let p,v;if(l instanceof un)p=g.split("imageId:")[1];else{v=fa(g);const w=Te.getVolume(v);p=qa(w,s,d)}const x=l.getFrameOfReferenceUID(),m={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...d],enabledElement:c,viewUp:[...h],FrameOfReferenceUID:x,referencedImageId:p,toolName:this.getToolName(),volumeId:v},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},segmentationId:null}};Ut(m,a);const y=He(a,this.getToolName());return this.editData={annotation:m,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(y),m},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(S));l.annotationUID=d;const x=this.getStyle("lineWidth",l,u),m=this.getStyle("lineDash",l,u),y=this.getStyle("color",l,u);if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;dn(u,s);let w;if(!Br(d))continue;!rr(d)&&!this.editData&&p!==null&&(w=[v[p]]),w&&cn(i,d,"0",w,{color:y}),Rh(i,d,"0",v[0],v[3],{color:y,lineDash:m,lineWidth:x}),o=!0}return o}}}hS.toolName="RectangleROIThreshold";function yA(t,e,r={}){const n=[];return t.forEach(o=>{var h,g;const{data:a}=o,{points:s}=a.handles,{imageData:c,dimensions:l}=e;let f=s;if((h=a.cachedStats)!=null&&h.projectionPoints){const{projectionPoints:p}=a.cachedStats;f=[].concat(...p)}const u=f.map(p=>Gn(c,p));let d=Zs(u,l);r.numSlicesToProject&&!((g=a.cachedStats)!=null&&g.projectionPoints)&&(d=lA(d,r.numSlicesToProject)),n.push(d)}),n.length===1?n[0]:n.reduce((o,a)=>({iMin:Math.min(o.iMin,a.iMin),jMin:Math.min(o.jMin,a.jMin),kMin:Math.min(o.kMin,a.kMin),iMax:Math.max(o.iMax,a.iMax),jMax:Math.max(o.jMax,a.jMax),kMax:Math.max(o.kMax,a.kMax)}),{iMin:1/0,jMin:1/0,kMin:1/0,iMax:-1/0,jMax:-1/0,kMax:-1/0})}function ope(t,e,r,n){const i=t.map(s=>Mn(s));ape(i);let o;for(let s=0;s{if(!mt(l,t[0].dimensions)||!mt(c,t[0].direction)||!mt(u,t[0].spacing)||!mt(f,t[0].origin))throw new Error("labelmaps must have the same size and shape")});const n=t[0],i=n.voxelManager.getConstructor(),o=new i(n.voxelManager.getScalarDataLength());t.forEach(c=>{const l=c.voxelManager,f=l.getScalarDataLength();for(let u=0;u0;)h(l.pop());return{flooded:f,boundaries:T()};function h(_){const E=_.currentArgs,D=_.previousArgs;g(E)||(p(E),v(E)?(x(E),y(E)):m(D))}function g(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));return u.has(I)}function p(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));u.add(I)}function v(_){const E=w(_);return o?o(E,s):E===s}function x(_){f.push(_),n&&n(..._)}function m(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));d.set(I,_),i&&i(..._)}function y(_){for(let E=0;E{const{strategySpecificConfiguration:e}=t;if(!e)return;const{centerSegmentIndex:r}=e;r&&(t.segmentIndex=r.segmentIndex)},[it.OnInteractionStart]:t=>{const{segmentIndex:e,previewSegmentIndex:r,segmentationVoxelManager:n,centerIJK:i,strategySpecificConfiguration:o,imageVoxelManager:a,segmentationImageData:s,preview:c}=t;if(!(o!=null&&o.useCenterSegmentIndex))return;delete o.centerSegmentIndex;let l=!1,f=!1;const u=({value:h})=>{l||(l=h===e),f||(f=h===r)};if(a.forEach(u,{imageData:s,isInObject:t.isInObject}),!l&&!f)return;let d=n.getAtIJKPoint(i);if(d===r)if(c)d=c.segmentIndex;else return;else f&&(d=null);t.segmentIndex=d,o.centerSegmentIndex={segmentIndex:d}}},dpe={[it.Initialize]:t=>{const{operationName:e,centerIJK:r,strategySpecificConfiguration:n,segmentationVoxelManager:i,imageVoxelManager:o,segmentIndex:a}=t,{THRESHOLD:s}=n;if(!(s!=null&&s.isDynamic)||!r||!a||e===it.RejectPreview||e===it.OnInteractionEnd)return;const c=i.getBoundsIJK(),{threshold:l,dynamicRadius:f=0}=s,u=l?0:f,d=c.map((p,v)=>{const[x,m]=p;return[Math.max(x,r[v]-u),Math.min(m,r[v]+u)]}),h=l||[1/0,-1/0],g=({value:p})=>{const v=Array.isArray(p)?Od(p):p;h[0]=Math.min(v,h[0]),h[1]=Math.max(v,h[1])};o.forEach(g,{boundsIJK:d}),t.strategySpecificConfiguration.THRESHOLD.threshold=h},[it.OnInteractionStart]:t=>{var n;const{strategySpecificConfiguration:e,preview:r}=t;!((n=e==null?void 0:e.THRESHOLD)!=null&&n.isDynamic)&&!r||(e.THRESHOLD.threshold=null)},[it.ComputeInnerCircleRadius]:t=>{const{configuration:e,viewport:r}=t,{THRESHOLD:{dynamicRadius:n=0}={}}=e.strategySpecificConfiguration||{};if(n===0)return;const i=r.getImageData();if(!i)return;const{spacing:o}=i,a=[r.element.clientWidth/2,r.element.clientHeight/2],s=n*o[0],l=r.canvasToWorld(a).map(g=>g+s),f=r.worldToCanvas(l),u=Math.abs(a[0]-f[0]),{strategySpecificConfiguration:d,activeStrategy:h}=e;d[h]||(d[h]={}),d[h].dynamicRadiusInCanvas=u}},hpe={[it.Initialize]:t=>{t.segmentIndex=0}},gpe={[it.OnInteractionEnd]:t=>{const{previewVoxelManager:e,segmentationVoxelManager:r,strategySpecificConfiguration:n,previewSegmentIndex:i,segmentIndex:o}=t;if(!n.THRESHOLD||o===null)return;const a=e.getPoints();if(!(a!=null&&a.length)||i===void 0)return;const s=e.getBoundsIJK().map((v,x)=>[Math.min(v[0],...a.map(m=>m[x])),Math.max(v[1],...a.map(m=>m[x]))]);if(s.find(v=>v[0]<0||v[1]>65535))return;const c=new Set,l=(v,x,m)=>{if(vs[0][1]||xs[1][1]||ms[2][1])return-1;const y=r.toIndex([v,x,m]);if(c.has(y))return-2;const w=r.getAtIndex(y),C=w===i||w===o?1:0;return C||r.addPoint(y),C};let f=0;const u=(v,x,m)=>{const y=r.toIndex([v,x,m]);c.has(y)||(e.setAtIJK(v,x,m,i),c.add(y),f++)};a.forEach(v=>{l(...v)===1&&vm(l,v,{onFlood:u,diagonals:!0})});let d=0,h=0;const g=({index:v,pointIJK:x,value:m})=>{const y=r.getAtIndex(v);if(c.has(v)){h++;const w=m===o?o:i;e.setAtIJKPoint(x,w)}else if(y===i){d++;const w=m??0;e.setAtIJKPoint(x,w)}};e.forEach(g,{}),f-h!==0&&console.warn("There were flooded=",f,"cleared=",d,"preview count=",h,"not handled",f-h);const p=new Set(r.points||[]);c.clear();for(const v of p.keys()){if(c.has(v))continue;let x=!0;const m=new Set,y=(C,S,T)=>{const _=e.toIndex([C,S,T]);c.add(_),(s[0][0]!==s[0][1]&&(C===s[0][0]||C===s[0][1])||s[1][0]!==s[1][1]&&(S===s[1][0]||S===s[1][1])||s[2][0]!==s[2][1]&&(T===s[2][0]||T===s[2][1]))&&(x=!1),x&&m.add(_)},w=e.toIJK(v);if(l(...w)===0&&(vm(l,w,{onFlood:y,diagonals:!1}),x))for(const C of m)e.setAtIndex(C,i)}Ei(t.segmentationId,e.getArrayOfModifiedSlices())}};function ppe(t,e,r,n,i=.4){return[Math.round(t+(255-t)*i),Math.round(e+(255-e)*i),Math.round(r+(255-r)*i),n]}const mpe={[it.Preview]:function(t){var o,a;const{previewColors:e,strategySpecificConfiguration:r,enabledElement:n}=t;if(!e||!r)return;t.preview&&delete t.preview,delete r.centerSegmentIndex,(o=this.onInteractionStart)==null||o.call(this,n,t);const i=this.fill(n,t);return i&&(i.isPreviewFromHover=!0,t.preview=i,(a=this.onInteractionEnd)==null||a.call(this,n,t)),i},[it.Initialize]:t=>{const{segmentIndex:e,previewSegmentIndex:r,previewColors:n,preview:i}=t;if(n===void 0||(i&&(i.previewVoxelManager.sourceVoxelManager=t.segmentationVoxelManager,t.previewVoxelManager=i.previewVoxelManager),e===null||!r))return;const o=n==null?void 0:n[e],a=es(t.viewport.id,t.segmentationId,e);if(!o&&!a)return;const s=o||ppe(...a);sN(t.viewport.id,t.segmentationId,r,s)},[it.AcceptPreview]:t=>{const{segmentationVoxelManager:e,previewVoxelManager:r,previewSegmentIndex:n,preview:i}=t||{};if(n===void 0)return;const o=(i==null?void 0:i.segmentIndex)??t.segmentIndex,a=r;if(!a||a.modifiedSlices.size===0)return;const s=({index:c})=>{e.getAtIndex(c)===n&&e.setAtIndex(c,o)};a.forEach(s,{}),Ei(t.segmentationId,a.getArrayOfModifiedSlices()),a.clear()},[it.RejectPreview]:t=>{const{previewVoxelManager:e,segmentationVoxelManager:r}=t;if(e.modifiedSlices.size===0)return;const n=({index:i,value:o})=>{r.setAtIndex(i,o)};e.forEach(n),Ei(t.segmentationId,e.getArrayOfModifiedSlices()),e.clear()}},vpe={[it.Fill]:t=>{var f;const{segmentsLocked:e,segmentationImageData:r,segmentationVoxelManager:n,previewVoxelManager:i,brushStrategy:o,centerIJK:a}=t,s=(f=o.createIsInThreshold)==null?void 0:f.call(o,t),{setValue:c}=o,l=s?u=>{const{value:d,index:h}=u;e.includes(d)||!s(h)||c(t,u)}:u=>c(t,u);n.forEach(l,{imageData:r,isInObject:t.isInObject,boundsIJK:t.isInObjectBoundsIJK}),i.addPoint(a)}},ype={[it.INTERNAL_setValue]:(t,{value:e,index:r})=>{const{segmentsLocked:n,segmentIndex:i,previewVoxelManager:o,previewSegmentIndex:a,segmentationVoxelManager:s}=t,c=s.getAtIndex(r);if(i===null){const f=o.getAtIndex(r);f!==void 0&&o.setAtIndex(r,f);return}if(c===i||n.includes(e))return;if(c===a)if(o.getAtIndex(r)===void 0)s.setAtIndex(r,i);else return;const l=a??i;o.setAtIndex(r,l)}},xpe={[it.CreateIsInThreshold]:t=>{const{imageVoxelManager:e,strategySpecificConfiguration:r,segmentIndex:n}=t;if(!(!r||!n))return i=>{const{THRESHOLD:o,THRESHOLD_INSIDE_CIRCLE:a}=r,s=e.getAtIndex(i),c=Array.isArray(s)?ui(s):s,{threshold:l}=o||a||{};return l!=null&&l.length?l[0]<=c&&c<=l[1]:!0}}},tr={determineSegmentIndex:fpe,dynamicThreshold:dpe,erase:hpe,islandRemoval:gpe,preview:mpe,regionFill:vpe,setValue:ype,threshold:xpe};function xA({operationData:t,viewport:e}){var s;let r,n,i,o,a;if(e instanceof Rn){const{volumeId:c,referencedVolumeId:l}=t;if(!c){const u=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"No volume id found for the segmentation"},cancelable:!0});return Ce.dispatchEvent(u),null}const f=Te.getVolume(c);if(!f)return;a=f.voxelManager,l&&(o=Te.getVolume(l).voxelManager),{imageData:r}=f}else{const{segmentationId:c}=t,l=Gi(e.id,c);if(!l)return;const f=e.getCurrentImageId();if(!f)return;const u=Ba(e.id,c);if(!u)return;const d=Te.getImage(l);r=u.actor.getMapper().getInputData(),a=d.voxelManager;const h=t.imageId,g=Te.getImage(h);if(!g)return;n=(s=g.getPixelData)==null?void 0:s.call(g);const p=Te.getImage(f),v=p?null:e.getImageData();i=(p==null?void 0:p.getPixelData())||v.getScalarData(),o=p==null?void 0:p.voxelManager}return{segmentationImageData:r,segmentationScalarData:n,imageScalarData:i,segmentationVoxelManager:a,imageVoxelManager:o}}const{VoxelManager:wpe}=Jt,Pc=class Pc{constructor(e,...r){this._initialize=[],this._fill=[],this._onInteractionStart=[],this.fill=(n,i)=>{const o=this.initialize(n,i,it.Fill);if(!o)return;const{strategySpecificConfiguration:a={},centerIJK:s}=o;if(mt(s,a.centerIJK))return i.preview;a.centerIJK=s,this._fill.forEach(u=>u(o));const{segmentationVoxelManager:c,previewVoxelManager:l,previewSegmentIndex:f}=o;return Ei(o.segmentationId,c.getArrayOfModifiedSlices()),!f||!l.modifiedSlices.size?(c.resetModifiedSlices(),null):o.preview||o},this.onInteractionStart=(n,i)=>{const{preview:o}=i;if(o!=null&&o.isPreviewFromHover){o.isPreviewFromHover=!1;return}const a=this.initialize(n,i);a&&this._onInteractionStart.forEach(s=>s.call(this,a))},this.configurationName=e,this.compositions=r,r.forEach(n=>{const i=typeof n=="function"?n():n;if(i)for(const o in i){if(!Pc.childFunctions[o])throw new Error(`Didn't find ${o} as a brush strategy`);Pc.childFunctions[o](this,i[o])}}),this.strategyFunction=(n,i)=>this.fill(n,i);for(const n of Object.keys(Pc.childFunctions))this.strategyFunction[n]=this[n]}initialize(e,r,n){var p,v,x;const{viewport:i}=e,o=xA({operationData:r,viewport:i});if(!o)return console.warn("No data found for BrushStrategy"),r.preview;const{imageVoxelManager:a,segmentationVoxelManager:s,segmentationImageData:c}=o,l=((p=r.override)==null?void 0:p.voxelManager)||s,f=((v=r.override)==null?void 0:v.imageData)||c,u=((x=r.preview)==null?void 0:x.previewVoxelManager)||wpe.createHistoryVoxelManager({sourceVoxelManager:l}),h=!!r.previewColors?255:void 0,g={operationName:n,previewSegmentIndex:h,...r,enabledElement:e,imageVoxelManager:a,segmentationVoxelManager:l,segmentationImageData:f,previewVoxelManager:u,viewport:i,centerWorld:null,isInObject:null,isInObjectBoundsIJK:null,brushStrategy:this};return this._initialize.forEach(m=>m(g)),g}};Pc.COMPOSITIONS=tr,Pc.childFunctions={[it.OnInteractionStart]:Cc(it.OnInteractionStart,it.Initialize),[it.OnInteractionEnd]:Cc(it.OnInteractionEnd,it.Initialize),[it.Fill]:Cc(it.Fill),[it.Initialize]:Cc(it.Initialize),[it.CreateIsInThreshold]:ly(it.CreateIsInThreshold),[it.AcceptPreview]:Cc(it.AcceptPreview,it.Initialize),[it.RejectPreview]:Cc(it.RejectPreview,it.Initialize),[it.INTERNAL_setValue]:ly(it.INTERNAL_setValue),[it.Preview]:ly(it.Preview,!1),[it.ComputeInnerCircleRadius]:Cc(it.ComputeInnerCircleRadius),compositions:null};let tc=Pc;function Cc(t,e){const r=`_${t}`;return(n,i)=>{n[r]||(n[r]=[]),n[r].push(i),n[t]||(n[t]=e?(o,a)=>{const s=n[e](o,a,t);n[r].forEach(c=>c.call(n,s))}:o=>{n[r].forEach(a=>a.call(n,o))})}}function ly(t,e=!0){return(r,n)=>{if(r[t])throw new Error(`The singleton method ${t} already exists`);r[t]=e?n:(i,o)=>(o.enabledElement=i,n.call(r,o))}}function wA(t,e){const{center:r,radius:n}=t,i=t.radius2||n*n;return(e[0]-r[0])*(e[0]-r[0])+(e[1]-r[1])*(e[1]-r[1])+(e[2]-r[2])*(e[2]-r[2])<=i}const{transformWorldToIndex:wE,isEqual:uy}=Jt,CA={[it.Initialize]:t=>{const{points:e,viewport:r,segmentationImageData:n}=t;if(!e)return;const i=Ye(0,0,0);e.forEach(d=>{xn(i,i,d)}),cr(i,i,1/e.length),t.centerWorld=i,t.centerIJK=wE(n,i);const o=e.map(d=>r.worldToCanvas(d)),[a,s]=qf(o),c=r.canvasToWorld(a),l=r.canvasToWorld(s),f=e.map(d=>wE(n,d)),u=Zs(f,n.getDimensions());t.isInObject=SA({topLeftWorld:c,bottomRightWorld:l,center:i}),t.isInObjectBoundsIJK=u}};function SA(t){const{topLeftWorld:e,bottomRightWorld:r,center:n}=t,i=Math.abs(e[0]-r[0])/2,o=Math.abs(e[1]-r[1])/2,a=Math.abs(e[2]-r[2])/2,s=Math.max(i,o,a);if(uy(i,s)&&uy(o,s)&&uy(a,s)){const f={center:n,radius:s,radius2:s*s};return u=>wA(f,u)}const c={center:n,xRadius:i,yRadius:o,zRadius:a},{precalculated:l}=KC(c,{});return l}const TA=new tc("Circle",tr.regionFill,tr.setValue,CA,tr.determineSegmentIndex,tr.preview),Cpe=new tc("CircleThreshold",tr.regionFill,tr.setValue,CA,tr.determineSegmentIndex,tr.dynamicThreshold,tr.threshold,tr.preview,tr.islandRemoval),_A=TA.strategyFunction,Spe=Cpe.strategyFunction,{transformWorldToIndex:Tpe}=Jt,_pe={[it.Initialize]:t=>{const{points:e,viewport:r,segmentationImageData:n}=t;if(!e)return;const i=Ye(0,0,0);e.forEach(c=>{xn(i,i,c)}),cr(i,i,1/e.length),t.centerWorld=i,t.centerIJK=Tpe(n,i);const{boundsIJK:o,topLeftWorld:a,bottomRightWorld:s}=uA(e.slice(0,2),n,r);t.isInObjectBoundsIJK=o,t.isInObject=SA({topLeftWorld:a,bottomRightWorld:s,center:i})}},gS=new tc("Sphere",tr.regionFill,tr.setValue,_pe,tr.determineSegmentIndex,tr.preview),EA=gS.strategyFunction,Epe=new tc("SphereThreshold",...gS.compositions,tr.dynamicThreshold,tr.threshold,tr.islandRemoval),Dpe=Epe.strategyFunction,bpe=new tc("EraseSphere",tr.erase,...gS.compositions),DA=bpe.strategyFunction,Ipe=new tc("EraseCircle",tr.erase,...TA.compositions),bA=Ipe.strategyFunction;class pS extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:_A,ERASE_INSIDE_CIRCLE:bA,FILL_INSIDE_SPHERE:EA,ERASE_INSIDE_SPHERE:DA,THRESHOLD_INSIDE_CIRCLE:Spe,THRESHOLD_INSIDE_SPHERE:Dpe},strategySpecificConfiguration:{THRESHOLD:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",thresholdVolumeId:null,brushSize:25,preview:{enabled:!1,previewColors:{},previewTimeMs:250,previewMoveDistance:8,dragMoveDistance:4,dragTimeMs:500},actions:{[it.AcceptPreview]:{method:it.AcceptPreview,bindings:[{key:"Enter"}]},[it.RejectPreview]:{method:it.RejectPreview,bindings:[{key:"Escape"}]}}}}){super(e,r),this._previewData={preview:null,element:null,timerStart:0,timer:null,startPoint:[NaN,NaN],isDrag:!1},this.onSetToolPassive=n=>{this.disableCursor()},this.onSetToolEnabled=()=>{this.disableCursor()},this.onSetToolDisabled=n=>{this.disableCursor()},this.preMouseDownCallback=n=>{const i=n.detail,{element:o}=i,a=ne(o);this._editData=this.createEditData(o),this._activateDraw(o),Ze(o),n.preventDefault(),this._previewData.isDrag=!1,this._previewData.timerStart=Date.now();const s=this._hoverData||this.createHoverData(o);pe(s.viewportIdsToRender);const c=this.getOperationData(o);return this.applyActiveStrategyCallback(a,c,it.OnInteractionStart),!0},this.mouseMoveCallback=n=>{if(this.mode===Ft.Active){if(this.updateCursor(n),!this.configuration.preview.enabled)return;const{previewTimeMs:i,previewMoveDistance:o,dragMoveDistance:a}=this.configuration.preview,{currentPoints:s,element:c}=n.detail,{canvas:l}=s,{preview:f,startPoint:u,timer:d,timerStart:h,isDrag:g}=this._previewData,p=In(l,u),v=Date.now()-h;if((p>o||v>i&&p>a)&&(d&&(window.clearTimeout(d),this._previewData.timer=null),f&&!g&&this.rejectPreview(c)),!this._previewData.timer){const x=window.setTimeout(this.previewCallback,250);Object.assign(this._previewData,{timerStart:Date.now(),timer:x,startPoint:l,element:c})}}},this.previewCallback=()=>{this._previewData.timer=null,!this._previewData.preview&&(this._previewData.preview=this.applyActiveStrategyCallback(ne(this._previewData.element),this.getOperationData(this._previewData.element),it.Preview))},this._dragCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=ne(o);this.updateCursor(n);const{viewportIdsToRender:c}=this._hoverData;pe(c);const l=In(a.canvas,this._previewData.startPoint),{dragTimeMs:f,dragMoveDistance:u}=this.configuration.preview;!this._previewData.isDrag&&this._previewData.preview&&Date.now()-this._previewData.timerStart{const i=n.detail,{element:o}=i,a=ne(o),s=this.getOperationData(o);!this._previewData.preview&&!this._previewData.isDrag&&this.applyActiveStrategy(a,s),this._deactivateDraw(o),lt(o),this.updateCursor(n),this._editData=null,this.applyActiveStrategyCallback(a,s,it.OnInteractionEnd),this._previewData.isDrag||this.acceptPreview(o)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback)}}disableCursor(){this._hoverData=void 0,this.rejectPreview()}createEditData(e){var c,l;const r=ne(e),{viewport:n}=r,i=Hd(n.id);if(!i){const f=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"No active segmentation detected, create a segmentation representation before using the brush tool"},cancelable:!0});return Ce.dispatchEvent(f),null}const{segmentationId:o}=i,a=El(o),{representationData:s}=Ct(o);if(n instanceof Rn){const{volumeId:f}=s[Ge.Labelmap],u=n.getActors();if(n instanceof un){const v=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"Cannot perform brush operation on the selected viewport"},cancelable:!0});return Ce.dispatchEvent(v),null}const h=u.map(v=>Te.getVolume(v.referencedId)),g=Te.getVolume(f),p=((c=h.find(v=>mt(v.dimensions,g.dimensions)))==null?void 0:c.volumeId)||((l=h[0])==null?void 0:l.volumeId);return{volumeId:f,referencedVolumeId:this.configuration.thresholdVolumeId??p,segmentsLocked:a}}else{const f=Gi(n.id,o);if(!f)return;if(this.configuration.activeStrategy.includes("SPHERE")){const u=n.getImageIds();if(!uR(u))throw new Error("Volume is not reconstructable for sphere manipulation");const h=`${o}_${n.id}`,g=Te.getVolume(h);if(g)return{imageId:f,segmentsLocked:a,override:{voxelManager:g.voxelManager,imageData:g.imageData}};{const p=xP(n.id,o);if(!p||p.length===1)return{imageId:f,segmentsLocked:a};const v=PM(h,p);return{imageId:f,segmentsLocked:a,override:{voxelManager:v.voxelManager,imageData:v.imageData}}}}else return{imageId:f,segmentsLocked:a}}}createHoverData(e,r){const n=ne(e),{viewport:i}=n,o=i.getCamera(),{viewPlaneNormal:a,viewUp:s}=o,c=[i.id],{segmentIndex:l,segmentationId:f,segmentColor:u}=this.getActiveSegmentationData(i)||{};return{brushCursor:{metadata:{viewPlaneNormal:[...a],viewUp:[...s],FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:u},data:{}},centerCanvas:r,segmentIndex:l,viewport:i,segmentationId:f,segmentColor:u,viewportIdsToRender:c}}getActiveSegmentationData(e){const r=e.id,n=Hd(r);if(!n)return;const{segmentationId:i}=n,o=Lo(i);if(!o)return;const a=es(r,i,o);return{segmentIndex:o,segmentationId:i,segmentColor:a}}updateCursor(e){const r=e.detail,{element:n}=r,{currentPoints:i}=r,o=i.canvas;this._hoverData=this.createHoverData(n,o),this._calculateCursor(n,o),this._hoverData&&pe(this._hoverData.viewportIdsToRender)}getOperationData(e){var u,d;const r=this._editData||this.createEditData(e),{segmentIndex:n,segmentationId:i,brushCursor:o}=this._hoverData||this.createHoverData(e),{data:a,metadata:s={}}=o||{},{viewPlaneNormal:c,viewUp:l}=s;return{...r,points:(u=a==null?void 0:a.handles)==null?void 0:u.points,segmentIndex:n,previewColors:this.configuration.preview.enabled?this.configuration.preview.previewColors:null,viewPlaneNormal:c,toolGroupId:this.toolGroupId,segmentationId:i,viewUp:l,strategySpecificConfiguration:this.configuration.strategySpecificConfiguration,preview:(d=this._previewData)==null?void 0:d.preview}}_calculateCursor(e,r){const n=ne(e),{viewport:i}=n,{canvasToWorld:o}=i,a=i.getCamera(),{brushSize:s}=this.configuration,c=Ye(a.viewUp[0],a.viewUp[1],a.viewUp[2]),l=Ye(a.viewPlaneNormal[0],a.viewPlaneNormal[1],a.viewPlaneNormal[2]),f=xe();qt(f,c,l);const u=o([r[0],r[1]]),d=xe(),h=xe(),g=xe(),p=xe();for(let w=0;w<=2;w++)d[w]=u[w]-c[w]*s,h[w]=u[w]+c[w]*s,g[w]=u[w]-f[w]*s,p[w]=u[w]+f[w]*s;if(!this._hoverData)return;const{brushCursor:v}=this._hoverData,{data:x}=v;x.handles===void 0&&(x.handles={}),x.handles.points=[d,h,g,p];const m=this.configuration.activeStrategy,y=this.configuration.strategies[m];typeof y.computeInnerCircleRadius=="function"&&y.computeInnerCircleRadius({configuration:this.configuration,viewport:i}),x.invalidated=!1}rejectPreview(e=this._previewData.element){if(!e||!this._previewData.preview)return;const r=ne(e);this.applyActiveStrategyCallback(r,this.getOperationData(e),it.RejectPreview),this._previewData.preview=null,this._previewData.isDrag=!1}acceptPreview(e=this._previewData.element){if(!e)return;const r=ne(e);this.applyActiveStrategyCallback(r,this.getOperationData(e),it.AcceptPreview),this._previewData.isDrag=!1,this._previewData.preview=null}invalidateBrushCursor(){if(this._hoverData===void 0)return;const{data:e}=this._hoverData.brushCursor,{viewport:r}=this._hoverData;e.invalidated=!0;const{segmentColor:n}=this.getActiveSegmentationData(r)||{};this._hoverData.brushCursor.metadata.segmentColor=n}renderAnnotation(e,r){var y;if(!this._hoverData)return;const{viewport:n}=e;if(!this._hoverData.viewportIdsToRender.includes(n.id))return;const o=this._hoverData.brushCursor;if(o.data.invalidated===!0){const{centerCanvas:w}=this._hoverData,{element:C}=n;this._calculateCursor(C,w)}const a=o.metadata;if(!a)return;const s=a.brushCursorUID,c=o.data,{points:l}=c.handles,f=l.map(w=>n.worldToCanvas(w)),u=f[0],d=f[1],h=[Math.floor((u[0]+d[0])/2),Math.floor((u[1]+d[1])/2)],g=Math.abs(u[1]-Math.floor((u[1]+d[1])/2)),p=`rgb(${((y=a.segmentColor)==null?void 0:y.slice(0,3))||[0,0,0]})`;if(!n.getRenderingEngine()){console.warn("Rendering Engine has been destroyed");return}bi(r,s,"0",h,g,{color:p});const x=this.configuration.activeStrategy,{dynamicRadiusInCanvas:m}=this.configuration.strategySpecificConfiguration[x]||{dynamicRadiusInCanvas:0};m&&bi(r,s,"1",h,m,{color:p})}}pS.toolName="Brush";function A0(t,e){const r=Wn(t);if(r===void 0)return;const n=r._toolInstances;return Object.keys(n).length?e&&n[e]?[n[e]]:Object.values(n).filter(o=>o instanceof pS):void 0}function Ope(t,e,r){const n=Wn(t);if(n===void 0)return;A0(t,r).forEach(l=>{l.configuration.brushSize=e,l.invalidateBrushCursor()});const o=n.getViewportsInfo(),a=Object.keys(o).map(l=>o[l]);if(!a.length)return;const{renderingEngineId:s}=a[0],c=n.getViewportIds();hr(s),pe(c)}function Mpe(t,e){const r=Wn(t);if(r===void 0)return;const n=r._toolInstances;if(!Object.keys(n).length)return;const o=A0(t,e)[0];if(o)return o.configuration.brushSize}function Rpe(t,e,r={isDynamic:!1}){const n=Wn(t);if(n===void 0)return;const i=A0(t),o={...r,...e!==void 0&&{threshold:e}};i.forEach(l=>{l.configuration.strategySpecificConfiguration.THRESHOLD={...l.configuration.strategySpecificConfiguration.THRESHOLD,...o}});const a=n.getViewportsInfo();if(!a.length)return;const{renderingEngineId:s}=a[0],c=n.getViewportIds();hr(s),pe(c)}function Lpe(t){const e=Wn(t);if(e===void 0)return;const r=e._toolInstances;if(!Object.keys(r).length)return;const i=A0(t)[0];if(i)return i.configuration.strategySpecificConfiguration.THRESHOLD.threshold}function Npe(t,e,r,n){const{baseVolumeIdx:i,volumeInfoList:o}=tN(t,r),{voxelManager:a}=o[i],s=a,c=t.voxelManager.getScalarDataLength(),l=t.voxelManager;return o.forEach(f=>{const{volumeSize:u}=f;u===c?Ape(l,s,e,f):Ppe(l,s,e,f,o,i,n)}),Ei(t.volumeId),t}function Ppe(t,e,r,n,i,o,a){const{imageData:s,lower:c,upper:l,dimensions:f}=n;let u,d,h;const g=t.getScalarDataLength();for(let p=0;p{u=u+1,y>=h.lower&&y<=h.upper&&(d=d+1)};u=0,d=0,h={lower:c,upper:l};let m=!1;t.forEach(x,{imageData:s,boundsIJK:v}),m=a===0?d>0:d===u,t.setAtIndex(p,m?r:0)}return{total:u,range:h,overlaps:d}}function Ape(t,e,r,n){const{lower:i,upper:o}=n,a=t.getScalarDataLength();for(let s=0;s=i&&c<=o?r:0)}}function CE(t,e,r){const n=r.toIJK(t),i=r.toIJK(e),o=xe(),{testIJK:a}=r,s=en(xe(),n,i),c=Math.round(Math.max(...s.map(Math.abs)));if(c<2)return!0;const l=cr(xe(),s,1/c);for(let f=1;f{const l=xn(xe(),s,c).map(v=>v/2),f=n.imageData.worldToIndex(l).map(Math.round),[u,d,h]=f,g=u+d*o+h*a,p=i.getAtIndex(g);return p===e||(r==null?void 0:r.has(p))},toIJK:s=>n.imageData.worldToIndex(s),testIJK:s=>{const[c,l,f]=s,u=Math.round(c)+Math.round(l)*o+Math.round(f)*a,d=i.getAtIndex(u);return d===e||(r==null?void 0:r.has(d))}}}const lf=.01;function Vpe(t,e,r){const{sliceContours:n}=t,{segmentIndex:i,containedSegmentIndices:o}=r;let a;const s=kpe(e,i,o);for(const c of n){const l=Fpe(c,s,a);l&&(a=l)}return a&&Object.assign(a,r),a}function Fpe(t,e,r={maxMajor:0,maxMinor:0}){const{points:n}=t.polyData,{maxMinor:i,maxMajor:o}=r;let a=o*o,s=i*i,c;for(let v=0;vlf||e.testCenter(m,y)&&CE(m,y,e)&&(s=w,d=[v,x])}if(!d)return;s=Math.sqrt(s);const h=n[d[0]],g=n[d[1]];return{majorAxis:[l,f],minorAxis:[h,g],maxMajor:a,maxMinor:s,...t}}const{Labelmap:Upe}=Ge;function IA(t){const e=pA({segmentations:t});if(!(e!=null&&e.length)||!e[0].sliceContours.length)return;const{representationData:r,segments:n=[null,{label:"Unspecified",color:null,containedSegmentIndices:null}]}=t,{volumeId:i}=r[Upe],o=n.findIndex(a=>!!a);if(o!==-1)return n[o].segmentIndex=o,Vpe(e[0],i,n[o])}function OA(t,e){const{majorAxis:r,minorAxis:n,label:i="",sliceIndex:o}=t,[a,s]=r,[c,l]=n,f=[a,s,c,l];return{highlighted:!0,invalidated:!0,metadata:{toolName:"Bidirectional",...e.getViewReference({sliceIndex:o})},data:{handles:{points:f,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:i,cachedStats:{}},isLocked:!1,isVisible:!0}}const{transformWorldToIndex:qg}=Jt;class mS extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,getTextLines:Bpe}}){super(e,r),this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles;let u=c.worldToCanvas(f[0]),d=c.worldToCanvas(f[1]),h={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},g=Ar([h.start.x,h.start.y],[h.end.x,h.end.y],[o[0],o[1]]);return g<=a||(u=c.worldToCanvas(f[2]),d=c.worldToCanvas(f[3]),h={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},g=Ar([h.start.x,h.start.y],[h.end.x,h.end.y],[o[0],o[1]]),g<=a)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),ne(a),pe(s),Ze(a),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,c=i.data;i.highlighted=!0;let l=!1,f;o.worldPosition?l=!0:f=c.handles.points.findIndex(d=>d===o);const u=He(s,this.getToolName());Ze(s),this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),ne(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.editData.handleIndex!==void 0){const{points:u}=f.handles,d=Cr(u[0],u[1]);if(Cr(u[2],u[3])>d){const g=[[...u[2]],[...u[3]]],p=[...u[0]],v=[...u[1]],x=ot();Qi(x,g[1][0]-g[0][0],g[1][1]-g[1][0]);const m=ot();Qi(m,-x[1],x[0]);const y=ot();Qi(y,v[0]-p[0],v[1]-p[0]);let w;Tw(y,m)>0?w=[p,v]:w=[v,p],f.handles.points=[g[0],g[1],w[0],w[1]]}}this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1}},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=ne(a),{renderingEngine:c,viewport:l}=s,{worldToCanvas:f}=l,{annotation:u,viewportIdsToRender:d,handleIndex:h}=this.editData,{data:g}=u,p=o.world;g.handles.points[h]=[...p];const v=g.handles.points.map(f),x={longLineSegment:{start:{x:v[0][0],y:v[0][1]},end:{x:v[1][0],y:v[1][1]}},shortLineSegment:{start:{x:v[2][0],y:v[2][1]},end:{x:v[3][0],y:v[3][1]}}},y=In(v[0],v[1])/3,w=x.longLineSegment.start.x-x.longLineSegment.end.x,C=x.longLineSegment.start.y-x.longLineSegment.end.y,S=Math.sqrt(w*w+C*C),T=w/S,_=C/S,E=(x.longLineSegment.start.x+x.longLineSegment.end.x)/2,D=(x.longLineSegment.start.y+x.longLineSegment.end.y)/2,b=E+y*_,I=D-y*T,R=E-y*_,M=D+y*T;g.handles.points[2]=l.canvasToWorld([b,I]),g.handles.points[3]=l.canvasToWorld([R,M]),u.invalidated=!0,pe(d),this.editData.hasMoved=!0},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i;ne(o);const{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragModifyHandle(n),a.invalidated=!0;pe(s)},this._dragModifyHandle=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=ne(a),{viewport:c}=s,{annotation:l,handleIndex:f}=this.editData,{data:u}=l,d=o.world,h=[c.worldToCanvas(u.handles.points[0]),c.worldToCanvas(u.handles.points[1]),c.worldToCanvas(u.handles.points[2]),c.worldToCanvas(u.handles.points[3])],g={start:{x:h[0][0],y:h[0][1]},end:{x:h[1][0],y:h[1][1]}},p={start:{x:h[2][0],y:h[2][1]},end:{x:h[3][0],y:h[3][1]}},v=[...d],x=c.worldToCanvas(v);if(f===0||f===1){const y=h[f===0?1:0],w=Qi(ot(),x[0]-y[0],x[1]-y[1]),C=Qi(ot(),h[f][0]-y[0],h[f][1]-y[1]);La(w,w),La(C,C);const S={start:{x:y[0],y:y[1]},end:{x:x[0],y:x[1]}};if(this._movingLongAxisWouldPutItThroughShortAxis(S,p))return;const T=y,_=this._getSignedAngle(C,w);let E=h[2][0],D=h[2][1],b=h[3][0],I=h[3][1];E-=T[0],D-=T[1],b-=T[0],I-=T[1];const R=E*Math.cos(_)-D*Math.sin(_),M=E*Math.sin(_)+D*Math.cos(_),L=b*Math.cos(_)-I*Math.sin(_),A=b*Math.sin(_)+I*Math.cos(_);E=R+T[0],D=M+T[1],b=L+T[0],I=A+T[1];const G=c.canvasToWorld([E,D]),P=c.canvasToWorld([b,I]);u.handles.points[f]=v,u.handles.points[2]=G,u.handles.points[3]=P}else{const m=f===2?3:2,y={longLineSegment:{start:g.start,end:g.end},shortLineSegment:{start:p.start,end:p.end}},w=kn(ot(),[y.longLineSegment.end.x,y.longLineSegment.end.y],[y.longLineSegment.start.x,y.longLineSegment.start.y]),C=La(ot(),w),S=kn(ot(),[x[0],x[1]],[h[f][0],h[f][1]]),T=B5(S),_=this._getSignedAngle(C,S),E=Math.cos(_)*T,D=ej(ot(),[h[m][0],h[m][1]],C,E);if(this._movingLongAxisWouldPutItThroughShortAxis({start:{x:x[0],y:x[1]},end:{x:D[0],y:D[1]}},{start:{x:y.longLineSegment.start.x,y:y.longLineSegment.start.y},end:{x:y.longLineSegment.end.x,y:y.longLineSegment.end.y}})||!_3([x[0],x[1]],[D[0],D[1]],[g.start.x,g.start.y],[g.end.x,g.end.y]))return;u.handles.points[m]=c.canvasToWorld(D),u.handles.points[f]=v}},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback)},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!0;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(j));u.annotationUID=g;const{color:y,lineWidth:w,lineDash:C,shadow:S}=this.getAnnotationStyle({annotation:h,styleSpecifier:u});if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,width:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let T;if(!Br(g))continue;!rr(g)&&!this.editData&&x!==null&&(T=[m[x]]),T&&cn(i,g,"0",T,{color:y});const _=`${g}-line-1`,E=`${g}-line-2`;It(i,g,"0",m[0],m[1],{color:y,lineDash:C,lineWidth:w,shadow:S},_),It(i,g,"1",m[2],m[3],{color:y,lineDash:C,lineWidth:w,shadow:S},E),o=!0;const I=this.getLinkedTextBoxStyle(u,h);if(!I.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const R=this.configuration.getTextLines(p,l);if(!R||R.length===0)continue;let M;p.handles.textBox.hasMoved||(M=$i(m),p.handles.textBox.worldPosition=a.canvasToWorld(M));const L=a.worldToCanvas(p.handles.textBox.worldPosition),G=ti(i,g,"1",R,L,m,{},I),{x:P,y:N,width:V,height:$}=G;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,N]),topRight:a.canvasToWorld([P+V,N]),bottomLeft:a.canvasToWorld([P,N+$]),bottomRight:a.canvasToWorld([P+V,N+$])}}return o},this._movingLongAxisWouldPutItThroughShortAxis=(n,i)=>{const o=ot();Qi(o,i.end.x-i.start.x,i.end.y-i.start.y),La(o,o);const a={start:{x:i.start.x-o[0]*10,y:i.start.y-o[1]*10},end:{x:i.end.x+o[0]*10,y:i.end.y+o[1]*10}};return!_3([a.start.x,a.start.y],[a.end.x,a.end.y],[n.start.x,n.start.y],[n.end.x,n.end.y])},this._calculateCachedStats=(n,i,o)=>{const{data:a}=n,{element:s}=o.viewport,c=a.handles.points[0],l=a.handles.points[1],f=a.handles.points[2],u=a.handles.points[3],{cachedStats:d}=a,h=Object.keys(d);for(let g=0;gM?R:M,A=R>M?M:R,G=R>M?D:I,P=R>M?I:D;this._isInsideVolume(y,w,C,S,m)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,d[p]={length:L,width:A,unit:G,widthUnit:P}}return n.invalidated=!1,dn(n,s),d},this._isInsideVolume=(n,i,o,a,s)=>On(n,s)&&On(i,s)&&On(o,s)&&On(a,s),this._getSignedAngle=(n,i)=>Math.atan2(n[0]*i[1]-n[1]*i[0],n[0]*i[0]+n[1]*i[1]),this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,o=n.world,a=ne(i),{viewport:s,renderingEngine:c}=a;this.isDrawing=!0;const l=s.getCamera(),{viewPlaneNormal:f,viewUp:u}=l,d=this.getReferencedImageId(s,o,f,u),h=s.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...f],viewUp:[...u],FrameOfReferenceUID:h,referencedImageId:d,...s.getViewReference({points:[o]})},data:{handles:{points:[[...o],[...o],[...o],[...o]],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};Ut(g,i);const p=He(i,this.getToolName());return this.editData={annotation:g,viewportIdsToRender:p,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(i),Ze(i),e.preventDefault(),pe(p),g}_calculateLength(e,r){const n=e[0]-r[0],i=e[1]-r[1],o=e[2]-r[2];return Math.sqrt(n*n+i*i+o*o)}}function Bpe(t,e){const{cachedStats:r,label:n}=t,{length:i,width:o,unit:a}=r[e],s=[];return n&&s.push(n),i===void 0||s.push(`L: ${xt(i)} ${a||a}`,`W: ${xt(o)} ${a}`),s}mS.toolName="Bidirectional";function Gpe(t,e){const{data:r}=e,n=ne(t),i=(r.getSegment||Wpe)(n,r);if(!i)return;const o=n.viewport.getFrameOfReferenceUID(),a=R2(),{segmentIndex:s,segmentationId:c}=i,l=_t(this.toolName||mS.toolName,o);let f=!1;const u=l.filter(h=>{const g=h.data.segment;return g?(g.segmentationId===c&&g.segmentIndex===s&&(f=!0,h.data.segment=g),!0):!1});f||u.push({data:{segment:i}});let d;if(u.forEach(h=>{const g=[],p=h.data.segment,{segmentIndex:v,segmentationId:x}=p;g[v]=p,Ot(h.annotationUID);const m=IA({...a.find(C=>C.segmentationId===x),segments:g});if(!m)return;const y=OA(m,n.viewport);y.annotationUID=h.annotationUID,y.data.segment=p;const w=Ut(y,o);if(p.segmentIndex===i.segmentIndex&&p.segmentationId===i.segmentationId){d=m;const{style:C}=i;C&&_C.setAnnotationStyles(w,C)}}),d){const{sliceIndex:h}=d,g=n.viewport.getImageIds();jo(t,{imageIndex:g.length-1-h}),n.viewport.render()}else console.warn("No bidirectional found");return d}function Wpe(t,e){var a;const r=R2();if(!r.length)return;const n=e.segmentationId||r[0].segmentationId,i=e.segmentIndex??Lo(n);if(!i)return;const o=(a=e.segmentData)==null?void 0:a.get(i);return{label:`Segment ${i}`,segmentIndex:i,segmentationId:n,...o}}function MA(t){const e=Wn(t);if(e===void 0)return;A0(t).forEach(a=>{a.invalidateBrushCursor()});const n=e.getViewportsInfo();if(!Object.keys(n).map(a=>n[a]).length)return;const o=e.getViewportIds();pe(o)}function RA(t,e,r={}){const n=Ct(t),i=n.representationData,o=(r==null?void 0:r.representationType)??Object.keys(i)[0];if(!o)throw new Error(`Segmentation ${t} does not have any representations`);switch(o){case Ge.Labelmap:return zpe(n,e,r);case Ge.Contour:return $pe(n,e,r);default:return}}function zpe(t,e,{viewport:r}){const n=t.representationData.Labelmap;if(r instanceof Rn){const{volumeId:d}=n,h=Te.getVolume(d);return h?h.imageData.getScalarValueFromWorld(e):void 0}const i=Gi(r.id,t.segmentationId);if(!Te.getImage(i))return;const a=Ba(r.id,t.segmentationId),s=a==null?void 0:a.actor.getMapper().getInputData(),c=Gn(s,e),l=s.getDimensions();return(s.voxelManager||Qa.createScalarVolumeVoxelManager({dimensions:l,scalarData:s.getPointData().getScalars().getData()})).getAtIJKPoint(c)}function $pe(t,e,{viewport:r}){const n=t.representationData.Contour,i=Array.from(n.annotationUIDsMap.keys()),{viewPlaneNormal:o}=r.getCamera();for(const a of i){const s=n.annotationUIDsMap.get(a);if(s)for(const c of s){const l=Mn(c);if(!l)continue;const{polyline:f}=l.data.contour;if(mt(o,l.metadata.viewPlaneNormal)&&MN(e,f))return Number(a)}}}function LA(t,e,{viewport:r,searchRadius:n}){const o=Ct(t).representationData.Labelmap;if(r instanceof Rn){const{volumeId:p}=o,v=Te.getVolume(p);if(!v)return;const x=v.voxelManager,m=v.imageData,y=Gn(m,e),w=x.getAtIJK(y[0],y[1],y[2]),C=r.worldToCanvas(e);return Hpe(C,w,r,m,n)?w:void 0}const a=Gi(r.id,t);if(!Te.getImage(a))return;const c=Ba(r.id,t),l=c==null?void 0:c.actor.getMapper().getInputData(),f=Gn(l,e),u=l.getDimensions(),d=l.voxelManager||Qa.createScalarVolumeVoxelManager({dimensions:u,scalarData:l.getPointData().getScalars().getData()}),h=d.getAtIJKPoint(f);return jpe(f,u,d,h)?h:void 0}function NA(t,e,r=1){const n=Array.from({length:2*r+1},(i,o)=>o-r);for(const i of n)for(const o of n)for(const a of n){if(i===0&&o===0&&a===0)continue;const s=t(i,o,a);if(s!==void 0&&e!==s)return!0}return!1}function jpe(t,e,r,n,i){return NA((a,s,c)=>{const l=[t[0]+a,t[1]+s,t[2]+c];return r.getAtIJK(l[0],l[1],l[2])},n,i)}function Hpe(t,e,r,n,i){return NA((a,s)=>{const c=[t[0]+a,t[1]+s],l=r.canvasToWorld(c),f=n.get("voxelManager").voxelManager,u=Gn(n,l);return f.getAtIJK(u[0],u[1],u[2])},e,i)}function PA(t){const e=Ct(t),{annotationUIDsMap:r}=e.representationData.Contour;for(const[n,i]of r.entries())if(Array.from(i).find(a=>Mn(a).highlighted))return n}const Kpe=Object.freeze(Object.defineProperty({__proto__:null,contourAndFindLargestBidirectional:IA,createBidirectionalToolData:OA,createLabelmapVolumeForViewport:cpe,createMergedLabelmapForIndex:spe,floodFill:vm,getBrushSizeForToolGroup:Mpe,getBrushThresholdForToolGroup:Lpe,getBrushToolInstances:A0,getHoveredContourSegmentationAnnotation:PA,getSegmentIndexAtLabelmapBorder:LA,getSegmentIndexAtWorldPoint:RA,getUniqueSegmentIndices:ha,invalidateBrushCursor:MA,rectangleROIThresholdVolumeByRange:ope,segmentContourAction:Gpe,setBrushSizeForToolGroup:Ope,setBrushThresholdForToolGroup:Rpe,thresholdSegmentationByRange:Npe,thresholdVolumeByRange:vA,triggerSegmentationRender:L0,triggerSegmentationRenderBySegmentationId:M2},Symbol.toStringTag,{value:"Module"}));function qpe(t){let e="";const r=t[0]<0?"R":"L",n=t[1]<0?"A":"P",i=t[2]<0?"F":"H",o=[Math.abs(t[0]),Math.abs(t[1]),Math.abs(t[2])],a=1e-4;for(let s=0;s<3;s++)if(o[0]>a&&o[0]>o[1]&&o[0]>o[2])e+=r,o[0]=0;else if(o[1]>a&&o[1]>o[0]&&o[1]>o[2])e+=n,o[1]=0;else if(o[2]>a&&o[2]>o[0]&&o[2]>o[1])e+=i,o[2]=0;else if(o[0]>a&&o[1]>a&&o[0]===o[1])e+=r+n,o[0]=0,o[1]=0;else if(o[0]>a&&o[2]>a&&o[0]===o[2])e+=r+i,o[0]=0,o[2]=0;else if(o[1]>a&&o[2]>a&&o[1]===o[2])e+=n+i,o[1]=0,o[2]=0;else break;return e}function Xpe(t){let e=t.replace("H","f");return e=e.replace("F","h"),e=e.replace("R","l"),e=e.replace("L","r"),e=e.replace("A","p"),e=e.replace("P","a"),e=e.toUpperCase(),e}const Ype=Object.freeze(Object.defineProperty({__proto__:null,getOrientationStringLPS:qpe,invertOrientationStringLPS:Xpe},Symbol.toStringTag,{value:"Module"}));var N3;(function(t){t.CLIP_STOPPED="CORNERSTONE_CINE_TOOL_STOPPED",t.CLIP_STARTED="CORNERSTONE_CINE_TOOL_STARTED"})(N3||(N3={}));const $p=N3,vS={};function AA(t,e){const r=ne(t),{viewportId:n}=r;vS[n]=e}function yS(t){const e=ne(t),{viewportId:r}=e;return vS[r]}function Jpe(t){return vS[t]}const{ViewportStatus:kA}=Po,{triggerEvent:fy}=Jt,VA=!0,P3=new Map;function Zpe(t,e){let r,n;if(t===void 0)throw new Error("playClip: element must not be undefined");const i=ne(t);if(!i)throw new Error("playClip: element must be a valid Cornerstone enabled element");e||(e={}),e.dynamicCineEnabled=e.dynamicCineEnabled??!0;const{viewport:o}=i,a=i1e(o,e);let s=yS(t);const c=e.dynamicCineEnabled;if(c&&UA(t),s?A3(t,{stopDynamicCine:!c,viewportId:o.id}):(s={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:e.frameTimeVector??void 0,speed:e.frameTimeVectorSpeedMultiplier??1,reverse:e.reverse??!1,loop:e.loop??!0},AA(t,s)),s.dynamicCineEnabled=e.dynamicCineEnabled,(e.framesPerSecond<0||e.framesPerSecond>0)&&(s.framesPerSecond=Number(e.framesPerSecond),s.reverse=s.framesPerSecond<0,s.ignoreFrameTimeVector=!0),s.ignoreFrameTimeVector!==!0&&s.frameTimeVector&&s.frameTimeVector.length===a.numScrollSteps&&a.frameTimeVectorEnabled){const{timeouts:u,isTimeVarying:d}=Qpe(s.frameTimeVector,s.speed);r=u,n=d}const l=()=>{const{numScrollSteps:u,currentStepIndex:d}=a;let h=d+(s.reverse?-1:1);const g=h<0||h>=u;if(!s.loop&&g){A3(t,{stopDynamicCine:!c,viewportId:o.id});const v={element:t};fy(t,$p.CLIP_STOPPED,v);return}h>=u?h=0:h<0&&(h=u-1);const p=h-d;if(p)try{a.scroll(p)}catch(v){console.warn("Play clip not scrolling",v),BA(s),fy(t,$p.CLIP_STOPPED,f);return}};if(c){const u=xS(o);u&&P3.set(u.volumeId,t)}a.play?s.framesPerSecond=a.play(e.framesPerSecond):r&&r.length>0&&n?(s.usingFrameTimeVector=!0,s.intervalId=window.setTimeout(function u(){s.intervalId=window.setTimeout(u,r[a.currentStepIndex]),l()},0)):(s.usingFrameTimeVector=!1,s.intervalId=window.setInterval(l,1e3/Math.abs(s.framesPerSecond)));const f={element:t};fy(t,$p.CLIP_STARTED,f)}function FA(t,e={}){A3(t,{stopDynamicCine:!0,...e})}function A3(t,e={stopDynamicCine:!0,viewportId:void 0}){const{stopDynamicCine:r,viewportId:n}=e,i=ne(t);let o;const a=i==null?void 0:i.viewport;if(i){const{viewport:s}=i;o=yS(s.element)}else if(n)o=Jpe(n);else return;o&&BA(o),a instanceof Ad?a.pause():r&&a instanceof Rn&&UA(t)}function UA(t){const{viewport:e}=ne(t),r=xS(e);if(r!=null&&r.isDynamicVolume()){const n=P3.get(r.volumeId);P3.delete(r.volumeId),n&&n!==t&&FA(n)}}function Qpe(t,e){let r,n,i,o=0;const a=t.length,s=[];let c=!1;for((typeof e!="number"||e<=0)&&(e=1),r=1;r0&&(c?i=o/s.length|0:i=s[0],s.push(i)),{timeouts:s,isTimeVarying:c}}function BA(t){const e=t.intervalId;typeof e<"u"&&(t.intervalId=void 0,t.usingFrameTimeVector?clearTimeout(e):clearInterval(e))}function xS(t){const e=t.getAllVolumeIds(),n=e.find(i=>{var o;return(o=Te.getVolume(i))==null?void 0:o.isDynamicVolume()})??e[0];return Te.getVolume(n)}function e1e(t,e){const r=t.getImageIds();return{get numScrollSteps(){return r.length},get currentStepIndex(){return t.getTargetImageIdIndex()},get frameTimeVectorEnabled(){return!0},waitForRenderedCount:0,scroll(n){if(this.waitForRenderedCount<=e&&t.viewportStatus!==kA.RENDERED){this.waitForRenderedCount++;return}this.waitForRenderedCount=0,ul(t,{delta:n,debounceLoading:VA})}}}function t1e(t,e){return{get numScrollSteps(){return t.getNumberOfSlices()},get currentStepIndex(){return t.getSliceIndex()},get frameTimeVectorEnabled(){return!0},waitForRenderedCount:0,scroll(r){if(this.waitForRenderedCount<=e&&t.viewportStatus!==kA.RENDERED){this.waitForRenderedCount++;return}this.waitForRenderedCount=0,ul(t,{delta:r,debounceLoading:VA})},play(r){return r&&t.setPlaybackRate(r/24),t.play(),t.getFrameRate()}}}function n1e(t,e){const{volumeId:r}=e,n={viewPlaneNormal:xe(),scrollInfo:null},i=()=>{const o=t.getCamera();if(!n.scrollInfo||!U5(o.viewPlaneNormal,n.viewPlaneNormal)){const s=Eu(t,r);n.viewPlaneNormal=o.viewPlaneNormal,n.scrollInfo=s}return n.scrollInfo};return{get numScrollSteps(){return i().numScrollSteps},get currentStepIndex(){return i().currentStepIndex},get frameTimeVectorEnabled(){const o=t.getCamera(),a=e.direction.slice(6,9).map(c=>-c),s=je(a,o.viewPlaneNormal);return qs(s,1)},scroll(o){i().currentStepIndex+=o,ul(t,{delta:o})}}}function r1e(t){return{get numScrollSteps(){return t.numTimePoints},get currentStepIndex(){return t.timePointIndex},get frameTimeVectorEnabled(){return!1},scroll(e){t.scroll(e)}}}function i1e(t,e){if(t instanceof un)return e1e(t,e.waitForRendered??30);if(t instanceof sn){const r=xS(t);return e.dynamicCineEnabled&&(r!=null&&r.isDynamicVolume())?r1e(r):n1e(t,r)}if(t instanceof Ad)return t1e(t,e.waitForRendered??30);throw new Error("Unknown viewport type")}const o1e=Object.freeze(Object.defineProperty({__proto__:null,Events:$p,addToolState:AA,getToolState:yS,playClip:Zpe,stopClip:FA},Symbol.toStringTag,{value:"Module"}));function a1e(t,e){var n,i,o;const r=(e==null?void 0:e.knotsRatioPercentage)||30;return!((o=(i=(n=t==null?void 0:t.data)==null?void 0:n.contour)==null?void 0:i.polyline)!=null&&o.length)||r<=0}function s1e(t,e){const r=co(),n=xn(xe(),e,t),i=Math.abs(t[0])>.1?Ye(-t[1],t[0],0):Ye(0,-t[2],t[1]);return ww(r,e,n,i),r}function Xg(t,e=Math.floor(Math.random()*(t.length-1))){if(e===0)return 0;const r=[...t],{length:n}=t;for(let i=0;i{const u=et(xe(),f,o);return[u[0],u[1]]});let s=n?Xg(a):0,c=b3(a,0,a.length,(e==null?void 0:e.knotsRatioPercentage)||30);if(c===a)return!1;Xg(c,-s);for(let f=1;f<(e==null?void 0:e.loop);f++)s=n?Xg(c):0,c=b3(c,0,a.length,(e==null?void 0:e.knotsRatioPercentage)||30),Xg(c,-s);const l=$n(co(),o);return t.data.contour.polyline=c.map(f=>et([0,0,0],[...f,0],l)),!0}const c1e={smoothAnnotation:GA},l1e=Object.freeze(Object.defineProperty({__proto__:null,default:c1e,smoothAnnotation:GA},Symbol.toStringTag,{value:"Module"})),{isEqual:Yg}=Jt,u1e=Ye(1,0,0),f1e=Ye(0,1,0),d1e=Ye(0,0,1),SE=[u1e,f1e,d1e];function WA(t){const e=kt(xe(),t[0],t[1]),r=kt(xe(),t[0],t[2]),n=TE(e,SE),i=TE(r,SE);return[...n,...i].every(a=>Yg(a,0)||Yg(a,90)||Yg(a,180)||Yg(a,270))}function TE(t,e){return e.map(r=>Cw(t,r)*180/Math.PI)}const h1e=Object.freeze(Object.defineProperty({__proto__:null,getBoundsIJKFromRectangleAnnotations:yA,isAxisAlignedRectangle:WA},Symbol.toStringTag,{value:"Module"})),zA={};function $A(t,e){const r=ne(t),{viewportId:n}=r;zA[n]=e}function k0(t){const e=ne(t),{viewportId:r}=e;return zA[r]}const Jc=dt.Prefetch,jA=0;function g1e(t,e){t=Math.round(t)||0,e=Math.round(e)||0;const r=[];let n=e-t+1;if(n<=0)return r;for(;n--;)r[n]=e--;return r}function p1e(t,e){let r=0,n=t.length-1;return t.forEach((i,o)=>{ie&&(n=Math.min(o,n))}),{low:r,high:n}}function V0(t){const e=ne(t);if(!e)return null;const{viewport:r}=e;return r instanceof un?{currentImageIdIndex:r.getCurrentImageIdIndex(),imageIds:r.getImageIds()}:null}function N2(t){return function(e){const r=e.detail;let n;try{n=V0(t)}catch{return}if(!n||!n.imageIds||n.imageIds.length===0)return;const o=n.imageIds.indexOf(r.imageId);if(o<0)return;const a=k0(t);!a||!a.indicesToRequest||!a.indicesToRequest.length||a.indicesToRequest.push(o)}}const m1e=t=>{const e=new Set(t.imageIds);return r=>r.type!==Jc||!e.has(r.additionalDetails.imageId)};let Jf={maxImagesToPrefetch:1/0,preserveExistingPool:!0},k3;const v1e=10;function HA(t){var g,p;const e=k0(t);if(!e)return;const r=e||{},n=V0(t);if(!((g=n==null?void 0:n.imageIds)!=null&&g.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const{currentImageIdIndex:i}=n;if(r.enabled=r.enabled&&(((p=r.indicesToRequest)==null?void 0:p.length)??0)>0,r.enabled===!1)return;function o(v){const x=r.indicesToRequest.indexOf(v);x>-1&&r.indicesToRequest.splice(x,1)}if(e.indicesToRequest.sort((v,x)=>v-x),r.indicesToRequest.slice().forEach(function(v){const x=n.imageIds[v];if(!x)return;(Math.abs(i-v)<6?Te.getImageLoadObject(x):Te.isLoaded(x))&&o(v)}),!r.indicesToRequest.length)return;Jf.preserveExistingPool||fi.clearRequestStack(Jc);const s=p1e(r.indicesToRequest,n.currentImageIdIndex);let c,l,f=s.low,u=s.high;const d=[];for(;f>=0||uJf.maxImagesToPrefetch,m=r.indicesToRequest[u]-v>Jf.maxImagesToPrefetch,y=!x&&f>=0,w=!m&&uYs(v,x);d.forEach(v=>{const x={requestType:Jc};fi.addRequest(h.bind(null,v,x),Jc,{imageId:v},jA)})}function V3(t){clearTimeout(k3),k3=setTimeout(function(){const e=t.target;try{HA(e)}catch{return}},v1e)}function y1e(t){const e=V0(t);if(!e||!e.imageIds||e.imageIds.length===0){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const r={indicesToRequest:g1e(0,e.imageIds.length-1),enabled:!0,direction:1},n=r.indicesToRequest.indexOf(e.currentImageIdIndex);r.indicesToRequest.splice(n,1),$A(t,r),HA(t),t.removeEventListener(Se.STACK_NEW_IMAGE,V3),t.addEventListener(Se.STACK_NEW_IMAGE,V3);const i=N2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,i),Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,i)}function x1e(t){clearTimeout(k3),t.removeEventListener(Se.STACK_NEW_IMAGE,V3);const e=N2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,e);const r=k0(t);r&&r.indicesToRequest.length&&(r.enabled=!1,fi.clearRequestStack(Jc))}function w1e(){return Jf}function C1e(t){Jf=t}const S1e={enable:y1e,disable:x1e,getConfiguration:w1e,setConfiguration:C1e};let qd={maxImagesToPrefetch:1/0,minBefore:2,maxAfter:2,directionExtraImages:10,preserveExistingPool:!1},F3;const T1e=5,_1e=t=>{var n;const e=V0(t);if(!e)return;if(!((n=e.imageIds)!=null&&n.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}CS(t),wS(t),t.removeEventListener(Se.STACK_NEW_IMAGE,U3),t.addEventListener(Se.STACK_NEW_IMAGE,U3);const r=N2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,r),Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,r)};function wS(t){var l,f;const e=V0(t);if(!e)return;if(!((l=e==null?void 0:e.imageIds)!=null&&l.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const r=k0(t);if(!r)return;const n=r||{};if(n.enabled=n.enabled&&(((f=n.indicesToRequest)==null?void 0:f.length)??0)>0,n.enabled===!1)return;function i(u){const d=n.indicesToRequest.indexOf(u);d>-1&&n.indicesToRequest.splice(d,1)}const o=n.indicesToRequest.slice(),{currentImageIdIndex:a}=e;if(o.forEach(u=>{const d=e.imageIds[u];if(!d)return;(Math.abs(a-u)<6?Te.getImageLoadObject(d):Te.isLoaded(d))&&i(u)}),!n.indicesToRequest.length)return;qd.preserveExistingPool||fi.filterRequests(m1e(e));function s(u){var v,x;const d=e.imageIds.indexOf(u);i(d);const h=Te.getCachedImageBasedOnImageURI(u),{stats:g}=n,p=((v=h==null?void 0:h.image)==null?void 0:v.decodeTimeInMS)||0;if(p){g.imageIds.set(u,p),g.decodeTimeInMS+=p;const m=((x=h==null?void 0:h.image)==null?void 0:x.loadTimeInMS)||0;g.loadTimeInMS+=m}if(!n.indicesToRequest.length&&h!=null&&h.sizeInBytes){const{sizeInBytes:m}=h,y=Te.getMaxCacheSize()/4/m;if(!n.cacheFill)g.initialTime=Date.now()-g.start,g.initialSize=g.imageIds.size,CS(t,y),wS(t);else if(g.imageIds.size){g.fillTime=Date.now()-g.start;const{size:w}=g.imageIds;g.fillSize=w}}}const c=(u,d)=>Ys(u,d).then(()=>s(u));n.indicesToRequest.forEach(u=>{const d=e.imageIds[u],h={requestType:Jc};fi.addRequest(c.bind(null,d,h),Jc,{imageId:d},jA)})}function U3(t){clearTimeout(F3),F3=setTimeout(function(){const e=t.target;try{CS(e),wS(e)}catch{return}},T1e)}const E1e=t=>t<0?-1:1,CS=(t,e)=>{var d;const r=V0(t);if(!r)return;if(!((d=r.imageIds)!=null&&d.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const{currentImageIdIndex:n}=r;let{maxAfter:i=2,minBefore:o=2}=qd;const{directionExtraImages:a=10}=qd,s=k0(t)||{indicesToRequest:[],currentImageIdIndex:n,stackCount:0,enabled:!0,direction:1,stats:{start:Date.now(),imageIds:new Map,decodeTimeInMS:0,loadTimeInMS:0,totalBytes:0}},c=n-s.currentImageIdIndex;if(s.direction=E1e(c),s.currentImageIdIndex=n,s.enabled=!0,s.stackCount<100&&(s.stackCount+=a),Math.abs(c)>i||!c)if(s.stackCount=0,e){const h=n/r.imageIds.length;o=Math.ceil(e*h),i=Math.ceil(e*(1-h)),s.cacheFill=!0}else s.cacheFill=!1;else c<0?(o+=s.stackCount,i=0):(i+=s.stackCount,o=0);const l=Math.max(0,n-o),f=Math.min(r.imageIds.length-1,n+i),u=[];for(let h=n+1;h<=f;h++)u.push(h);for(let h=n-1;h>=l;h--)u.push(h);s.indicesToRequest=u,$A(t,s)};function D1e(t){clearTimeout(F3),t.removeEventListener(Se.STACK_NEW_IMAGE,U3);const e=N2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,e);const r=k0(t);r&&(r.enabled=!1)}function b1e(){return qd}function I1e(t){qd=t}const O1e={enable:_1e,disable:D1e,getConfiguration:b1e,setConfiguration:I1e},M1e=Object.freeze(Object.defineProperty({__proto__:null,isViewportPreScaled:is},Symbol.toStringTag,{value:"Module"}));function R1e(t,e){let r;const n=e.frameNumbers||[...Array(t.numTimePoints).keys()];if(!e.maskVolumeId&&!e.worldCoordinate)throw new Error("You should provide either maskVolumeId or imageCoordinate");if(e.maskVolumeId&&e.worldCoordinate)throw new Error("You can only use one of maskVolumeId or imageCoordinate");if(e.maskVolumeId){const i=Te.getVolume(e.maskVolumeId);if(!i)throw new Error("Segmentation volume not found");const[o,a]=N1e(n,t,i);return[o,a]}return e.worldCoordinate?L1e(n,e.worldCoordinate,t):r}function L1e(t,e,r){const{dimensions:n,imageData:i}=r,o=i.worldToIndex(e);if(o[0]=Math.floor(o[0]),o[1]=Math.floor(o[1]),o[2]=Math.floor(o[2]),!On(o,n))throw new Error("outside bounds");const a=n[0],s=n[0]*n[1],c=[];return t.forEach(l=>{const f=o[2]*s+o[1]*a+o[0];c.push(r.voxelManager.getAtIndexAndTimePoint(f,l))}),c}function N1e(t,e,r){const{imageData:n}=r,i=r.voxelManager,o=i.getScalarDataLength(),a=[];a.length=o;let s=0;for(let d=0,h=o;d{if(h===0)return;const p=AC(e.imageData,e.dimensions,e.spacing,d);let v=0;const x=new Map;t.forEach(w=>x.set(w,0));const m=({index:w})=>{for(let C=0;C{y.push(w/v)}),f.push(g),c.push(y)};return r.voxelManager.forEach(u,{imageData:n}),[c,f]}function KA(t,e){const r=t.getScalarDataLength(),n=new Float32Array(r);for(const i of e){const o=t.getTimePointScalarData(i);for(let a=0;a{const n=KA(t,e);for(let i=0;i{const n=P1e(t,e);for(let i=0;i{if(e.length!==2)throw new Error("Please provide only 2 time points for subtraction.");const n=t.getScalarDataLength(),i=t.getTimePointScalarData(e[0]),o=t.getTimePointScalarData(e[1]);for(let a=0;a{c[l]=f}),c}function k1e(t,e,r){const{frameNumbers:n,targetVolume:i}=r;if(!i)throw new Error("A target volume must be provided");const o=n||[...Array(t.numTimePoints).keys()];if(o.length<=1)throw new Error("Please provide two or more time points");const a=t.voxelManager,s=i.voxelManager,c=qA[e];if(!c)throw new Error(`Unsupported operation: ${e}`);c(a,o,(l,f)=>{s.setAtIndex(l,f)}),s.resetModifiedSlices();for(let l=0;l{for(const[c,l]of s.entries())if(l!==void 0)return c;return-1};let a=o(n);for(;a!==-1;){const s=[a];for(;n.has(a);){const c=n.get(a)[1];n.has(c)&&s.push(c),n.delete(a),a=c}i.push(s),a=o(n)}return i.length?i:void 0}function JA(t){const e=YA(t);if(!e)return;const r=t.getPoints().getData();return e.map(n=>n.map(i=>XA(r,i)))}const F1e=Object.freeze(Object.defineProperty({__proto__:null,getPoint:XA,getPolyDataPointIndexes:YA,getPolyDataPoints:JA},Symbol.toStringTag,{value:"Module"}));var Ai;(function(t){t.Top="top",t.Left="left",t.Bottom="bottom",t.Right="right"})(Ai||(Ai={}));const U1e=Object.freeze(Object.defineProperty({__proto__:null,get ColorbarRangeTextPosition(){return Ai}},Symbol.toStringTag,{value:"Module"})),Pa=t=>t&&t.upper>t.lower,ym=t=>!!t&&t.width>0&&t.height>0,Xd=(t,e)=>!!t&&!!e&&t.lower===e.lower&&t.upper===e.upper,ZA=(t,e)=>!!t&&!!e&&t.width===e.width&&t.height===e.height,B1e=(t,e,r)=>[t[0]*(1-r)+e[0]*r,t[1]*(1-r)+e[1]*r,t[2]*(1-r)+e[2]*r],{clamp:G1e}=Jt;class SS{constructor(e){SS.validateProps(e);const{colormap:r,size:n={width:20,height:100},imageRange:i={lower:0,upper:1},voiRange:o={lower:0,upper:1},container:a,showFullPixelValueRange:s=!1}=e;this._colormap=r,this._imageRange=i,this._voiRange=o,this._showFullImageRange=s,this._canvas=this._createRootElement(n),a&&this.appendTo(a)}get colormap(){return this._colormap}set colormap(e){this._colormap=e,this.render()}get size(){const{width:e,height:r}=this._canvas;return{width:e,height:r}}set size(e){const{_canvas:r}=this;!ym(e)||ZA(r,e)||(this._setCanvasSize(r,e),this.render())}get imageRange(){return{...this._imageRange}}set imageRange(e){!Pa(e)||Xd(e,this._imageRange)||(this._imageRange=e,this.render())}get voiRange(){return{...this._voiRange}}set voiRange(e){!Pa(e)||Xd(e,this._voiRange)||(this._voiRange=e,this.render())}get showFullImageRange(){return this._showFullImageRange}set showFullImageRange(e){e!==this._showFullImageRange&&(this._showFullImageRange=e,this.render())}appendTo(e){e.appendChild(this._canvas),this.render()}dispose(){const{_canvas:e}=this,{parentElement:r}=e;r==null||r.removeChild(e)}static validateProps(e){const{size:r,imageRange:n,voiRange:i}=e;if(r&&!ym(r))throw new Error('Invalid "size"');if(n&&!Pa(n))throw new Error('Invalid "imageRange"');if(i&&!Pa(i))throw new Error('Invalid "voiRange"')}_setCanvasSize(e,r){const{width:n,height:i}=r;e.width=n,e.height=i,Object.assign(e.style,{width:`${n}px`,height:`${i}px`})}_createRootElement(e){const r=document.createElement("canvas");return Object.assign(r.style,{position:"absolute",top:"0",left:"0",pointerEvents:"none",boxSizing:"border-box"}),this._setCanvasSize(r,e),r}render(){if(!this._canvas.isConnected)return;const{_colormap:e}=this,{RGBPoints:r}=e,n=r.length/4,i=x=>{const m=4*x;if(!(x<0||x>=n))return{index:x,position:r[m],color:[r[m+1],r[m+2],r[m+3]]}},{width:o,height:a}=this._canvas,s=this._canvas.getContext("2d");if(!s)return;const c=o>a,l=c?o:a,{_voiRange:f}=this,u=this._showFullImageRange?this._imageRange:{...f},{windowWidth:d}=w0(f.lower,f.upper);let h,g=i(0);const p=(u.upper-u.lower)/(l-1);let v=u.lower;for(let x=0;xG1e(Math.round(C*255),0,255));s.fillStyle=`rgb(${w[0]}, ${w[1]}, ${w[2]})`,c?s.fillRect(x,0,1,a):s.fillRect(0,a-x-1,o,1),v+=p}}}const Sc={FONT:"10px Arial",COLOR:"white",TICK_SIZE:5,TICK_WIDTH:1,TICK_LABEL_MARGIN:3,MAX_NUM_TICKS:8,TICKS_STEPS:[1,2.5,5,10]};class TS{constructor(e){TS.validateProps(e);const{top:r=0,left:n=0,size:i={width:20,height:100},imageRange:o={lower:0,upper:1},voiRange:a={lower:0,upper:1},ticks:s,container:c,showFullPixelValueRange:l=!1}=e,{style:f,position:u}=s??{};this._imageRange=o,this._voiRange=a,this._font=(f==null?void 0:f.font)??Sc.FONT,this._color=(f==null?void 0:f.color)??Sc.COLOR,this._tickSize=(f==null?void 0:f.tickSize)??Sc.TICK_SIZE,this._tickWidth=(f==null?void 0:f.tickWidth)??Sc.TICK_WIDTH,this._labelMargin=(f==null?void 0:f.labelMargin)??Sc.TICK_LABEL_MARGIN,this._maxNumTicks=(f==null?void 0:f.maxNumTicks)??Sc.MAX_NUM_TICKS,this._rangeTextPosition=u??Ai.Right,this._showFullPixelValueRange=l,this._canvas=this._createCanvasElement(i,r,n),c&&this.appendTo(c)}get size(){const{width:e,height:r}=this._canvas;return{width:e,height:r}}set size(e){const{_canvas:r}=this;!ym(e)||ZA(r,e)||(this._setCanvasSize(r,e),this.render())}get top(){return Number.parseInt(this._canvas.style.top)}set top(e){const{_canvas:r}=this,n=this.top;e!==n&&(r.style.top=`${e}px`,this.render())}get left(){return Number.parseInt(this._canvas.style.left)}set left(e){const{_canvas:r}=this,n=this.left;e!==n&&(r.style.left=`${e}px`,this.render())}get imageRange(){return{...this._imageRange}}set imageRange(e){!Pa(e)||Xd(e,this._imageRange)||(this._imageRange=e,this.render())}get voiRange(){return{...this._voiRange}}set voiRange(e){!Pa(e)||Xd(e,this._voiRange)||(this._voiRange=e,this.render())}get tickSize(){return this._tickSize}set tickSize(e){e!==this._tickSize&&(this._tickSize=e,this.render())}get tickWidth(){return this._tickWidth}set tickWidth(e){e!==this._tickWidth&&(this._tickWidth=e,this.render())}get color(){return this._color}set color(e){e!==this._color&&(this._color=e,this.render())}get showFullPixelValueRange(){return this._showFullPixelValueRange}set showFullPixelValueRange(e){e!==this._showFullPixelValueRange&&(this._showFullPixelValueRange=e,this.render())}get visible(){return this._canvas.style.display==="block"}set visible(e){e!==this.visible&&(this._canvas.style.display=e?"block":"none",e&&this.render())}appendTo(e){e.appendChild(this._canvas),this.render()}static validateProps(e){const{size:r,imageRange:n,voiRange:i}=e;if(r&&!ym(r))throw new Error('Invalid "size"');if(n&&!Pa(n))throw new Error('Invalid "imageRange"');if(i&&!Pa(i))throw new Error('Invalid "voiRange"')}_setCanvasSize(e,r){const{width:n,height:i}=r;e.width=n,e.height=i,Object.assign(e.style,{width:`${n}px`,height:`${i}px`})}_createCanvasElement(e,r,n){const i=document.createElement("canvas");return Object.assign(i.style,{display:"none",position:"absolute",boxSizing:"border-box",top:`${r}px`,left:`${n}px`}),this._setCanvasSize(i,e),i}_getTicks(e){const{lower:r,upper:n}=e,o=(n-r)/(this._maxNumTicks-1),a=Math.pow(10,-Math.floor(Math.log10(Math.abs(o)))),s=o*a,l=Sc.TICKS_STEPS.find(g=>g>=s)/a,f=Math.ceil(n/l)*l,u=Math.floor(r/l)*l,d=Math.round((f-u)/l)+1,h=[];for(let g=0;g=n,o=i?r:n,a=e.getContext("2d"),{_voiRange:s}=this,c=this._showFullPixelValueRange?this._imageRange:{...s},l=c.upper-c.lower,{ticks:f}=this._getTicks(c);a.clearRect(0,0,r,n),a.font=this._font,a.textBaseline="middle",a.fillStyle=this._color,a.strokeStyle=this._color,a.lineWidth=this.tickWidth,f.forEach(u=>{let d=Math.round(o*((u-c.lower)/l));if(i||(d=n-d),d<0||d>o)return;const h=u.toString(),g=a.measureText(h);let p;i?this._rangeTextPosition===Ai.Top?p=this._getTopTickInfo({position:d,labelMeasure:g}):p=this._getBottomTickInfo({position:d,labelMeasure:g}):this._rangeTextPosition===Ai.Left?p=this._getLeftTickInfo({position:d,labelMeasure:g}):p=this._getRightTickInfo({position:d});const{labelPoint:v,tickPoints:x}=p,{start:m,end:y}=x;return a.beginPath(),a.moveTo(m[0],m[1]),a.lineTo(y[0],y[1]),a.fillText(h,v[0],v[1]),a.stroke(),d})}}function W1e(t,e,r){return(t>=e?[Ai.Top,Ai.Bottom]:[Ai.Left,Ai.Right]).includes(r)}class z1e{constructor({id:e,container:r}){this._containerResizeCallback=n=>{let i,o;const{contentRect:a,contentBoxSize:s}=n[0];a?(i=a.width,o=a.height):s!=null&&s.length&&(i=s[0].inlineSize,o=s[0].blockSize),this._containerSize={width:i,height:o},this.onContainerResize()},this._id=e,this._containerSize={width:0,height:0},this._rootElement=this.createRootElement(e),this._containerResizeObserver=new ResizeObserver(this._containerResizeCallback),r&&this.appendTo(r)}get id(){return this._id}get rootElement(){return this._rootElement}appendTo(e){const{_rootElement:r,_containerResizeObserver:n}=this,{parentElement:i}=r;!e||e===i||(i&&n.unobserve(i),e.appendChild(r),n.observe(e))}destroy(){const{_rootElement:e,_containerResizeObserver:r}=this,{parentElement:n}=e;n==null||n.removeChild(e),r.disconnect()}get containerSize(){return{...this._containerSize}}createRootElement(e){const r=document.createElement("div");return r.id=e,r.classList.add("widget"),Object.assign(r.style,{width:"100%",height:"100%"}),r}onContainerResize(){}}const uf={MULTIPLIER:1,RANGE_TEXT_POSITION:Ai.Right,TICKS_BAR_SIZE:50};class Yd extends z1e{constructor(e){var r;super(e),this._isMouseOver=!1,this._isInteracting=!1,this._mouseOverCallback=n=>{this._isMouseOver=!0,this.showTicks(),n.stopPropagation()},this._mouseOutCallback=n=>{this._isMouseOver=!1,this.hideTicks(),n.stopPropagation()},this._mouseDownCallback=n=>{this._isInteracting=!0,this.showTicks(),this._addVOIEventListeners(n),n.stopPropagation()},this._mouseDragCallback=(n,i)=>{const o=this.getVOIMultipliers(),a=this._getPointsFromMouseEvent(n),{points:s,voiRange:c}=i,l=Io(ot(),a.local,s.local),f=l[0]*o[0],u=l[1]*o[1];if(!f&&!u)return;const{lower:d,upper:h}=c;let{windowWidth:g,windowCenter:p}=w0(d,h);g=Math.max(g+f,1),p+=u;const v=Bs(g,p);this.voiRange=v,n.stopPropagation(),n.preventDefault()},this._mouseUpCallback=n=>{this._isInteracting=!1,this.hideTicks(),this._removeVOIEventListeners(),n.stopPropagation()},this._eventListenersManager=new nR,this._colormaps=Yd.getColormapsMap(e),this._activeColormapName=Yd.getInitialColormapName(e),this._canvas=this._createCanvas(e),this._ticksBar=this._createTicksBar(e),this._rangeTextPosition=((r=e.ticks)==null?void 0:r.position)??uf.RANGE_TEXT_POSITION,this._canvas.appendTo(this.rootElement),this._ticksBar.appendTo(this.rootElement),this._addRootElementEventListeners()}get activeColormapName(){return this._activeColormapName}set activeColormapName(e){if(e===this._activeColormapName)return;const r=this._colormaps.get(e);if(!r){console.warn(`Invalid colormap name (${e})`);return}this._activeColormapName=e,this._canvas.colormap=r}get imageRange(){return this._canvas.imageRange}set imageRange(e){this._canvas.imageRange=e,this._ticksBar.imageRange=e}get voiRange(){return this._canvas.voiRange}set voiRange(e){const{voiRange:r}=this._canvas;!Pa(e)||Xd(e,r)||(this._canvas.voiRange=e,this._ticksBar.voiRange=e,this.onVoiChange(e))}get showFullImageRange(){return this._canvas.showFullImageRange}set showFullImageRange(e){this._canvas.showFullImageRange=e,this._ticksBar.showFullPixelValueRange=e}destroy(){super.destroy(),this._eventListenersManager.reset()}createRootElement(){const e=document.createElement("div");return Object.assign(e.style,{position:"relative",fontSize:"0",width:"100%",height:"100%"}),e}onContainerResize(){super.onContainerResize(),this.updateTicksBar(),this._canvas.size=this.containerSize}getVOIMultipliers(){return[uf.MULTIPLIER,uf.MULTIPLIER]}onVoiChange(e){}showTicks(){this.updateTicksBar(),this._ticksBar.visible=!0}hideTicks(){this._isInteracting||this._isMouseOver||(this._ticksBar.visible=!1)}static getColormapsMap(e){const{colormaps:r}=e;return r.reduce((n,i)=>n.set(i.Name,i),new Map)}static getInitialColormapName(e){const{activeColormapName:r,colormaps:n}=e;return!!r&&n.some(o=>o.Name===r)?r:n[0].Name}_createCanvas(e){const{imageRange:r,voiRange:n,showFullPixelValueRange:i}=e,o=this._colormaps.get(this._activeColormapName);return new SS({colormap:o,imageRange:r,voiRange:n,showFullPixelValueRange:i})}_createTicksBar(e){const r=e.ticks;return new TS({imageRange:e.imageRange,voiRange:e.voiRange,ticks:r,showFullPixelValueRange:e.showFullPixelValueRange})}_getPointsFromMouseEvent(e){const{rootElement:r}=this,n=[e.clientX,e.clientY],i=[e.pageX,e.pageY],o=r.getBoundingClientRect(),a=[i[0]-o.left-window.pageXOffset,i[1]-o.top-window.pageYOffset];return{client:n,page:i,local:a}}updateTicksBar(){const{width:e,height:r}=this.containerSize;if(e===0&&r===0)return;const{_ticksBar:n,_rangeTextPosition:i}=this,o=e>=r,a=o?e:uf.TICKS_BAR_SIZE,s=o?uf.TICKS_BAR_SIZE:r;if(!W1e(e,r,i))throw new Error("Invalid rangeTextPosition value for the current colobar orientation");let c,l;n.size={width:a,height:s},o?(l=0,c=i===Ai.Top?-s:r):(c=0,l=i===Ai.Left?-a:e),n.top=c,n.left=l}_addRootElementEventListeners(){const{_eventListenersManager:e}=this,{rootElement:r}=this;e.addEventListener(r,"mouseover",this._mouseOverCallback),e.addEventListener(r,"mouseout",this._mouseOutCallback),e.addEventListener(r,"mousedown",this._mouseDownCallback)}_addVOIEventListeners(e){const{_eventListenersManager:r}=this,n=this._getPointsFromMouseEvent(e),i={...this._canvas.voiRange},o={points:n,voiRange:i};this._removeVOIEventListeners(),r.addEventListener(document,"voi.mouseup",this._mouseUpCallback),r.addEventListener(document,"voi.mousemove",a=>this._mouseDragCallback(a,o))}_removeVOIEventListeners(){const{_eventListenersManager:e}=this;e.removeEventListener(document,"voi.mouseup"),e.removeEventListener(document,"voi.mousemove")}}const dy=4;function $1e(t,e,r){if(vR(t,e)==="PT"){const{clientWidth:i,clientHeight:o}=t.element,a=5/Math.max(i,o),s=is(t,e),{fixedPTWindowWidth:c=!0}={},l=c?0:a;return s?[l,a]:[l,dy]}return[dy,dy]}const{Events:Jg}=Po,Zg={lower:-1e3,upper:1e3};class cu extends Yd{constructor(e){const{element:r,volumeId:n}=e,i=cu._getImageRange(r,n),o=cu._getVOIRange(r,n);super({...e,imageRange:i,voiRange:o}),this.autoHideTicks=()=>{if(this._hideTicksTimeoutId)return;const a=this._hideTicksTime-Date.now();a<=0?this.hideTicks():this._hideTicksTimeoutId=window.setTimeout(()=>{this._hideTicksTimeoutId=0,this.autoHideTicks()},a)},this._stackNewImageCallback=()=>{this.imageRange=cu._getImageRange(this._element)},this._imageVolumeModifiedCallback=a=>{const{volumeId:s}=a.detail;if(s!==this._volumeId)return;const{_element:c}=this;this.imageRange=cu._getImageRange(c,s)},this._viewportVOIModifiedCallback=a=>{const{viewportId:s,volumeId:c,range:l,colormap:f}=a.detail,{viewport:u}=this.enabledElement;s!==u.id||c!==this._volumeId||(this.voiRange=l,f&&(this.activeColormapName=f.name),this.showAndAutoHideTicks())},this._viewportColormapModifiedCallback=a=>{const{viewportId:s,colormap:c,volumeId:l}=a.detail,{viewport:f}=this.enabledElement;s!==f.id||l!==this._volumeId||(this.activeColormapName=c.name)},this._element=r,this._volumeId=n,this._addCornerstoneEventListener()}get element(){return this._element}get enabledElement(){return ne(this._element)}getVOIMultipliers(){const{viewport:e}=this.enabledElement;return $1e(e,this._volumeId)}onVoiChange(e){super.onVoiChange(e);const{viewport:r}=this.enabledElement;if(r instanceof un)r.setProperties({voiRange:e}),r.render();else if(r instanceof sn){const{_volumeId:n}=this,i=Ch(n);r.setProperties({voiRange:e},n),i.forEach(o=>o.render())}}static _getImageRange(e,r){const n=ne(e),{viewport:i}=n,o=i.getImageActor(r);if(!o)return Zg;const s=o.getMapper().getInputData().getPointData().getScalars();let c;if(s)c=s.getRange();else{if(!r)throw new Error("volumeId is required when scalarData is not available");const l=Te.getVolume(r),[f,u]=l.voxelManager.getRange();c=[f,u]}return c[0]===0&&c[1]===0?Zg:{lower:c[0],upper:c[1]}}static _getVOIRange(e,r){const n=ne(e),{viewport:i}=n,o=i.getImageActor(r);if(!o)return Zg;const a=o.getProperty().getRGBTransferFunction(0).getRange();return a[0]===0&&a[1]===0?Zg:{lower:a[0],upper:a[1]}}showAndAutoHideTicks(e=1e3){this._hideTicksTime=Date.now()+e,this.showTicks(),this.autoHideTicks()}_addCornerstoneEventListener(){const{_element:e}=this;Ce.addEventListener(Jg.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedCallback),e.addEventListener(Jg.STACK_NEW_IMAGE,this._stackNewImageCallback),e.addEventListener(Jg.VOI_MODIFIED,this._viewportVOIModifiedCallback),e.addEventListener(Jg.COLORMAP_MODIFIED,this._viewportColormapModifiedCallback)}}const j1e=Object.freeze(Object.defineProperty({__proto__:null,Colorbar:Yd,Enums:U1e,ViewportColorbar:cu},Symbol.toStringTag,{value:"Module"}));function QA(t,e,r,n,i){const o=[];let a=0;const s=t.scalarData;let c,l,f;if(t.color)for(l=0;lwA(s,f),imageData:t})}function J1e(t,e,r){const[n,i]=t,o=Ye((n[0]+i[0])/2,(n[1]+i[1])/2,(n[2]+i[2])/2),a=Cr(n,i)/2;let s;if(!r){const c=B3(e,o),l=e.getSpacing(),f=Math.min(...l),u=Math.ceil(a/f);return s=[[c[0]-u,c[0]+u],[c[1]-u,c[1]+u],[c[2]-u,c[2]+u]],{boundsIJK:s,centerWorld:o,radiusWorld:a}}return s=Z1e(e,r,t,o,a),{boundsIJK:s,centerWorld:o,radiusWorld:a}}function Z1e(t,e,r,n,i){const[o,a]=r,s=t.getDimensions(),c=e.getCamera(),l=Ye(c.viewUp[0],c.viewUp[1],c.viewUp[2]),f=Ye(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),u=xe();qt(u,l,f);const d=xe(),h=xe();Vt(d,a,f,i),Vt(h,o,f,-i),Vt(d,d,u,-i),Vt(h,h,u,i);const g=[B3(t,d),B3(t,h)];return Zs(g,s)}const Q1e=xt,eme=Object.freeze(Object.defineProperty({__proto__:null,annotationFrameRange:R3,annotationHydration:Fle,boundingBox:Oge,calibrateImageSpacing:Ige,cine:o1e,contourSegmentation:zle,contours:npe,debounce:w2,drawing:ffe,dynamicVolume:V1e,getAnnotationNearPoint:Ege,getAnnotationNearPointOnEnabledElement:cA,getCalibratedAspect:HC,getCalibratedLengthUnitsAndScale:Bi,getCalibratedProbeUnitsAndValue:lm,getClosestImageIdForStackViewport:$C,getSphereBoundsInfo:uA,getViewportForAnnotation:zp,isObject:FC,math:wue,orientation:Ype,planar:bue,planarFreehandROITool:l1e,pointInSurroundingSphereCallback:Y1e,pointToString:jC,polyDataUtils:F1e,rectangleROITool:h1e,roundNumber:Q1e,segmentation:Kpe,stackContextPrefetch:O1e,stackPrefetch:S1e,throttle:ei,touch:Fce,triggerAnnotationRender:O0,triggerAnnotationRenderForToolGroupIds:XN,triggerAnnotationRenderForViewportIds:pe,triggerEvent:De,viewport:M1e,viewportFilters:Lue,voi:X1e},Symbol.toStringTag,{value:"Module"})),tme=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function nk(t,e){const r=Yt;t.forEach(n=>{r.updateSegmentation(n.segmentationId,n.payload),e||Di(n.segmentationId)})}function nme(t,e,r){Yt.setSegmentationRepresentationVisibility(t,e,r)}function rme(t,e,r){const n=Ti(t,e);n&&n.forEach(i=>{nme(t,{segmentationId:i.segmentationId,type:i.type},r)})}function ime(t,e){return YN(t,e)}function ome(t,e,r,n){const i=Ti(t,e);i&&(i.forEach(o=>{o.segments[r].visible=n}),M2(e.segmentationId),Yo(t,e.segmentationId))}function ame(t,e,r){return!rk(t,e).has(r)}function rk(t,e){const r=y2(t,e);return r?Object.entries(r.segments).reduce((i,[o,a])=>(a.visible||i.add(Number(o)),i),new Set):new Set}const sme=Object.freeze(Object.defineProperty({__proto__:null,getHiddenSegmentIndices:rk,getSegmentIndexVisibility:ame,getSegmentationRepresentationVisibility:ime,setSegmentIndexVisibility:ome,setSegmentationRepresentationVisibility:rme},Symbol.toStringTag,{value:"Module"}));function cme(t){return Fi.getStyle(t)}function lme(t,e){Fi.setStyle(t,e),!t.viewportId&&!t.segmentationId&&R2().forEach(n=>{L0(n.segmentationId)}),Yo(t.viewportId,t.segmentationId,t.type)}function ume(t,e){Fi.setRenderInactiveSegmentations(t,e),L0(t),vP(t).forEach(n=>{Yo(t,n.segmentationId)})}function fme(t){return Fi.getRenderInactiveSegmentations(t)}function dme(){Fi.resetToGlobalStyle(),L0()}function hme(t){return Fi.hasCustomStyle(t)}const gme=Object.freeze(Object.defineProperty({__proto__:null,getRenderInactiveSegmentations:fme,getStyle:cme,hasCustomStyle:hme,resetToGlobalStyle:dme,setRenderInactiveSegmentations:ume,setStyle:lme},Symbol.toStringTag,{value:"Module"})),pme=Object.freeze(Object.defineProperty({__proto__:null,color:Mle,style:gme,visibility:sme},Symbol.toStringTag,{value:"Module"}));function xm(t,e){const r=Ct(t);typeof e=="string"&&(console.warn("segmentIndex is a string, converting to number"),e=Number(e)),Object.values(r.segments).forEach(i=>{i.active=!1}),r.segments[e]||(r.segments[e]={segmentIndex:e,label:"",locked:!1,cachedStats:{},active:!1}),r.segments[e].active!==!0&&(r.segments[e].active=!0,Di(t));const n=I0(t);n.forEach(i=>{Ti(i,{segmentationId:t}).forEach(a=>{a.segments[e]||(a.segments[e]={visible:!0})})}),n.forEach(i=>{const o=Cn(i);MA(o.id)})}const mme=Object.freeze(Object.defineProperty({__proto__:null,getActiveSegmentIndex:Lo,setActiveSegmentIndex:xm},Symbol.toStringTag,{value:"Module"}));async function vme(t){const e=cle(t);return Di(t.segmentationId),e}const yme=Object.freeze(Object.defineProperty({__proto__:null,canComputeRequestedRepresentation:x2,computeAndAddContourRepresentation:ZN,computeAndAddLabelmapRepresentation:aP,computeAndAddSurfaceRepresentation:uN},Symbol.toStringTag,{value:"Module"}));function ik(t,e){const r=Ct(t);if(r.representationData.Labelmap){const{representationData:n}=r,i=n.Labelmap;("imageIds"in i||"volumeId"in i)&&("imageIds"in i?i.imageIds.map(a=>Te.getImage(a)):[Te.getVolume(i.volumeId)]).forEach(a=>{if(!a)return;const{voxelManager:s}=a;s.forEach(({value:c,index:l})=>{c===e&&s.setAtIndex(l,0)})}),Ei(t)}else throw new Error("Invalid segmentation type, only labelmap is supported right now")}function xme(t,e,r={setNextSegmentAsActive:!0}){ik(t,e);const n=Lo(t)===e,i=Ct(t),{segments:o}=i;delete o[e];const a={...o};if(nk([{segmentationId:t,payload:{segments:a}}]),n&&r.setNextSegmentAsActive){const c=Object.keys(o).map(Number).sort((d,h)=>d-h),l=c.indexOf(e),f=c[l+1],u=c[l-1];f!==void 0?xm(t,f):u!==void 0&&xm(t,u)}I0(t).forEach(c=>{Ti(c,{segmentationId:t}).forEach(f=>{delete f.segments[e]})})}function wme(t){const e=Yt,r=Ct(t);return e.getLabelmapImageIds(r.representationData)}const Cme={clearSegmentValue:ik,convertStackToVolumeLabelmap:vme,computeVolumeLabelmapFromStack:lN,convertVolumeToStackLabelmap:Dde},Sme=Object.freeze(Object.defineProperty({__proto__:null,activeSegmentation:gde,addContourRepresentationToViewport:rP,addContourRepresentationToViewportMap:Cde,addLabelmapRepresentationToViewport:iP,addLabelmapRepresentationToViewportMap:Sde,addSegmentationRepresentations:R0,addSegmentations:lP,addSurfaceRepresentationToViewport:oP,addSurfaceRepresentationToViewportMap:Tde,config:pme,getLabelmapImageIds:wme,helpers:Cme,polySeg:yme,removeAllSegmentationRepresentations:dP,removeAllSegmentations:mP,removeContourRepresentation:gP,removeLabelmapRepresentation:hP,removeSegment:xme,removeSegmentation:cS,removeSegmentationRepresentation:N0,removeSegmentationRepresentations:uP,removeSurfaceRepresentation:pP,segmentIndex:mme,segmentLocking:Xfe,state:$de,triggerSegmentationEvents:ele,updateSegmentations:nk},Symbol.toStringTag,{value:"Module"}));class n0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r)}touchDragCallback(e){this._dragCallback(e)}mouseDragCallback(e){this._dragCallback(e)}_dragCallback(e){const{element:r,deltaPoints:n}=e.detail,i=ne(r),o=n.world;if(o[0]===0&&o[1]===0&&o[2]===0)return;const a=i.viewport.getCamera(),{focalPoint:s,position:c}=a,l=[c[0]-o[0],c[1]-o[1],c[2]-o[2]],f=[s[0]-o[0],s[1]-o[1],s[2]-o[2]];i.viewport.setCamera({focalPoint:f,position:l}),i.viewport.render()}}n0.toolName="Pan";class ok extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{rotateIncrementDegrees:2}}){super(e,r),this._resizeObservers=new Map,this._hasResolutionChanged=!1,this.preMouseDownCallback=n=>{const i=n.detail,{element:o}=i,a=ne(o),{viewport:s}=a,f=s.getDefaultActor().actor.getMapper();if(!("getSampleDistance"in f||"getCurrentSampleDistance"in f))return!0;const d=f.getSampleDistance();return this._hasResolutionChanged||(f.setSampleDistance(d*2),this._hasResolutionChanged=!0,this.cleanUp!==null&&document.removeEventListener("mouseup",this.cleanUp),this.cleanUp=()=>{f.setSampleDistance(d),s.render(),this._hasResolutionChanged=!1},document.addEventListener("mouseup",this.cleanUp,{once:!0})),!0},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.onSetToolActive=()=>{const n=()=>{this._getViewportsInfo().forEach(({viewportId:o,renderingEngineId:a})=>{if(!this._resizeObservers.has(o)){const{viewport:s}=fr(o,a)||{viewport:null};if(!s)return;const{element:c}=s,l=new ResizeObserver(()=>{const f=fr(o,a);if(!f)return;const{viewport:u}=f;u.resetCamera(),u.render()});l.observe(c),this._resizeObservers.set(o,l)}})};n(),this._viewportAddedListener=i=>{i.detail.toolGroupId===this.toolGroupId&&n()},Ce.addEventListener(F.TOOLGROUP_VIEWPORT_ADDED,this._viewportAddedListener)},this.onSetToolDisabled=()=>{this._resizeObservers.forEach((n,i)=>{n.disconnect(),this._resizeObservers.delete(i)}),this._viewportAddedListener&&(Ce.removeEventListener(F.TOOLGROUP_VIEWPORT_ADDED,this._viewportAddedListener),this._viewportAddedListener=null)},this.rotateCamera=(n,i,o,a)=>{const s=n.getVtkActiveCamera(),c=s.getViewUp(),l=s.getFocalPoint(),f=s.getPosition(),u=[0,0,0],d=[0,0,0],h=[0,0,0],g=qe(new Float32Array(16));rn(g,g,i),Kr(g,g,a,o),rn(g,g,[-i[0],-i[1],-i[2]]),et(u,f,g),et(d,l,g),qe(g),Kr(g,g,a,o),et(h,c,g),n.setCamera({position:u,viewUp:h,focalPoint:d})},this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_dragCallback(e){const{element:r,currentPoints:n,lastPoints:i}=e.detail,o=n.canvas,a=i.canvas,{rotateIncrementDegrees:s}=this.configuration,c=ne(r),{viewport:l}=c,f=l.getCamera(),u=r.clientWidth,d=r.clientHeight,h=[o[0]/u,o[1]/d],g=[a[0]/u,a[1]/d],p=[u*.5,d*.5],v=l.canvasToWorld(p),m=(1+Math.abs([.5,.5][0]))**2,y=[g[0],0,0],w=[h[0],0,0],C=y[0]**2,S=w[0]**2,T=C>m?0:Math.sqrt(m-C),_=S>m?0:Math.sqrt(m-S),E=[y[0],0,T];nt.normalize(E);const D=[w[0],0,_];nt.normalize(D);const b=nt.dot(E,D);if(Math.abs(b)>1e-4){const I=-2*Math.acos(nt.clampValue(b,-1,1))*Math.sign(h[0]-g[0])*s,R=f.viewUp,M=f.viewPlaneNormal,L=[0,0,0],A=[0,0,0];nt.cross(R,M,L),nt.normalize(L),nt.cross(M,L,A),nt.normalize(A),nt.normalize(R),this.rotateCamera(l,v,A,I);const G=(g[1]-h[1])*s;this.rotateCamera(l,v,L,G),l.render()}}}ok.toolName="TrackballRotate";const hy=4,Tme=1024,_me="PT";class r0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this._getImageDynamicRangeFromMiddleSlice=(n,i)=>{const o=Math.floor(i[2]/2),a=i[0]*i[1];let s,c;n instanceof Float32Array?(s=4,c=Float32Array):n instanceof Uint8Array?(s=1,c=Uint8Array):n instanceof Uint16Array?(s=2,c=Uint16Array):n instanceof Int16Array&&(s=2,c=Int16Array);const l=n.buffer,f=o*a*s,u=new c(l,f,a),{max:d,min:h}=this._getMinMax(u,a);return d-h}}touchDragCallback(e){this.mouseDragCallback(e)}mouseDragCallback(e){var g,p;const{element:r,deltaPoints:n}=e.detail,i=ne(r),{viewport:o}=i;let a,s,c,l,f,u,d=!1;const h=o.getProperties();if(o instanceof sn){a=o.getVolumeId(),u=Ch(a),{lower:s,upper:c}=h.voiRange;const v=Te.getVolume(a);if(!v)throw new Error("Volume not found "+a);l=v.metadata.Modality,d=v.scaling&&Object.keys(v.scaling).length>0}else if(h.voiRange){l=o.modality,{lower:s,upper:c}=h.voiRange;const{preScale:v={scaled:!1}}=((g=o.getImageData)==null?void 0:g.call(o))||{};d=v.scaled&&((p=v.scalingParameters)==null?void 0:p.suvbw)!==void 0}else throw new Error("Viewport is not a valid type");if(l===_me&&d?f=this.getPTScaledNewRange({deltaPointsCanvas:n.canvas,lower:s,upper:c,clientHeight:r.clientHeight,isPreScaled:d,viewport:o,volumeId:a}):f=this.getNewRange({viewport:o,deltaPointsCanvas:n.canvas,volumeId:a,lower:s,upper:c}),!(f.lower>=f.upper)&&(o.setProperties({voiRange:f}),o.render(),o instanceof sn)){u.forEach(v=>{o!==v&&v.render()});return}}getPTScaledNewRange({deltaPointsCanvas:e,lower:r,upper:n,clientHeight:i,viewport:o,volumeId:a,isPreScaled:s}){let c=hy;s?c=5/i:c=this._getMultiplierFromDynamicRange(o,a)||hy;const f=e[1]*c;return n-=f,n=s?Math.max(n,.1):n,{lower:r,upper:n}}getNewRange({viewport:e,deltaPointsCanvas:r,volumeId:n,lower:i,upper:o}){const a=this._getMultiplierFromDynamicRange(e,n)||hy,s=r[0]*a,c=r[1]*a;let{windowWidth:l,windowCenter:f}=w0(i,o);return l+=s,f+=c,l=Math.max(l,1),Bs(l,f)}_getMultiplierFromDynamicRange(e,r){var o;let n;if(r){const a=Te.getVolume(r),{voxelManager:s}=e.getImageData(),l=s.getMiddleSliceData().reduce((d,h)=>[Math.min(d[0],h),Math.max(d[1],h)],[1/0,-1/0]),f=(o=a==null?void 0:a.metadata)==null?void 0:o.BitsStored,u=f?2**f:1/0;n=Math.min(l,u)}else n=this._getImageDynamicRangeFromViewport(e);const i=n/Tme;return i>1?Math.round(i):i}_getImageDynamicRangeFromViewport(e){const{imageData:r,voxelManager:n}=e.getImageData();if(n!=null&&n.getRange){const s=n.getRange();return s[1]-s[0]}const i=r.getDimensions();if(r.getRange){const s=r.getRange();return s[1]-s[0]}let o;if(r.getScalarData?o=r.getScalarData():o=r.getPointData().getScalars().getData(),i[2]!==1)return this._getImageDynamicRangeFromMiddleSlice(o,i);let a;if(o.getRange)a=o.getRange();else{const{min:s,max:c}=this._getMinMax(o,o.length);a=[s,c]}return a[1]-a[0]}_getMinMax(e,r){let n=1/0,i=-1/0;for(let o=0;oi&&(i=a)}return{max:i,min:n}}}r0.toolName="WindowLevel";class ak extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{minWindowWidth:10}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(l,s,u,d),g=l.getFrameOfReferenceUID(),p={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:g,referencedImageId:h},data:{handles:{points:[[...s],[...s],[...s],[...s]]},cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v},this._activateDraw(a),Ze(a),n.preventDefault(),pe(v),p},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData;this._deactivateDraw(o),lt(o),this.editData=null,this.isDrawing=!1,Ot(a.annotationUID),pe(s),tn(a),this.applyWindowLevelRegion(a,o)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData,{data:c}=a,{currentPoints:l}=i,f=ne(o),{worldToCanvas:u,canvasToWorld:d}=f.viewport,h=l.world,{points:g}=c.handles,p=3;g[p]=[...h];const v=u(g[0]),x=u(g[3]),m=[x[0],v[1]],y=[v[0],x[1]],w=d(m),C=d(y);g[1]=w,g[2]=C,a.invalidated=!0,pe(s)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(C));l.annotationUID=d;const{color:v,lineWidth:x,lineDash:m}=this.getAnnotationStyle({annotation:u,styleSpecifier:l});if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const y=`${d}-rect`;Rh(i,d,"0",p[0],p[3],{color:v,lineDash:m,lineWidth:x},y),o=!0}return o},this.applyWindowLevelRegion=(n,i)=>{const o=ne(i),{viewport:a}=o,s=tk(a),{data:c}=n,{points:l}=c.handles,f=l.map(S=>a.worldToCanvas(S)),u=f[0],d=f[3];let h=Math.min(u[0],d[0]),g=Math.min(u[1],d[1]),p=Math.abs(u[0]-d[0]),v=Math.abs(u[1]-d[1]);h=J1(h,0,s.width),g=J1(g,0,s.height),p=Math.floor(Math.min(p,Math.abs(s.width-h))),v=Math.floor(Math.min(v,Math.abs(s.height-g)));const x=QA(s,Math.round(h),Math.round(g),p,v),m=ek(x,s.minPixelValue,s.maxPixelValue);this.configuration.minWindowWidth===void 0&&(this.configuration.minWindowWidth=10);const y=Math.max(Math.abs(m.max-m.min),this.configuration.minWindowWidth),w=m.mean,C=Bs(y,w);a.setProperties({voiRange:C}),a.render()},this.cancel=()=>null,this.isPointNearTool=()=>null,this.toolSelectedCallback=()=>null,this.handleSelectedCallback=()=>null,this._activateModify=()=>null,this._deactivateModify=()=>null}}ak.toolName="WindowLevelRegion";class vl extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0,loop:!1}}){super(e,r),this.deltaY=1}mouseWheelCallback(e){this._scroll(e)}mouseDragCallback(e){this._dragCallback(e)}touchDragCallback(e){this._dragCallback(e)}_dragCallback(e){this._scrollDrag(e)}_scrollDrag(e){const{deltaPoints:r,viewportId:n,renderingEngineId:i}=e.detail,{viewport:o}=fr(n,i),{debounceIfNotLoaded:a,invert:s,loop:c}=this.configuration,l=r.canvas[1];let f;o instanceof sn&&(f=o.getVolumeId());const u=this._getPixelPerImage(o),d=l+this.deltaY;if(u)if(Math.abs(d)>=u){const h=Math.round(d/u);ul(o,{delta:s?-h:h,volumeId:f,debounceLoading:a,loop:c}),this.deltaY=d%u}else this.deltaY=d}_scroll(e){const{wheel:r,element:n}=e.detail,{direction:i}=r,{invert:o}=this.configuration,{viewport:a}=ne(n),s=i*(o?-1:1);ul(a,{delta:s,debounceLoading:this.configuration.debounceIfNotLoaded,loop:this.configuration.loop,volumeId:a instanceof Rn?a.getVolumeId():void 0,scrollSlabs:this.configuration.scrollSlabs})}_getPixelPerImage(e){const{element:r}=e,n=e.getNumberOfSlices();return Math.max(2,r.offsetHeight/Math.max(n,8))}}vl.toolName="StackScroll";function Eme(t,e){const[r,n]=t,[i,o]=e,a=en(xe(),n,r),s=en(xe(),i,o),c=je(a,s),l=ui(a),f=ui(s),u=c/(l*f);return Math.acos(u)*180/Math.PI}function Dme(t,e){const[r,n]=t,[i,o]=e,a=Io(ot(),n,r),s=Io(ot(),i,o),c=Tw(a,s),l=B5(a),f=B5(s),u=c/(l*f);return Math.acos(u)*(180/Math.PI)}function Zf(t,e){return t[0].length===3?Eme(t,e):Dme(t,e)}class i0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.mouseWheelCallback=n=>{const{element:i,wheel:o}=n.detail,a=ne(i),{viewport:s}=a,{invert:c}=this.configuration,l=o.direction*10*(c?-1:1);this.setAngle(s,l)},this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_dragCallback(e){const{element:r,currentPoints:n,startPoints:i}=e.detail,o=n.world,a=i.world,s=ne(r),{viewport:c}=s,l=c.getCamera(),f=r.clientWidth,u=r.clientHeight,d=[f*.5,u*.5],h=c.canvasToWorld(d);let g=Zf([a,h],[h,o]);const{viewPlaneNormal:p}=l,v=en(xe(),h,a),x=en(xe(),h,o),m=qt(xe(),v,x);je(p,m)>0&&(g=-g),!Number.isNaN(g)&&this.setAngle(c,g)}setAngle(e,r){const{viewPlaneNormal:n,viewUp:i}=e.getCamera();if(e instanceof Rn){const o=(r+360)%360*Math.PI/180,a=qe(new Float32Array(16));Kr(a,a,o,n);const s=et(xe(),i,a);e.setCamera({viewUp:s})}else{const{rotation:o}=e.getViewPresentation();e.setViewPresentation({rotation:(o+r+360)%360})}e.render()}}i0.toolName="PlanarRotate";class o0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{zoomToCenter:!1,minZoomScale:.001,maxZoomScale:3e3,pinchToZoom:!0,pan:!0,invert:!1}}){super(e,r),this.preMouseDownCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=a.world,l=ne(o).viewport.getCamera(),{focalPoint:f}=l;this.initialMousePosWorld=s;let u=Ye(f[0]-s[0],f[1]-s[1],f[2]-s[2]);return u=an(xe(),u),this.dirVec=u,!1},this.preTouchStartCallback=n=>{if(!this.configuration.pinchToZoom)return this.preMouseDownCallback(n)},this._dragParallelProjection=(n,i,o,a=!1)=>{const{element:s,deltaPoints:c}=n.detail,l=a?n.detail.deltaDistance.canvas:c.canvas[1],f=[s.clientWidth,s.clientHeight],{parallelScale:u,focalPoint:d,position:h}=o,g=5/f[1],p=l*g*(this.configuration.invert?-1:1),v=(1-p)*u;let x=d,m=h;if(!this.configuration.zoomToCenter){const b=Cr(d,this.initialMousePosWorld);m=Vt(xe(),h,this.dirVec,-b*p),x=Vt(xe(),d,this.dirVec,-b*p)}const y=i.getImageData();let w=[1,1,1];y&&(w=y.spacing);const{minZoomScale:C,maxZoomScale:S}=this.configuration,T=s.clientHeight*w[1]*.5,_=T/v;let E=v,D=!1;y&&(_=S&&(E=T/S,D=!0)),i.setCamera({parallelScale:E,focalPoint:D?d:x,position:D?h:m})},this._dragPerspectiveProjection=(n,i,o,a=!1)=>{const{element:s,deltaPoints:c}=n.detail,l=a?n.detail.deltaDistance.canvas:c.canvas[1],f=[s.clientWidth,s.clientHeight],{position:u,focalPoint:d,viewPlaneNormal:h}=o,g=nt.distance2BetweenPoints(u,d),p=Math.sqrt(g)/f[1],v=[-h[0],-h[1],-h[2]],x=this.configuration.invert?l/p:l*p;let m=x*v[0];u[0]+=m,d[0]+=m,m=x*v[1],u[1]+=m,d[1]+=m,m=x*v[2],u[2]+=m,d[2]+=m,i.setCamera({position:u,focalPoint:d})},this.initialMousePosWorld=[0,0,0],this.dirVec=[0,0,0],this.configuration.pinchToZoom?this.touchDragCallback=this._pinchCallback.bind(this):this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_pinchCallback(e){if(e.detail.currentPointsList.length>1){const{element:n,currentPoints:i}=e.detail,o=ne(n),{viewport:a}=o,s=a.getCamera(),c=i.world,{focalPoint:l}=s;this.initialMousePosWorld=c;let f=Ye(l[0]-c[0],l[1]-c[1],l[2]-c[2]);f=an(xe(),f),this.dirVec=f,s.parallelProjection?this._dragParallelProjection(e,a,s,!0):this._dragPerspectiveProjection(e,a,s,!0),a.render()}this.configuration.pan&&this._panCallback(e)}_dragCallback(e){const{element:r}=e.detail,n=ne(r),{viewport:i}=n,o=i.getCamera();o.parallelProjection?this._dragParallelProjection(e,i,o):this._dragPerspectiveProjection(e,i,o),i.render()}_panCallback(e){const{element:r,deltaPoints:n}=e.detail,i=ne(r),o=n.world,a=i.viewport.getCamera(),{focalPoint:s,position:c}=a,l=[c[0]-o[0],c[1]-o[1],c[2]-o[2]],f=[s[0]-o[0],s[1]-o[1],s[2]-o[2]];i.viewport.setCamera({focalPoint:f,position:l}),i.viewport.render()}}o0.toolName="Zoom";class sk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}}){super(e,r)}mouseClickCallback(e){const{element:r,currentPoints:n}=e.detail,i=ne(r),{viewport:o,renderingEngine:a}=i,s=o.getVolumeId();if(!s)throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");let c=-1/0;const l=(g,p)=>{if(g>c)return c=g,p},f=eS(o,n.world,s,l);if(!f||!f.length)return;const{targetViewportIds:u,toolGroupId:d}=this.configuration;a.getViewports().filter(g=>{if((u==null?void 0:u.indexOf(g.id))>=0)return!0;const p=Cn(g.id,a.id);return!!(d&&d===(p==null?void 0:p.id))}).forEach(g=>{g instanceof sn?g.jumpToWorld(f):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")})}}sk.toolName="MIPJumpToClickTool";const{RENDERING_DEFAULTS:gy}=Cl;function bme(){return"rgb(0, 200, 0)"}function Ime(){return!0}function Ome(){return!0}function Mme(){return!0}const ho={DRAG:1,ROTATE:2,SLAB:3};class Ho extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!1,viewportIndicatorsConfig:{radius:5,x:null,y:null},autoPan:{enabled:!1,panSize:10},referenceLinesCenterGapRadius:20,filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:Gu.MAXIMUM_INTENSITY_BLEND,mobile:{enabled:!1,opacity:.8,handleRadius:9}}}){var n,i,o,a;super(e,r),this.toolCenter=[0,0,0],this.initializeViewport=({renderingEngineId:s,viewportId:c})=>{const l=fr(c,s),{FrameOfReferenceUID:f,viewport:u}=l,{element:d}=u,{position:h,focalPoint:g,viewPlaneNormal:p}=u.getCamera();let v=this._getAnnotations(l);v=this.filterInteractableAnnotationsForElement(d,v),v.length&&Ot(v[0].annotationUID);const x={highlighted:!1,metadata:{cameraPosition:[...h],cameraFocalPoint:[...g],FrameOfReferenceUID:f,toolName:this.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:this.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:c}};return Ut(x,d),{normal:p,point:u.canvasToWorld([u.canvas.clientWidth/2,u.canvas.clientHeight/2])}},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.resetCrosshairs=()=>{const s=this._getViewportsInfo();for(const c of s){const{viewportId:l,renderingEngineId:f}=c,u=fr(l,f),d=u.viewport;d.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetRotation:!0,suppressEvents:!0}),d.resetSlabThickness();const{element:m}=d;let y=this._getAnnotations(u);y=this.filterInteractableAnnotationsForElement(m,y),y.length&&Ot(y[0].annotationUID),d.render()}this.computeToolCenter(s)},this.computeToolCenter=s=>{if(!s.length||s.length===1){console.warn("For crosshairs to operate, at least two viewports must be given.");return}const[c,l,f]=s,{normal:u,point:d}=this.initializeViewport(c),{normal:h,point:g}=this.initializeViewport(l);let p=[0,0,0],v=xe();f?{normal:p,point:v}=this.initializeViewport(f):(xn(v,d,g),cr(v,v,.5),qt(p,u,h));const x=Ua(u,d),m=Ua(h,g),y=Ua(p,v);this.toolCenter=kM(x,m,y),pe(s.map(({viewportId:w})=>w))},this.addNewAnnotation=s=>{const c=s.detail,{element:l}=c,{currentPoints:f}=c,u=f.world,d=ne(l),{viewport:h}=d;this._jump(d,u);const g=this._getAnnotations(d),p=this.filterInteractableAnnotationsForElement(h.element,g),{data:v}=p[0],{rotationPoints:x}=v.handles,m=[];for(let y=0;y{console.log("Not implemented yet")},this.handleSelectedCallback=(s,c)=>{const l=s.detail,{element:f}=l;c.highlighted=!0,this._activateModify(f),Ze(f),s.preventDefault()},this.isPointNearTool=(s,c,l,f)=>!!this._pointNearTool(s,c,l,6),this.toolSelectedCallback=(s,c,l)=>{const f=s.detail,{element:u}=f;c.highlighted=!0,this._activateModify(u),Ze(u),s.preventDefault()},this.onCameraModified=s=>{var E;const c=s.detail,{element:l}=c,f=ne(l),{renderingEngine:u}=f,d=f.viewport,h=this._getAnnotations(f),p=this.filterInteractableAnnotationsForElement(l,h)[0];if(!p)return;const v=d.getCamera(),x=p.metadata.cameraPosition,m=[0,0,0];nt.subtract(v.position,x,m);const y=p.metadata.cameraFocalPoint,w=[0,0,0];nt.subtract(v.focalPoint,y,w),p.metadata.cameraPosition=[...v.position],p.metadata.cameraFocalPoint=[...v.focalPoint];const C=this._getReferenceLineControllable(d.id),S=this._getReferenceLineDraggableRotatable(d.id);if(!mt(v.position,x,.001)&&C&&S){let D=!1;mt(m,w,.001)||(D=!0);const I=Math.abs(nt.dot(m,v.viewPlaneNormal))<.01;!D&&!I&&(this.toolCenter[0]+=m[0],this.toolCenter[1]+=m[1],this.toolCenter[2]+=m[2])}(E=this.configuration.autoPan)!=null&&E.enabled&&Cn(d.id,u.id).getViewportIds().filter(I=>I!==d.id).forEach(I=>{this._autoPanViewportIfNecessary(I,u)});const _=He(l,this.getToolName(),!1);pe(_)},this.onResetCamera=s=>{this.resetCrosshairs()},this.mouseMoveCallback=(s,c)=>{const{element:l,currentPoints:f}=s.detail,u=f.canvas;let d=!1;for(let h=0;h0?[...p.activeViewportIds]:[];p.activeViewportIds=[],p.handles.activeOperation=null;const y=this.getHandleNearImagePoint(l,g,u,6);let w=!1;y?w=!0:w=this._pointNearTool(l,g,u,6),w&&!v||!w&&v?(g.highlighted=!v,d=!0):(p.handles.activeOperation!==x||!this._areViewportIdArraysEqual(p.activeViewportIds,m))&&(d=!0)}return d},this.filterInteractableAnnotationsForElement=(s,c)=>{if(!c||!c.length)return[];const l=ne(s),{viewportId:f}=l;return c.filter(d=>d.data.viewportId===f)},this.renderAnnotation=(s,c)=>{let l=!1;const{viewport:f,renderingEngine:u}=s,{element:d}=f,h=this._getAnnotations(s),g=f.getCamera(),v=this.filterInteractableAnnotationsForElement(d,h)[0];if(!(h!=null&&h.length)||!(v!=null&&v.data))return l;const x=v.annotationUID,{clientWidth:m,clientHeight:y}=f.canvas,w=Math.sqrt(m*m+y*y),C=Math.min(m,y),S=v.data,T=f.worldToCanvas(this.toolCenter),_=this._filterAnnotationsByUniqueViewportOrientations(s,h),E=[],D=[0,0,m,y];_.forEach(L=>{const{data:A}=L;A.handles.toolCenter=this.toolCenter;const G=u.getViewport(A.viewportId),P=G.getCamera(),N=this._getReferenceLineControllable(G.id),V=this._getReferenceLineDraggableRotatable(G.id),$=this._getReferenceLineSlabThicknessControlsOn(G.id),{clientWidth:j,clientHeight:Y}=G.canvas,te=Math.sqrt(j*j+Y*Y),Q=[j*.5,Y*.5],re=G.canvasToWorld(Q),de=[0,0,0];nt.cross(g.viewPlaneNormal,P.viewPlaneNormal,de),nt.normalize(de),nt.multiplyScalar(de,te);const fe=[0,0,0];nt.add(re,de,fe);const se=[0,0,0];nt.subtract(re,de,se);const k=f.worldToCanvas(fe),O=f.worldToCanvas(re),B=ot();kn(B,k,O),La(B,B);const U=ot();Ea(U,B,w*100);const z=ot();Ea(z,B,C*.4);const H=ot();Ea(H,B,C*.2);const K=ot(),ie=this.configuration.referenceLinesCenterGapRadius;Ea(K,B,_.length===2?ie:0);const he=ot(),ye=ot(),Ee=ot(),X=ot();let J=og(T);(!V||!N)&&(J=og(O)),Nr(he,J,K),Nr(ye,J,U),kn(Ee,J,K),kn(X,J,U),Rf(he,ye,D),Rf(Ee,X,D);const oe=ot();kn(oe,T,z);const Z=ot();Nr(Z,T,z);let ee=og(T);!V&&$&&(ee=og(O));let ve=[...this.toolCenter];!V&&$&&(ve=[...re]);const q=[0,0,0];nt.subtract(fe,se,q),nt.normalize(q);const{viewPlaneNormal:Ae}=g,{matrix:Be}=Ir.buildFromDegree().rotate(90,Ae),ke=[0,0,0];et(ke,q,Be);const le=G.getSlabThickness(),_e=[...ke];nt.multiplyScalar(_e,le);const Me=[0,0,0];nt.add(ve,_e,Me);const Re=f.worldToCanvas(Me),We=ot();kn(We,ee,Re);const ut=ot();kn(ut,ee,U),Nr(ut,ut,We);const ze=ot();Nr(ze,ee,U),Nr(ze,ze,We),Rf(ut,ze,D);const st=ot();Nr(st,ee,U),kn(st,st,We);const ht=ot();kn(ht,ee,U),kn(ht,ht,We),Rf(st,ht,D);const Wt=ot(),Sn=ot(),zt=ot(),gr=ot();kn(Wt,ee,H),Nr(Wt,Wt,We),Nr(Sn,ee,H),Nr(Sn,Sn,We),kn(zt,ee,H),kn(zt,zt,We),Nr(gr,ee,H),kn(gr,gr,We),E.push([G,he,ye,Ee,X,ut,ze,st,ht,oe,Z,Wt,Sn,zt,gr])});const b=[],I=[],R=this._getReferenceLineColor(f.id),M=R!==void 0?R:"rgb(200, 200, 200)";if(E.forEach((L,A)=>{var de,fe,se,k,O,B,U,z,H,K,ie,he,ye,Ee,X,J,oe,Z,ee;const G=L[0],P=this._getReferenceLineColor(G.id),N=this._getReferenceLineControllable(G.id),V=this._getReferenceLineDraggableRotatable(G.id)||((de=this.configuration.mobile)==null?void 0:de.enabled),$=this._getReferenceLineSlabThicknessControlsOn(G.id)||((fe=this.configuration.mobile)==null?void 0:fe.enabled),j=S.activeViewportIds.find(ve=>ve===G.id);let Y=P!==void 0?P:"rgb(200, 200, 200)",te=1;const Q=S.handles.activeOperation!==null&&S.handles.activeOperation===ho.DRAG&&j;Q&&(te=2.5);let re=`${A}`;if(N&&V?(re=`${A}One`,It(c,x,re,L[1],L[2],{color:Y,lineWidth:te}),re=`${A}Two`,It(c,x,re,L[3],L[4],{color:Y,lineWidth:te})):It(c,x,re,L[2],L[4],{color:Y,lineWidth:te}),N){Y=P!==void 0?P:"rgb(200, 200, 200)";const ve=S.handles.activeOperation===ho.ROTATE,q=[L[9],L[10]],Ae=[f.canvasToWorld(L[9]),G,L[1],L[2]],Be=[f.canvasToWorld(L[10]),G,L[3],L[4]];b.push(Ae,Be);const ke=S.handles.activeOperation===ho.SLAB,le=[L[11],L[12],L[13],L[14]],_e=[f.canvasToWorld(L[11]),G,L[5],L[6]],Me=[f.canvasToWorld(L[12]),G,L[5],L[6]],Re=[f.canvasToWorld(L[13]),G,L[7],L[8]],We=[f.canvasToWorld(L[14]),G,L[7],L[8]];if(I.push(_e,Me,Re,We),(Q||(se=this.configuration.mobile)!=null&&se.enabled)&&!ve&&!ke&&V&&$){let ze=`${A}One`;cn(c,x,ze,q,{color:Y,handleRadius:(k=this.configuration.mobile)!=null&&k.enabled?(O=this.configuration.mobile)==null?void 0:O.handleRadius:3,opacity:(B=this.configuration.mobile)!=null&&B.enabled?(U=this.configuration.mobile)==null?void 0:U.opacity:1,type:"circle"}),ze=`${A}Two`,cn(c,x,ze,le,{color:Y,handleRadius:(z=this.configuration.mobile)!=null&&z.enabled?(H=this.configuration.mobile)==null?void 0:H.handleRadius:3,opacity:(K=this.configuration.mobile)!=null&&K.enabled?(ie=this.configuration.mobile)==null?void 0:ie.opacity:1,type:"rect"})}else if(Q&&!ve&&!ke&&V){const ze=`${A}`;cn(c,x,ze,q,{color:Y,handleRadius:(he=this.configuration.mobile)!=null&&he.enabled?(ye=this.configuration.mobile)==null?void 0:ye.handleRadius:3,opacity:(Ee=this.configuration.mobile)!=null&&Ee.enabled?(X=this.configuration.mobile)==null?void 0:X.opacity:1,type:"circle"})}else if(j&&!ve&&!ke&&$){const ze=`${A}`;cn(c,x,ze,le,{color:Y,handleRadius:(J=this.configuration.mobile)!=null&&J.enabled?(oe=this.configuration.mobile)==null?void 0:oe.handleRadius:3,opacity:(Z=this.configuration.mobile)!=null&&Z.enabled?(ee=this.configuration.mobile)==null?void 0:ee.opacity:1,type:"rect"})}else if(ve&&V){const ze=`${A}`;cn(c,x,ze,q,{color:Y,handleRadius:2,fill:Y,type:"circle"})}else ke&&j&&$&&cn(c,x,re,le,{color:Y,handleRadius:2,fill:Y,type:"rect"});G.getSlabThickness()>.5&&$&&(re=`${A}STOne`,It(c,x,re,L[5],L[6],{color:Y,width:1,lineDash:[2,3]}),re=`${A}STTwo`,It(c,x,re,L[7],L[8],{color:Y,width:L,lineDash:[2,3]}))}}),l=!0,S.handles.rotationPoints=b,S.handles.slabThicknessPoints=I,this.configuration.viewportIndicators){const{viewportIndicatorsConfig:L}=this.configuration,A=(L==null?void 0:L.xOffset)||.95,G=(L==null?void 0:L.yOffset)||.05,P=[m*A,y*G],N=(L==null?void 0:L.circleRadius)||w*.01;bi(c,x,"0",P,N,{color:M,fill:M})}return l},this._getAnnotations=s=>{const{viewport:c}=s,l=_t(this.getToolName(),c.element)||[],f=this._getViewportsInfo().map(({viewportId:d})=>d);return l.filter(d=>{const{data:h}=d;return f.includes(h.viewportId)})},this._onNewVolume=()=>{const s=this._getViewportsInfo();this.computeToolCenter(s)},this._areViewportIdArraysEqual=(s,c)=>s.length!==c.length?!1:(s.forEach(l=>{let f=!1;for(let u=0;u{const{viewportId:l,renderingEngine:f,viewport:u}=s,d=c.filter(x=>x.data.viewportId!==l);if(!d||!d.length)return[];const h=u.getCamera(),{viewPlaneNormal:g,position:p}=h;return d.filter(x=>{const{viewportId:m}=x.data,w=f.getViewport(m).getCamera();return!(mt(w.viewPlaneNormal,g,.01)&&mt(w.position,p,1))})},this._filterViewportWithSameOrientation=(s,c,l)=>{const{renderingEngine:f}=s,{data:u}=c,d=f.getViewport(u.viewportId),h=l.filter(x=>{const{data:m}=x,y=f.getViewport(m.viewportId);return this._getReferenceLineControllable(y.id)===!0});if(!h||!h.length)return[];const g=d.getCamera(),p=g.viewPlaneNormal;return nt.normalize(p),h.filter(x=>{const{viewportId:m}=x.data,w=f.getViewport(m).getCamera(),C=w.viewPlaneNormal;return nt.normalize(C),mt(p,C,.01)&&mt(g.viewUp,w.viewUp,.01)})},this._filterAnnotationsByUniqueViewportOrientations=(s,c)=>{const{renderingEngine:l,viewport:f}=s,d=f.getCamera().viewPlaneNormal;nt.normalize(d);const h=c.filter(x=>{const{data:m}=x,y=l.getViewport(m.viewportId),w=this._getReferenceLineControllable(y.id);return f!==y&&w===!0}),g=[];for(let x=0;x{const{data:m}=x,y=l.getViewport(m.viewportId),w=this._getReferenceLineControllable(y.id);return f!==y&&w!==!0});for(let x=0;x_===m))continue;const{viewportId:y}=m.data,C=l.getViewport(y).getCamera(),S=C.viewPlaneNormal;if(nt.normalize(S),mt(d,S,.01)||If(d,S,.01))continue;let T=!1;for(let _=0;_{const l=s.getActors(),f=c.getActors();let u=!0;return l.forEach(d=>{(l.length!==f.length||f.find(({uid:h})=>h===d.uid)===void 0)&&(u=!1)}),u},this._jump=(s,c)=>{me.isInteractingWithTool=!0;const{viewport:l,renderingEngine:f}=s,u=this._getAnnotations(s),d=[0,0,0];nt.subtract(c,this.toolCenter,d);const g=this._getAnnotationsForViewportsWithDifferentCameras(s,u).filter(p=>{const{data:v}=p,x=f.getViewport(v.viewportId),m=this._checkIfViewportsRenderingSameScene(l,x);return this._getReferenceLineControllable(x.id)&&this._getReferenceLineDraggableRotatable(x.id)&&m});return g.length===0?(me.isInteractingWithTool=!1,!1):(this._applyDeltaShiftToSelectedViewportCameras(f,g,d),me.isInteractingWithTool=!1,!0)},this._activateModify=s=>{var c;me.isInteractingWithTool=!((c=this.configuration.mobile)!=null&&c.enabled),s.addEventListener(F.MOUSE_UP,this._endCallback),s.addEventListener(F.MOUSE_DRAG,this._dragCallback),s.addEventListener(F.MOUSE_CLICK,this._endCallback),s.addEventListener(F.TOUCH_END,this._endCallback),s.addEventListener(F.TOUCH_DRAG,this._dragCallback),s.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=s=>{me.isInteractingWithTool=!1,s.removeEventListener(F.MOUSE_UP,this._endCallback),s.removeEventListener(F.MOUSE_DRAG,this._dragCallback),s.removeEventListener(F.MOUSE_CLICK,this._endCallback),s.removeEventListener(F.TOUCH_END,this._endCallback),s.removeEventListener(F.TOUCH_DRAG,this._dragCallback),s.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._endCallback=s=>{const c=s.detail,{element:l}=c;this.editData.annotation.data.handles.activeOperation=null,this.editData.annotation.data.activeViewportIds=[],this._deactivateModify(l),lt(l),this.editData=null;const u=He(l,this.getToolName(),!1);pe(u)},this._dragCallback=s=>{const c=s.detail,l=c.deltaPoints.world;if(Math.abs(l[0])<.001&&Math.abs(l[1])<.001&&Math.abs(l[2])<.001)return;const{element:f}=c,u=ne(f),{renderingEngine:d,viewport:h}=u,g=this._getAnnotations(u),v=this.filterInteractableAnnotationsForElement(f,g)[0];if(!v)return;const{handles:x}=v.data,{currentPoints:m}=s.detail,y=m.canvas;if(x.activeOperation===ho.DRAG){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(S=>{const{data:T}=S,_=d.getViewport(T.viewportId),E=this._getReferenceLineControllable(_.id),D=this._getReferenceLineDraggableRotatable(_.id);return E===!0&&D===!0&&v.data.activeViewportIds.find(b=>b===_.id)});this._applyDeltaShiftToSelectedViewportCameras(d,C,l)}else if(x.activeOperation===ho.ROTATE){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(A=>{const{data:G}=A,P=d.getViewport(G.viewportId),N=this._getReferenceLineControllable(P.id),V=this._getReferenceLineDraggableRotatable(P.id);return N===!0&&V===!0}),S=ot(),T=ot(),_=[this.toolCenter[0],this.toolCenter[1],this.toolCenter[2]],E=h.worldToCanvas(_),D=c.currentPoints.canvas,b=ot();Io(b,D,c.deltaPoints.canvas),Io(S,b,E),Io(T,D,E);let I=tj(S,T);this._isClockWise(E,b,D)&&(I*=-1),I=Math.round(I*100)/100;const R=h.getCamera().viewPlaneNormal,{matrix:M}=Ir.buildFromRadian().translate(_[0],_[1],_[2]).rotate(I,R).translate(-_[0],-_[1],-_[2]),L=[];C.forEach(A=>{const{data:G}=A;G.handles.toolCenter=_;const P=d.getViewport(G.viewportId),N=P.getCamera(),{viewUp:V,position:$,focalPoint:j}=N;V[0]+=$[0],V[1]+=$[1],V[2]+=$[2],et(j,j,M),et($,$,M),et(V,V,M),V[0]-=$[0],V[1]-=$[1],V[2]-=$[2],P.setCamera({position:$,viewUp:V,focalPoint:j}),L.push(P.id)}),d.renderViewports(L)}else if(x.activeOperation===ho.SLAB){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(_=>{const{data:E}=_,D=d.getViewport(E.viewportId),b=this._getReferenceLineControllable(D.id),I=this._getReferenceLineSlabThicknessControlsOn(D.id);return b===!0&&I===!0&&v.data.activeViewportIds.find(R=>R===D.id)});if(C.length===0)return;const S=this._filterViewportWithSameOrientation(u,C[0],g),T=[];T.push(h.id),S.forEach(_=>{const{data:E}=_,D=d.getViewport(E.viewportId),I=D.getCamera().viewPlaneNormal,R=nt.dot(l,I),M=[...I];if(nt.multiplyScalar(M,R),Math.abs(M[0])>.001||Math.abs(M[1])>.001||Math.abs(M[2])>.001){const L=Math.sqrt(M[0]*M[0]+M[1]*M[1]+M[2]*M[2]),A=c.lastPoints.world,G=[0,0,0],P=[this.toolCenter[0],this.toolCenter[1],this.toolCenter[2]];if(!this._getReferenceLineDraggableRotatable(D.id)){const{rotationPoints:fe}=this.editData.annotation.data.handles,se=fe.filter(k=>k[1].uid===D.id);if(se.length===2){const k=h.canvasToWorld(se[0][3]),O=h.canvasToWorld(se[1][3]);nt.add(k,O,P),nt.multiplyScalar(P,.5)}}nt.subtract(A,P,G);const V=nt.dot(G,I),$=[...I];nt.multiplyScalar($,V);const j=[$[0],$[1],$[2]];an(j,j);const Y=[M[0],M[1],M[2]];an(Y,Y);let te=D.getSlabThickness();If(j,Y,.001)?te-=L:te+=L,te=Math.abs(te),te=Math.max(gy.MINIMUM_SLAB_THICKNESS,te),this._pointNearReferenceLine(v,y,6,D)&&(te=gy.MINIMUM_SLAB_THICKNESS),Cn(D.id,d.id).getToolInstance(this.getToolName()).setSlabThickness(D,te),T.push(D.id)}}),d.renderViewports(T)}},this._pointNearReferenceLine=(s,c,l,f)=>{const{data:u}=s,{rotationPoints:d}=u.handles;for(let h=0;h{const i=fr(n,r);if(!i)return;const o=this._getAnnotations(i);o!=null&&o.length&&o.forEach(a=>{Ot(a.annotationUID)})})}getHandleNearImagePoint(e,r,n,i){const o=ne(e),{viewport:a}=o;let s=this._getRotationHandleNearImagePoint(a,r,n,i);if(s!==null||(s=this._getSlabThicknessHandleNearImagePoint(a,r,n,i),s!==null))return s}_unsubscribeToViewportNewVolumeSet(e){e.forEach(({viewportId:r,renderingEngineId:n})=>{const{viewport:i}=fr(r,n),{element:o}=i;o.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this._onNewVolume)})}_subscribeToViewportNewVolumeSet(e){e.forEach(({viewportId:r,renderingEngineId:n})=>{const{viewport:i}=fr(r,n),{element:o}=i;o.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this._onNewVolume)})}_autoPanViewportIfNecessary(e,r){const n=r.getViewport(e),{clientWidth:i,clientHeight:o}=n.canvas,a=n.worldToCanvas(this.toolCenter),s=this.configuration.autoPan.panSize,c=[a[0],a[1]];if(a[0]<0?c[0]=s:a[0]>i&&(c[0]=i-s),a[1]<0?c[1]=s:a[1]>o&&(c[1]=o-s),c[0]===a[0]&&c[1]===a[1])return;const l=n.canvasToWorld(c),f=[l[0]-this.toolCenter[0],l[1]-this.toolCenter[1],l[2]-this.toolCenter[2]],u=n.getCamera(),{focalPoint:d,position:h}=u,g=[h[0]-f[0],h[1]-f[1],h[2]-f[2]],p=[d[0]-f[0],d[1]-f[1],d[2]-f[2]];n.setCamera({focalPoint:p,position:g}),n.render()}setSlabThickness(e,r){let n;const{filterActorUIDsToSetSlabThickness:i}=this.configuration;i&&i.length>0&&(n=i);let o=this.configuration.slabThicknessBlendMode;r===gy.MINIMUM_SLAB_THICKNESS&&(o=Gu.COMPOSITE),e.setBlendMode(o,n,!1),e.setSlabThickness(r,n)}_isClockWise(e,r,n){return(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])>0}_applyDeltaShiftToSelectedViewportCameras(e,r,n){r.forEach(i=>{this._applyDeltaShiftToViewportCamera(e,i,n)})}_applyDeltaShiftToViewportCamera(e,r,n){const{data:i}=r,o=e.getViewport(i.viewportId),a=o.getCamera(),s=a.viewPlaneNormal,c=nt.dot(n,s),l=[...s];if(nt.multiplyScalar(l,c),Math.abs(l[0])>.001||Math.abs(l[1])>.001||Math.abs(l[2])>.001){const f=[0,0,0],u=[0,0,0];nt.add(a.focalPoint,l,f),nt.add(a.position,l,u),o.setCamera({focalPoint:f,position:u}),o.render()}}_getRotationHandleNearImagePoint(e,r,n,i){const{data:o}=r,{rotationPoints:a}=o.handles;for(let s=0;sR===p.id))continue;const v=this._getReferenceLineControllable(p.id),x=this._getReferenceLineSlabThicknessControlsOn(p.id);if(!v||!x)continue;const m=d[g][2],y=d[g][3],w=ot();Nr(w,m,y),Ea(w,w,.5);const C=ot();kn(C,m,w),La(C,C);const S=ot();Ea(S,C,l*.05);const T=ot(),_=ot();Nr(T,w,S),kn(_,w,S);const E={start:{x:T[0],y:T[1]},end:{x:m[0],y:m[1]}},D=Ar([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]),b={start:{x:_[0],y:_[1]},end:{x:y[0],y:y[1]}},I=Ar([b.start.x,b.start.y],[b.end.x,b.end.y],[n[0],n[1]]);(D<=i||I<=i)&&(h.push(p.id),f.handles.activeOperation=null),g++}return f.activeViewportIds=[...h],this.editData={annotation:r},f.handles.activeOperation===ho.DRAG}}Ho.toolName="Crosshairs";const Qg="magnify-viewport";class ck extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{magnifySize:10,magnifyWidth:250,magnifyHeight:250}}){super(e,r),this._hasBeenRemoved=!1,this.preMouseDownCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=ne(o),{viewport:c,renderingEngine:l}=s;if(!(c instanceof un))throw new Error("MagnifyTool only works on StackViewports");const f=this._getReferencedImageId(c);if(!f)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");const u=He(o,this.getToolName());return this.editData={referencedImageId:f,viewportIdsToRender:u,enabledElement:s,renderingEngine:l,currentPoints:a},this._createMagnificationViewport(),this._activateDraw(o),Ze(o),n.preventDefault(),pe(u),!0},this.preTouchStartCallback=n=>{this.preMouseDownCallback(n)},this._createMagnificationViewport=()=>{const{enabledElement:n,referencedImageId:i,viewportIdsToRender:o,renderingEngine:a,currentPoints:s}=this.editData,{viewport:c}=n,{element:l}=c,f=c.getProperties(),{canvas:u,world:d}=s;let h;if(h=l.querySelector(".magnifyTool"),h===null){const p=document.createElement("div");p.classList.add("magnifyTool"),p.style.display="block",p.style.width=`${this.configuration.magnifyWidth}px`,p.style.height=`${this.configuration.magnifyHeight}px`,p.style.position="absolute",h=p,l.querySelector(".viewport-element").appendChild(p);const x={viewportId:Qg,type:mn.STACK,element:h};a.enableElement(x)}h.style.top=`${u[1]-this.configuration.magnifyHeight/2}px`,h.style.left=`${u[0]-this.configuration.magnifyWidth/2}px`;const g=a.getViewport(Qg);g.setStack([i]).then(()=>{if(this._hasBeenRemoved)return;g.setProperties(f);const{parallelScale:p}=c.getCamera(),{focalPoint:v,position:x,viewPlaneNormal:m}=g.getCamera(),y=Math.sqrt(Math.pow(v[0]-x[0],2)+Math.pow(v[1]-x[1],2)+Math.pow(v[2]-x[2],2)),w=[d[0],d[1],d[2]],C=[w[0]+y*m[0],w[1]+y*m[1],w[2]+y*m[2]];g.setCamera({parallelScale:p*(1/this.configuration.magnifySize),focalPoint:w,position:C}),g.render()}),h.style.display="block",pe(o)},this._dragCallback=n=>{const i=n.detail,{deltaPoints:o,element:a,currentPoints:s}=i,c=o.world,l=s.canvas,f=ne(a),{renderingEngine:u}=f,d=u.getViewport(Qg),h=a.querySelector(".magnifyTool");if(!h)return;h.style.top=`${l[1]-this.configuration.magnifyHeight/2}px`,h.style.left=`${l[0]-this.configuration.magnifyWidth/2}px`;const{focalPoint:g,position:p}=d.getCamera(),v=[p[0]+c[0],p[1]+c[1],p[2]+c[2]],x=[g[0]+c[0],g[1]+c[1],g[2]+c[2]];d.setCamera({focalPoint:x,position:v}),d.render()},this._dragEndCallback=n=>{const{element:i}=n.detail,o=ne(i),{renderingEngine:a}=o;a.disableElement(Qg);const s=i.querySelector(".viewport-element"),c=s.querySelector(".magnifyTool");s.removeChild(c),this._deactivateDraw(i),lt(i),this._hasBeenRemoved=!0},this._activateDraw=n=>{me.isInteractingWithTool=!0,this._hasBeenRemoved=!1,n.addEventListener(F.MOUSE_UP,this._dragEndCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._dragEndCallback),n.addEventListener(F.TOUCH_END,this._dragEndCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._dragEndCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._dragEndCallback),n.removeEventListener(F.TOUCH_END,this._dragEndCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)}}_getReferencedImageId(e){const r=this.getTargetId(e);let n;return e instanceof un&&(n=r.split("imageId:")[1]),n}}ck.toolName="Magnify";function Zc(t){const[e,r]=t;return ao(e,r)}function Qf(t){const[e,r]=t,n=ao(e,r),i=[e[0]-n,e[1]-n],o=[e[0]+n,e[1]+n];return[i,o]}const Rme="advancedMagnifyTool",Lme=125,{Events:fs}=Po,_E=t=>t.uid!==t.referencedId;var G3;(function(t){t.ShowZoomFactorsList="showZoomFactorsList"})(G3||(G3={}));const Nme="AdvancedMagnify",Pme=1-Ro,$S=class $S extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,magnifyingGlass:{radius:125,zoomFactor:3,zoomFactorList:[1.5,2,2.5,3,3.5,4,4.5,5],autoPan:{enabled:!0,padding:10}},actions:{showZoomFactorsList:{method:"showZoomFactorsList",bindings:[{mouseButton:ca.Secondary,modifierKey:vr.Shift}]}}}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=ne(a),{viewport:c,renderingEngine:l}=s,f=o.world,u=o.canvas,{magnifyingGlass:d}=this.configuration,{radius:h,zoomFactor:g,autoPan:p}=d,v=this._getCanvasHandlePoints(u,h),x=c.getCamera(),{viewPlaneNormal:m,viewUp:y}=x,w=this.getReferencedImageId(c,f,m,y),C=wn(),S=wn(),T=c.getFrameOfReferenceUID(),_={annotationUID:C,highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...m],viewUp:[...y],FrameOfReferenceUID:T,referencedImageId:w},data:{sourceViewportId:c.id,magnifyViewportId:S,zoomFactor:g,isCanvasAnnotation:!0,handles:{points:v,activeHandleIndex:null}}};this.magnifyViewportManager.createViewport(_,{magnifyViewportId:S,sourceEnabledElement:s,position:u,radius:h,zoomFactor:g,autoPan:{enabled:p.enabled,padding:p.padding,callback:D=>{const b=_.data.handles.points,{canvas:I}=D.delta;for(let R=0,M=b.length;R{this.magnifyViewportManager.dispose(),Iu().forEach(i=>{i.metadata.toolName===this.getToolName()&&Ot(i.annotationUID)})},this.isPointNearTool=(n,i,o,a)=>{const{data:s}=i,{points:c}=s.handles,l=c,f=l[0],u=l[2],d=l[3],h=Math.abs(u[1]-f[1])*.5,g=[d[0]+h,f[1]+h],p=Zc([g,o]);return Math.abs(p-h){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},Ze(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;const{points:l}=c.handles,f=l.findIndex(d=>d===o),u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f},this._activateModify(s),Ze(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c}=this.editData,{data:l}=a;l.handles.activeHandleIndex=null,this._deactivateModify(o),lt(o),this.editData=null,this.isDrawing=!1,pe(s),c&&tn(a)},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{deltaPoints:o}=i,a=(o==null?void 0:o.canvas)??[0,0,0],{annotation:s,viewportIdsToRender:c}=this.editData,{points:l}=s.data.handles;l.forEach(f=>{f[0]+=a[0],f[1]+=a[1]}),s.invalidated=!0,this.editData.hasMoved=!0,pe(c)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{annotation:o,viewportIdsToRender:a,handleIndex:s}=this.editData,{data:c}=o;if(s===void 0){const{deltaPoints:l}=i,f=l.canvas;c.handles.points.forEach(d=>{d[0]+=f[0],d[1]+=f[1]}),o.invalidated=!0}else this._dragHandle(n),o.invalidated=!0;pe(a)},this._dragHandle=n=>{const i=n.detail,{annotation:o}=this.editData,{data:a}=o,{points:s}=a.handles,c=s,l=c[0],f=c[2],u=c[3],d=Math.abs(f[1]-l[1])*.5,h=[u[0]+d,l[1]+d],{currentPoints:g}=i,p=g.canvas,v=Zc([h,p]),x=this._getCanvasHandlePoints(h,v);s[0]=x[0],s[1]=x[1],s[2]=x[2],s[3]=x[3]},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length))return o;c=c==null?void 0:c.filter(u=>u.data.sourceViewportId===a.id);const l=this.filterInteractableAnnotationsForElement(s,c);if(!(l!=null&&l.length))return o;const f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let u=0;u[[n[0],n[1]-i,0],[n[0]+i,n[1],0],[n[0],n[1]+i,0],[n[0]-i,n[1],0]],this.magnifyViewportManager=lu.getInstance()}showZoomFactorsList(e,r){const{element:n,currentPoints:i}=e.detail,o=ne(n),{viewport:a}=o,{canvas:s}=i,c=n.querySelector(":scope .viewport-element"),l=r.data.zoomFactor,f=()=>u.parentElement.removeChild(u),u=this._getZoomFactorsListDropdown(l,d=>{d!==void 0&&(r.data.zoomFactor=Number.parseFloat(d),r.invalidated=!0),f(),a.render()});Object.assign(u.style,{left:`${s[0]}px`,top:`${s[1]}px`}),c.appendChild(u),u.focus()}_getZoomFactorsListDropdown(e,r){const{zoomFactorList:n}=this.configuration.magnifyingGlass,i=document.createElement("select");return i.size=5,Object.assign(i.style,{width:"50px",position:"absolute"}),["mousedown","mouseup","mousemove","click"].forEach(o=>{i.addEventListener(o,a=>a.stopPropagation())}),i.addEventListener("change",o=>{o.stopPropagation(),r(i.value)}),i.addEventListener("keydown",o=>{var s;((o.keyCode??o.which===27)||((s=o.key)==null?void 0:s.toLowerCase())==="escape")&&(o.stopPropagation(),r())}),n.forEach(o=>{const a=document.createElement("option");a.label=o,a.title=`Zoom factor ${o.toFixed(1)}`,a.value=o,a.defaultSelected=o===e,i.add(a)}),i}};$S.Actions=G3;let Jd=$S;class lu{constructor(){this.createViewport=(e,r)=>{const{magnifyViewportId:n,sourceEnabledElement:i,position:o,radius:a,zoomFactor:s,autoPan:c}=r,{viewport:l}=i,{element:f}=l,u=new Ame({magnifyViewportId:n,sourceEnabledElement:i,radius:a,position:o,zoomFactor:s,autoPan:c});return this._addSourceElementEventListener(f),this._magnifyViewportsMap.set(u.viewportId,{annotation:e,magnifyViewport:u,magnifyViewportInfo:r}),u},this._annotationRemovedCallback=e=>{const{annotation:r}=e.detail;r.metadata.toolName===Nme&&this.destroyViewport(r.data.magnifyViewportId)},this._newStackImageCallback=e=>{const{viewportId:r,imageId:n}=e.detail,i=this._getMagnifyViewportsMapEntriesBySourceViewportId(r),{viewport:o}=Xn(r);o.stackActorReInitialized&&this._reset(r),i.forEach(({annotation:a})=>{a.metadata.referencedImageId=n,a.invalidated=!0})},this._newVolumeImageCallback=e=>{const{renderingEngineId:r,viewportId:n}=e.detail,o=hr(r).getViewport(n),{viewPlaneNormal:a}=o.getCamera();this._getMagnifyViewportsMapEntriesBySourceViewportId(n).forEach(({annotation:c})=>{const{viewPlaneNormal:l}=c.metadata;if(!(Math.abs(je(l,a))>Pme))return;const{handles:u}=c.data,d=o.canvasToWorld([0,0]),h=en(xe(),d,u.points[0]),g=je(h,a),p=cr(xe(),a,g);for(let v=0,x=u.points.length;vthis.destroyViewport(r))}_getMagnifyViewportsMapEntriesBySourceViewportId(e){return Array.from(this._magnifyViewportsMap.values()).filter(({magnifyViewport:n})=>{const{viewport:i}=n.sourceEnabledElement;return i.id===e})}_reset(e){this._getMagnifyViewportsMapEntriesBySourceViewportId(e).forEach(({magnifyViewport:n,annotation:i,magnifyViewportInfo:o})=>{this.destroyViewport(n.viewportId);const a=Xn(e);this.createViewport(i,{...o,sourceEnabledElement:{...a}})})}_addEventListeners(){Ce.addEventListener(F.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_removeEventListeners(){Ce.removeEventListener(F.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_addSourceElementEventListener(e){e.addEventListener(fs.STACK_NEW_IMAGE,this._newStackImageCallback);const r=i=>{const{viewportId:o}=i.detail;this._reset(o)};e.addEventListener(fs.VIEWPORT_NEW_IMAGE_SET,r);const n=i=>{const{viewportId:o}=i.detail;this._reset(o)};e.addEventListener(fs.VOLUME_VIEWPORT_NEW_VOLUME,n),e.addEventListener(fs.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.newStackHandler=r,e.newVolumeHandler=n}_removeSourceElementEventListener(e){e.removeEventListener(fs.STACK_NEW_IMAGE,this._newStackImageCallback),e.removeEventListener(fs.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.removeEventListener(fs.VIEWPORT_NEW_IMAGE_SET,e.newStackHandler),e.removeEventListener(fs.VOLUME_VIEWPORT_NEW_VOLUME,e.newVolumeHandler),delete e.newStackHandler,delete e.newVolumeHandler}_initialize(){this._addEventListeners()}}class Ame{constructor({magnifyViewportId:e,sourceEnabledElement:r,radius:n=Lme,position:i=[0,0],zoomFactor:o,autoPan:a}){this._enabledElement=null,this._sourceToolGroup=null,this._magnifyToolGroup=null,this._isViewportReady=!1,this._radius=0,this._resized=!1,this._canAutoPan=!1,this._viewportId=e??wn(),this._sourceEnabledElement=r,this._autoPan=a,this.radius=n,this.position=i,this.zoomFactor=o,this.visible=!0,this._browserMouseDownCallback=this._browserMouseDownCallback.bind(this),this._browserMouseUpCallback=this._browserMouseUpCallback.bind(this),this._handleToolModeChanged=this._handleToolModeChanged.bind(this),this._mouseDragCallback=this._mouseDragCallback.bind(this),this._resizeViewportAsync=w2(this._resizeViewport.bind(this),1),this._initialize()}get sourceEnabledElement(){return this._sourceEnabledElement}get viewportId(){return this._viewportId}get radius(){return this._radius}set radius(e){Math.abs(this._radius-e)>1e-5&&(this._radius=e,this._resized=!0)}update(){const{radius:e,position:r,visible:n}=this,{viewport:i}=this._enabledElement,{element:o}=i,a=2*e,[s,c]=r;this._resized&&(this._resizeViewportAsync(),this._resized=!1),Object.assign(o.style,{display:n?"block":"hidden",width:`${a}px`,height:`${a}px`,left:`${-e}px`,top:`${-e}px`,transform:`translate(${s}px, ${c}px)`}),this._isViewportReady&&(this._syncViewports(),i.render())}dispose(){const{viewport:e}=this._enabledElement,{element:r}=e,n=e.getRenderingEngine();this._removeEventListeners(r),n.disableElement(e.id),r.parentNode&&r.parentNode.removeChild(r)}_handleToolModeChanged(e){var s;const{_magnifyToolGroup:r}=this,{toolGroupId:n,toolName:i,mode:o,toolBindingsOptions:a}=e.detail;if(((s=this._sourceToolGroup)==null?void 0:s.id)===n)switch(o){case Ft.Active:r.setToolActive(i,a);break;case Ft.Passive:r.setToolPassive(i);break;case Ft.Enabled:r.setToolEnabled(i);break;case Ft.Disabled:r.setToolDisabled(i);break;default:throw new Error(`Unknow tool mode (${o})`)}}_inheritBorderRadius(e){const r=e.querySelector(".viewport-element"),n=e.querySelector(".cornerstone-canvas");r.style.borderRadius="inherit",n.style.borderRadius="inherit"}_createViewportNode(){const e=document.createElement("div"),{radius:r}=this,n=r*2;return e.classList.add(Rme),Object.assign(e.style,{display:"block",width:`${n}px`,height:`${n}px`,position:"absolute",overflow:"hidden",borderRadius:"50%",boxSizing:"border-box",left:`${-r}px`,top:`${-r}px`,transform:"translate(-1000px, -1000px)"}),e}_convertZoomFactorToParallelScale(e,r,n){const{parallelScale:i}=e.getCamera(),o=r.canvas.offsetWidth/e.canvas.offsetWidth;return i*(1/n)*o}_isStackViewport(e){return"setStack"in e}_isVolumeViewport(e){return"addVolumes"in e}_cloneToolGroups(e,r){const n=e.getActors(),i=`${r.id}-toolGroup`,o=Cn(e.id,e.renderingEngineId),a=o.clone(i,s=>{const c=o.getToolInstance(s);return c instanceof ar&&!(c instanceof Jd)});return a.addViewport(r.id,r.renderingEngineId),n.filter(_E).forEach(s=>{R0(this.viewportId,[{segmentationId:s.referencedId,type:Ge.Labelmap}])}),{sourceToolGroup:o,magnifyToolGroup:a}}_cloneStack(e,r){const n=e.getImageIds();r.setStack(n).then(()=>{this._isViewportReady=!0,this.update()})}_cloneVolumes(e,r){const i=e.getActors().filter(o=>!_E(o)).map(o=>({volumeId:o.uid}));return r.setVolumes(i).then(()=>{this._isViewportReady=!0,this.update()}),r}_cloneViewport(e,r){const{viewportId:n}=this,i=e.getRenderingEngine(),{options:o}=e,a={element:r,viewportId:n,type:e.type,defaultOptions:{...o}};i.enableElement(a);const s=i.getViewport(n);this._isStackViewport(e)?this._cloneStack(e,s):this._isVolumeViewport(e)&&this._cloneVolumes(e,s),this._inheritBorderRadius(r);const c=this._cloneToolGroups(e,s);this._sourceToolGroup=c.sourceToolGroup,this._magnifyToolGroup=c.magnifyToolGroup}_cancelMouseEventCallback(e){e.stopPropagation(),e.preventDefault()}_browserMouseUpCallback(e){const{element:r}=this._enabledElement.viewport;document.removeEventListener("mouseup",this._browserMouseUpCallback),r.addEventListener("mouseup",this._cancelMouseEventCallback),r.addEventListener("mousemove",this._cancelMouseEventCallback)}_browserMouseDownCallback(e){var n;const{element:r}=this._enabledElement.viewport;this._canAutoPan=!!((n=e.target)!=null&&n.closest(".advancedMagnifyTool")),document.addEventListener("mouseup",this._browserMouseUpCallback),r.removeEventListener("mouseup",this._cancelMouseEventCallback),r.removeEventListener("mousemove",this._cancelMouseEventCallback)}_mouseDragCallback(e){if(!me.isInteractingWithTool)return;const{_autoPan:r}=this;if(!r.enabled||!this._canAutoPan)return;const{currentPoints:n}=e.detail,{viewport:i}=this._enabledElement,{canvasToWorld:o}=i,{canvas:a}=n,{radius:s}=this,c=[s,s],l=ao(c,a),f=s-r.padding;if(l<=f)return;const u=l-f,d=Io(ot(),a,c);La(d,d),Ea(d,d,u);const h=Nr(ot(),this.position,d),g=o(this.position),p=o(h),v=en(xe(),p,g),x={points:{currentPosition:{canvas:this.position,world:g},newPosition:{canvas:h,world:p}},delta:{canvas:d,world:v}};r.callback(x)}_addBrowserEventListeners(e){document.addEventListener("mousedown",this._browserMouseDownCallback,!0),e.addEventListener("mousedown",this._cancelMouseEventCallback),e.addEventListener("mouseup",this._cancelMouseEventCallback),e.addEventListener("mousemove",this._cancelMouseEventCallback),e.addEventListener("dblclick",this._cancelMouseEventCallback)}_removeBrowserEventListeners(e){document.removeEventListener("mousedown",this._browserMouseDownCallback,!0),document.removeEventListener("mouseup",this._browserMouseUpCallback),e.removeEventListener("mousedown",this._cancelMouseEventCallback),e.removeEventListener("mouseup",this._cancelMouseEventCallback),e.removeEventListener("mousemove",this._cancelMouseEventCallback),e.removeEventListener("dblclick",this._cancelMouseEventCallback)}_addEventListeners(e){Ce.addEventListener(F.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),this._addBrowserEventListeners(e)}_removeEventListeners(e){Ce.removeEventListener(F.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),this._removeBrowserEventListeners(e)}_initialize(){const{_sourceEnabledElement:e}=this,{viewport:r}=e,{canvas:n}=r,i=this._createViewportNode();n.parentNode.appendChild(i),this._addEventListeners(i),this._cloneViewport(r,i),this._enabledElement=ne(i)}_syncViewportsCameras(e,r){const n=e.canvasToWorld(this.position),i=this._convertZoomFactorToParallelScale(e,r,this.zoomFactor),{focalPoint:o,position:a,viewPlaneNormal:s}=r.getCamera(),c=Math.sqrt(Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2)),l=[n[0],n[1],n[2]],f=[l[0]+c*s[0],l[1]+c*s[1],l[2]+c*s[2]];r.setCamera({parallelScale:i,focalPoint:l,position:f})}_syncStackViewports(e,r){r.setImageIdIndex(e.getCurrentImageIdIndex())}_syncViewports(){const{viewport:e}=this._sourceEnabledElement,{viewport:r}=this._enabledElement,n=e.getProperties();r.getImageData()&&(r.setProperties(n),this._syncViewportsCameras(e,r),this._isStackViewport(e)&&this._syncStackViewports(e,r),this._syncViewportsCameras(e,r),r.render())}_resizeViewport(){const{viewport:e}=this._enabledElement;e.getRenderingEngine().resize()}}Jd.toolName="AdvancedMagnify";const{EPSILON:py}=Cl;class Qc extends lc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:"",enforceSameFrameOfReference:!0,showFullDimension:!1}}){super(e,r),this.editData=null,this._init=()=>{var h;const i=_i()[0];if(!i)return;let o=i.getViewports();o=D2(o,this.getToolName());const a=i.getViewport(this.configuration.sourceViewportId);if(!(a!=null&&a.getImageData()))return;const{element:s}=a,{viewUp:c,viewPlaneNormal:l}=a.getCamera(),f=Y1(a);let u=(h=this.editData)==null?void 0:h.annotation;const d=a.getFrameOfReferenceUID();if(u)this.editData.annotation.data.handles.points=f;else{const g={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...l],viewUp:[...c],FrameOfReferenceUID:d,referencedImageId:null},data:{handles:{points:f}}};Ut(g,s),u=g}this.editData={sourceViewportId:a.id,renderingEngine:i,annotation:u},pe(o.filter(g=>g.id!==a.id).map(g=>g.id))},this.onSetToolEnabled=()=>{this._init()},this.onSetToolConfiguration=()=>{this._init()},this.onCameraModified=n=>{this._init()},this.renderAnnotation=(n,i)=>{var V,$;const{viewport:o}=n;if(!this.editData)return!1;const{annotation:a,sourceViewportId:s}=this.editData;let c=!1;const{viewport:l}=Xn(s)||{};if(!l||l.id===o.id||!a||!(($=(V=a==null?void 0:a.data)==null?void 0:V.handles)!=null&&$.points)||this.configuration.enforceSameFrameOfReference&&l.getFrameOfReferenceUID()!==o.getFrameOfReferenceUID())return c;const f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},u=a.data.handles.points[0],d=a.data.handles.points[1],h=a.data.handles.points[2],g=a.data.handles.points[3],{focalPoint:p,viewPlaneNormal:v,viewUp:x}=o.getCamera(),{viewPlaneNormal:m}=l.getCamera();if(this.isParallel(v,m))return c;const y=Ua(v,p),w=[u,h,d,g],C=[u,d,h,g];let S=w,T=kt(xe(),w[0],w[1]);T=an(xe(),T);let _=kt(xe(),w[2],w[0]);_=an(xe(),_);const E=qt(xe(),T,_);if(this.isParallel(E,v))return c;this.isPerpendicular(T,v)&&(S=C);const D=qu(S[0],S[1],y),b=qu(S[2],S[3],y),{annotationUID:I}=a;f.annotationUID=I;const R=this.getStyle("lineWidth",f,a),M=this.getStyle("lineDash",f,a),L=this.getStyle("color",f,a),A=this.getStyle("shadow",f,a);let G=[D,b].map(j=>o.worldToCanvas(j));if(this.configuration.showFullDimension&&(G=this.handleFullDimension(o,D,v,x,b,G)),G.length<2)return c;const P=`${I}-line`;return It(i,I,"1",G[0],G[1],{color:L,width:R,lineDash:M,shadow:A},P),c=!0,c},this.isPerpendicular=(n,i)=>{const o=je(n,i);return Math.abs(o)s3(l,m)),[v,x]=[r,o].map(m=>s3(l,m));a=[[d,h],[h,g],[p,g],[d,p]].map(([m,y])=>this.intersectInfiniteLines(m,y,v,x)).filter(m=>m&&this.isInBound(m,u)).map(m=>{const y=sR(l,m);return e.worldToCanvas(y)})}catch(f){console.log(f)}return a}intersectInfiniteLines(e,r,n,i){const[o,a]=e,[s,c]=r,[l,f]=n,[u,d]=i,h=c-a,g=o-s,p=s*a-o*c,v=d-f,x=l-u,m=u*f-l*d;if(Math.abs(h*x-v*g)1-py}isInBound(e,r){return e[0]>=0&&e[0]<=r[0]&&e[1]>=0&&e[1]<=r[1]}}Qc.toolName="ReferenceLines";const{EPSILON:EE}=Cl;class lk extends lc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceImageIds:[]}}){super(e,r),this.onSetToolEnabled=()=>{this._init()},this.onSetToolActive=()=>{this._init()},this._init=()=>{const n=this.configuration.sourceImageIds;if(!(n!=null&&n.length)){console.warn("OverlayGridTool: No sourceImageIds provided in configuration");return}const i=Pe("imagePlaneModule",n[0]);if(!i){console.warn("OverlayGridTool: No imagePlaneModule found for sourceImageIds");return}const{frameOfReferenceUID:o}=i,a=Wn(this.toolGroupId).viewportsInfo;if(!(a!=null&&a.length)){console.warn("OverlayGridTool: No viewports found");return}const s=_t(this.getToolName(),o);if(!(s!=null&&s.length)){const c=n.map(f=>this.calculateImageIdPointSets(f)),l={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),FrameOfReferenceUID:o,referencedImageId:null},data:{viewportData:new Map,pointSets:c}};Ut(l,o)}pe(a.map(({viewportId:c})=>c))},this.calculateImageIdPointSets=n=>{const{imagePositionPatient:i,rows:o,columns:a,rowCosines:s,columnCosines:c,rowPixelSpacing:l,columnPixelSpacing:f}=Pe("imagePlaneModule",n),u=[...i],d=[...i],h=[...i],g=[...i];return Vt(d,i,c,a*f),Vt(h,i,s,o*l),Vt(g,h,c,a*f),{pointSet1:[u,h,d,g],pointSet2:[u,d,h,g]}},this.renderAnnotation=(n,i)=>{const o=this.configuration.sourceImageIds;let a=!1;if(!(o!=null&&o.length))return a;const{viewport:s,FrameOfReferenceUID:c}=n;if(s.getImageIds().length<2)return a;const f=_t(this.getToolName(),c);if(!(f!=null&&f.length))return a;const u=f[0],{annotationUID:d}=u,{focalPoint:h,viewPlaneNormal:g}=s.getCamera(),p={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},v=this.getImageIdNormal(o[0]);if(this.isParallel(g,v))return a;const x=Ua(g,h),m=u.data.pointSets,y=u.data.viewportData;for(let w=0;ws.worldToCanvas(G)),L=`${d}-line`,A=`${w}`;It(i,d,A,M[0],M[1],{color:I,width:D,lineDash:b,shadow:R},L)}return a=!0,a},this.initializeViewportData=(n,i)=>(n.set(i,{pointSetsToUse:[],lineStartsWorld:[],lineEndsWorld:[]}),n.get(i)),this.isPerpendicular=(n,i)=>{const o=je(n,i);return Math.abs(o)1-EE}getImageIdNormal(e){const{imageOrientationPatient:r}=Pe("imagePlaneModule",e),n=Ye(r[0],r[1],r[2]),i=Ye(r[3],r[4],r[5]);return qt(xe(),n,i)}}lk.toolName="OverlayGrid";class uk extends lc{constructor(e={},r={configuration:{opacity:.5}}){super(e,r),this._init=()=>{var s;const n=Wn(this.toolGroupId).viewportsInfo;if(!(n!=null&&n.length)){console.warn(this.getToolName()+"Tool: No viewports found");return}const i=(s=hr(n[0].renderingEngineId))==null?void 0:s.getViewport(n[0].viewportId);if(!i)return;const o=i.getFrameOfReferenceUID(),a=_t(this.getToolName(),o);if(!(a!=null&&a.length)){const c=new Map;kme(c,n);const l={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),FrameOfReferenceUID:o,referencedImageId:null},data:{actorsWorldPointsMap:c}};Ut(l,o)}pe(n.map(({viewportId:c})=>c))},this.onSetToolEnabled=()=>{this._init()},this.onCameraModified=n=>{this._init()},this.renderAnnotation=(n,i)=>{const{viewport:o,FrameOfReferenceUID:a}=n;let s=!1;const c=_t(this.getToolName(),a);if(!(c!=null&&c.length))return s;const l=c[0],{annotationUID:f}=l,u=l.data.actorsWorldPointsMap;fk(u,o);const d=o.getActors(),h=dk(o);return d.forEach(g=>{if(!(g!=null&&g.clippingFilter))return;const p=u.get(g.uid);if(!p||!p.get(h))return;let v=1;const{worldPointsSet:x,color:m}=p.get(h);for(let y=0;yo.worldToCanvas(_)),S={color:m,fillColor:m,fillOpacity:this.configuration.opacity,closePath:!0,lineWidth:2},T=g.uid+"#"+v;zs(i,f,T,C,S),v++}}),s=!0,s}}}function kme(t,e){e.forEach(({viewportId:r,renderingEngineId:n})=>{var o;const i=(o=hr(n))==null?void 0:o.getViewport(r);fk(t,i)})}function fk(t,e){const r=e.getActors(),n=dk(e);r.forEach(i=>{if(!(i!=null&&i.clippingFilter))return;let o=t.get(i.uid);if(o||(o=new Map,t.set(i.uid,o)),!o.get(n)){const a=i.clippingFilter.getOutputData(),s=JA(a);if(!s)return;const c=i.actor.getProperty().getColor(),l=Vme(c);o.set(n,{worldPointsSet:s,color:l})}})}function dk(t){const{viewPlaneNormal:e}=t.getCamera(),r=t.getCurrentImageIdIndex();return`${t.id}-${jC(e)}-${r}`}function Vme(t){function e(r){let n=Math.floor(r*255).toString(16);return n.length===1&&(n="0"+n),n}return"#"+e(t[0])+e(t[1])+e(t[2])}uk.toolName="SegmentationIntersection";class Ri extends lc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}}){super(e,r),this.isDrawing=!1,this.isHandleOutsideImage=!1,this._elementWithCursor=null,this._currentCursorWorldPosition=null,this._currentCanvasPosition=null,this._disableCursorEnabled=!1,this.mouseMoveCallback=n=>{const{detail:i}=n,{element:o,currentPoints:a}=i;this._currentCursorWorldPosition=a.world,this._currentCanvasPosition=a.canvas,this._elementWithCursor=o;const s=this.getActiveAnnotation(o);return s===null?(this.createInitialAnnotation(a.world,o),!1):(this.updateAnnotationPosition(o,s),!1)},this.createInitialAnnotation=(n,i)=>{const o=ne(i);if(!o)throw new Error("No enabled element found");const{viewport:a,renderingEngine:s}=o;this.isDrawing=!0;const c=a.getCamera(),{viewPlaneNormal:l,viewUp:f}=c;if(!l||!f)throw new Error("Camera not found");const u=this.getReferencedImageId(a,n,l,f),d=a.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...l],viewUp:[...f],FrameOfReferenceUID:d,referencedImageId:u},data:{label:"",handles:{points:[[...n]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(_t(this.getToolName(),i).length>0)return null;if(Ut(h,i)===null)return;const v=He(i,this.getToolName(),!1);pe(v)},this.onCameraModified=n=>{const i=n.detail,{element:o,previousCamera:a,camera:s}=i,l=ne(o).viewport;if(o!==this._elementWithCursor)return;const f=a.focalPoint,u=s.viewPlaneNormal,d=s.focalPoint,h=[0,0,0];if(nt.subtract(d,f,h),h.reduce((v,x)=>v+x,0)===0)return;const g=nt.dot(h,u);if(Math.abs(g)<.01||!this._currentCanvasPosition)return;const p=l.canvasToWorld(this._currentCanvasPosition);this._currentCursorWorldPosition=p,this.updateAnnotationPosition(o,this.getActiveAnnotation(o))},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a,FrameOfReferenceUID:s}=n,c=this._elementWithCursor===a.element;this.configuration.positionSync&&!c&&this.updateViewportImage(a);const{element:l}=a;let f=_t(this.getToolName(),l);if(!(f!=null&&f.length)||(f=this.filterInteractableAnnotationsForElement(l,f),!(f!=null&&f.length)))return o;const u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;disNaN(I)))return o;const S=x.map(I=>a.worldToCanvas(I));if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!Br(g))continue;const T={upper:"upper",right:"right",lower:"lower",left:"left"},[_,E]=S[0],D=c?20:7,b=c?5:7;It(i,g,T.upper,[_,E-(D/2+b)],[_,E-D/2],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.lower,[_,E+(D/2+b)],[_,E+D/2],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.right,[_+(D/2+b),E],[_+D/2,E],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.left,[_-(D/2+b),E],[_-D/2,E],{color:C,lineDash:w,lineWidth:y}),o=!0}return o},this._disableCursorEnabled=this.configuration.disableCursor}onSetToolActive(){if(this._disableCursorEnabled=this.configuration.disableCursor,!this._disableCursorEnabled)return;const e=Wn(this.toolGroupId).viewportsInfo;if(!e)return;e.map(n=>fr(n.viewportId,n.renderingEngineId)).forEach(n=>{n&&Ze(n.viewport.element)})}onSetToolDisabled(){if(!this._disableCursorEnabled)return;const e=Wn(this.toolGroupId).viewportsInfo;if(!e)return;e.map(n=>fr(n.viewportId,n.renderingEngineId)).forEach(n=>{n&<(n.viewport.element)})}getActiveAnnotation(e){const r=_t(this.getToolName(),e);return r.length?r[0]:null}updateAnnotationPosition(e,r){var a,s;const n=this._currentCursorWorldPosition;if(!n||!((s=(a=r.data)==null?void 0:a.handles)!=null&&s.points))return;r.data.handles.points=[[...n]],r.invalidated=!0;const i=He(e,this.getToolName(),!1);ne(e)&&pe(i)}filterInteractableAnnotationsForElement(e,r){var d,h,g;if(!(r instanceof Array)||r.length===0)return[];const n=r[0],i=(d=ne(e))==null?void 0:d.viewport;if(!i)return[];const o=i.getCamera(),{viewPlaneNormal:a,focalPoint:s}=o;if(!a||!s)return[];const c=(g=(h=n.data)==null?void 0:h.handles)==null?void 0:g.points;if(!(c instanceof Array)||c.length!==1)return[];const l=c[0],f=Ua(a,s);return H1(f,l)isNaN(n)))){if(e instanceof un){const n=cR(r,e);if(n===null)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof sn){const{focalPoint:n,viewPlaneNormal:i}=e.getCamera();if(!n||!i)return;const o=Ua(i,n),a=H1(o,r,!0);if(Math.abs(a)<.5)return;const s=an(xe(),Ye(...i)),c=cr(xe(),s,a),l=xn(xe(),Ye(...n),c);{e.setCamera({focalPoint:l});const f=e.getRenderingEngine();f&&f.renderViewport(e.id)}}}}}Ri.toolName="ReferenceCursors";const DE=[];class hk extends lc{constructor(e={},r={configuration:{viewportId:"",scaleLocation:"bottom"}}){super(e,r),this.editData=null,this._init=()=>{const i=_i()[0];if(!i)return;const o=Wn(this.toolGroupId).viewportsInfo;if(!o)return;const a=o.map(g=>fr(g.viewportId,g.renderingEngineId));let{viewport:s}=a[0];const{FrameOfReferenceUID:c}=a[0];if(this.configuration.viewportId&&a.forEach(g=>{g.viewport.id==this.configuration.viewportId&&(s=g.viewport)}),!s)return;const{viewUp:l,viewPlaneNormal:f}=s.getCamera(),u=Y1(s);let d=this.editData.annotation;const h=_t(this.getToolName(),s.element);h.length&&(d=h.filter(g=>g.data.viewportId==s.id)[0]),a.forEach(g=>{const{viewport:p}=g;if(!DE.includes(p.id)){const v={metadata:{toolName:this.getToolName(),viewPlaneNormal:[...f],viewUp:[...l],FrameOfReferenceUID:c,referencedImageId:null},data:{handles:{points:Y1(p)},viewportId:p.id}};DE.push(p.id),Ut(v,p.element),d=v}}),this.editData.annotation&&this.editData.annotation.data.viewportId==s.id&&(this.editData.annotation.data.handles.points=u,this.editData.annotation.data.viewportId=s.id),this.editData={viewport:s,renderingEngine:i,annotation:d}},this.onSetToolEnabled=()=>{this._init()},this.onCameraModified=n=>{this.configuration.viewportId=n.detail.viewportId,this._init()},this.computeScaleSize=(n,i,o)=>{const a=[16e3,8e3,4e3,2e3,1e3,500,250,100,50,25,10,5,2];let s;return o=="top"||o=="bottom"?s=a.filter(c=>cn*.2):s=a.filter(c=>ci*.2),s[0]},this.computeEndScaleTicks=(n,i)=>{const o={bottom:[[0,-10],[0,-10]],top:[[0,10],[0,10]],left:[[0,0],[10,0]],right:[[0,0],[-10,0]]},a=[[n[1][0]+o[i][0][0],n[1][1]+o[i][0][0]],[n[1][0]+o[i][1][0],n[1][1]+o[i][1][1]]],s=[[n[0][0]+o[i][0][0],n[0][1]+o[i][0][0]],[n[0][0]+o[i][1][0],n[0][1]+o[i][1][1]]];return{endTick1:a,endTick2:s}},this.computeInnerScaleTicks=(n,i,o,a,s)=>{let c;i=="bottom"||i=="top"?c=s[0][0]-a[0][0]:(i=="left"||i=="right")&&(c=s[0][1]-a[0][1]);const l=[],f=[],u=[];let d=n;n>=50&&(d=n/10);const h=c/d;for(let g=0;g{let a,s=kt(xe(),o[0],o[1]);s=an(xe(),s);let c=kt(xe(),o[2],o[0]);c=an(xe(),c);const l={bottom:[o[1],o[2]],top:[o[0],o[3]],right:[o[2],o[3]],left:[o[0],o[1]]},f=xn(xe(),l[i][0],l[i][0]).map(d=>d/2),u=n/2/Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2));return i=="top"||i=="bottom"?a=[kt(xe(),f,c.map(d=>d*u)),xn(xe(),f,c.map(d=>d*u))]:(i=="left"||i=="right")&&(a=[xn(xe(),f,s.map(d=>d*u)),kt(xe(),f,s.map(d=>d*u))]),a},this.computeCanvasScaleCoordinates=(n,i,o,a,s)=>{let c;if(s=="top"||s=="bottom"){const l=i[0][0]-i[1][0];c=[[n.width/2-l/2,o.height],[n.width/2+l/2,o.height]]}else if(s=="left"||s=="right"){const l=i[0][1]-i[1][1];c=[[a.width,n.height/2-l/2],[a.width,n.height/2+l/2]]}return c},this.computeScaleBounds=(n,i,o,a)=>{const s=i*Math.min(1e3,n.width),c=o*Math.min(1e3,n.height),l={bottom:[-c,-s],top:[c,s],left:[c,s],right:[-c,-s]},f={bottom:[n.height,n.width],top:[0,n.width],left:[n.height,0],right:[n.height,n.width]};return{height:f[a][0]+l[a][0],width:f[a][1]+l[a][1]}}}renderAnnotation(e,r){if(!this.editData.viewport)return;const n=this.configuration.scaleLocation,{viewport:i}=e,a=_t(this.getToolName(),i.element).filter(re=>re.data.viewportId==i.id)[0],s=e.viewport.canvas,c=!1;if(!i)return c;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id},f={width:s.width/window.devicePixelRatio||1,height:s.height/window.devicePixelRatio||1},u=a.data.handles.points[0],d=a.data.handles.points[1],h=a.data.handles.points[2],g=a.data.handles.points[3],p=[u,h,d,g],v=Cr(h,g),x=Cr(u,h),m=this.computeScaleBounds(f,.05,.05,n),y=this.computeScaleBounds(f,.05,.05,n),w=this.computeScaleSize(v,x,n),C=this.computeWorldScaleCoordinates(w,n,p).map(re=>i.worldToCanvas(re)),S=this.computeCanvasScaleCoordinates(f,C,y,m,n),T=this.computeEndScaleTicks(S,n),{annotationUID:_}=a;l.annotationUID=_;const E=this.getStyle("lineWidth",l,a),D=this.getStyle("lineDash",l,a),b=this.getStyle("color",l,a),I=this.getStyle("shadow",l,a),R=`${_}-scaleline`;It(r,_,"1",S[0],S[1],{color:b,width:E,lineDash:D,shadow:I},R);const L=`${_}-left`;It(r,_,"2",T.endTick1[0],T.endTick1[1],{color:b,width:E,lineDash:D,shadow:I},L);const G=`${_}-right`;It(r,_,"3",T.endTick2[0],T.endTick2[1],{color:b,width:E,lineDash:D,shadow:I},G);const N={bottom:[-10,-42],top:[-12,-35],left:[-40,-20],right:[-50,-20]},V=[S[0][0]+N[n][0],S[0][1]+N[n][1]],$=this._getTextLines(w),{tickIds:j,tickUIDs:Y,tickCoordinates:te}=this.computeInnerScaleTicks(w,n,_,T.endTick1,T.endTick2);for(let re=0;re=50?(r=e/10,n=" cm"):(r=e,n=" mm"),[r.toString().concat(n)]}}hk.toolName="ScaleOverlay";const gk=(t,e,r)=>{var a,s,c;if(!((c=(s=(a=e==null?void 0:e.data)==null?void 0:a.contour)==null?void 0:s.polyline)!=null&&c.length))return;const{polyline:n}=e.data.contour,{length:i}=n;let o=1/0;for(let l=0;lthis.toolInfo.toolSize||(this.pushOneHandle(a,c,r),o.first===void 0&&(o.first=a),o.last=a)}return o}configureToolSize(e){const r=this.toolInfo;if(r.toolSize&&r.maxToolSize)return;const i=e.detail.element,a=Math.min(i.clientWidth,i.clientHeight)/12;r.toolSize=a,r.maxToolSize=a}updateToolSize(e,r,n){const i=this.toolInfo,o=gk(r,n,e);o>0&&(i.toolSize=Math.min(i.maxToolSize,o))}getMaxSpacing(e){return Math.max(this.toolInfo.toolSize/4,e)}getInsertPosition(e,r,n){let i;const{points:o,element:a,mouseCanvasPoint:s}=n,c=this.toolInfo.toolSize,l=ne(a),{viewport:f}=l,u=f.worldToCanvas(o[e]),d=f.worldToCanvas(o[r]),h=[(u[0]+d[0])/2,(u[1]+d[1])/2],g=ao(s,h);if(g{const i=n.detail,o=i.element;if(this.configureToolSize(n),this.selectFreehandTool(i),this.commonData.activeAnnotationUID!==null)return this.isActive=!0,Ze(o),this.activateModify(o),!0},this.mouseMoveCallback=n=>{this.mode===Ft.Active?(this.configureToolSize(n),this.updateCursor(n)):this.commonData.canvasLocation=void 0},this.endCallback=n=>{const i=n.detail,{element:o}=i,a=this.configuration,s=ne(o);this.isActive=!1,this.deactivateModify(o),lt(o);const{renderingEngineId:c,viewportId:l}=s,u=Cn(l,c).getToolInstance(a.referencedToolName),h=this.filterSculptableAnnotationsForElement(o).find(g=>g.annotationUID===this.commonData.activeAnnotationUID);u.configuration.calculateStats&&(h.invalidated=!0),dn(h,o)},this.dragCallback=n=>{const i=n.detail,o=i.element;this.updateCursor(n);const a=this.filterSculptableAnnotationsForElement(o),s=a.find(l=>l.annotationUID===this.commonData.activeAnnotationUID);if(!(a!=null&&a.length)||!this.isActive)return;const c=s.data.contour.polyline;this.sculpt(i,c)},this.registerShapes(ed.shapeName,ed),this.setToolShape(this.configuration.toolShape)}registerShapes(e,r){const n=new r;this.registeredShapes.set(e,n)}sculpt(e,r){const n=this.configuration,i=e.element,o=ne(i),{viewport:a}=o,s=this.registeredShapes.get(this.selectedShape);this.sculptData={mousePoint:e.currentPoints.world,mouseCanvasPoint:e.currentPoints.canvas,points:r,maxSpacing:s.getMaxSpacing(n.minSpacing),element:i};const c=s.pushHandles(a,this.sculptData);c.first!==void 0&&this.insertNewHandles(c)}interpolatePointsWithinMaxSpacing(e,r,n,i){const{element:o}=this.sculptData,a=ne(o),{viewport:s}=a,c=bE(e+1,r.length),l=s.worldToCanvas(r[e]),f=s.worldToCanvas(r[c]);ao(l,f)>i&&n.push(e)}updateCursor(e){const r=e.detail,n=r.element,i=ne(n),{renderingEngine:o,viewport:a}=i;this.commonData.viewportIdsToRender=[a.id];const s=this.filterSculptableAnnotationsForElement(n);if(!(s!=null&&s.length))return;const c=s.find(l=>l.annotationUID===this.commonData.activeAnnotationUID);if(this.commonData.canvasLocation=r.currentPoints.canvas,this.isActive)c.highlighted=!0;else{const l=this.registeredShapes.get(this.selectedShape),f=r.currentPoints.canvas;l.updateToolSize(f,a,c)}pe(this.commonData.viewportIdsToRender)}filterSculptableAnnotationsForElement(e){const r=this.configuration,n=ne(e),{renderingEngineId:i,viewportId:o}=n,a=[],c=Cn(o,i).getToolInstance(r.referencedToolName);return r.referencedToolNames.forEach(l=>{const f=_t(l,e);f&&a.push(...f)}),c.filterInteractableAnnotationsForElement(e,a)}configureToolSize(e){this.registeredShapes.get(this.selectedShape).configureToolSize(e)}insertNewHandles(e){const r=this.findNewHandleIndices(e);let n=0;for(let i=0;i<(r==null?void 0:r.length);i++){const o=r[i]+1+n;this.insertHandleRadially(o),n++}}findNewHandleIndices(e){const{points:r,maxSpacing:n}=this.sculptData,i=[];for(let o=e.first;o<=e.last;o++)this.interpolatePointsWithinMaxSpacing(o,r,i,n);return i}insertHandleRadially(e){const{points:r}=this.sculptData;if(e>r.length-1&&this.commonData.isEditingOpenContour)return;const n=this.registeredShapes.get(this.selectedShape),i=e-1,o=bE(e,r.length),s=n.getInsertPosition(i,o,this.sculptData);r.splice(e,0,s)}selectFreehandTool(e){const r=this.getClosestFreehandToolOnElement(e);r!==void 0&&(this.commonData.activeAnnotationUID=r)}getClosestFreehandToolOnElement(e){const{element:r}=e,n=ne(r),{viewport:i}=n,o=this.configuration,a=this.filterSculptableAnnotationsForElement(r);if(!(a!=null&&a.length))return;const s=e.currentPoints.canvas,c={distance:1/0,toolIndex:void 0,annotationUID:void 0};for(let l=0;l<(a==null?void 0:a.length);l++){if(a[l].isLocked||!a[l].isVisible)continue;const f=gk(i,a[l],s);f!==-1&&f(t+e)%e;a0.toolName="SculptorTool";const Fme={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]};class pk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:Fme.Z,rotateIncrementDegrees:30}}){super(e,r)}mouseWheelCallback(e){const{element:r,wheel:n}=e.detail,i=ne(r),{viewport:o}=i,{direction:a,rotateIncrementDegrees:s}=this.configuration,c=o.getCamera(),{viewUp:l,position:f,focalPoint:u}=c,{direction:d}=n,[h,g,p]=u,[v,x,m]=a,y=d*(s*Math.PI)/180,w=[0,0,0],C=[0,0,0],S=[0,0,0],T=qe(new Float32Array(16));rn(T,T,[h,g,p]),Kr(T,T,y,[v,x,m]),rn(T,T,[-h,-g,-p]),et(w,f,T),et(C,u,T),qe(T),Kr(T,T,y,[v,x,m]),et(S,l,T),o.setCamera({position:w,viewUp:S,focalPoint:C}),o.render()}}pk.toolName="VolumeRotateMouseWheel";const{transformWorldToIndex:IE}=Jt;class yl extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,getTextLines:Ume}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;Ze(a),this.isDrawing=!0;const{viewPlaneNormal:u,viewUp:d,position:h}=l.getCamera(),g=this.getReferencedImageId(l,s,u,d),p={highlighted:!0,invalidated:!0,metadata:{...l.getViewReference({points:[s]}),toolName:this.getToolName(),referencedImageId:g,viewUp:d,cameraPosition:h},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(v),p},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Ar([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{annotation:o,viewportIdsToRender:a,handleIndex:s,movingTextBox:c}=this.editData,{data:l}=o;if(c){const{deltaPoints:f}=i,u=f.world,{textBox:d}=l.handles,{worldPosition:h}=d;h[0]+=u[0],h[1]+=u[1],h[2]+=u[2],d.hasMoved=!0}else if(s===void 0){const{deltaPoints:f}=i,u=f.world;l.handles.points.forEach(h=>{h[0]+=u[0],h[1]+=u[1],h[2]+=u[2]}),o.invalidated=!0}else{const{currentPoints:f}=i,u=f.world;l.handles.points[s]=[...u],o.invalidated=!0}this.editData.hasMoved=!0,pe(a)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(N));if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let T;if(!Br(g))continue;!rr(g)&&!this.editData&&x!==null&&(T=[S[x]]),T&&cn(i,g,"0",S,{color:m,lineDash:w,lineWidth:y});const _=`${g}-line`;if(It(i,g,"1",S[0],S[1],{color:m,width:y,lineDash:w,shadow:C},_),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const D=this.getLinkedTextBoxStyle(u,h);if(!D.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const b=this.configuration.getTextLines(p,l);if(!p.handles.textBox.hasMoved){const N=$i(S);p.handles.textBox.worldPosition=a.canvasToWorld(N)}const I=a.worldToCanvas(p.handles.textBox.worldPosition),M=ti(i,g,"1",b,I,S,{},D),{x:L,y:A,width:G,height:P}=M;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([L,A]),topRight:a.canvasToWorld([L+G,A]),bottomLeft:a.canvasToWorld([L,A+P]),bottomRight:a.canvasToWorld([L+G,A+P])}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Ze(o),ne(o),pe(l),e.preventDefault()}_calculateLength(e,r){const n=e[0]-r[0],i=e[1]-r[1],o=e[2]-r[2];return Math.sqrt(n*n+i*i+o*o)}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport,a=i.handles.points[0],s=i.handles.points[1],{cachedStats:c}=i,l=Object.keys(c);for(let f=0;f{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;Ze(a),this.isDrawing=!0;const{viewPlaneNormal:u,viewUp:d,position:h}=l.getCamera(),g=this.getReferencedImageId(l,s,u,d),p={highlighted:!0,invalidated:!0,metadata:{...l.getViewReference({points:[s]}),toolName:this.getToolName(),referencedImageId:g,viewUp:d,cameraPosition:h},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(v),p},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Ar([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,ne(n),pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(P));let T;if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!Br(g))continue;if(!rr(g)&&!this.editData&&x!==null&&(T=[S[x]]),T&&cn(i,g,"0",S,{color:m,lineDash:w,lineWidth:y}),AN(i,g,"0",S[0],S[1],{color:m,width:y,lineDash:w}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const E=this.getLinkedTextBoxStyle(u,h);if(!E.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const D=this.configuration.getTextLines(p,l);if(!p.handles.textBox.hasMoved){const P=$i(S);p.handles.textBox.worldPosition=a.canvasToWorld(P)}const b=a.worldToCanvas(p.handles.textBox.worldPosition),R=ti(i,g,"1",D,b,S,{},E),{x:M,y:L,width:A,height:G}=R;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,L]),topRight:a.canvasToWorld([M+A,L]),bottomLeft:a.canvasToWorld([M,L+G]),bottomRight:a.canvasToWorld([M+A,L+G])}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Ze(o),ne(o),pe(l),e.preventDefault()}_calculateHeight(e,r){const n=r[0]-e[0],i=r[1]-e[1],o=r[2]-e[2];if(n==0)return i!=0?Math.abs(o):0;if(i==0)return Math.abs(o);if(o==0)return Math.abs(i)}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport,a=i.handles.points[0],s=i.handles.points[1],{cachedStats:c}=i,l=Object.keys(c);for(let f=0;f{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(l,s,u),g=l.getFrameOfReferenceUID(),p={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:g,referencedImageId:h},data:{label:"",handles:{points:[[...s]]},cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,newAnnotation:!0,viewportIdsToRender:v},this._activateModify(a),Ze(a),n.preventDefault(),pe(v),p},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c}=this.editData,{viewportId:l,renderingEngine:f}=ne(o);this.eventDispatchDetail={viewportId:l,renderingEngineId:f.id},this._deactivateModify(o),lt(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,{annotation:c,viewportIdsToRender:l}=this.editData,{data:f}=c;f.handles.points[0]=[...s],c.invalidated=!0,ne(a),pe(l)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;d{const b=Pn(S),I=D.hasImageURI(b),R=Pn(D.getCurrentImageId());return I&&R!==b})&&delete p.cachedStats[T]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;cn(i,g,"0",[x],{color:m}),o=!0;const w=this.getLinkedTextBoxStyle(u,h);if(!w.visibility)continue;const C=this.configuration.getTextLines(p,l);if(C){const S=[x[0]+6,x[1]-6];gl(i,g,"0",C,[S[0],S[1]],w)}}return o}}isPointNearTool(){return!1}toolSelectedCallback(){}getHandleNearImagePoint(e,r,n,i){const o=ne(e),{viewport:a}=o,{data:s}=r,c=s.handles.points[0],l=a.worldToCanvas(c);if(In(n,l)E!==null);C=_?T.values:C,S=_?T.units:"raw"}else S=Dl(y,e.metadata.referencedImageId,h);l[d]={index:w,value:C,Modality:y,modalityUnit:S}}else this.isHandleOutsideImage=!0,l[d]={index:w,Modality:y};e.invalidated=!1,dn(e,s)}return l}}function Wme(t,e){const r=t.cachedStats[e],{index:n,value:i,modalityUnit:o}=r;if(i===void 0)return;const a=[];if(a.push(`(${n[0]}, ${n[1]}, ${n[2]})`),i instanceof Array&&o instanceof Array)for(let s=0;s{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:g},data:{label:"",handles:{points:[[...s]]},cachedStats:{}}},v=He(a,this.getToolName());return this.editData={annotation:p,newAnnotation:!0,viewportIdsToRender:v},this._activateModify(a),Ze(a),n.preventDefault(),pe(v),p},this.postTouchStartCallback=n=>this.postMouseDownCallback(n),this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;if(!this.editData)return o;const s=this.filterInteractableAnnotationsForElement(a.element,[this.editData.annotation]);if(!(s!=null&&s.length))return o;const c=this.getTargetId(a),l=a.getRenderingEngine(),f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},u=this.editData.annotation,d=u.annotationUID,h=u.data,g=h.handles.points[0],p=a.worldToCanvas(g);f.annotationUID=d;const{color:v}=this.getAnnotationStyle({annotation:u,styleSpecifier:f});if(!h.cachedStats[c]||h.cachedStats[c].value==null?(h.cachedStats[c]={Modality:null,index:null,value:null},this._calculateCachedStats(u,l,n)):u.invalidated&&this._calculateCachedStats(u,l,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;cn(i,d,"0",[p],{color:v}),o=!0;const m=this.configuration.getTextLines(h,c);if(m){const y=[p[0]+6,p[1]-6];gl(i,d,"0",m,[y[0],y[1]],this.getLinkedTextBoxStyle(f,u))}return o}}}function zme(t,e){const r=t.cachedStats[e],{index:n,value:i,modalityUnit:o}=r;if(i===void 0)return;const a=[];return a.push(`(${n[0]}, ${n[1]}, ${n[2]})`),a.push(`${i.toFixed(2)} ${o}`),a}vk.toolName="DragProbe";function P2(t,e,r,n){const i=xe();qt(i,e,t);const o=Ye(...r),a=Ye(...n),s=xe();kt(s,o,a);const c=ui(s);if(c<1e-4)return{worldWidth:0,worldHeight:0};const l=je(s,i)/(c*ui(i)),u=Math.sqrt(1-l*l)*c,d=l*c;return{worldWidth:u,worldHeight:d}}const{transformWorldToIndex:ME}=Jt;class s0 extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,storePointData:!1,centerPointRadius:0,getTextLines:$me,statsCalculator:Xa}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world;o.canvas;const c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},cachedStats:{},initialRotation:l.getRotation()}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,centerWorld:s,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=f.map(y=>c.worldToCanvas(y)),d=qf(u),[h,g]=d,p={left:Math.min(h[0],g[0])+a/2,top:Math.min(h[1],g[1])+a/2,width:Math.abs(h[0]-g[0])-a,height:Math.abs(h[1]-g[1])-a},v={left:Math.min(h[0],g[0])-a/2,top:Math.min(h[1],g[1])-a/2,width:Math.abs(h[0]-g[0])+a,height:Math.abs(h[1]-g[1])+a},x=this._pointInEllipseCanvas(p,o);return!!(this._pointInEllipseCanvas(v,o)&&!x)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},Ze(a),this._activateModify(a),ne(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f,u,d,h,g,p;if(o.worldPosition)l=!0;else{const{points:x}=c.handles,{viewport:m}=ne(s),{worldToCanvas:y,canvasToWorld:w}=m;f=x.findIndex(S=>S===o);const C=x.map(y);p=C[f],h=Math.abs(C[2][0]-C[3][0]),g=Math.abs(C[0][1]-C[1][1]),u=[(C[2][0]+C[3][0])/2,(C[0][1]+C[1][1])/2],d=w(u)}const v=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:v,handleIndex:f,canvasWidth:h,canvasHeight:g,centerWorld:d,originalHandleCanvas:p,movingTextBox:l},this._activateModify(s),Ze(s),ne(s),pe(v),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=ne(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerWorld:g}=this.editData,p=f.worldToCanvas(g),{data:v}=d,x=Math.abs(s[0]-p[0]),m=Math.abs(s[1]-p[1]),y=[p[0],p[1]-m],w=[p[0],p[1]+m],C=[p[0]-x,p[1]],S=[p[0]+x,p[1]];v.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragHandle(n),a.invalidated=!0;ne(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,{viewport:a}=ne(o),{canvasToWorld:s,worldToCanvas:c}=a,{annotation:l,canvasWidth:f,canvasHeight:u,handleIndex:d,centerWorld:h,originalHandleCanvas:g}=this.editData,p=a.worldToCanvas(h),{data:v}=l,{points:x}=v.handles,{currentPoints:m}=i,y=m.canvas;if(d===0||d===1){const w=Math.abs(y[1]-p[1]),C=[p[0],p[1]-w],S=[p[0],p[1]+w];x[0]=s(C),x[1]=s(S);const T=y[0]-g[0],_=f/2+T,E=[p[0]-_,p[1]],D=[p[0]+_,p[1]];x[2]=s(E),x[3]=s(D)}else{const w=Math.abs(y[0]-p[0]),C=[p[0]-w,p[1]],S=[p[0]+w,p[1]];x[2]=s(C),x[3]=s(S);const T=y[1]-g[1],_=u/2+T,E=[p[0],p[1]-_],D=[p[0],p[1]+_];x[0]=s(E),x[1]=s(D)}},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(j)),T=qf(S),{centerPointRadius:_}=this.configuration;if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(h,a,f);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,a,f,n),a instanceof sn)){const{referencedImageId:j}=h.metadata;for(const Y in p.cachedStats)Y.startsWith("imageId")&&f.getStackViewports().find(re=>{const de=Pn(j),fe=re.hasImageURI(de),se=Pn(re.getCurrentImageId());return fe&&se!==de})&&delete p.cachedStats[Y]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let E;if(!Br(g))continue;!rr(g)&&!this.editData&&m!==null&&(E=[S[m]]),E&&cn(i,g,"0",E,{color:y});const D=`${g}-ellipse`,b="0";if(tS(i,g,b,S,{color:y,lineDash:C,lineWidth:w},D),_>0&&Math.min(Math.abs(T[0][0]-T[1][0])/2,Math.abs(T[0][1]-T[1][1])/2)>3*_){const Y=this._getCanvasEllipseCenter(S);bi(i,g,`${b}-center`,Y,_,{color:y,lineDash:C,lineWidth:w})}o=!0;const I=this.getLinkedTextBoxStyle(u,h);if(!I.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const R=this.configuration.getTextLines(p,l);if(!R||R.length===0)continue;let M;p.handles.textBox.hasMoved||(M=$i(T),p.handles.textBox.worldPosition=a.canvasToWorld(M));const L=a.worldToCanvas(p.handles.textBox.worldPosition),G=ti(i,g,"1",R,L,S,{},I),{x:P,y:N,width:V,height:$}=G;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,N]),topRight:a.canvasToWorld([P+V,N]),bottomLeft:a.canvasToWorld([P,N+$]),bottomRight:a.canvasToWorld([P+V,N+$])}}return o},this._calculateCachedStats=(n,i,o)=>{var w,C,S;const a=n.data,{element:s}=i,{points:c}=a.handles,l=c.map(T=>i.worldToCanvas(T)),{viewPlaneNormal:f,viewUp:u}=i.getCamera(),[d,h]=qf(l),g=i.canvasToWorld(d),p=i.canvasToWorld(h),{cachedStats:v}=a,x=Object.keys(v),m=g,y=p;for(let T=0;TS2(te,K,{fast:!0}),returnPoints:this.configuration.storePointData}),H=this.configuration.statsCalculator.getStatistics();v[_]={Modality:I.Modality,area:O,mean:(w=H.mean)==null?void 0:w.value,max:(C=H.max)==null?void 0:C.value,stdDev:(S=H.stdDev)==null?void 0:S.value,statsArray:H.array,pointsInShape:z,isEmptyArea:de,areaUnit:k,modalityUnit:U}}return n.invalidated=!1,dn(n,s),v},this._isInsideVolume=(n,i,o)=>On(n,o)&&On(i,o),this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}_pointInEllipseCanvas(e,r){const n=e.width/2,i=e.height/2;if(n<=0||i<=0)return!1;const o=[e.left+n,e.top+i],a=[r[0]-o[0],r[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(i*i)<=1}_getCanvasEllipseCenter(e){const[r,n,i,o]=e,a=[i[0],n[1]],s=[o[0],r[1]];return[(a[0]+s[0])/2,(a[1]+s[1])/2]}}function $me(t,e){const r=t.cachedStats[e],{area:n,mean:i,stdDev:o,max:a,isEmptyArea:s,areaUnit:c,modalityUnit:l}=r,f=[];if(n){const u=s?"Area: Oblique not supported":`Area: ${xt(n)} ${c}`;f.push(u)}return i&&f.push(`Mean: ${xt(i)} ${l}`),a&&f.push(`Max: ${xt(a)} ${l}`),o&&f.push(`Std Dev: ${xt(o)} ${l}`),f}s0.toolName="EllipticalROI";const{transformWorldToIndex:RE}=Jt;class _S extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,storePointData:!1,centerPointRadius:0,getTextLines:jme,statsCalculator:Xa}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s]],activeHandleIndex:null},cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=f.map(g=>c.worldToCanvas(g)),d=Zc(u),h=Zc([u[0],o]);return Math.abs(h-d){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},Ze(a),this._activateModify(a),ne(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),Ze(s),ne(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=ne(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h}=this.editData,{data:g}=d;g.handles.points=[g.handles.points[0],u(s)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragHandle(n),a.invalidated=!0;ne(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,a=ne(o),{canvasToWorld:s,worldToCanvas:c}=a.viewport,{annotation:l,handleIndex:f}=this.editData,{data:u}=l,{points:d}=u.handles,h=d.map(v=>c(v)),{currentPoints:g}=i,p=g.canvas;if(f===0){const v=p[0]-h[0][0],x=p[1]-h[0][1],m=p,y=[h[1][0]+v,h[1][1]+x];d[0]=s(m),d[1]=s(y)}else d[1]=s(p)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(te)),T=S[0],_=Zc(S),E=Qf(S),{centerPointRadius:D}=this.configuration;if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null,radius:null,radiusUnit:null,perimeter:null},this._calculateCachedStats(h,a,f,n);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,a,f,n),a instanceof sn)){const{referencedImageId:te}=h.metadata;for(const Q in p.cachedStats)Q.startsWith("imageId")&&f.getStackViewports().find(fe=>{const se=Pn(te),k=fe.hasImageURI(se),O=Pn(fe.getCurrentImageId());return k&&O!==se})&&delete p.cachedStats[Q]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let b;if(!Br(g))continue;!rr(g)&&!this.editData&&m!==null&&(b=[S[m]]),b&&cn(i,g,"0",b,{color:y});const I=`${g}-circle`,R="0";bi(i,g,R,T,_,{color:y,lineDash:C,lineWidth:w},I),D>0&&_>3*D&&bi(i,g,`${R}-center`,T,D,{color:y,lineDash:C,lineWidth:w}),o=!0;const M=this.getLinkedTextBoxStyle(u,h);if(!M.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const L=this.configuration.getTextLines(p,l);if(!L||L.length===0)continue;let A;p.handles.textBox.hasMoved||(A=$i(E),p.handles.textBox.worldPosition=a.canvasToWorld(A));const G=a.worldToCanvas(p.handles.textBox.worldPosition),N=ti(i,g,"1",L,G,S,{},M),{x:V,y:$,width:j,height:Y}=N;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([V,$]),topRight:a.canvasToWorld([V+j,$]),bottomLeft:a.canvasToWorld([V,$+Y]),bottomRight:a.canvasToWorld([V+j,$+Y])}}return o},this._calculateCachedStats=(n,i,o,a)=>{var C,S,T;const s=n.data,{element:c}=i,{points:l}=s.handles,f=l.map(_=>i.worldToCanvas(_)),{viewPlaneNormal:u,viewUp:d}=i.getCamera(),[h,g]=Qf(f),p=i.canvasToWorld(h),v=i.canvasToWorld(g),{cachedStats:x}=s,m=Object.keys(x),y=p,w=v;for(let _=0;_S2(Q,ye,{fast:!0}),boundsIJK:Y,imageData:I,returnPoints:this.configuration.storePointData}),he=this.configuration.statsCalculator.getStatistics();x[E]={Modality:R.Modality,area:z,mean:(C=he.mean)==null?void 0:C.value,max:(S=he.max)==null?void 0:S.value,stdDev:(T=he.stdDev)==null?void 0:T.value,statsArray:he.array,pointsInShape:ie,isEmptyArea:fe,areaUnit:B,radius:re/2/k,radiusUnit:O,perimeter:2*Math.PI*(re/2)/k,modalityUnit:K}}else this.isHandleOutsideImage=!0,x[E]={Modality:R.Modality}}return n.invalidated=!1,dn(n,c),x},this._isInsideVolume=(n,i,o)=>On(n,o)&&On(i,o),this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}}function jme(t,e){const r=t.cachedStats[e],{radius:n,radiusUnit:i,area:o,mean:a,stdDev:s,max:c,isEmptyArea:l,areaUnit:f,modalityUnit:u}=r,d=[];if(n){const h=l?"Radius: Oblique not supported":`Radius: ${xt(n)} ${i}`;d.push(h)}if(o){const h=l?"Area: Oblique not supported":`Area: ${xt(o)} ${f}`;d.push(h)}return a&&d.push(`Mean: ${xt(a)} ${u}`),c&&d.push(`Max: ${xt(c)} ${u}`),s&&d.push(`Std Dev: ${xt(s)} ${u}`),d}_S.toolName="CircleROI";const ep=5;class yk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,degrees:[45,135,225,315],diameters:[10,30,60]}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{points:[[...s]]}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,newAnnotation:!0},this._activateDraw(a),Ze(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=c.worldToCanvas(f[0]),d=Zc([u,o]);return Math.abs(d){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},Ze(a),this._activateModify(a),ne(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=ne(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h}=this.editData,{data:g}=d;g.handles.points=[u(s),u(s)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData,{data:c}=a,{deltaPoints:l}=i,f=l.world;c.handles.points.forEach(d=>{d[0]+=f[0],d[1]+=f[1],d[2]+=f[2]}),a.invalidated=!0,ne(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,a=ne(o),{canvasToWorld:s,worldToCanvas:c}=a.viewport,{annotation:l}=this.editData,{data:f}=l,{points:u}=f.handles,d=u.map(y=>c(y)),{currentPoints:h}=i,g=h.canvas,p=g[0]-d[0][0],v=g[1]-d[0][1],x=g,m=[d[1][0]+p,d[1][1]+v];u[0]=s(x),u[1]=s(m)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,ne(n),pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(b))[0];if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!Br(d))continue;let C=`${d}-crosshair-vertical`,S=[w[0],w[1]+ep],T=[w[0],w[1]-ep];It(i,d,C,S,T,{color:v,lineDash:m,lineWidth:x}),C=`${d}-crosshair-horizontal`,S=[w[0]+ep,w[1]],T=[w[0]-ep,w[1]],It(i,d,C,S,T,{color:v,lineDash:m,lineWidth:x});const _=this.configuration.diameters.map(b=>this.worldMeasureToCanvas(b,a));for(let b=0;b<_.length;b++){const I=`${d}-circle-${b}`,R=`${d}-circle-${b}`;bi(i,d,R,w,_[b]/2,{color:v,lineDash:m,lineWidth:x},I)}const E=b=>b*Math.PI/180,D=this.configuration.degrees.map(b=>E(b));for(let b=0;bthis.addControlPoint(r))}addControlPointAtU(e){const r=this._getLineSegmentAt(e),{start:n,end:i}=r.points,o=Math.floor(e),a=this._curveSegments[o],s=e-Math.floor(o),c=[n[0]+s*(i[0]-n[0]),n[1]+s*(i[1]-n[1])],l=this._controlPoints.indexOf(a.controlPoints.p1)+1;return this._controlPoints.splice(l,0,c),this.invalidated=!0,{index:l,point:c}}deleteControlPointByIndex(e){const r=this._closed?3:1;return e>=0&&er?(this._controlPoints.splice(e,1),this.invalidated=!0,!0):!1}clearControlPoints(){this._controlPoints=[],this.invalidated=!0}setControlPoints(e){this.clearControlPoints(),this.addControlPoints(e)}updateControlPoint(e,r){if(e<0||e>=this._controlPoints.length)throw new Error("Index out of bounds");this._controlPoints[e]=[...r],this.invalidated=!0}getControlPoints(){return this._controlPoints.map(e=>[e[0],e[1]])}getClosestControlPoint(e){const r=this._controlPoints;let n=1/0,i=-1;for(let o=0,a=r.length;ou.distanceSquared-d.distanceSquared);let n,i=-1,o=1/0,a,s;for(let u=0;uo)continue;const{curveSegmentIndex:h,curveSegment:g}=d,{lineSegments:p}=g;for(let v=0;v=c.minY&&e[1]=h.minY&&e[1]=l.maxX?o:l.maxX,a=a>=l.maxY?a:l.maxY,r+=f}this._curveSegments=e,this._aabb={minX:n,minY:i,maxX:o,maxY:a},this._length=r,this._invalidated=!1}_convertCurveSegmentsToPolyline(e){this._update();const r=[];return e.forEach(({lineSegments:n},i)=>{n.forEach((o,a)=>{i===0&&a===0&&r.push([...o.points.start]),r.push([...o.points.end])})}),r}_getCurveSegmmentsDistanceSquaredInfo(e){this._update();const r=[],{_curveSegments:n}=this;for(let i=0;in)return[];const i=this._getCurveSegmmentsDistanceSquaredInfo(e),o=[];for(let a=0,s=i.length;a=c.previousLineSegmentsLength&&a<=l)return c}}_getClosingCurveSegmentWithStraightLineSegment(){if(this.closed)return;const e=this._controlPoints,r=e[0],n=e[e.length-1],i={points:{start:[...r],end:[...n]},aabb:{minX:Math.min(r[0],n[0]),minY:Math.min(r[1],n[1]),maxX:Math.max(r[0],n[0]),maxY:Math.max(r[1],n[1])}};return{aabb:{minX:i.aabb.minX,minY:i.aabb.minY,maxX:i.aabb.maxX,maxY:i.aabb.maxY},lineSegments:[i]}}}const Kme=1e-8;class xk extends Hme{getPreviewCurveSegments(e,r){const n=this._getNumCurveSegments()+1,i=Math.max(0,n-2),o=r?n:n-1,a=this.getTransformMatrix(),s=[...this.controlPoints],c=[];r||s.push(e);for(let l=i;l<=o;l++){const f=this._getCurveSegment(l,a,s,r);c.push(f)}return c}getSplineCurves(){const e=this._getNumCurveSegments(),r=new Array(e);if(e<=0)return[];const n=this.getTransformMatrix();let i=0;for(let o=0;o=o)if(this.closed)s=(o+s)%o;else return;const{p0:f,p1:u,p2:d,p3:h}=this._getCurveSegmentPoints(s,n,i),g=c*c,p=g*c,v=Ep(1,c,g,p),x=Is(tb(),v,r);return[RT(x,Ep(f[0],u[0],d[0],h[0])),RT(x,Ep(f[1],u[1],d[1],h[1]))]}_getCurveSegmentPoints(e,r=this.controlPoints,n=this.closed){const i=this._getNumCurveSegments(r,n),o=e,a=o-1,s=n?(o+1)%i:o+1,c=s+1,l=r[o],f=r[s];let u,d;return a>=0?u=r[a]:u=n?r[r.length-1]:T3(f,l),cl?l:p;const v=this._getPoint(p,r,n,i);if(!g){u=v;continue}d=v;const x=d[0]-u[0],m=d[1]-u[1],y=Math.sqrt(x**2+m**2),w={minX:u[0]<=d[0]?u[0]:d[0],maxX:u[0]>=d[0]?u[0]:d[0],minY:u[1]<=d[1]?u[1]:d[1],maxY:u[1]>=d[1]?u[1]:d[1]};f.push({points:{start:u,end:d},aabb:w,length:y,previousLineSegmentsLength:h}),u=d,h+=y}return f}_getCurveSegment(e,r=this.getTransformMatrix(),n=this.controlPoints,i=this.closed){const{p0:o,p1:a,p2:s,p3:c}=this._getCurveSegmentPoints(e,n,i),l=this._getLineSegments(e,r,n,i);let f=0,u=1/0,d=1/0,h=-1/0,g=-1/0;return l.forEach(({aabb:p,length:v})=>{u=Math.min(u,p.minX),d=Math.min(d,p.minY),h=Math.max(h,p.maxX),g=Math.max(g,p.maxY),f+=v}),{controlPoints:{p0:o,p1:a,p2:s,p3:c},aabb:{minX:u,minY:d,maxX:h,maxY:g},length:f,previousCurveSegmentsLength:0,lineSegments:l}}}class wm extends xk{constructor(e){super(e),this._scale=(e==null?void 0:e.scale)??.5,this._fixedScale=(e==null?void 0:e.fixedScale)??!1}get scale(){return this._scale}set scale(e){this._fixedScale||this._scale===e||(this._scale=e,this.invalidated=!0)}get fixedScale(){return this._fixedScale}getTransformMatrix(){const{scale:e}=this,r=2*e;return[0,1,0,0,-e,0,e,0,r,e-3,3-r,-e,-e,2-e,e-2,e]}}class qme extends wm{constructor(){super({resolution:0,fixedResolution:!0,scale:0,fixedScale:!0})}}class Xme extends wm{constructor(){super({scale:.5,fixedScale:!0})}}const Yme=Z7(co(),hw(1,4,1,0,-3,0,3,0,3,-6,3,0,-1,3,-3,1),1/6);class Jme extends xk{getTransformMatrix(){return Yme}}const Zme=3,LE=10,Qme={resolution:20,controlPointAdditionDistance:6,controlPointDeletionDistance:6,showControlPointsConnectors:!1,controlPointAdditionEnabled:!0,controlPointDeletionEnabled:!0};var xs;(function(t){t.Cardinal="CARDINAL",t.Linear="LINEAR",t.CatmullRom="CATMULLROM",t.BSpline="BSPLINE"})(xs||(xs={}));var td;(function(t){t.AddControlPoint="addControlPoint",t.DeleteControlPoint="deleteControlPoint"})(td||(td={}));const Dm=class Dm extends sS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,calculateStats:!0,getTextLines:e2e,contourHoleAdditionModifierKey:vr.Shift,decimate:{enabled:!1,epsilon:.1},spline:{configuration:{[xs.Cardinal]:{Class:wm,scale:.5},[xs.CatmullRom]:{Class:Xme},[xs.Linear]:{Class:qme},[xs.BSpline]:{Class:Jme,controlPointAdditionEnabled:!1,controlPointDeletionEnabled:!1,showControlPointsConnectors:!0}},type:xs.CatmullRom,drawPreviewEnabled:!0,lastControlPointDeletionKeys:["Backspace","Delete"]},actions:{[td.AddControlPoint]:{method:"addControlPointCallback",bindings:[{mouseButton:ca.Primary,modifierKey:vr.Shift}]},[td.DeleteControlPoint]:{method:"deleteControlPointCallback",bindings:[{mouseButton:ca.Primary,modifierKey:vr.Ctrl}]}}}}){super(e,r),this.isHandleOutsideImage=!1,this.fireChangeOnUpdate=null,this.isPointNearTool=(n,i,o,a)=>{const{instance:s}=i.data.spline;return s.isPointNearCurve(o,a)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},ne(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),ne(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,contourHoleProcessingEnabled:l}=this.editData,{data:f}=a;a.autoGenerated=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o);const u=ne(o),d=this.getTargetImageData(this.getTargetId(u.viewport)),{imageData:h,dimensions:g}=d;this.isHandleOutsideImage=f.handles.points.map(v=>Gn(h,v)).some(v=>!On(v,g)),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const p=c?Bn.Completed:Bn.HandlesUpdated;this.fireChangeOnUpdate?(this.fireChangeOnUpdate.annotationUID=a.annotationUID,this.fireChangeOnUpdate.changeType=p):this.fireChangeOnUpdate={annotationUID:a.annotationUID,changeType:p,contourHoleProcessingEnabled:l},pe(s),this.editData=null,this.isDrawing=!1},this._keyDownCallback=n=>{const i=n.detail,{element:o}=i,a=i.key??"",{lastControlPointDeletionKeys:s}=this.configuration.spline;if(!s.includes(a))return;const{annotation:l}=this.editData,{data:f}=l;if(f.handles.points.length===Zme){this.cancel(o);return}else{const u=f.handles.points.length-1;this._deleteControlPointByIndex(o,l,u)}n.preventDefault()},this._mouseMoveCallback=n=>{const{drawPreviewEnabled:i}=this.configuration.spline;if(!i)return;const{element:o}=n.detail;ne(o);const a=He(o,this.getToolName());this.editData.lastCanvasPoint=n.detail.currentPoints.canvas,pe(a),n.preventDefault()},this._mouseDownCallback=n=>{const i=n.type===F.MOUSE_DOUBLE_CLICK,{annotation:o,viewportIdsToRender:a}=this.editData,{data:s}=o;if(s.contour.closed)return;const c=n.detail,{element:l}=c,{currentPoints:f}=c,{canvas:u,world:d}=f;ne(l);let h=s.handles.points.length>=2&&i,g=!0;if(s.handles.points.length>=3){const{instance:p}=s.spline,v=p.getClosestControlPointWithinDistance(u,LE);(v==null?void 0:v.index)===0&&(g=!1,h=!0)}g&&s.handles.points.push(d),s.contour.closed=s.contour.closed||h,o.invalidated=!0,pe(a),s.contour.closed&&this._endCallback(n),n.preventDefault()},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;this.moveAnnotation(a,d)}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.triggerAnnotationCompleted=(n,i)=>{const o=F.ANNOTATION_COMPLETED,a={annotation:n,changeType:Bn.Completed,contourHoleProcessingEnabled:i};De(Ce,o,a)},this.triggerAnnotationModified=(n,i,o=Bn.StatsUpdated)=>{const{viewportId:a,renderingEngineId:s}=i,c=F.ANNOTATION_MODIFIED;De(Ce,c,{annotation:n,viewportId:a,renderingEngineId:s,changeType:o})},this.triggerChangeEvent=(n,i,o=Bn.StatsUpdated,a)=>{o===Bn.Completed?this.triggerAnnotationCompleted(n,a):this.triggerAnnotationModified(n,i,o)},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.KEY_DOWN,this._keyDownCallback),n.addEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.addEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.addEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.KEY_DOWN,this._keyDownCallback),n.removeEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.removeEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.removeEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._renderStats=(n,i,o,a)=>{const s=n.data,c=this.getTargetId(i);if(!s.spline.instance.closed||!a.visibility)return;const l=this.configuration.getTextLines(s,c);if(!l||l.length===0)return;const f=s.handles.points.map(m=>i.worldToCanvas(m));if(!s.handles.textBox.hasMoved){const m=$i(f);s.handles.textBox.worldPosition=i.canvasToWorld(m)}const u=i.worldToCanvas(s.handles.textBox.worldPosition),h=ti(o,n.annotationUID??"","textBox",l,u,f,{},a),{x:g,y:p,width:v,height:x}=h;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([g,p]),topRight:i.canvasToWorld([g+v,p]),bottomLeft:i.canvasToWorld([g,p+x]),bottomRight:i.canvasToWorld([g+v,p+x])}},this.addControlPointCallback=(n,i)=>{const{data:o}=i,a=o.spline.type,s=this._getSplineConfig(a),c=s.controlPointAdditionDistance;if(s.controlPointAdditionEnabled===!1)return;const l=n.detail,{element:f}=l,u=ne(f),{renderingEngine:d,viewport:h}=u,{canvasToWorld:g}=h,{instance:p}=o.spline,v=n.detail.currentPoints.canvas,x=p.getClosestPoint(v);if(x.distance>c)return;const{index:m,point:y}=p.addControlPointAtU(x.uValue);o.handles.points.splice(m,0,g(y)),i.invalidated=!0;const w=He(f,this.getToolName());pe(w)},this.deleteControlPointCallback=(n,i)=>{const o=i.data.spline.type,a=this._getSplineConfig(o),s=a.controlPointDeletionDistance;if(a.controlPointDeletionEnabled===!1)return;const c=n.detail,{element:l,currentPoints:f}=c,{canvas:u}=f,{instance:d}=i.data.spline,h=d.getClosestControlPointWithinDistance(u,s);h&&this._deleteControlPointByIndex(l,i,h.index)},this._calculateCachedStats=(n,i)=>{if(!this.configuration.calculateStats)return;const o=n.data;if(!o.contour.closed)return;const a=ne(i),{viewport:s}=a,{cachedStats:c}=o,{polyline:l}=o.contour,f=Object.keys(c);for(let u=0;us.worldToCanvas(D)),v=p[0],x=s.canvasToWorld(v),m=s.canvasToWorld([v[0]+1,v[1]]),y=s.canvasToWorld([v[0],v[1]+1]),w=Cr(x,m),C=Cr(x,y),{imageData:S}=h,{scale:T,areaUnit:_}=Bi(h,()=>{const{maxX:D,maxY:b,minX:I,minY:R}=e0(p),M=s.canvasToWorld([I,R]),L=Gn(S,M),A=s.canvasToWorld([D,b]),G=Gn(S,A);return[L,G]});let E=Mh(p)/T/T;E*=w*C,c[d]={Modality:g.Modality,area:E,areaUnit:_}}return this.triggerAnnotationModified(n,a,Bn.StatsUpdated),c},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,{canvas:o}=n,a=M0(e.detail.event)===this.configuration.contourHoleAdditionModifierKey;ne(i);const s=this.createAnnotation(e);this.isDrawing=!0,this.addAnnotation(s,i);const c=He(i,this.getToolName());return this.editData={annotation:s,viewportIdsToRender:c,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,lastCanvasPoint:o,contourHoleProcessingEnabled:a},this._activateDraw(i),e.preventDefault(),pe(c),s}cancel(e){if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(e),this._deactivateModify(e),lt(e);const{annotation:r,viewportIdsToRender:n,newAnnotation:i}=this.editData;return i&&Ot(r.annotationUID),super.cancelAnnotation(r),ne(e),pe(n),this.editData=null,r.annotationUID}isContourSegmentationTool(){return!1}renderAnnotationInstance(e){var M,L,A;const{enabledElement:r,targetId:n,svgDrawingHelper:i,annotationStyle:o}=e,{viewport:a}=r,{worldToCanvas:s}=a,{element:c}=a,l=e.annotation,{annotationUID:f,data:u,highlighted:d}=l,{handles:h}=u,{points:g,activeHandleIndex:p}=h,v=(M=this.editData)==null?void 0:M.newAnnotation,{lineWidth:x,lineDash:m,color:y,locked:w}=o,C=g.map(G=>s(G)),{drawPreviewEnabled:S}=this.configuration.spline,T=l.data.spline.type,_=this._getSplineConfig(T),E=l.data.spline.instance,D=g2(l);if(D.findIndex(G=>!G)!==-1)throw new Error(`Can't find annotation for child ${l.childAnnotationUIDs.join()}`);[l,...D].filter(G=>this._isSplineROIAnnotation(G)).forEach(G=>{const N=this._updateSplineInstance(c,G).getPolylinePoints();this.updateContourPolyline(G,{points:N,closed:u.contour.closed,targetWindingDirection:Qs.Clockwise},a,{updateWindingDirection:u.contour.closed})}),super.renderAnnotationInstance(e),!u.cachedStats[n]||u.cachedStats[n].areaUnit==null?(u.cachedStats[n]={Modality:null,area:null,areaUnit:null},this._calculateCachedStats(l,c)):l.invalidated&&this._throttledCalculateCachedStats(l,c);let R;if(!w&&!this.editData&&p!==null&&(R=[C[p]]),(R||v||d)&&cn(i,f,"0",C,{color:y,lineWidth:x,handleRadius:"3"}),S&&E.numControlPoints>1&&((L=this.editData)!=null&&L.lastCanvasPoint)&&!E.closed){const{lastCanvasPoint:G}=this.editData,P=E.getPreviewPolylinePoints(G,LE);la(i,f,"previewSplineChange",P,{color:"#9EA0CA",lineDash:m,lineWidth:1})}if(_.showControlPointsConnectors){const G=[...C];E.closed&&G.push(C[0]),la(i,f,"controlPointsConnectors",G,{color:"rgba(255, 255, 255, 0.5)",lineWidth:1})}return this._renderStats(l,a,i,o.textbox),((A=this.fireChangeOnUpdate)==null?void 0:A.annotationUID)===f&&(this.triggerChangeEvent(l,r,this.fireChangeOnUpdate.changeType,this.fireChangeOnUpdate.contourHoleProcessingEnabled),this.fireChangeOnUpdate=null),l.invalidated=!1,!0}createInterpolatedSplineControl(e){var o;if((o=e.data.handles.points)!=null&&o.length)return;const{polyline:r}=e.data.contour;if(!r||!r.length)return;e.data.handles.points=[];const{points:n}=e.data.handles,i=Math.max(10,Math.floor(r.length/20));for(let a=0;a({type:o.type,instance:a,resolution:o.resolution});let c;return(l=this.configuration.interpolation)!=null&&l.enabled&&(c=f=>{var u;(u=f.data).spline||(u.spline=s()),this.createInterpolatedSplineControl(f)}),Qr(r,{data:{handles:{points:[[...n]]},spline:s(),cachedStats:{}},onInterpolationComplete:c})}_deleteControlPointByIndex(e,r,n){ne(e);const{points:i}=r.data.handles;i.length===3?Ot(r.annotationUID):i.splice(n,1);const o=He(e,this.getToolName());r.invalidated=!0,pe(o)}_isSplineROIAnnotation(e){var r;return!!((r=e.data)!=null&&r.spline)}_getSplineConfig(e){const{configuration:r}=this,n=r.spline.configuration;return Object.assign({type:e},Qme,n[e])}_updateSplineInstance(e,r){const n=ne(e),{viewport:i}=n,{worldToCanvas:o}=i,{data:a}=r,{type:s,instance:c}=r.data.spline,l=this._getSplineConfig(s),u=a.handles.points.map(o),d=l.resolution!==void 0?parseInt(l.resolution):void 0,h=l.scale!==void 0?parseFloat(l.scale):void 0;return c.setControlPoints(u),c.closed=!!a.contour.closed,!c.fixedResolution&&d!==void 0&&c.resolution!==d&&(c.resolution=d,r.invalidated=!0),c instanceof wm&&!c.fixedScale&&h!==void 0&&c.scale!==h&&(c.scale=h,r.invalidated=!0),c}};Dm.SplineTypes=xs,Dm.Actions=td;let Zd=Dm;function e2e(t,e){const r=t.cachedStats[e],{area:n,isEmptyArea:i,areaUnit:o}=r,a=[];if(n){const s=i?"Area: Oblique not supported":`Area: ${xt(n)} ${o}`;a.push(s)}return a}Zd.toolName="SplineROI";class wk extends Zd{constructor(e){const r=Qr({configuration:{calculateStats:!1}},e);super(r)}isContourSegmentationTool(){return!0}}wk.toolName="SplineContourSegmentationTool";class t2e{constructor({numBits:e,getPriority:r,areEqual:n}){this._bucketCount=1<i,this._areEqual=typeof n=="function"?n:(i,o)=>i===o}push(e){const r=this._getBucketIndex(e),n=this._buckets[r],i={value:e,next:n};this._buckets[r]=i,this._size++}pop(){if(this._size===0)throw new Error("Cannot pop because the queue is empty.");for(;this._buckets[this._currentBucketIndex]===null;)this._currentBucketIndex=(this._currentBucketIndex+1)%this._bucketCount;const e=this._buckets[this._currentBucketIndex];return this._buckets[this._currentBucketIndex]=e.next,this._size--,e.value}remove(e){if(!e)return!1;const r=this._getBucketIndex(e),n=this._buckets[r];let i=n,o;for(;i!==null&&!this._areEqual(e,i.value);)o=i,i=i.next;return i===null?!1:(i===n?this._buckets[r]=i.next:o.next=i.next,this._size--,!0)}isEmpty(){return this._size===0}_getBucketIndex(e){return this._getPriority(e)&this._mask}_buildArray(e){const r=new Array(e);return r.fill(null),r}}const my=4294967295,n2e=2/(3*Math.PI);class Cm{constructor(e,r,n){this._getPointIndex=(o,a)=>{const{width:s}=this;return o*s+a},this._getPointCoordinate=o=>{const a=o%this.width,s=Math.floor(o/this.width);return[a,s]},this._getPointCost=o=>Math.round(this.searchGranularity*this.costs[o]);const i=e.length;this.searchGranularityBits=8,this.searchGranularity=1<.33?0:1;i[n(o,e-2)]=1,i[n(o,e-1)]=1}return i.fill(1,n(r-2,0)),i}_computeGradientX(){const{width:e,height:r}=this,n=new Float32Array(e*r);let i=0;for(let o=0;o=i||l<0||l>=o)return 1;if(a<0||s<0||a>=i||s>=o)return 0;const f=n(l,c);let u=this.gradMagnitude[f];(a===c||s===l)&&(u*=Math.SQRT1_2);const d=this.laplace[f],h=this._getGradientDirection(a,s,c,l);return .43*u+.43*d+.11*h}_getNeighborPoints(e){const{width:r,height:n}=this,i=[],o=Math.max(e[0]-1,0),a=Math.max(e[1]-1,0),s=Math.min(e[0]+1,r-1),c=Math.min(e[1]+1,n-1);for(let l=a;l<=c;l++)for(let f=o;f<=s;f++)(f!==e[0]||l!==e[1])&&i.push([f,l]);return i}static createInstanceFromRawPixelData(e,r,n,i){const o=e.length,a=new Float32Array(o),{lower:s,upper:c}=i,l=c-s;for(let f=0,u=e.length;fthis.pointArray[e])}getNumControlPoints(){return this._controlPointIndexes.length}removeLastControlPoint(){this._controlPointIndexes.length&&this._controlPointIndexes.pop()}getLastControlPoint(){if(this._controlPointIndexes.length)return this.pointArray[this._controlPointIndexes[this._controlPointIndexes.length-1]]}removeLastPoints(e){this.pointArray.splice(this.pointArray.length-e,e)}addPoints(e){this.pointArray=this.pointArray.concat(e)}prependPath(e){const r=e.pointArray.length,n=[];this.pointArray=e.pointArray.concat(this.pointArray);for(let i=0;ithis._controlPointIndexes.push(r))}}const r2e=10**2;class ES extends sS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{getTextLines:i2e,calculateStats:!0,preventHandleOutsideImage:!1,contourHoleAdditionModifierKey:vr.Shift,snapHandleNearby:2,interpolation:{enabled:!1,nearestEdge:2,showInterpolationPolyline:!1},decimate:{enabled:!1,epsilon:.1},actions:{undo:{method:"undo",bindings:[{key:"Escape"}]}}}}){super(e,r),this.isHandleOutsideImage=!1,this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,l=a*a,f=i.data.contour.polyline.map(d=>c.worldToCanvas(d));let u=f[f.length-1];for(let d=0;d{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},ne(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),ne(s),pe(u),n.preventDefault()},this._endCallback=(n,i=!1)=>{const o=n.detail,{element:a}=o,{annotation:s,viewportIdsToRender:c,newAnnotation:l,contourHoleProcessingEnabled:f}=this.editData,{data:u}=s;u.handles.activeHandleIndex=null,this._deactivateModify(a),this._deactivateDraw(a),lt(a);const d=ne(a);if(this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage||i){Ot(s.annotationUID),this.clearEditData(),pe(c);return}pe(c);const h=l?Bn.Completed:Bn.HandlesUpdated;this.triggerChangeEvent(s,d,h,f),this.clearEditData()},this.triggerChangeEvent=(n,i,o=Bn.StatsUpdated,a=!1)=>{o===Bn.Completed?IC(n,a):dn(n,i.viewport.element,o)},this._mouseDownCallback=n=>{const i=n.type===F.MOUSE_DOUBLE_CLICK,{annotation:o,viewportIdsToRender:a,worldToSlice:s,sliceToWorld:c}=this.editData;if(this.editData.closed)return;const l=n.detail,{element:f}=l,{currentPoints:u}=l,{canvas:d,world:h}=u;let g=h;const p=ne(f),{viewport:v,renderingEngine:x}=p,m=this.editData.currentPath.getControlPoints();let y=m.length>=2&&i;if(m.length>=2){const S={index:-1,distSquared:1/0};for(let T=0,_=m.length;T<_;T++){const E=m[T],D=c(E),b=v.worldToCanvas(D),I=Ya(d,b);I<=r2e&&I{const{element:i,currentPoints:o}=n.detail,{world:a,canvas:s}=o;ne(i);const c=He(i,this.getToolName());this.editData.lastCanvasPoint=s;const{width:l,height:f}=this.scissors,{worldToSlice:u}=this.editData,d=u(a);if(d[0]<0||d[1]<0||d[0]>=l||d[1]>=f)return;const h=this.scissors.findPathToPoint(d),g=new wa;g.addPoints(h),g.prependPath(this.editData.confirmedPath),this.editData.currentPath=g,pe(c),n.preventDefault()},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0)console.warn("Drag annotation not implemented");else{const{currentPoints:u}=i,d=u.world;this.editHandle(d,o,a,c)}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData;return a&&Ot(i.annotationUID),ne(n),pe(o),this.editData=null,this.scissors=null,i.annotationUID},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.addEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.addEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.removeEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.removeEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._calculateCachedStats=(n,i)=>{if(!this.configuration.calculateStats)return;const o=n.data;if(!o.contour.closed)return;const a=ne(i),{viewport:s,renderingEngine:c}=a,{cachedStats:l}=o,{polyline:f}=o.contour,u=Object.keys(l);for(let d=0;ds.worldToCanvas(b)),x=v[0],m=s.canvasToWorld(x),y=s.canvasToWorld([x[0]+1,x[1]]),w=s.canvasToWorld([x[0],x[1]+1]),C=Cr(m,y),S=Cr(m,w),{imageData:T}=g,{scale:_,areaUnit:E}=Bi(g,()=>{const{maxX:b,maxY:I,minX:R,minY:M}=e0(v),L=s.canvasToWorld([R,M]),A=Gn(T,L),G=s.canvasToWorld([b,I]),P=Gn(T,G);return[A,P]});let D=Mh(v)/_/_;D*=C*S,l[h]={Modality:p.Modality,area:D,areaUnit:E}}return this.triggerAnnotationModified(n,a,Bn.StatsUpdated),l},this._renderStats=(n,i,o,a)=>{const s=n.data,c=this.getTargetId(i);if(!s.contour.closed||!a.visibility)return;const l=this.configuration.getTextLines(s,c);if(!l||l.length===0)return;const f=s.handles.points.map(m=>i.worldToCanvas(m));if(!s.handles.textBox.hasMoved){const m=$i(f);s.handles.textBox.worldPosition=i.canvasToWorld(m)}const u=i.worldToCanvas(s.handles.textBox.worldPosition),h=ti(o,n.annotationUID??"","textBox",l,u,f,{},a),{x:g,y:p,width:v,height:x}=h;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([g,p]),topRight:i.canvasToWorld([g+v,p]),bottomLeft:i.canvasToWorld([g,p+x]),bottomRight:i.canvasToWorld([g+v,p+x])}},this.triggerAnnotationModified=(n,i,o=Bn.StatsUpdated)=>{const{viewportId:a,renderingEngineId:s}=i,c=F.ANNOTATION_MODIFIED;De(Ce,c,{annotation:n,viewportId:a,renderingEngineId:s,changeType:o})},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}setupBaseEditData(e,r,n,i,o){var T,_;const a=ne(r),{viewport:s}=a;this.isDrawing=!0;const c=s.getImageData(),{imageData:l}=c;let f,u,d,h,g;if(!(s instanceof sn))d=c.dimensions[0],h=c.dimensions[1],f=E=>{const D=Gn(l,E);return[D[0],D[1]]},u=E=>K1(l,[E[0],E[1],0]),g=c.scalarData;else if(s instanceof sn){const E=dC(s),{sliceToIndexMatrix:D,indexToSliceMatrix:b}=E;f=I=>{const R=Gn(l,I),M=et([0,0,0],R,b);return[M[0],M[1]]},u=I=>{const R=et([0,0,0],[I[0],I[1],0],D);return K1(l,R)},g=E.scalarData,d=E.width,h=E.height}else throw new Error("Viewport not supported");g=dR(g,d,h);const{voiRange:p}=s.getProperties(),v=f(e);this.scissors=Cm.createInstanceFromRawPixelData(g,d,h,p),i&&(this.scissorsNext=Cm.createInstanceFromRawPixelData(g,d,h,p),this.scissorsNext.startSearch(f(i))),this.scissors.startSearch(v);const x=!i,m=new wa,y=new wa,w=x?void 0:new wa;m.addPoint(v),m.addControlPoint(v);const C=He(r,this.getToolName()),S=s.worldToCanvas(e);this.editData={annotation:n,viewportIdsToRender:C,newAnnotation:x,hasMoved:!1,lastCanvasPoint:S,confirmedPath:m,currentPath:y,confirmedPathNext:w,closed:!1,handleIndex:((T=this.editData)==null?void 0:T.handleIndex)??((_=n.handles)==null?void 0:_.activeHandleIndex),worldToSlice:f,sliceToWorld:u,contourHoleProcessingEnabled:o}}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,{world:o}=n,a=this.createAnnotation(e),s=M0(e.detail.event)===this.configuration.contourHoleAdditionModifierKey;return this.setupBaseEditData(o,i,a,void 0,s),this.addAnnotation(a,i),this._activateDraw(i),e.preventDefault(),pe(this.editData.viewportIdsToRender),a}clearEditData(){this.editData=null,this.scissors=null,this.scissorsNext=null,this.isDrawing=!1}editHandle(e,r,n,i){var y;const{data:o}=n,{points:a}=o.handles,{length:s}=a,c=a[(i-1+s)%s],l=a[(i+1)%s];if(!((y=this.editData)!=null&&y.confirmedPathNext)){this.setupBaseEditData(c,r,n,l);const{polyline:w}=o.contour,C=new wa,S=new wa,{worldToSlice:T}=this.editData,_=L3(n,i-1),E=L3(n,i+1);if(E===-1||_===-1)throw new Error(`Can't find handle index ${E===-1&&l} ${_===-1&&c}`);i===0?S.addPoints(w.slice(E+1,_).map(T)):(C.addPoints(w.slice(0,_+1).map(T)),S.addPoints(w.slice(E,w.length).map(T))),this.editData.confirmedPath=C,this.editData.confirmedPathNext=S}const{editData:f,scissors:u}=this,{worldToSlice:d,sliceToWorld:h}=f,{activeHandleIndex:g}=o.handles;if(g==null)o.handles.activeHandleIndex=i;else if(g!==i)throw new Error(`Trying to edit a different handle than the one currently being edited ${i}!==${o.handles.activeHandleIndex}`);const p=d(e);if(p[0]<0||p[0]>=u.width||p[1]<0||p[1]>=u.height)return;a[i]=h(p);const v=u.findPathToPoint(p),x=this.scissorsNext.findPathToPoint(p),m=new wa;m.prependPath(f.confirmedPath),i!==0&&m.addPoints(v),m.addPoints(x.reverse()),m.appendPath(f.confirmedPathNext),i===0&&m.addPoints(v),f.currentPath=m,n.invalidated=!0,f.hasMoved=!0,f.closed=!0}renderAnnotation(e,r){var n;return this.updateAnnotation((n=this.editData)==null?void 0:n.currentPath),super.renderAnnotation(e,r)}isContourSegmentationTool(){return!1}createAnnotation(e){const r=super.createAnnotation(e),{world:n}=e.detail.currentPoints;return Qr(r,{data:{handles:{points:[[...n]]}}})}undo(e,r,n){this.editData&&this._endCallback(n,!0)}renderAnnotationInstance(e){var m,y,w;const{annotation:r,enabledElement:n,svgDrawingHelper:i,annotationStyle:o,targetId:a}=e,{viewport:s}=n,{element:c}=s,{worldToCanvas:l}=s,{annotationUID:f,data:u,highlighted:d}=r,{handles:h}=u,g=(m=this.editData)==null?void 0:m.newAnnotation,{lineWidth:p,lineDash:v,color:x}=o;if(d||g&&r.annotationUID===((w=(y=this.editData)==null?void 0:y.annotation)==null?void 0:w.annotationUID)){const C="0",S=h.points.map(l);cn(i,f,C,S,{color:x,lineDash:v,lineWidth:p})}return super.renderAnnotationInstance(e),!u.cachedStats[a]||u.cachedStats[a].areaUnit==null?(u.cachedStats[a]={Modality:null,area:null,areaUnit:null},this._calculateCachedStats(r,c)):r.invalidated&&this._throttledCalculateCachedStats(r,c),this._renderStats(r,s,i,o.textbox),!0}updateAnnotation(e){if(!this.editData||!e)return;const{annotation:r,sliceToWorld:n,worldToSlice:i,closed:o,newAnnotation:a}=this.editData;let{pointArray:s}=e;s.length>1&&(s=[...s,s[0]]);const c=a&&o?Qs.Clockwise:void 0;this.updateContourPolyline(r,{points:s,closed:o,targetWindingDirection:c},{canvasToWorld:n,worldToCanvas:i})}}ES.toolName="LivewireContour";function i2e(t,e){const r=t.cachedStats[e],{area:n,areaUnit:i}=r,o=[];if(n){const a=`Area: ${xt(n)} ${i}`;o.push(a)}return o}class Ck extends ES{updateInterpolatedAnnotation(e,r){this.editData||!e.invalidated||!e.data.handles.interpolationSources||(e.data.contour.originalPolyline=e.data.contour.polyline,queueMicrotask(()=>{if(!e.data.handles.interpolationSources)return;const{points:n}=e.data.handles,{element:i}=r.viewport;this.setupBaseEditData(n[0],i,e);const{length:o}=n,{scissors:a}=this,{nearestEdge:s,repeatInterpolation:c}=this.configuration.interpolation;e.data.handles.originalPoints=n;const{worldToSlice:l,sliceToWorld:f}=this.editData,u=[];if(s){let h=l(n[n.length-1]);n.forEach((g,p)=>{const v=l(g);h=v,u.push(v),a.startSearch(h),a.findPathToPoint(v),a.findPathToPoint(l(n[(p+3)%n.length]));const x=a.findMinNearby(v,s);mt(v,x)||(u[p]=x,h=x,n[p]=f(x))})}const d=new wa;for(let h=0;h{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;Ze(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),{arrowFirst:p}=this.configuration,v=l.getFrameOfReferenceUID(),x={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:v,referencedImageId:g,...l.getViewReference({points:[s]})},data:{text:"",handles:{points:[[...s],[...s]],activeHandleIndex:null,arrowFirst:p,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};Ut(x,a);const m=He(a,this.getToolName());return this.editData={annotation:x,viewportIdsToRender:m,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(m),x},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Ar([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),c?this.configuration.getTextCallback(u=>{if(!u){Ot(a.annotationUID),pe(s),this.editData=null,this.isDrawing=!1;return}a.data.text=u,tn(a),pe(s)}):dn(a,o),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.touchTapCallback=n=>{n.detail.taps==2&&this.doubleClickCallback(n)},this.doubleClickCallback=n=>{const i=n.detail,{element:o}=i;let a=_t(this.getToolName(),o);if(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length))return;const s=a.find(l=>this.isPointNearTool(o,l,i.currentPoints.canvas,6));if(!s)return;const c=s;this.configuration.changeTextCallback(s,n.detail,this._doneChangingTextCallback.bind(this,o,c)),this.editData=null,this.isDrawing=!1,n.stopImmediatePropagation(),n.preventDefault()},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(A));let S;!rr(d)&&!this.editData&&x!==null&&(S=[C[x]]),S&&cn(i,d,"0",C,{color:m,lineWidth:y});const T="1";if(this.configuration.arrowFirst?hm(i,d,T,C[1],C[0],{color:m,width:y,lineDash:w}):hm(i,d,T,C[0],C[1],{color:m,width:y,lineDash:w}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!p)continue;const _=this.getLinkedTextBoxStyle(l,u);if(!_.visibility){h.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}if(!h.handles.textBox.hasMoved){const A=C[1];h.handles.textBox.worldPosition=a.canvasToWorld(A)}const E=a.worldToCanvas(h.handles.textBox.worldPosition),b=ti(i,d,"1",[p],E,C,{},_),{x:I,y:R,width:M,height:L}=b;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([I,R]),topRight:a.canvasToWorld([I+M,R]),bottomLeft:a.canvasToWorld([I,R+L]),bottomRight:a.canvasToWorld([I+M,R+L])}}return o}}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Ze(o),ne(o),pe(l),e.preventDefault()}_doneChangingTextCallback(e,r,n){r.data.text=n,ne(e);const i=He(e,this.getToolName());pe(i),dn(r,e)}_isInsideVolume(e,r,n){return On(e,n)&&On(r,n)}}function o2e(t){return t(prompt("Enter your annotation:"))}function a2e(t,e,r){return r(prompt("Enter your annotation:"))}rc.toolName="ArrowAnnotate";class Sk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,getTextLines:s2e}}){super(e,r),this.addNewAnnotation=n=>{if(this.angleStartedNotYetCompleted)return;this.angleStartedNotYetCompleted=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;Ze(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,[f,u,d]=l.handles.points,h=c.worldToCanvas(f),g=c.worldToCanvas(u),p={start:{x:h[0],y:h[1]},end:{x:g[0],y:g[1]}};if(Ar([p.start.x,p.start.y],[p.end.x,p.end.y],[o[0],o[1]])<=a)return!0;if(!d)return!1;const x=c.worldToCanvas(d),m={start:{x:g[0],y:g[1]},end:{x:x[0],y:x[1]}};return Ar([m.start.x,m.start.y],[m.end.x,m.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Ze(a),ne(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.angleStartedNotYetCompleted&&f.handles.points.length===2){this.editData.handleIndex=2;return}this.angleStartedNotYetCompleted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1}},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,this.angleStartedNotYetCompleted=!1,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{var d;let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let h=0;ha.worldToCanvas(P));!v.cachedStats[l]||v.cachedStats[l].angle==null?(v.cachedStats[l]={angle:null},this._calculateCachedStats(g,f,n)):g.invalidated&&this._throttledCalculateCachedStats(g,f,n);let T;if(!rr(g.annotationUID)&&!this.editData&&m!==null&&(T=[S[m]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;T&&cn(i,p,"0",S,{color:y,lineDash:C,lineWidth:w});let _="1";if(It(i,p,_,S[0],S[1],{color:y,width:w,lineDash:C}),o=!0,S.length!==3)return o;if(_="2",It(i,p,_,S[1],S[2],{color:y,width:w,lineDash:C}),!((d=v.cachedStats[l])!=null&&d.angle))continue;const E=this.getLinkedTextBoxStyle(u,g);if(!E.visibility){v.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const D=this.configuration.getTextLines(v,l);if(!v.handles.textBox.hasMoved){const P=S[1];v.handles.textBox.worldPosition=a.canvasToWorld(P)}const b=a.worldToCanvas(v.handles.textBox.worldPosition),R=ti(i,p,"1",D,b,S,{},E),{x:M,y:L,width:A,height:G}=R;v.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,L]),topRight:a.canvasToWorld([M+A,L]),bottomLeft:a.canvasToWorld([M,L+G]),bottomRight:a.canvasToWorld([M+A,L+G])}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Ze(o),ne(o),pe(l),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport;if(i.handles.points.length!==3)return;const a=i.handles.points[0],s=i.handles.points[1],c=i.handles.points[2],{cachedStats:l}=i,f=Object.keys(l);for(let u=0;uGn(p,v)).some(v=>!On(v,g)),l[d]={angle:isNaN(h)?"Incomplete Angle":h}}return e.invalidated=!1,dn(e,o),l}}function s2e(t,e){const r=t.cachedStats[e],{angle:n}=r;return n===void 0?void 0:isNaN(n)?[`${n}`]:[`${xt(n)} °`]}Sk.toolName="Angle";const c2e=(...t)=>{const e=t[0].length===2?[0,0]:[0,0,0],r=t.length;for(const n of t)e[0]+=n[0]/r,e[1]+=n[1]/r,e.length===3&&(e[2]+=n[2]/r);return e},xa=c2e;class Tk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,getTextLines:l2e,showArcLines:!1}}){super(e,r),this.addNewAnnotation=n=>{if(this.angleStartedNotYetCompleted)return;this.angleStartedNotYetCompleted=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;Ze(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=ne(n),{viewport:c}=s,{data:l}=i,{distanceToPoint:f,distanceToPoint2:u}=this.distanceToLines({viewport:c,points:l.handles.points,canvasCoords:o,proximity:a});return f<=a||u<=a},this.toolSelectedCallback=(n,i,o,a,s=6)=>{const c=n.detail,{element:l}=c;i.highlighted=!0;const f=He(l,this.getToolName()),u=ne(l),{renderingEngine:d,viewport:h}=u,{isNearFirstLine:g,isNearSecondLine:p}=this.distanceToLines({viewport:h,points:i.data.handles.points,canvasCoords:a,proximity:s});this.editData={annotation:i,viewportIdsToRender:f,movingTextBox:!1,isNearFirstLine:g,isNearSecondLine:p},this._activateModify(l),Ze(l),pe(f),n.preventDefault()},this._mouseUpCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.angleStartedNotYetCompleted&&f.handles.points.length<4){lt(o),this.editData.handleIndex=f.handles.points.length;return}this.angleStartedNotYetCompleted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1}},this._mouseDownCallback=n=>{const{annotation:i,handleIndex:o}=this.editData,a=n.detail,{element:s,currentPoints:c}=a,l=c.world,{data:f}=i;if(o===1){f.handles.points[1]=l,this.editData.hasMoved=f.handles.points[1][0]!==f.handles.points[0][0]||f.handles.points[1][1]!==f.handles.points[0][0];return}if(o===3){f.handles.points[3]=l,this.editData.hasMoved=f.handles.points[3][0]!==f.handles.points[2][0]||f.handles.points[3][1]!==f.handles.points[2][0],this.angleStartedNotYetCompleted=!1;return}this.editData.hasMoved=!1,Ze(s),f.handles.points[2]=f.handles.points[3]=l,this.editData.handleIndex=f.handles.points.length-1},this._mouseDragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l,isNearFirstLine:f,isNearSecondLine:u}=this.editData,{data:d}=a;if(l){const{deltaPoints:h}=i,g=h.world,{textBox:p}=d.handles,{worldPosition:v}=p;v[0]+=g[0],v[1]+=g[1],v[2]+=g[2],p.hasMoved=!0}else if(c===void 0&&(f||u)){const{deltaPoints:h}=i,g=h.world,p=d.handles.points;f?[p[0],p[1]].forEach(x=>{x[0]+=g[0],x[1]+=g[1],x[2]+=g[2]}):u&&[p[2],p[3]].forEach(x=>{x[0]+=g[0],x[1]+=g[1],x[2]+=g[2]}),a.invalidated=!0}else{const{currentPoints:h}=i,g=h.world;d.handles.points[c]=[...g],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return s.handles.points.length<4&&Ot(i.annotationUID),i.highlighted=!1,s.handles.activeHandleIndex=null,ne(n),pe(o),a&&tn(i),this.editData=null,this.angleStartedNotYetCompleted=!1,i.annotationUID},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._mouseUpCallback),n.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._mouseUpCallback),n.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),n.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.removeEventListener(F.MOUSE_MOVE,this._mouseDragCallback),n.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback)},this.renderAnnotation=(n,i)=>{var d;let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let h=0;ha.worldToCanvas(fe));!v.cachedStats[l]||v.cachedStats[l].angle==null?(v.cachedStats[l]={angle:null,arc1Angle:null,arc2Angle:null,points:{world:{arc1Start:null,arc1End:null,arc2Start:null,arc2End:null,arc1Angle:null,arc2Angle:null},canvas:{arc1Start:null,arc1End:null,arc2Start:null,arc2End:null,arc1Angle:null,arc2Angle:null}}},this._calculateCachedStats(g,f,n)):g.invalidated&&this._throttledCalculateCachedStats(g,f,n);let T;if(!rr(p)&&!this.editData&&m!==null&&(T=[S[m]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;T&&cn(i,p,"0",S,{color:y,lineDash:C,lineWidth:w});const _=[S[0],S[1]],E=[S[2],S[3]];let D="line1";if(It(i,p,D,_[0],_[1],{color:y,width:w,lineDash:C}),o=!0,S.length<4)return o;D="line2",It(i,p,D,E[0],E[1],{color:y,width:w,lineDash:C}),D="linkLine";const b=xa(_[0],_[1]),I=xa(E[0],E[1]);It(i,p,D,b,I,{color:y,lineWidth:"1",lineDash:"1,4"});const{arc1Start:R,arc1End:M,arc2End:L,arc2Start:A}=v.cachedStats[l].points.canvas,{arc1Angle:G,arc2Angle:P}=v.cachedStats[l];if(this.configuration.showArcLines&&(D="arc1",It(i,p,D,R,M,{color:y,lineWidth:"1"}),D="arc2",It(i,p,D,A,L,{color:y,lineWidth:"1"})),!((d=v.cachedStats[l])!=null&&d.angle))continue;const N=this.getLinkedTextBoxStyle(u,g);if(!N.visibility){v.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const V=this.configuration.getTextLines(v,l);if(!v.handles.textBox.hasMoved){const fe=$i(S);v.handles.textBox.worldPosition=a.canvasToWorld(fe)}const $=a.worldToCanvas(v.handles.textBox.worldPosition),Y=ti(i,p,"cobbAngleText",V,$,S,{},N),{x:te,y:Q,width:re,height:de}=Y;if(v.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([te,Q]),topRight:a.canvasToWorld([te+re,Q]),bottomLeft:a.canvasToWorld([te,Q+de]),bottomRight:a.canvasToWorld([te+re,Q+de])},this.configuration.showArcLines){const fe="arcAngle1",se=[`${G.toFixed(2)} °`],k=xa(R,M);gl(i,p,fe,se,k,{...N,padding:3});const O="arcAngle2",B=[`${P.toFixed(2)} °`],U=xa(A,L);gl(i,p,O,B,U,{...N,padding:3})}}return o},this.distanceToLines=({viewport:n,points:i,canvasCoords:o,proximity:a})=>{const[s,c,l,f]=i,u=n.worldToCanvas(s),d=n.worldToCanvas(c),h=n.worldToCanvas(l),g=n.worldToCanvas(f),p={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},v={start:{x:h[0],y:h[1]},end:{x:g[0],y:g[1]}},x=Ar([p.start.x,p.start.y],[p.end.x,p.end.y],[o[0],o[1]]),m=Ar([v.start.x,v.start.y],[v.end.x,v.end.y],[o[0],o[1]]);let y=!1,w=!1;return x<=a?y=!0:m<=a&&(w=!0),{distanceToPoint:x,distanceToPoint2:m,isNearFirstLine:y,isNearSecondLine:w}},this.getArcsStartEndPoints=({firstLine:n,secondLine:i,mid1:o,mid2:a})=>{const s=[o,a],c=Zf(n,s),l=Zf(i,s),f=c>90?1:0,u=l>90?0:1,d=xa(s[0],s[1]),h=Math.sqrt((s[1][0]-s[0][0])**2+(s[1][1]-s[0][1])**2),g=.1,p=xa(n[0],n[1]),v=xa(i[0],i[1]),x=[n[f][0]-p[0],n[f][1]-p[1]],m=Math.sqrt(x[0]**2+x[1]**2),y=[x[0]/m,x[1]/m],w=[p[0]+y[0]*h*g,p[1]+y[1]*h*g],C=[d[0]-o[0],d[1]-o[1]],S=Math.sqrt(C[0]**2+C[1]**2),T=[C[0]/S,C[1]/S],_=[o[0]+T[0]*h*g,o[1]+T[1]*h*g],E=[i[u][0]-v[0],i[u][1]-v[1]],D=Math.sqrt(E[0]**2+E[1]**2),b=[E[0]/D,E[1]/D],I=[v[0]+b[0]*h*g,v[1]+b[1]*h*g],R=[d[0]-a[0],d[1]-a[1]],M=Math.sqrt(R[0]**2+R[1]**2),L=[R[0]/M,R[1]/M],A=[a[0]+L[0]*h*g,a[1]+L[1]*h*g];return{arc1Start:w,arc1End:_,arc2Start:I,arc2End:A,arc1Angle:c>90?180-c:c,arc2Angle:l>90?180-l:l}},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,25,{trailing:!0})}handleSelectedCallback(e,r,n,i="mouse"){const o=e.detail,{element:a}=o,{data:s}=r;r.highlighted=!0;let c=!1,l;n.worldPosition?c=!0:l=s.handles.points.findIndex(u=>u===n);const f=He(a,this.getToolName());this.editData={annotation:r,viewportIdsToRender:f,handleIndex:l,movingTextBox:c},this._activateModify(a),Ze(a),ne(a),pe(f),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data;if(i.handles.points.length!==4)return;const o=[null,null],a=[null,null];let s=Number.MAX_VALUE;for(let T=0;T<2;T+=1)for(let _=2;_<4;_+=1){const E=Cr(i.handles.points[T],i.handles.points[_]);Ec.worldToCanvas(T)),u=[f[0],f[1]],d=[f[2],f[3]],h=xa(u[0],u[1]),g=xa(d[0],d[1]),{arc1Start:p,arc1End:v,arc2End:x,arc2Start:m,arc1Angle:y,arc2Angle:w}=this.getArcsStartEndPoints({firstLine:u,secondLine:d,mid1:h,mid2:g}),{cachedStats:C}=i,S=Object.keys(C);for(let T=0;T{if(this.startedDrawing)return;this.startedDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;if(!(l instanceof un))throw new Error("UltrasoundDirectionalTool can only be used on a StackViewport");Ze(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>!1,this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.startedDrawing&&f.handles.points.length===1){this.editData.handleIndex=1;return}this.startedDrawing=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o),ne(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&tn(a),this.editData=null,this.isDrawing=!1}},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,ne(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),lt(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&tn(i),this.editData=null,this.startedDrawing=!1,i.annotationUID}},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this._activateDraw=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(M));if(!p.cachedStats[l]||p.cachedStats[l].xValues==null?(p.cachedStats[l]={xValues:[0,0],yValues:[0,0],isHorizontal:!1,units:[""],isUnitless:!1},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let y="0";if(dm(i,g,y,m[0],{color:x},0),o=!0,m.length!==2)return o;if(y="1",dm(i,g,y,m[1],{color:x},1),p.cachedStats[l].isUnitless){const M=`${g}-line-1`;It(i,g,"1",m[0],m[1],{color:x,width:1,shadow:this.configuration.shadow},M)}else{const M=m[0],L=m[1],A=L[1]-M[1],G=L[0]-M[0],P=p.cachedStats[l].isHorizontal;let N=[0,0];P?N=[M[0]+G,M[1]]:N=[M[0],M[1]+A];let V=`${g}-line-1`,$="1";It(i,g,$,m[0],N,{color:x,width:1,shadow:this.configuration.shadow},V),V=`${g}-line-2`,$="2",It(i,g,$,m[1],N,{color:x,width:1,lineDash:[1,1],shadow:this.configuration.shadow},V)}const C=this.getLinkedTextBoxStyle(u,h);if(!C.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const S=this.configuration.getTextLines(p,l,this.configuration);if(!p.handles.textBox.hasMoved){const M=m[1];p.handles.textBox.worldPosition=a.canvasToWorld(M)}const T=a.worldToCanvas(p.handles.textBox.worldPosition),E=ti(i,g,"1",S,T,m,{},C),{x:D,y:b,width:I,height:R}=E;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([D,b]),topRight:a.canvasToWorld([D+I,b]),bottomLeft:a.canvasToWorld([D,b+R]),bottomRight:a.canvasToWorld([D+I,b+R])}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}toolSelectedCallback(e,r,n,i){}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;const s=He(o,this.getToolName());let c;n.worldPosition||(c=a.handles.points.findIndex(l=>l===n)),this.editData={handleIndex:c,annotation:r,viewportIdsToRender:s},this._activateModify(o),Ze(o),ne(o),pe(s),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport;if(i.handles.points.length!==2)return;const{cachedStats:a}=i,s=Object.keys(a);for(let c=0;cMath.abs(b),w=[v[0],m[0]],C=[v[1],m[1]],S=[x[0],x[1]]}a[l]={xValues:w,yValues:C,isHorizontal:T,units:S,isUnitless:_}}return e.invalidated=!1,dn(e,o),a}}function u2e(t,e,r){const n=t.cachedStats[e],{xValues:i,yValues:o,units:a,isUnitless:s,isHorizontal:c}=n;if(s)return[`${xt(i[0])} px`];if(r.displayBothAxesDistances){const l=Math.abs(i[1]-i[0]),f=Math.abs(o[1]-o[0]);return[`${xt(l)} ${a[0]}`,`${xt(f)} ${a[1]}`]}if(c){const l=Math.abs(i[1]-i[0]);return[`${xt(l)} ${a[0]}`]}else{const l=Math.abs(o[1]-o[0]);return[`${xt(l)} ${a[1]}`]}}_k.toolName="UltrasoundDirectionalTool";class A2 extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{getTextCallback:f2e,changeTextCallback:d2e,canvasPosition:[10,10],canvasSize:10}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c,u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=A2.createAnnotation({metadata:{...l.getViewReference(),referencedImageId:g}});Ut(p,a);const v=He(a,this.getToolName());return n.preventDefault(),pe(v),this.configuration.getTextCallback(x=>{if(!x){Ot(p.annotationUID),pe(v),this.isDrawing=!1;return}p.data.text=x,tn(p),pe(v)}),p},this.isPointNearTool=(n,i,o,a)=>{ne(n);const{canvasPosition:s,canvasSize:c}=this.configuration;return s!=null&&s.length?Math.abs(o[0]-s[0]+c/2)<=c/2&&Math.abs(o[1]-s[1]+c/2)<=c/2:!1},this.toolSelectedCallback=(n,i)=>{i.highlighted=!0,n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i;this._deactivateModify(o),lt(o)},this.doubleClickCallback=n=>{const i=n.detail,{element:o}=i;let a=_t(this.getToolName(),o);if(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length))return;const s=a.find(l=>this.isPointNearTool(o,l,i.currentPoints.canvas,6));if(!s)return;const c=s;this.configuration.changeTextCallback(s,n.detail,this._doneChangingTextCallback.bind(this,o,c)),this.isDrawing=!1,n.stopImmediatePropagation(),n.preventDefault()},this._activateModify=n=>{me.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback)},this._deactivateModify=n=>{me.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fx+p),g,{color:h,width:1}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o}return o}}cancel(){}handleSelectedCallback(e,r,n){}_doneChangingTextCallback(e,r,n){r.data.text=n,ne(e);const i=He(e,this.getToolName());pe(i),dn(r,e)}_isInsideVolume(e,r,n){return On(e,n)&&On(r,n)}}function f2e(t){return t(prompt("Enter your annotation:"))}function d2e(t,e,r){return r(prompt("Enter your annotation:"))}A2.toolName="KeyImage";class Ek extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.preMouseDownCallback=n=>this._deleteNearbyAnnotations(n,"mouse"),this.preTouchStartCallback=n=>this._deleteNearbyAnnotations(n,"touch")}_deleteNearbyAnnotations(e,r){const{renderingEngineId:n,viewportId:i,element:o,currentPoints:a}=e.detail,s=Cn(i,n);if(!s)return!1;const c=s._toolInstances,l=[];for(const f in c){const u=c[f];if(typeof u.isPointNearTool!="function"||typeof u.filterInteractableAnnotationsForElement!="function")continue;const d=_t(f,o);if(!d.length)continue;const h=u.filterInteractableAnnotationsForElement(o,d)||[];for(const g of h)u.isPointNearTool(o,g,a.canvas,10,r)&&l.push(g.annotationUID)}for(const f of l)Vi(f),Ot(f);return e.preventDefault(),!0}}Ek.toolName="Eraser";const{transformWorldToIndex:h2e}=Jt;function g2e(t,e){const{points:r,segmentsLocked:n,segmentIndex:i,segmentationId:o}=e,{viewport:a}=t,s=xA({operationData:e,viewport:t.viewport});if(!s){console.warn("No data found for fillRectangle");return}const{segmentationImageData:c,segmentationVoxelManager:l}=s;let f=r.map(b=>h2e(c,b));f=f.map(b=>b.map(I=>Math.round(I)));const u=Zs(f,c.getDimensions()),h=a instanceof un||WA(f),g=c.getDirection(),p=c.getSpacing(),{viewPlaneNormal:v}=a.getCamera(),x=Ka({direction:g,spacing:p},v),m=eN(r);let[[y,w],[C,S],[T,_]]=m;y-=x,w+=x,C-=x,S+=x,T-=x,_+=x;const E=h?()=>!0:b=>{const[I,R,M]=b,L=I>=y&&I<=w,A=R>=C&&R<=S,G=M>=T&&M<=_;return L&&A&&G},D=({value:b,index:I})=>{n.includes(b)||l.setAtIndex(I,i)};l.forEach(D,{isInObject:E,boundsIJK:u,imageData:c}),Ei(o)}function Dk(t,e){g2e(t,e)}function p2e(t,e,r=!0){const n=Object.assign({},e,{segmentIndex:0});Dk(t,n)}function m2e(t,e){p2e(t,e,!0)}class bk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Dk,ERASE_INSIDE:m2e},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=bl(l.id);if(!h)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:g}=h,p=Lo(g),v=El(g),x=es(l.id,g,p),{representationData:m}=Ct(g),y=m[Ge.Labelmap],w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:x},data:{handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null}}},C=He(a,this.getToolName());if(this.editData={annotation:w,segmentIndex:p,segmentationId:g,segmentsLocked:v,segmentColor:x,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null},l instanceof Rn){const{volumeId:S}=y,T=Te.getVolume(S);this.editData={...this.editData,volumeId:S,referencedVolumeId:T.referencedVolumeId}}else{const S=Gi(l.id,g);this.editData={...this.editData,imageId:S}}return this._activateDraw(a),Ze(a),n.preventDefault(),pe(C),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c}=this.editData,{data:l}=a,{currentPoints:f}=i,u=ne(o),{worldToCanvas:d,canvasToWorld:h}=u.viewport,g=f.world,{points:p}=l.handles;p[c]=[...g];let v,x,m,y,w,C,S,T;switch(c){case 0:case 3:v=d(p[0]),y=d(p[3]),x=[y[0],v[1]],m=[v[0],y[1]],C=h(x),S=h(m),p[1]=C,p[2]=S;break;case 1:case 2:x=d(p[1]),m=d(p[2]),v=[m[0],x[1]],y=[x[0],m[1]],w=h(v),T=h(y),p[0]=w,p[3]=T;break}a.invalidated=!0,this.editData.hasMoved=!0,pe(s)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=a;if(s&&!c)return;l.handles.activeHandleIndex=null,this._deactivateDraw(o),lt(o);const f=ne(o),u={...this.editData,points:l.handles.points};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(f,u)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{annotation:s}=this.editData,c=s.metadata,l=s.annotationUID,f=s.data,{points:u}=f.handles,d=u.map(p=>a.worldToCanvas(p)),h=`rgb(${c.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(Rh(i,l,"0",d[0],d[3],{color:h}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}bk.toolName="RectangleScissor";class Ik extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:_A,ERASE_INSIDE:bA},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=o.canvas,l=ne(a),{viewport:f}=l;this.isDrawing=!0;const u=f.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=bl(f.id);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:p}=g,v=Lo(p),x=El(p),m=es(f.id,p,v),{representationData:y}=Ct(p),w=y.Labelmap;if(!w)throw new Error("No labelmap data found for the active segmentation, create one before using scissors tool");const C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:f.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},S=[f.id];if(this.editData={annotation:C,centerCanvas:c,segmentIndex:v,segmentationId:p,segmentsLocked:x,segmentColor:m,viewportIdsToRender:S,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null},f instanceof Rn){const{volumeId:T}=w,_=Te.getVolume(T);this.editData={...this.editData,volumeId:T,referencedVolumeId:_.referencedVolumeId}}else{const T=Gi(f.id,p);this.editData={...this.editData,imageId:T}}return this._activateDraw(a),Ze(a),n.preventDefault(),pe(S),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=ne(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerCanvas:g}=this.editData,{data:p}=d,v=Math.abs(s[0]-g[0]),x=Math.abs(s[1]-g[1]),m=Math.sqrt(v*v+x*x),y=[g[0],g[1]+m],w=[g[0],g[1]-m],C=[g[0]-m,g[1]],S=[g[0]+m,g[1]];p.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=a,{viewPlaneNormal:f,viewUp:u}=a.metadata;if(s&&!c)return;l.handles.activeHandleIndex=null,this._deactivateDraw(o),lt(o);const d=ne(o),h={...this.editData,points:l.handles.points,viewPlaneNormal:f,viewUp:u,strategySpecificConfiguration:{}};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(d,h)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_END,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{viewportIdsToRender:s}=this.editData;if(!s.includes(a.id))return o;const{annotation:c}=this.editData,l=c.metadata,f=c.annotationUID,u=c.data,{points:d}=u.handles,h=d.map(w=>a.worldToCanvas(w)),g=h[0],p=h[1],v=[Math.floor((g[0]+p[0])/2),Math.floor((g[1]+p[1])/2)],x=Math.abs(g[1]-Math.floor((g[1]+p[1])/2)),m=`rgb(${l.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(bi(i,f,"0",v,x,{color:m}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}Ik.toolName="CircleScissor";class Ok extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:EA,ERASE_INSIDE:DA},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=o.canvas,l=ne(a),{viewport:f}=l;this.isDrawing=!0;const u=f.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=bl(f.id);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:p}=g,v=Lo(p),x=El(p),m=es(f.id,p,v);this.isDrawing=!0;const y={metadata:{viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:f.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{invalidated:!0,handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},cachedStats:{},highlighted:!0}},w=[f.id];this.editData={annotation:y,centerCanvas:c,segmentIndex:v,segmentationId:p,segmentsLocked:x,segmentColor:m,toolGroupId:this.toolGroupId,viewportIdsToRender:w,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null};const{representationData:C}=Ct(p),S=C[Ge.Labelmap];if(f instanceof Rn){const{volumeId:T}=S,_=Te.getVolume(T);this.editData={...this.editData,volumeId:T,referencedVolumeId:_.referencedVolumeId}}else this.editData={...this.editData};return this._activateDraw(a),Ze(a),n.preventDefault(),pe(w),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=ne(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerCanvas:g}=this.editData,{data:p}=d,v=Math.abs(s[0]-g[0]),x=Math.abs(s[1]-g[1]),m=Math.sqrt(v*v+x*x),y=[g[0],g[1]+m],w=[g[0],g[1]-m],C=[g[0]-m,g[1]],S=[g[0]+m,g[1]];p.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c,segmentIndex:l,segmentsLocked:f}=this.editData,{data:u}=a,{viewPlaneNormal:d,viewUp:h}=a.metadata;if(s&&!c)return;a.highlighted=!1,u.handles.activeHandleIndex=null,this._deactivateDraw(o),lt(o);const g=ne(o),p={...this.editData,points:u.handles.points,segmentIndex:l,segmentsLocked:f,viewPlaneNormal:d,viewUp:h};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(g,p)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{viewportIdsToRender:s}=this.editData;if(!s.includes(a.id))return o;const{annotation:c}=this.editData,l=c.metadata,f=c.annotationUID,u=c.data,{points:d}=u.handles,h=d.map(w=>a.worldToCanvas(w)),g=h[0],p=h[1],v=[Math.floor((g[0]+p[0])/2),Math.floor((g[1]+p[1])/2)],x=Math.abs(g[1]-Math.floor((g[1]+p[1])/2)),m=`rgb(${l.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(bi(i,f,"0",v,x,{color:m}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}Ok.toolName="SphereScissor";const{transformWorldToIndex:ff}=Jt;class Mk extends _S{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{storePointData:!1,numSlicesToPropagate:10,calculatePointsInsideVolume:!1,getTextLines:v2e,statsCalculator:Xa,showTextBox:!1}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u;let g,p,v;if(l instanceof un)throw new Error("Stack Viewport Not implemented");{const T=this.getTargetId(l);v=fa(T),p=Te.getVolume(v),g=qa(p,s,d)}const x=Ka(p,d),m=this._getStartCoordinate(s,x,d),y=this._getEndCoordinate(s,x,d),w=l.getFrameOfReferenceUID(),C={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:w,referencedImageId:g,volumeId:v,spacingInNormal:x,enabledElement:c},data:{label:"",startCoordinate:m,endCoordinate:y,handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s]],activeHandleIndex:null},cachedStats:{pointsInVolume:[],projectionPoints:[],statistics:[]},labelmapUID:null}};this._computeProjectionPoints(C,p),Ut(C,a);const S=He(a,this.getToolName());return this.editData={annotation:C,viewportIdsToRender:S,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Ze(a),n.preventDefault(),pe(S),C},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(c&&!l)return;a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),lt(o);const u=ne(o);this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const d=this.getTargetId(u.viewport),h=Te.getVolume(d.split(/volumeId:|\?/)[1]);this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(a,h,d,u),pe(s),c&&tn(a)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;let s=_t(this.getToolName(),a.element);if(!(s!=null&&s.length))return o;s=E2(s,a.getCamera());const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let l=0;la.worldToCanvas(Y)),C=w[0],S=Zc(w),{centerPointRadius:T}=this.configuration,_=Qf(w),E=a.getCamera().focalPoint,D=a.getCamera().viewPlaneNormal;let b=h,I=g;Array.isArray(h)&&(b=this._getCoordinateForViewplaneNormal(b,D),d.startCoordinate=b),Array.isArray(g)&&(I=this._getCoordinateForViewplaneNormal(I,D),d.endCoordinate=I);const R=Ms(d.startCoordinate),M=Ms(d.endCoordinate),L=this._getCoordinateForViewplaneNormal(E,D),A=Ms(L);if(AMath.max(R,M))continue;const G=Ms((d.startCoordinate+d.endCoordinate)/2);let P=!1;if(A===G&&(P=!0),d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(D)]=G,f.invalidated&&this._throttledCalculateCachedStats(f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let N;if(!Br(u))continue;!rr(u)&&!this.editData&&v!==null&&P&&(N=[w[v]]),N&&cn(i,u,"0",N,{color:y});let V=x,$=m;P?(V=x,$=[]):$=[5,5];const j="0";if(bi(i,u,j,C,S,{color:y,lineDash:$,lineWidth:V}),T>0&&S>3*T&&bi(i,u,`${j}-center`,C,T,{color:y,lineDash:m,lineWidth:x}),o=!0,this.configuration.showTextBox==!0&&this.configuration.calculatePointsInsideVolume==!0){const Y=this.getLinkedTextBoxStyle(c,f);if(!Y.visibility){d.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const te=this.configuration.getTextLines(d);if(!te||te.length===0)continue;let Q;d.handles.textBox.hasMoved||(Q=$i(_),d.handles.textBox.worldPosition=a.canvasToWorld(Q));const re=a.worldToCanvas(d.handles.textBox.worldPosition),fe=ti(i,u,"1",te,re,w,{},Y),{x:se,y:k,width:O,height:B}=fe;d.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([se,k]),topRight:a.canvasToWorld([se+O,k]),bottomLeft:a.canvasToWorld([se,k+B]),bottomRight:a.canvasToWorld([se+O,k+B])}}}return o},this._throttledCalculateCachedStats=ei(this._calculateCachedStatsTool,100,{trailing:!0})}_computeProjectionPoints(e,r){const{data:n,metadata:i}=e,{viewPlaneNormal:o,spacingInNormal:a}=i,{imageData:s}=r,{startCoordinate:c,endCoordinate:l}=n,{points:f}=n.handles,u=ff(s,f[0]),d=ff(s,f[0]),h=eo(f),g=xe();s.indexToWorldVec3(u,g);const p=xe();s.indexToWorldVec3(d,p),this._getIndexOfCoordinatesForViewplaneNormal(o)==2?(g[2]=c,p[2]=l,h[0][2]=c,h[1][2]=c):this._getIndexOfCoordinatesForViewplaneNormal(o)==0?(g[0]=c,p[0]=l,h[0][0]=c,h[1][0]=c):this._getIndexOfCoordinatesForViewplaneNormal(o)==1&&(g[1]=c,p[1]=l,h[0][1]=c,h[1][1]=c);const v=Cr(g,p),x=[];for(let m=0;m{const w=xe();return Vt(w,y,o,m),Array.from(w)}));n.cachedStats.projectionPoints=x}_computePointsInsideVolume(e,r,n,i){var D,b,I;const{data:o,metadata:a}=e,{viewPlaneNormal:s,viewUp:c}=a,{viewport:l}=i,f=o.cachedStats.projectionPoints,u=[[]],d=this.getTargetImageData(n),h=o.handles.points.map(R=>l.worldToCanvas(R)),[g,p]=Qf(h),v=l.canvasToWorld(g),x=l.canvasToWorld(p),{worldWidth:m,worldHeight:y}=P2(s,c,v,x),w=Bi(d,o.handles),C=HC(d),S=Math.abs(Math.PI*(m/w.scale/2)*(y/C/w.scale/2)),T={isPreScaled:is(l,n),isSuvScaled:this.isSuvScaled(l,n,e.metadata.referencedImageId)},_=Dl(a.Modality,e.metadata.referencedImageId,T);for(let R=0;Rl.worldToCanvas(se)),[A,G]=Qf(L),P=l.canvasToWorld(A),N=l.canvasToWorld(G),V=P,$=N,{dimensions:j,imageData:Y,voxelManager:te}=r,Q=ff(Y,V),re=ff(Y,M),de=this._getIndexOfCoordinatesForViewplaneNormal(s);Q[0]=Math.floor(Q[0]),Q[1]=Math.floor(Q[1]),Q[2]=Math.floor(Q[2]),Q[de]=re[de];const fe=ff(Y,$);if(fe[0]=Math.floor(fe[0]),fe[1]=Math.floor(fe[1]),fe[2]=Math.floor(fe[2]),fe[de]=re[de],this._isInsideVolume(Q,fe,j)){const se=Math.min(Q[0],fe[0]),k=Math.max(Q[0],fe[0]),O=Math.min(Q[1],fe[1]),B=Math.max(Q[1],fe[1]),U=Math.min(Q[2],fe[2]),z=Math.max(Q[2],fe[2]),H=[[se,k],[O,B],[U,z]],ie={center:M,xRadius:Math.abs(P[0]-N[0])/2,yRadius:Math.abs(P[1]-N[1])/2,zRadius:Math.abs(P[2]-N[2])/2},he=te.forEach(this.configuration.statsCalculator.statsCallback,{isInObject:ye=>S2(ie,ye),boundsIJK:H,imageData:Y,returnPoints:this.configuration.storePointData});u.push(he)}}const E=this.configuration.statsCalculator.getStatistics();o.cachedStats.pointsInVolume=u,o.cachedStats.statistics={Modality:a.Modality,area:S,mean:(D=E.mean)==null?void 0:D.value,stdDev:(b=E.stdDev)==null?void 0:b.value,max:(I=E.max)==null?void 0:I.value,statsArray:E.array,areaUnit:w.areaUnit,modalityUnit:_}}_calculateCachedStatsTool(e,r){const n=e.data,{viewport:i}=r,{cachedStats:o}=n,a=this.getTargetId(i),s=Te.getVolume(a.split(/volumeId:|\?/)[1]);return this._computeProjectionPoints(e,s),this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(e,s,a,r),e.invalidated=!1,dn(e,i.element),o}_getStartCoordinate(e,r,n){const i=this.configuration.numSlicesToPropagate,o=Math.round(i/2),a=xe();return Vt(a,e,n,o*-r),this._getCoordinateForViewplaneNormal(a,n)}_getEndCoordinate(e,r,n){const i=this.configuration.numSlicesToPropagate,o=i-Math.round(i/2),a=xe();return Vt(a,e,n,o*r),this._getCoordinateForViewplaneNormal(a,n)}_getIndexOfCoordinatesForViewplaneNormal(e){const r=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])];return r.indexOf(Math.max(...r))}_getCoordinateForViewplaneNormal(e,r){const n=this._getIndexOfCoordinatesForViewplaneNormal(r);return e[n]}}function v2e(t){const e=t.cachedStats.statistics,{area:r,mean:n,max:i,stdDev:o,areaUnit:a,modalityUnit:s}=e;if(n===void 0)return;const c=[];return c.push(`Area: ${xt(r)} ${a}`),c.push(`Mean: ${xt(n)} ${s}`),c.push(`Max: ${xt(i)} ${s}`),c.push(`Std Dev: ${xt(o)} ${s}`),c}Mk.toolName="CircleROIStartEndThreshold";const{transformWorldToIndex:PE,isEqual:vy}=Jt;class Rk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.preMouseDownCallback=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=ne(a),{viewport:l}=c,f=l.getCamera(),{viewPlaneNormal:u}=f,d=bl(l.id);if(!d)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:h}=d,g=Lo(h),p=El(h),{representationData:v}=Ct(h);let x,m,y,w;if(l instanceof Rn){const{volumeId:L}=v[Ge.Labelmap],A=Te.getVolume(L);({dimensions:x,direction:m}=A),w=A.voxelManager,y=PE(A.imageData,s)}else{const L=Gi(l.id,h);if(!L)throw new Error("No active segmentation imageId detected, create one before using scissors tool");const{imageData:A}=l.getImageData();x=A.getDimensions(),m=A.getDirection(),w=Te.getImage(L).voxelManager,y=PE(A,s)}const C=this.getFixedDimension(u,m);if(C===void 0){console.warn("Oblique paint fill not yet supported");return}const{floodFillGetter:S,getLabelValue:T,getScalarDataPositionFromPlane:_,inPlaneSeedPoint:E,fixedDimensionValue:D}=this.generateHelpers(w,x,y,C);if(y[0]<0||y[0]>=x[0]||y[1]<0||y[1]>=x[1]||y[2]<0||y[2]>=x[2])return;const b=T(y[0],y[1],y[2]);if(p.includes(b))return;const I=vm(S,E),{flooded:R}=I;R.forEach(L=>{const A=_(L[0],L[1]);w.setAtIndex(A,g)});const M=this.getFramesModified(C,D,I);return Ei(h,M),!0},this.getFramesModified=(n,i,o)=>{const{boundaries:a}=o;if(n===2)return[i];let s=1/0,c=-1/0;for(let f=0;fc&&(c=u)}const l=[];for(let f=s;f<=c;f++)l.push(f);return l},this.generateHelpers=(n,i,o,a=2)=>{let s,c;switch(a){case 0:s=o[0],c=[o[1],o[2]];break;case 1:s=o[1],c=[o[0],o[2]];break;case 2:s=o[2],c=[o[0],o[1]];break;default:throw new Error(`Invalid fixedDimension: ${a}`)}const l=(h,g,p)=>n.toIndex([h,g,p]),f=(h,g,p)=>n.getAtIJK(h,g,p),u=this.generateFloodFillGetter(i,a,s,f);return{getScalarDataPositionFromPlane:this.generateGetScalarDataPositionFromPlane(l,a,s),getLabelValue:f,floodFillGetter:u,inPlaneSeedPoint:c,fixedDimensionValue:s}},this.generateFloodFillGetter=(n,i,o,a)=>{let s;switch(i){case 0:s=(c,l)=>{if(!(c>=n[1]||c<0||l>=n[2]||l<0))return a(o,c,l)};break;case 1:s=(c,l)=>{if(!(c>=n[0]||c<0||l>=n[2]||l<0))return a(c,o,l)};break;case 2:s=(c,l)=>{if(!(c>=n[0]||c<0||l>=n[1]||l<0))return a(c,l,o)};break;default:throw new Error(`Invalid fixedDimension: ${i}`)}return s},this.generateGetScalarDataPositionFromPlane=(n,i,o)=>{let a;switch(i){case 0:a=(s,c)=>n(o,s,c);break;case 1:a=(s,c)=>n(s,o,c);break;case 2:a=(s,c)=>n(s,c,o);break;default:throw new Error(`Invalid fixedDimension: ${i}`)}return a}}getFixedDimension(e,r){const n=r.slice(0,3),i=r.slice(3,6),o=r.slice(6,9),a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],s=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(vy(a,s))return 0;const c=[Math.abs(i[0]),Math.abs(i[1]),Math.abs(i[2])];if(vy(a,c))return 1;const l=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];if(vy(a,l))return 2}}Rk.toolName="PaintFill";const y2e={TOP_LEFT:"TOP_LEFT",TOP_RIGHT:"TOP_RIGHT",BOTTOM_LEFT:"BOTTOM_LEFT",BOTTOM_RIGHT:"BOTTOM_RIGHT"};var DS={Corners:y2e};const{vtkErrorMacro:yy}=W,{Corners:tp}=DS;function x2e(t,e){e.classHierarchy.push("vtkOrientationMarkerWidget");const r={...t},n=[],i=iO.newInstance(),o=new ResizeObserver(d=>{t.updateViewport()});let a=null,s=null,c=null,l=null,f=null;function u(){e._interactor.isAnimating()||t.updateMarkerOrientation()}e._onParentRendererChanged=()=>t.updateViewport(),t.computeViewport=()=>{const d=e.parentRenderer||e._interactor.getCurrentRenderer(),[h,g,p,v]=d.getViewport(),x=e._interactor.getView(),m=x.getSize(),[y,w]=x.getViewportSize(d),C=Math.min(y,w);let S=e.viewportSize*C;S=Math.max(Math.min(e.minPixelSize,C),Math.min(e.maxPixelSize,S));const T=S/m[0],_=S/m[1];switch(e.viewportCorner){case tp.TOP_LEFT:return[h,v-_,h+T,v];case tp.TOP_RIGHT:return[p-T,v-_,p,v];case tp.BOTTOM_LEFT:return[h,g,h+T,g+_];case tp.BOTTOM_RIGHT:return[p-T,g,p,g+_];default:return yy("Invalid widget corner"),null}},t.updateViewport=()=>{e.enabled&&(i.setViewport(...t.computeViewport()),e._interactor.render())},t.updateMarkerOrientation=()=>{const h=(e.parentRenderer||e._interactor.getCurrentRenderer()).getActiveCamera();if(!h)return;const g=h.getReferenceByName("position"),p=h.getReferenceByName("focalPoint"),v=h.getReferenceByName("viewUp");if(n[0]!==g[0]||n[1]!==g[1]||n[2]!==g[2]||n[3]!==p[0]||n[4]!==p[1]||n[5]!==p[2]||n[6]!==v[0]||n[7]!==v[1]||n[8]!==v[2]){n[0]=g[0],n[1]=g[1],n[2]=g[2],n[3]=p[0],n[4]=p[1],n[5]=p[2],n[6]=v[0],n[7]=v[1],n[8]=v[2];const x=i.getActiveCamera();x.setPosition(g[0],g[1],g[2]),x.setFocalPoint(p[0],p[1],p[2]),x.setViewUp(v[0],v[1],v[2]),i.resetCamera()}},t.setEnabled=d=>{var h,g;if(d){if(e.enabled)return;if(!e.actor){yy("Must set actor before enabling orientation marker.");return}if(!e._interactor){yy("Must set interactor before enabling orientation marker.");return}const p=e.parentRenderer||e._interactor.getCurrentRenderer(),v=p.getRenderWindow();v.addRenderer(i),v.getNumberOfLayers()<2&&v.setNumberOfLayers(2),i.setLayer(v.getNumberOfLayers()-1),i.setInteractive(e.interactiveRenderer),i.addViewProp(e.actor),e.actor.setVisibility(!0),a=p.onEvent(x=>{x.type==="ActiveCameraEvent"&&(s&&s.unsubscribe(),s=x.camera.onModified(u))}),s=p.getActiveCamera().onModified(u),c=e._interactor.onAnimation(t.updateMarkerOrientation),l=e._interactor.onEndAnimation(t.updateMarkerOrientation),o.observe(e._interactor.getView().getCanvas()),t.updateViewport(),t.updateMarkerOrientation(),e.enabled=!0}else{if(!e.enabled)return;e.enabled=!1,o.disconnect(),a.unsubscribe(),a=null,s.unsubscribe(),s=null,c.unsubscribe(),c=null,l.unsubscribe(),l=null,e.actor.setVisibility(!1),i.removeViewProp(e.actor);const p=(g=(h=e._interactor)==null?void 0:h.findPokedRenderer())==null?void 0:g.getRenderWindow();p&&p.removeRenderer(i)}t.modified()},t.setViewportCorner=d=>{d!==e.viewportCorner&&(e.viewportCorner=d,t.updateViewport())},t.setViewportSize=d=>{const h=Math.min(1,Math.max(0,d));h!==e.viewportSize&&(e.viewportSize=h,t.updateViewport())},t.setActor=d=>{const h=e.enabled;t.setEnabled(!1),e.actor=d,t.setEnabled(h)},t.getRenderer=()=>i,t.delete=()=>{r.delete(),f&&(f.unsubscribe(),f=null),a&&(a.unsubscribe(),a=null),s&&(s.unsubscribe(),s=null),c&&(c.unsubscribe(),c=null),l&&(l.unsubscribe(),l=null),o.disconnect()},f=t.onModified(t.updateViewport)}const w2e={viewportCorner:DS.Corners.BOTTOM_LEFT,viewportSize:.2,minPixelSize:50,maxPixelSize:200,parentRenderer:null,interactiveRenderer:!1};function Lk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,w2e,r),W.obj(t,e),W.get(t,e,["enabled","viewportCorner","viewportSize","interactiveRenderer"]),W.setGet(t,e,["_interactor","minPixelSize","maxPixelSize","parentRenderer"]),W.get(t,e,["actor"]),W.moveToProtected(t,e,["interactor"]),x2e(t,e)}const C2e=W.newInstance(Lk,"vtkOrientationMarkerWidget");var AE={newInstance:C2e,extend:Lk,...DS};function Nk(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];const[r,n,i,o]=e,s=t.getContext("2d").getImageData(r,n,i||t.width,o||t.height),c=y0.newInstance({type:"vtkImageData"});c.setOrigin(0,0,0),c.setSpacing(1,1,1),c.setExtent(0,(i||t.width)-1,0,(o||t.height)-1,0,0);const l=tt.newInstance({numberOfComponents:4,values:new Uint8Array(s.data.buffer)});return l.setName("scalars"),c.getPointData().setScalars(l),c}function S2e(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{flipX:!1,flipY:!1,rotate:0};const r=document.createElement("canvas");r.width=t.width,r.height=t.height;const n=r.getContext("2d"),{flipX:i,flipY:o,rotate:a}=e;return n.translate(r.width/2,r.height/2),n.scale(i?-1:1,o?-1:1),n.rotate(a*Math.PI/180),n.drawImage(t,-t.width/2,-t.height/2),Nk(r)}var T2e={canvasToImageData:Nk,imageToImageData:S2e};const Pk={default:{defaultStyle:{fontStyle:"bold",fontFamily:"Arial",fontColor:"black",fontSizeScale:t=>t/2,faceColor:"white",edgeThickness:.1,edgeColor:"black",resolution:400},xMinusFaceProperty:{text:"X-",faceColor:"yellow"},xPlusFaceProperty:{text:"X+",faceColor:"yellow"},yMinusFaceProperty:{text:"Y-",faceColor:"red"},yPlusFaceProperty:{text:"Y+",faceColor:"red"},zMinusFaceProperty:{text:"Z-",faceColor:"#008000"},zPlusFaceProperty:{text:"Z+",faceColor:"#008000"}},lps:{xMinusFaceProperty:{text:"R",faceRotation:-90},xPlusFaceProperty:{text:"L",faceRotation:90},yMinusFaceProperty:{text:"A",faceRotation:0},yPlusFaceProperty:{text:"P",faceRotation:180},zMinusFaceProperty:{text:"I",faceRotation:180},zPlusFaceProperty:{text:"S",faceRotation:0}}};function Ak(t,e){e.set(t)}function _2e(t,e){return Ak(Pk[t],e)}function E2e(t,e){Pk[t]=e}var D2e={applyDefinitions:Ak,applyPreset:_2e,registerStylePreset:E2e};const b2e={xPlus:0,xMinus:1,yPlus:2,yMinus:3,zPlus:4,zMinus:5};function I2e(t,e){e.classHierarchy.push("vtkAnnotatedCubeActor"),e.xPlusFaceProperty={...e.xPlusFaceProperty},e.xMinusFaceProperty={...e.xMinusFaceProperty},e.yPlusFaceProperty={...e.yPlusFaceProperty},e.yMinusFaceProperty={...e.yMinusFaceProperty},e.zPlusFaceProperty={...e.zPlusFaceProperty},e.zMinusFaceProperty={...e.zMinusFaceProperty};let r=null;const n=document.createElement("canvas"),i=ia.newInstance(),o=_h.newInstance();o.setInterpolate(!0);function a(c){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;l&&Object.assign(e[`${c}FaceProperty`],l);const f={...e.defaultStyle,...e[`${c}FaceProperty`]};n.width=f.resolution,n.height=f.resolution;const u=n.getContext("2d");u.fillStyle=f.faceColor,u.fillRect(0,0,n.width,n.height),f.edgeThickness>0&&(u.strokeStyle=f.edgeColor,u.lineWidth=f.edgeThickness*n.width,u.strokeRect(0,0,n.width,n.height)),u.save(),u.translate(0,n.height),u.scale(1,-1),u.translate(n.width/2,n.height/2),u.rotate(-Math.PI*(f.faceRotation/180));const d=f.fontSizeScale(f.resolution);u.fillStyle=f.fontColor,u.textAlign="center",u.textBaseline="middle",u.font=`${f.fontStyle} ${d}px "${f.fontFamily}"`,u.fillText(f.text,0,0),u.restore();const h=T2e.canvasToImageData(n);o.setInputData(h,b2e[c]),t.modified()}function s(){r=QO.newInstance({generate3DTextureCoordinates:!0}),i.setInputConnection(r.getOutputPort()),a("xPlus"),a("xMinus"),a("yPlus"),a("yMinus"),a("zPlus"),a("zMinus")}t.setDefaultStyle=c=>{e.defaultStyle={...e.defaultStyle,...c},s()},t.setXPlusFaceProperty=c=>a("xPlus",c),t.setXMinusFaceProperty=c=>a("xMinus",c),t.setYPlusFaceProperty=c=>a("yPlus",c),t.setYMinusFaceProperty=c=>a("yMinus",c),t.setZPlusFaceProperty=c=>a("zPlus",c),t.setZMinusFaceProperty=c=>a("zMinus",c),s(),i.setInputConnection(r.getOutputPort()),t.setMapper(i),t.addTexture(o)}const O2e={defaultStyle:{text:"",faceColor:"white",faceRotation:0,fontFamily:"Arial",fontColor:"black",fontStyle:"normal",fontSizeScale:t=>t/1.8,edgeThickness:.1,edgeColor:"black",resolution:200}};function kk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,O2e,r),sa.extend(t,e,r),W.get(t,e,["defaultStyle","xPlusFaceProperty","xMinusFaceProperty","yPlusFaceProperty","yMinusFaceProperty","zPlusFaceProperty","zMinusFaceProperty"]),I2e(t,e)}const M2e=W.newInstance(kk,"vtkAnnotatedCubeActor");var kE={newInstance:M2e,extend:kk,Presets:D2e};const{vtkErrorMacro:R2e}=W;function L2e(t,e){let r=0;return t.map((n,i)=>i===r?(r+=n+1,n):n+e)}function np(t,e,r,n){t.set(L2e(e,r),n)}function N2e(t,e){e.classHierarchy.push("vtkAppendPolyData"),t.requestData=(r,n)=>{const i=t.getNumberOfInputPorts();if(!i){R2e("No input specified.");return}if(i===1){n[0]=r[0];return}const o=dr.newInstance();let a=0,s=0,c=1,l=1,f=0,u=0,d=0,h=0,g=!0,p=!0,v=!0;for(let b=0;bc?s:c);const M=I.getPointData();M?(g=g&&M.getNormals()!==null,p=p&&M.getTCoords()!==null,v=v&&M.getScalars()!==null):(g=!1,p=!1,v=!1)}e.outputPointsPrecision===I1.SINGLE?s=yt.FLOAT:e.outputPointsPrecision===I1.DOUBLE&&(s=yt.DOUBLE);const x=Md.newInstance({dataType:s});x.setNumberOfPoints(a);const m=x.getData(),y=new Uint32Array(f),w=new Uint32Array(u),C=new Uint32Array(d),S=new Uint32Array(h);let T=null,_=null,E=null;const D=r[i-1];if(g){const b=D.getPointData().getNormals();T=tt.newInstance({numberOfComponents:3,numberOfTuples:a,size:3*a,dataType:b.getDataType(),name:b.getName()})}if(p){const b=D.getPointData().getTCoords();_=tt.newInstance({numberOfComponents:2,numberOfTuples:a,size:2*a,dataType:b.getDataType(),name:b.getName()})}if(v){const b=D.getPointData().getScalars();E=tt.newInstance({numberOfComponents:b.getNumberOfComponents(),numberOfTuples:a,size:a*b.getNumberOfComponents(),dataType:b.getDataType(),name:b.getName()})}a=0,f=0,u=0,d=0,h=0;for(let b=0;b2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,P2e,r),W.setGet(t,e,["outputPointsPrecision"]),W.obj(t,e),W.algo(t,e,1,1),N2e(t,e)}const A2e=W.newInstance(Vk,"vtkAppendPolyData");var Fk={newInstance:A2e,extend:Vk};function k2e(t,e){e.classHierarchy.push("vtkConeSource");function r(n,i){if(e.deleted)return;let o=i[0];const a=2*Math.PI/e.resolution,s=-e.height/2,c=e.resolution+1,l=4*e.resolution+1+e.resolution;let f=0;const u=W.newTypedArray(e.pointType,c*3);let d=0;const h=new Uint32Array(l);u[0]=e.height/2,u[1]=0,u[2]=0,e.capping&&(h[d++]=e.resolution);for(let g=0;ge.resolution?1:g+2;Ir.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.direction).apply(u),o=dr.newInstance(),o.getPoints().setData(u,3),o.getPolys().setData(h,1),i[0]=o}t.requestData=r}const V2e={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:"Float64Array"};function Uk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,V2e,r),W.obj(t,e),W.setGet(t,e,["height","radius","resolution","capping"]),W.setGetArray(t,e,["center","direction"],3),W.algo(t,e,0,1),k2e(t,e)}const F2e=W.newInstance(Uk,"vtkConeSource");var U2e={newInstance:F2e,extend:Uk};function B2e(t,e){e.classHierarchy.push("vtkCylinderSource");function r(n,i){if(e.deleted)return;let o=i[0];const a=2*Math.PI/e.resolution;let s=2*e.resolution,c=5*e.resolution;e.capping&&(s=4*e.resolution,c=7*e.resolution+2);const l=W.newTypedArray(e.pointType,s*3);let f=0;const u=new Uint32Array(c),d=new Float32Array(s*3),h=tt.newInstance({numberOfComponents:3,values:d,name:"Normals"}),g=new Float32Array(s*2),p=tt.newInstance({numberOfComponents:2,values:g,name:"TCoords"}),v=[0,0,0],x=[0,0,0],m=[0,0,0],y=[0,0,0],w=[0,0],C=[0,0],S=e.otherRadius==null?e.radius:e.otherRadius;for(let T=0;TT*-1)).apply(l),o=dr.newInstance(),o.getPoints().setData(l,3),o.getPolys().setData(u,1),o.getPointData().setNormals(h),o.getPointData().setTCoords(p),i[0]=o}t.requestData=r}const G2e={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:"Float64Array"};function Bk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,G2e,r),W.obj(t,e),W.setGet(t,e,["height","initAngle","otherRadius","radius","resolution","capping"]),W.setGetArray(t,e,["center","direction"],3),W.algo(t,e,0,1),B2e(t,e)}const W2e=W.newInstance(Bk,"vtkCylinderSource");var z2e={newInstance:W2e,extend:Bk};function $2e(t,e){e.classHierarchy.push("vtkArrowSource");function r(n,i){if(e.deleted)return;const o=z2e.newInstance({capping:!0});o.setResolution(e.shaftResolution),o.setRadius(e.shaftRadius),o.setHeight(1-e.tipLength),o.setCenter(0,(1-e.tipLength)*.5,0);const a=o.getOutputData(),s=a.getPoints().getData(),c=a.getPointData().getNormals().getData();Ir.buildFromDegree().rotateZ(-90).apply(s).apply(c);const l=U2e.newInstance();l.setResolution(e.tipResolution),l.setHeight(e.tipLength),l.setRadius(e.tipRadius);const f=l.getOutputData(),u=f.getPoints().getData();Ir.buildFromRadian().translate(1-e.tipLength*.5,0,0).apply(u);const d=Fk.newInstance();d.setInputData(a),d.addInputData(f);const h=d.getOutputData(),g=h.getPoints().getData();Ir.buildFromRadian().translate(-.5+e.tipLength*.5,0,0).apply(g),e.invert?(Ir.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(-1,-1,-1).apply(g),i[0]=h):(Ir.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(1,1,1).apply(g),i[0]=d.getOutputData())}t.requestData=r}const j2e={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:"Float64Array"};function Gk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,j2e,r),W.obj(t,e),W.setGet(t,e,["tipResolution","tipRadius","tipLength","shaftResolution","shaftRadius","invert"]),W.setGetArray(t,e,["direction"],3),W.algo(t,e,0,1),$2e(t,e)}const H2e=W.newInstance(Gk,"vtkArrowSource");var xy={newInstance:H2e,extend:Gk};function wy(t){const e=t.getPoints().getBounds(),r=[-(e[0]+e[1])*.5,-(e[2]+e[3])*.5,-(e[4]+e[5])*.5];Ir.buildFromDegree().translate(...r).apply(t.getPoints().getData())}function Cy(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const n=t.getPoints().getBounds(),i=[0,0,0];r?i[e]=-n[e*2+1]:i[e]=-n[e*2],Ir.buildFromDegree().translate(...i).apply(t.getPoints().getData())}function Sy(t,e,r,n){const i=t.getPoints().getData().length,o=new Uint8ClampedArray(i);let a=0;for(;a{let i={...e.config,...e.xConfig};const o=xy.newInstance({direction:[1,0,0],...i}).getOutputData();e.config.recenter?wy(o):Cy(o,0,i.invert),Sy(o,...i.color),i={...e.config,...e.yConfig};const a=xy.newInstance({direction:[0,1,0],...i}).getOutputData();e.config.recenter?wy(a):Cy(a,1,i.invert),Sy(a,...i.color),i={...e.config,...e.zConfig};const s=xy.newInstance({direction:[0,0,1],...i}).getOutputData();e.config.recenter?wy(s):Cy(s,2,i.invert),Sy(s,...i.color);const c=Fk.newInstance();c.setInputData(o),c.addInputData(a),c.addInputData(s),r.setInputConnection(c.getOutputPort())},t.update();const n=W.debounce(t.update,0);t.setXAxisColor=i=>t.setXConfig({...t.getXConfig(),color:i}),t.setYAxisColor=i=>t.setYConfig({...t.getYConfig(),color:i}),t.setZAxisColor=i=>t.setZConfig({...t.getZConfig(),color:i}),t.getXAxisColor=()=>e.getXConfig().color,t.getYAxisColor=()=>e.getYConfig().color,t.getZAxisColor=()=>e.getZConfig().color,e._onConfigChanged=n,e._onXConfigChanged=n,e._onYConfigChanged=n,e._onZConfigChanged=n}function q2e(t){return{config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1,...t==null?void 0:t.config},xConfig:{color:[255,0,0],invert:!1,...t==null?void 0:t.xConfig},yConfig:{color:[255,255,0],invert:!1,...t==null?void 0:t.yConfig},zConfig:{color:[0,128,0],invert:!1,...t==null?void 0:t.zConfig}}}function Wk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};sa.extend(t,e,q2e(r)),W.setGet(t,e,["config","xConfig","yConfig","zConfig"]),K2e(t,e)}const X2e=W.newInstance(Wk,"vtkAxesActor");var Y2e={newInstance:X2e,extend:Wk},zk={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(br,function(){return function(r){var n={};function i(o){if(n[o])return n[o].exports;var a=n[o]={i:o,l:!1,exports:{}};return r[o].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return i.m=r,i.c=n,i.d=function(o,a,s){i.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:s})},i.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},i.t=function(o,a){if(1&a&&(o=i(o)),8&a||4&a&&typeof o=="object"&&o&&o.__esModule)return o;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:o}),2&a&&typeof o!="string")for(var c in o)i.d(s,c,(function(l){return o[l]}).bind(null,c));return s},i.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return i.d(a,"a",a),a},i.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},i.p="",i(i.s=184)}([function(r,n,i){function o(a){for(var s in a)n.hasOwnProperty(s)||(n[s]=a[s])}Object.defineProperty(n,"__esModule",{value:!0}),o(i(240)),o(i(251)),o(i(175)),o(i(107)),o(i(29)),o(i(73)),o(i(106)),o(i(30)),o(i(252)),o(i(52)),o(i(97)),o(i(253)),o(i(37)),o(i(51)),o(i(173)),o(i(176)),o(i(172)),o(i(108)),o(i(254)),o(i(255)),o(i(256)),o(i(72)),o(i(177)),o(i(105)),o(i(17)),o(i(257)),o(i(12)),o(i(174))},function(r,n,i){var o=this&&this.__values||function(y){var w=typeof Symbol=="function"&&Symbol.iterator,C=w&&y[w],S=0;if(C)return C.call(y);if(y&&typeof y.length=="number")return{next:function(){return y&&S>=y.length&&(y=void 0),{value:y&&y[S++],done:!y}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(212);n.FixedSizeSet=a.FixedSizeSet;var s=i(213);n.ObjectCache=s.ObjectCache;var c=i(214);n.CompareCache=c.CompareCache;var l=i(215);n.Lazy=l.Lazy;var f=i(216);function u(y,w,C){if(x(y))y.forEach(function(T,_){return w.call(C,_,T)});else for(var S in y)y.hasOwnProperty(S)&&w.call(C,S,y[S])}function d(y){var w,C;if(h(y))return y;if(p(y)){var S=[];try{for(var T=o(y),_=T.next();!_.done;_=T.next()){var E=_.value;S.push(d(E))}}catch(I){w={error:I}}finally{try{_&&!_.done&&(C=T.return)&&C.call(T)}finally{if(w)throw w.error}}return S}if(g(y)){S={};for(var D in y)if(y.hasOwnProperty(D)){var b=y[D];S[D]=d(b)}return S}return y}function h(y){return!!y&&Object.prototype.toString.call(y)==="[object Function]"}function g(y){var w=typeof y;return!!y&&(w==="function"||w==="object")}function p(y){return Array.isArray(y)}function v(y){return y instanceof Set}function x(y){return y instanceof Map}function m(y){if(g(y)){var w=Object.getPrototypeOf(y),C=w.constructor;return w&&C&&typeof C=="function"&&C instanceof C&&Function.prototype.toString.call(C)===Function.prototype.toString.call(Object)}return!1}n.StringWalker=f.StringWalker,n.applyMixin=function(y,w){for(var C=[],S=2;S>6|192;else{if(T>55295&&T<56320){if(++S>=y.length)throw new Error("Incomplete surrogate pair.");var _=y.charCodeAt(S);if(_<56320||_>57343)throw new Error("Invalid surrogate character.");T=65536+((1023&T)<<10)+(1023&_),w[C++]=T>>18|240,w[C++]=T>>12&63|128}else w[C++]=T>>12|224;w[C++]=T>>6&63|128}w[C++]=63&T|128}}return w.subarray(0,C)},n.utf8Decode=function(y){for(var w="",C=0;C127)if(S>191&&S<224){if(C>=y.length)throw new Error("Incomplete 2-byte sequence.");S=(31&S)<<6|63&y[C++]}else if(S>223&&S<240){if(C+1>=y.length)throw new Error("Incomplete 3-byte sequence.");S=(15&S)<<12|(63&y[C++])<<6|63&y[C++]}else{if(!(S>239&&S<248))throw new Error("Unknown multi-byte start.");if(C+2>=y.length)throw new Error("Incomplete 4-byte sequence.");S=(7&S)<<18|(63&y[C++])<<12|(63&y[C++])<<6|63&y[C++]}if(S<=65535)w+=String.fromCharCode(S);else{if(!(S<=1114111))throw new Error("Code point exceeds UTF-16 limit.");S-=65536,w+=String.fromCharCode(S>>10|55296),w+=String.fromCharCode(1023&S|56320)}}return w}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),function(o){o[o.Before=0]="Before",o[o.Equal=1]="Equal",o[o.After=2]="After"}(n.BoundaryPosition||(n.BoundaryPosition={})),function(o){o[o.None=0]="None",o[o.Capturing=1]="Capturing",o[o.AtTarget=2]="AtTarget",o[o.Bubbling=3]="Bubbling"}(n.EventPhase||(n.EventPhase={})),function(o){o[o.Element=1]="Element",o[o.Attribute=2]="Attribute",o[o.Text=3]="Text",o[o.CData=4]="CData",o[o.EntityReference=5]="EntityReference",o[o.Entity=6]="Entity",o[o.ProcessingInstruction=7]="ProcessingInstruction",o[o.Comment=8]="Comment",o[o.Document=9]="Document",o[o.DocumentType=10]="DocumentType",o[o.DocumentFragment=11]="DocumentFragment",o[o.Notation=12]="Notation"}(n.NodeType||(n.NodeType={})),function(o){o[o.Disconnected=1]="Disconnected",o[o.Preceding=2]="Preceding",o[o.Following=4]="Following",o[o.Contains=8]="Contains",o[o.ContainedBy=16]="ContainedBy",o[o.ImplementationSpecific=32]="ImplementationSpecific"}(n.Position||(n.Position={})),function(o){o[o.Accept=1]="Accept",o[o.Reject=2]="Reject",o[o.Skip=3]="Skip"}(n.FilterResult||(n.FilterResult={})),function(o){o[o.All=4294967295]="All",o[o.Element=1]="Element",o[o.Attribute=2]="Attribute",o[o.Text=4]="Text",o[o.CDataSection=8]="CDataSection",o[o.EntityReference=16]="EntityReference",o[o.Entity=32]="Entity",o[o.ProcessingInstruction=64]="ProcessingInstruction",o[o.Comment=128]="Comment",o[o.Document=256]="Document",o[o.DocumentType=512]="DocumentType",o[o.DocumentFragment=1024]="DocumentFragment",o[o.Notation=2048]="Notation"}(n.WhatToShow||(n.WhatToShow={})),function(o){o[o.StartToStart=0]="StartToStart",o[o.StartToEnd=1]="StartToEnd",o[o.EndToEnd=2]="EndToEnd",o[o.EndToStart=3]="EndToStart"}(n.HowToCompare||(n.HowToCompare={}))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(241);n.Cast=o.Cast;var a=i(150);n.Guard=a.Guard;var s=i(242);n.EmptySet=s.EmptySet},function(r,n,i){var o=i(11),a=i(55).f,s=i(21),c=i(25),l=i(80),f=i(119),u=i(123);r.exports=function(d,h){var g,p,v,x,m,y=d.target,w=d.global,C=d.stat;if(g=w?o:C?o[y]||l(y,{}):(o[y]||{}).prototype)for(p in h){if(x=h[p],v=d.noTargetGet?(m=a(g,p))&&m.value:g[p],!u(w?p:y+(C?".":"#")+p,d.forced)&&v!==void 0){if(typeof x==typeof v)continue;f(x,v)}(d.sham||v&&v.sham)&&s(x,"sham",!0),c(g,p,x,d)}}},function(r,n,i){var o=i(11),a=i(81),s=i(14),c=i(58),l=i(86),f=i(124),u=a("wks"),d=o.Symbol,h=f?d:d&&d.withoutSetter||c;r.exports=function(g){return s(u,g)||(l&&s(d,g)?u[g]=d[g]:u[g]=h("Symbol."+g)),u[g]}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(1),a=i(29),s=function(){function c(){this._features={mutationObservers:!0,customElements:!0,slots:!0,steps:!0},this._window=null,this._compareCache=new o.CompareCache,this._rangeList=new o.FixedSizeSet}return c.prototype.setFeatures=function(l){if(l===void 0&&(l=!0),o.isObject(l))for(var f in l)this._features[f]=l[f]||!1;else for(var f in this._features)this._features[f]=l},Object.defineProperty(c.prototype,"features",{get:function(){return this._features},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"window",{get:function(){return this._window===null&&(this._window=a.create_window()),this._window},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"compareCache",{get:function(){return this._compareCache},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"rangeList",{get:function(){return this._rangeList},enumerable:!0,configurable:!0}),Object.defineProperty(c,"instance",{get:function(){return c._instance||(c._instance=new c),c._instance},enumerable:!0,configurable:!0}),c}();n.dom=s.instance},function(r,n,i){var o=this&&this.__importStar||function(m){if(m&&m.__esModule)return m;var y={};if(m!=null)for(var w in m)Object.hasOwnProperty.call(m,w)&&(y[w]=m[w]);return y.default=m,y};Object.defineProperty(n,"__esModule",{value:!0});var a=o(i(228));n.base64=a;var s=o(i(146));n.byte=s;var c=o(i(147));n.byteSequence=c;var l=o(i(96));n.codePoint=l;var f=o(i(232));n.json=f;var u=o(i(233));n.list=u;var d=o(i(234));n.map=d;var h=o(i(235));n.namespace=h;var g=o(i(236));n.queue=g;var p=o(i(237));n.set=p;var v=o(i(238));n.stack=v;var x=o(i(239));n.string=x},function(r,n){r.exports=function(i){try{return!!i()}catch{return!0}}},function(r,n,i){var o,a=this&&this.__extends||(o=function(P,N){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,$){V.__proto__=$}||function(V,$){for(var j in $)$.hasOwnProperty(j)&&(V[j]=$[j])})(P,N)},function(P,N){function V(){this.constructor=P}o(P,N),P.prototype=N===null?Object.create(N):(V.prototype=N.prototype,new V)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(P){function N(V,$){$===void 0&&($="");var j=P.call(this,$)||this;return j.name=V,j}return a(N,P),N}(Error);n.DOMException=s;var c=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"DOMStringSizeError",V)||this}return a(N,P),N}(s);n.DOMStringSizeError=c;var l=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"WrongDocumentError","The object is in the wrong document. "+V)||this}return a(N,P),N}(s);n.WrongDocumentError=l;var f=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NoDataAllowedError",V)||this}return a(N,P),N}(s);n.NoDataAllowedError=f;var u=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NoModificationAllowedError","The object can not be modified. "+V)||this}return a(N,P),N}(s);n.NoModificationAllowedError=u;var d=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotSupportedError","The operation is not supported. "+V)||this}return a(N,P),N}(s);n.NotSupportedError=d;var h=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InUseAttributeError",V)||this}return a(N,P),N}(s);n.InUseAttributeError=h;var g=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidStateError","The object is in an invalid state. "+V)||this}return a(N,P),N}(s);n.InvalidStateError=g;var p=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidModificationError","The object can not be modified in this way. "+V)||this}return a(N,P),N}(s);n.InvalidModificationError=p;var v=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NamespaceError","The operation is not allowed by Namespaces in XML. [XMLNS] "+V)||this}return a(N,P),N}(s);n.NamespaceError=v;var x=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidAccessError","The object does not support the operation or argument. "+V)||this}return a(N,P),N}(s);n.InvalidAccessError=x;var m=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"ValidationError",V)||this}return a(N,P),N}(s);n.ValidationError=m;var y=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"TypeMismatchError",V)||this}return a(N,P),N}(s);n.TypeMismatchError=y;var w=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"SecurityError","The operation is insecure. "+V)||this}return a(N,P),N}(s);n.SecurityError=w;var C=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NetworkError","A network error occurred. "+V)||this}return a(N,P),N}(s);n.NetworkError=C;var S=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"AbortError","The operation was aborted. "+V)||this}return a(N,P),N}(s);n.AbortError=S;var T=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"URLMismatchError","The given URL does not match another URL. "+V)||this}return a(N,P),N}(s);n.URLMismatchError=T;var _=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"QuotaExceededError","The quota has been exceeded. "+V)||this}return a(N,P),N}(s);n.QuotaExceededError=_;var E=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"TimeoutError","The operation timed out. "+V)||this}return a(N,P),N}(s);n.TimeoutError=E;var D=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidNodeTypeError","The supplied node is incorrect or has an incorrect ancestor for this operation. "+V)||this}return a(N,P),N}(s);n.InvalidNodeTypeError=D;var b=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"DataCloneError","The object can not be cloned. "+V)||this}return a(N,P),N}(s);n.DataCloneError=b;var I=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotImplementedError","The DOM method is not implemented by this module. "+V)||this}return a(N,P),N}(s);n.NotImplementedError=I;var R=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"HierarchyRequestError","The operation would yield an incorrect node tree. "+V)||this}return a(N,P),N}(s);n.HierarchyRequestError=R;var M=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotFoundError","The object can not be found here. "+V)||this}return a(N,P),N}(s);n.NotFoundError=M;var L=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"IndexSizeError","The index is not in the allowed range. "+V)||this}return a(N,P),N}(s);n.IndexSizeError=L;var A=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"SyntaxError","The string did not match the expected pattern. "+V)||this}return a(N,P),N}(s);n.SyntaxError=A;var G=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidCharacterError","The string contains invalid characters. "+V)||this}return a(N,P),N}(s);n.InvalidCharacterError=G},function(r,n,i){var o=i(53),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];r.exports=function(c,l){var f,u;if(l=l||{},Object.keys(l).forEach(function(d){if(a.indexOf(d)===-1)throw new o('Unknown option "'+d+'" is met in definition of "'+c+'" YAML type.')}),this.tag=c,this.kind=l.kind||null,this.resolve=l.resolve||function(){return!0},this.construct=l.construct||function(d){return d},this.instanceOf=l.instanceOf||null,this.predicate=l.predicate||null,this.represent=l.represent||null,this.defaultStyle=l.defaultStyle||null,this.styleAliases=(f=l.styleAliases||null,u={},f!==null&&Object.keys(f).forEach(function(d){f[d].forEach(function(h){u[String(h)]=d})}),u),s.indexOf(this.kind)===-1)throw new o('Unknown kind "'+this.kind+'" is specified for "'+c+'" YAML type.')}},function(r,n,i){(function(o){var a=function(s){return s&&s.Math==Math&&s};r.exports=a(typeof globalThis=="object"&&globalThis)||a(typeof window=="object"&&window)||a(typeof self=="object"&&self)||a(typeof o=="object"&&o)||Function("return this")()}).call(this,i(78))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),n.idl_defineConst=function(o,a,s){Object.defineProperty(o,a,{writable:!1,enumerable:!0,configurable:!1,value:s})}},function(r,n){r.exports=function(i){return typeof i=="object"?i!==null:typeof i=="function"}},function(r,n){var i={}.hasOwnProperty;r.exports=function(o,a){return i.call(o,a)}},function(r,n,i){var o=i(16),a=i(115),s=i(18),c=i(56),l=Object.defineProperty;n.f=o?l:function(f,u,d){if(s(f),u=c(u,!0),s(d),a)try{return l(f,u,d)}catch{}if("get"in d||"set"in d)throw TypeError("Accessors not supported");return"value"in d&&(f[u]=d.value),f}},function(r,n,i){var o=i(8);r.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},function(r,n,i){var o=this&&this.__values||function(y){var w=typeof Symbol=="function"&&Symbol.iterator,C=w&&y[w],S=0;if(C)return C.call(y);if(y&&typeof y.length=="number")return{next:function(){return y&&S>=y.length&&(y=void 0),{value:y&&y[S++],done:!y}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(3),s=i(2);function c(y,w,C){if(C===void 0&&(C=!1),C&&a.Guard.isElementNode(w)&&a.Guard.isShadowRoot(w.shadowRoot)&&w.shadowRoot._firstChild)return w.shadowRoot._firstChild;if(w._firstChild)return w._firstChild;if(w===y)return null;if(w._nextSibling)return w._nextSibling;for(var S=w._parent;S&&S!==y;){if(S._nextSibling)return S._nextSibling;S=S._parent}return null}function l(){var y;return(y={})[Symbol.iterator]=function(){return{next:function(){return{done:!0,value:null}}}},y}function f(y,w,C,S){w===void 0&&(w=!1),C===void 0&&(C=!1);for(var T=w?y:c(y,y,C);T&&S&&!S(T);)T=c(y,T,C);return T}function u(y,w,C,S,T){S===void 0&&(S=!1);for(var _=c(y,w,S);_&&T&&!T(_);)_=c(y,_,S);return _}function d(y,w,C,S){var T;return w===void 0&&(w=!1),C===void 0&&(C=!1),w||y._children.size!==0?((T={})[Symbol.iterator]=function(){var _=w?y:c(y,y,C);return{next:function(){for(;_&&S&&!S(_);)_=c(y,_,C);if(_===null)return{done:!0,value:null};var E={done:!1,value:_};return _=c(y,_,C),E}}},T):l()}function h(y,w,C){w===void 0&&(w=!1);for(var S=w?y:y._parent;S&&C&&!C(S);)S=S._parent;return S}function g(y,w,C,S){for(var T=w._parent;T&&S&&!S(T);)T=T._parent;return T}function p(y){return a.Guard.isDocumentTypeNode(y)?0:a.Guard.isCharacterDataNode(y)?y._data.length:y._children.size}function v(y,w){if(w===void 0&&(w=!1),w){var C=v(y,!1);return a.Guard.isShadowRoot(C)?v(C._host,!0):C}return y._parent?v(y._parent):y}function x(y,w,C,S){C===void 0&&(C=!1),S===void 0&&(S=!1);for(var T=C?y:S&&a.Guard.isShadowRoot(y)?y._host:y._parent;T!==null;){if(T===w)return!0;T=S&&a.Guard.isShadowRoot(T)?T._host:T._parent}return!1}function m(y){for(var w=v(y),C=0,S=f(w);S!==null;){if(C++,S===y)return C;S=u(w,S)}return-1}n.tree_getFirstDescendantNode=f,n.tree_getNextDescendantNode=u,n.tree_getDescendantNodes=d,n.tree_getDescendantElements=function(y,w,C,S){var T;return w===void 0&&(w=!1),C===void 0&&(C=!1),w||y._children.size!==0?((T={})[Symbol.iterator]=function(){var _=d(y,w,C,function(D){return a.Guard.isElementNode(D)})[Symbol.iterator](),E=_.next().value;return{next:function(){for(;E&&S&&!S(E);)E=_.next().value;if(E===null)return{done:!0,value:null};var D={done:!1,value:E};return E=_.next().value,D}}},T):l()},n.tree_getSiblingNodes=function(y,w,C){var S;return w===void 0&&(w=!1),y._parent&&y._parent._children.size!==0?((S={})[Symbol.iterator]=function(){var T=y._parent?y._parent._firstChild:null;return{next:function(){for(;T&&(C&&!C(T)||!w&&T===y);)T=T._nextSibling;if(T===null)return{done:!0,value:null};var _={done:!1,value:T};return T=T._nextSibling,_}}},S):l()},n.tree_getFirstAncestorNode=h,n.tree_getNextAncestorNode=g,n.tree_getAncestorNodes=function(y,w,C){var S;return w===void 0&&(w=!1),w||y._parent?((S={})[Symbol.iterator]=function(){var T=h(y,w,C);return{next:function(){if(T===null)return{done:!0,value:null};var _={done:!1,value:T};return T=g(0,T,w,C),_}}},S):l()},n.tree_getCommonAncestor=function(y,w){if(y===w)return y._parent;for(var C=[],S=[],T=h(y,!0);T!==null;)C.push(T),T=g(0,T);for(var _=h(w,!0);_!==null;)S.push(_),_=g(0,_);for(var E=C.length,D=S.length,b=null,I=Math.min(E,D);I>0;I--){var R=C[--E];if(R!==S[--D])break;b=R}return b},n.tree_getFollowingNode=function(y,w){if(w._firstChild)return w._firstChild;if(w._nextSibling)return w._nextSibling;for(;;){var C=w._parent;if(C===null||C===y)return null;if(C._nextSibling)return C._nextSibling;w=C}},n.tree_getPrecedingNode=function(y,w){return w===y?null:w._previousSibling?(w=w._previousSibling)._lastChild?w._lastChild:w:w._parent},n.tree_isConstrained=function y(w){var C,S,T,_,E,D;switch(w._nodeType){case s.NodeType.Document:var b=!1,I=!1;try{for(var R=o(w._children),M=R.next();!M.done;M=R.next())switch(M.value._nodeType){case s.NodeType.ProcessingInstruction:case s.NodeType.Comment:break;case s.NodeType.DocumentType:if(b||I)return!1;b=!0;break;case s.NodeType.Element:if(I)return!1;I=!0;break;default:return!1}}catch(N){C={error:N}}finally{try{M&&!M.done&&(S=R.return)&&S.call(R)}finally{if(C)throw C.error}}break;case s.NodeType.DocumentFragment:case s.NodeType.Element:try{for(var L=o(w._children),A=L.next();!A.done;A=L.next())switch(A.value._nodeType){case s.NodeType.Element:case s.NodeType.Text:case s.NodeType.ProcessingInstruction:case s.NodeType.CData:case s.NodeType.Comment:break;default:return!1}}catch(N){T={error:N}}finally{try{A&&!A.done&&(_=L.return)&&_.call(L)}finally{if(T)throw T.error}}break;case s.NodeType.DocumentType:case s.NodeType.Text:case s.NodeType.ProcessingInstruction:case s.NodeType.CData:case s.NodeType.Comment:return!w.hasChildNodes()}try{for(var G=o(w._children),P=G.next();!P.done;P=G.next())if(!y(P.value))return!1}catch(N){E={error:N}}finally{try{P&&!P.done&&(D=G.return)&&D.call(G)}finally{if(E)throw E.error}}return!0},n.tree_nodeLength=p,n.tree_isEmpty=function(y){return p(y)===0},n.tree_rootNode=v,n.tree_isDescendantOf=function(y,w,C,S){C===void 0&&(C=!1),S===void 0&&(S=!1);for(var T=f(y,C,S);T!==null;){if(T===w)return!0;T=u(y,T,C,S)}return!1},n.tree_isAncestorOf=x,n.tree_isHostIncludingAncestorOf=function y(w,C,S){if(S===void 0&&(S=!1),x(w,C,S))return!0;var T=v(w);return!(!a.Guard.isDocumentFragmentNode(T)||T._host===null||!y(T._host,C,S))},n.tree_isSiblingOf=function(y,w,C){return C===void 0&&(C=!1),y!==w?y._parent!==null&&y._parent===w._parent:!!C},n.tree_isPreceding=function(y,w){var C=m(y),S=m(w);return C!==-1&&S!==-1&&v(y)===v(w)&&SC},n.tree_isParentOf=function(y,w){return y._parent===w},n.tree_isChildOf=function(y,w){return w._parent===y},n.tree_previousSibling=function(y){return y._previousSibling},n.tree_nextSibling=function(y){return y._nextSibling},n.tree_firstChild=function(y){return y._firstChild},n.tree_lastChild=function(y){return y._lastChild},n.tree_treePosition=m,n.tree_index=function(y){for(var w=0;y._previousSibling!==null;)w++,y=y._previousSibling;return w},n.tree_retarget=function(y,w){for(;;){if(!y||!a.Guard.isNode(y))return y;var C=v(y);if(!a.Guard.isShadowRoot(C)||w&&a.Guard.isNode(w)&&x(C,w,!0,!0))return y;y=C.host}}},function(r,n,i){var o=i(13);r.exports=function(a){if(!o(a))throw TypeError(String(a)+" is not an object");return a}},function(r,n,i){var o=i(24),a=i(130),s=i(49),c=i(43),l=i(88),f=c.set,u=c.getterFor("Array Iterator");r.exports=l(Array,"Array",function(d,h){f(this,{type:"Array Iterator",target:o(d),index:0,kind:h})},function(){var d=u(this),h=d.target,g=d.kind,p=d.index++;return!h||p>=h.length?(d.target=void 0,{value:void 0,done:!0}):g=="keys"?{value:p,done:!1}:g=="values"?{value:h[p],done:!1}:{value:[p,h[p]],done:!1}},"values"),s.Arguments=s.Array,a("keys"),a("values"),a("entries")},function(r,n,i){var o=i(90),a=i(25),s=i(202);o||a(Object.prototype,"toString",s,{unsafe:!0})},function(r,n,i){var o=i(16),a=i(15),s=i(40);r.exports=o?function(c,l,f){return a.f(c,l,s(1,f))}:function(c,l,f){return c[l]=f,c}},function(r,n,i){var o=i(137).charAt,a=i(43),s=i(88),c=a.set,l=a.getterFor("String Iterator");s(String,"String",function(f){c(this,{type:"String Iterator",string:String(f),index:0})},function(){var f,u=l(this),d=u.string,h=u.index;return h>=d.length?{value:void 0,done:!0}:(f=o(d,h),u.index+=f.length,{value:f,done:!1})})},function(r,n,i){var o=i(11),a=i(203),s=i(19),c=i(21),l=i(5),f=l("iterator"),u=l("toStringTag"),d=s.values;for(var h in a){var g=o[h],p=g&&g.prototype;if(p){if(p[f]!==d)try{c(p,f,d)}catch{p[f]=d}if(p[u]||c(p,u,h),a[h]){for(var v in s)if(p[v]!==s[v])try{c(p,v,s[v])}catch{p[v]=s[v]}}}}},function(r,n,i){var o=i(41),a=i(35);r.exports=function(s){return o(a(s))}},function(r,n,i){var o=i(11),a=i(21),s=i(14),c=i(80),l=i(117),f=i(43),u=f.get,d=f.enforce,h=String(String).split("String");(r.exports=function(g,p,v,x){var m=!!x&&!!x.unsafe,y=!!x&&!!x.enumerable,w=!!x&&!!x.noTargetGet;typeof v=="function"&&(typeof p!="string"||s(v,"name")||a(v,"name",p),d(v).source=h.join(typeof p=="string"?p:"")),g!==o?(m?!w&&g[p]&&(y=!0):delete g[p],y?g[p]=v:a(g,p,v)):y?g[p]=v:c(p,v)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||l(this)})},function(r,n,i){var o=i(47),a=Math.min;r.exports=function(s){return s>0?a(o(s),9007199254740991):0}},function(r,n,i){var o=i(35);r.exports=function(a){return Object(o(a))}},function(r,n,i){var o=i(16),a=i(8),s=i(14),c=Object.defineProperty,l={},f=function(u){throw u};r.exports=function(u,d){if(s(l,u))return l[u];d||(d={});var h=[][u],g=!!s(d,"ACCESSORS")&&d.ACCESSORS,p=s(d,0)?d[0]:f,v=s(d,1)?d[1]:void 0;return l[u]=!!h&&!a(function(){if(g&&!o)return!0;var x={length:-1};g?c(x,1,{enumerable:!0,get:f}):x[1]=1,h.call(x,p,v)})}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(148),a=i(149),s=i(151),c=i(98),l=i(153),f=i(154),u=i(155),d=i(99),h=i(100),g=i(156),p=i(157),v=i(101),x=i(158),m=i(159),y=i(160),w=i(161),C=i(162),S=i(163),T=i(164),_=i(165),E=i(166),D=i(167),b=i(168),I=i(169),R=i(170);n.create_domImplementation=function(M){return o.DOMImplementationImpl._create(M)},n.create_window=function(){return a.WindowImpl._create()},n.create_xmlDocument=function(){return new s.XMLDocumentImpl},n.create_document=function(){return new c.DocumentImpl},n.create_abortController=function(){return new l.AbortControllerImpl},n.create_abortSignal=function(){return f.AbortSignalImpl._create()},n.create_documentType=function(M,L,A,G){return u.DocumentTypeImpl._create(M,L,A,G)},n.create_element=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_htmlElement=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_htmlUnknownElement=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_documentFragment=function(M){return h.DocumentFragmentImpl._create(M)},n.create_shadowRoot=function(M,L){return g.ShadowRootImpl._create(M,L)},n.create_attr=function(M,L){return p.AttrImpl._create(M,L)},n.create_text=function(M,L){return v.TextImpl._create(M,L)},n.create_cdataSection=function(M,L){return x.CDATASectionImpl._create(M,L)},n.create_comment=function(M,L){return m.CommentImpl._create(M,L)},n.create_processingInstruction=function(M,L,A){return y.ProcessingInstructionImpl._create(M,L,A)},n.create_htmlCollection=function(M,L){return L===void 0&&(L=function(){return!0}),w.HTMLCollectionImpl._create(M,L)},n.create_nodeList=function(M){return C.NodeListImpl._create(M)},n.create_nodeListStatic=function(M,L){return S.NodeListStaticImpl._create(M,L)},n.create_namedNodeMap=function(M){return T.NamedNodeMapImpl._create(M)},n.create_range=function(M,L){return _.RangeImpl._create(M,L)},n.create_nodeIterator=function(M,L,A){return E.NodeIteratorImpl._create(M,L,A)},n.create_treeWalker=function(M,L){return D.TreeWalkerImpl._create(M,L)},n.create_nodeFilter=function(){return b.NodeFilterImpl._create()},n.create_mutationRecord=function(M,L,A,G,P,N,V,$,j){return I.MutationRecordImpl._create(M,L,A,G,P,N,V,$,j)},n.create_domTokenList=function(M,L){return R.DOMTokenListImpl._create(M,L)}},function(r,n,i){var o=this&&this.__values||function(p){var v=typeof Symbol=="function"&&Symbol.iterator,x=v&&p[v],m=0;if(x)return x.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&m>=p.length&&(p=void 0),{value:p&&p[m++],done:!p}}};throw new TypeError(v?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(17),c=i(3),l=i(72),f=new Map;function u(p,v){if(v!==p._root&&s.tree_isAncestorOf(p._reference,v,!0)){if(p._pointerBeforeReference)for(;;){var x=s.tree_getFollowingNode(p._root,v);if(x!==null&&s.tree_isDescendantOf(p._root,x,!0)&&!s.tree_isDescendantOf(v,x,!0))return void(p._reference=x);if(x===null)return void(p._pointerBeforeReference=!1)}if(v._previousSibling===null)v._parent!==null&&(p._reference=v._parent);else{for(var m=v._previousSibling,y=s.tree_getFirstDescendantNode(v._previousSibling,!0,!1);y!==null;)y!==null&&(m=y),y=s.tree_getNextDescendantNode(v._previousSibling,y,!0,!1);p._reference=m}}}function d(p,v,x,m,y){if(c.Guard.isSlot(p)&&v==="name"&&y===null){if(m===x||m===null&&x===""||m===""&&x===null)return;p._name=m===null||m===""?"":m,l.shadowTree_assignSlotablesForATree(s.tree_rootNode(p))}}function h(p,v,x,m,y){if(c.Guard.isSlotable(p)&&v==="slot"&&y===null){if(m===x||m===null&&x===""||m===""&&x===null)return;p._name=m===null||m===""?"":m,l.shadowTree_isAssigned(p)&&l.shadowTree_assignSlotables(p._assignedSlot),l.shadowTree_assignASlot(p)}}function g(p,v,x,m){v==="id"&&m===null&&(p._uniqueIdentifier=x||void 0)}n.dom_runRemovingSteps=function(p,v){},n.dom_runCloningSteps=function(p,v,x,m){},n.dom_runAdoptingSteps=function(p,v){},n.dom_runAttributeChangeSteps=function(p,v,x,m,y){var w,C;a.dom.features.slots&&(h.call(p,p,v,x,m,y),d.call(p,p,v,x,m,y)),g.call(p,p,v,m,y);try{for(var S=o(p._attributeChangeSteps),T=S.next();!T.done;T=S.next())T.value.call(p,p,v,x,m,y)}catch(_){w={error:_}}finally{try{T&&!T.done&&(C=S.return)&&C.call(S)}finally{if(w)throw w.error}}},n.dom_runInsertionSteps=function(p){},n.dom_runNodeIteratorPreRemovingSteps=function(p,v){u.call(p,p,v)},n.dom_hasSupportedTokens=function(p){return f.has(p)},n.dom_getSupportedTokens=function(p){return f.get(p)||new Set},n.dom_runEventConstructingSteps=function(p){},n.dom_runChildTextContentChangeSteps=function(p){}},function(r,n,i){var o=i(4),a=i(11),s=i(46),c=i(44),l=i(16),f=i(86),u=i(124),d=i(8),h=i(14),g=i(59),p=i(13),v=i(18),x=i(27),m=i(24),y=i(56),w=i(40),C=i(60),S=i(61),T=i(82),_=i(190),E=i(85),D=i(55),b=i(15),I=i(79),R=i(21),M=i(25),L=i(81),A=i(57),G=i(45),P=i(58),N=i(5),V=i(125),$=i(126),j=i(62),Y=i(43),te=i(36).forEach,Q=A("hidden"),re=N("toPrimitive"),de=Y.set,fe=Y.getterFor("Symbol"),se=Object.prototype,k=a.Symbol,O=s("JSON","stringify"),B=D.f,U=b.f,z=_.f,H=I.f,K=L("symbols"),ie=L("op-symbols"),he=L("string-to-symbol-registry"),ye=L("symbol-to-string-registry"),Ee=L("wks"),X=a.QObject,J=!X||!X.prototype||!X.prototype.findChild,oe=l&&d(function(){return C(U({},"a",{get:function(){return U(this,"a",{value:7}).a}})).a!=7})?function(_e,Me,Re){var We=B(se,Me);We&&delete se[Me],U(_e,Me,Re),We&&_e!==se&&U(se,Me,We)}:U,Z=function(_e,Me){var Re=K[_e]=C(k.prototype);return de(Re,{type:"Symbol",tag:_e,description:Me}),l||(Re.description=Me),Re},ee=u?function(_e){return typeof _e=="symbol"}:function(_e){return Object(_e)instanceof k},ve=function(_e,Me,Re){_e===se&&ve(ie,Me,Re),v(_e);var We=y(Me,!0);return v(Re),h(K,We)?(Re.enumerable?(h(_e,Q)&&_e[Q][We]&&(_e[Q][We]=!1),Re=C(Re,{enumerable:w(0,!1)})):(h(_e,Q)||U(_e,Q,w(1,{})),_e[Q][We]=!0),oe(_e,We,Re)):U(_e,We,Re)},q=function(_e,Me){v(_e);var Re=m(Me),We=S(Re).concat(le(Re));return te(We,function(ut){l&&!Ae.call(Re,ut)||ve(_e,ut,Re[ut])}),_e},Ae=function(_e){var Me=y(_e,!0),Re=H.call(this,Me);return!(this===se&&h(K,Me)&&!h(ie,Me))&&(!(Re||!h(this,Me)||!h(K,Me)||h(this,Q)&&this[Q][Me])||Re)},Be=function(_e,Me){var Re=m(_e),We=y(Me,!0);if(Re!==se||!h(K,We)||h(ie,We)){var ut=B(Re,We);return!ut||!h(K,We)||h(Re,Q)&&Re[Q][We]||(ut.enumerable=!0),ut}},ke=function(_e){var Me=z(m(_e)),Re=[];return te(Me,function(We){h(K,We)||h(G,We)||Re.push(We)}),Re},le=function(_e){var Me=_e===se,Re=z(Me?ie:m(_e)),We=[];return te(Re,function(ut){!h(K,ut)||Me&&!h(se,ut)||We.push(K[ut])}),We};f||(M((k=function(){if(this instanceof k)throw TypeError("Symbol is not a constructor");var _e=arguments.length&&arguments[0]!==void 0?String(arguments[0]):void 0,Me=P(_e),Re=function(We){this===se&&Re.call(ie,We),h(this,Q)&&h(this[Q],Me)&&(this[Q][Me]=!1),oe(this,Me,w(1,We))};return l&&J&&oe(se,Me,{configurable:!0,set:Re}),Z(Me,_e)}).prototype,"toString",function(){return fe(this).tag}),M(k,"withoutSetter",function(_e){return Z(P(_e),_e)}),I.f=Ae,b.f=ve,D.f=Be,T.f=_.f=ke,E.f=le,V.f=function(_e){return Z(N(_e),_e)},l&&(U(k.prototype,"description",{configurable:!0,get:function(){return fe(this).description}}),c||M(se,"propertyIsEnumerable",Ae,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!f,sham:!f},{Symbol:k}),te(S(Ee),function(_e){$(_e)}),o({target:"Symbol",stat:!0,forced:!f},{for:function(_e){var Me=String(_e);if(h(he,Me))return he[Me];var Re=k(Me);return he[Me]=Re,ye[Re]=Me,Re},keyFor:function(_e){if(!ee(_e))throw TypeError(_e+" is not a symbol");if(h(ye,_e))return ye[_e]},useSetter:function(){J=!0},useSimple:function(){J=!1}}),o({target:"Object",stat:!0,forced:!f,sham:!l},{create:function(_e,Me){return Me===void 0?C(_e):q(C(_e),Me)},defineProperty:ve,defineProperties:q,getOwnPropertyDescriptor:Be}),o({target:"Object",stat:!0,forced:!f},{getOwnPropertyNames:ke,getOwnPropertySymbols:le}),o({target:"Object",stat:!0,forced:d(function(){E.f(1)})},{getOwnPropertySymbols:function(_e){return E.f(x(_e))}}),O&&o({target:"JSON",stat:!0,forced:!f||d(function(){var _e=k();return O([_e])!="[null]"||O({a:_e})!="{}"||O(Object(_e))!="{}"})},{stringify:function(_e,Me,Re){for(var We,ut=[_e],ze=1;arguments.length>ze;)ut.push(arguments[ze++]);if(We=Me,(p(Me)||_e!==void 0)&&!ee(_e))return g(Me)||(Me=function(st,ht){if(typeof We=="function"&&(ht=We.call(this,st,ht)),!ee(ht))return ht}),ut[1]=Me,O.apply(null,ut)}}),k.prototype[re]||R(k.prototype,re,k.prototype.valueOf),j(k,"Symbol"),G[Q]=!0},function(r,n,i){var o=i(4),a=i(16),s=i(11),c=i(14),l=i(13),f=i(15).f,u=i(119),d=s.Symbol;if(a&&typeof d=="function"&&(!("description"in d.prototype)||d().description!==void 0)){var h={},g=function(){var y=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),w=this instanceof g?new d(y):y===void 0?d():d(y);return y===""&&(h[w]=!0),w};u(g,d);var p=g.prototype=d.prototype;p.constructor=g;var v=p.toString,x=String(d("test"))=="Symbol(test)",m=/^Symbol\((.*)\)[^)]+$/;f(p,"description",{configurable:!0,get:function(){var y=l(this)?this.valueOf():this,w=v.call(y);if(c(h,y))return"";var C=x?w.slice(7,-1):w.replace(m,"$1");return C===""?void 0:C}}),o({global:!0,forced:!0},{Symbol:g})}},function(r,n,i){i(126)("iterator")},function(r,n,i){var o,a=this&&this.__extends||(o=function(x,m){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,w){y.__proto__=w}||function(y,w){for(var C in w)w.hasOwnProperty(C)&&(y[C]=w[C])})(x,m)},function(x,m){function y(){this.constructor=x}o(x,m),x.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}),s=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(6),l=i(2),f=i(70),u=i(3),d=i(9),h=i(0),g=i(152),p=i(12),v=function(x){function m(){var y=x.call(this)||this;return y._parent=null,y._firstChild=null,y._lastChild=null,y._previousSibling=null,y._nextSibling=null,y}return a(m,x),Object.defineProperty(m.prototype,"_childNodes",{get:function(){return this.__childNodes||(this.__childNodes=h.create_nodeList(this))},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"_nodeDocument",{get:function(){return this._nodeDocumentOverride||c.dom.window._associatedDocument},set:function(y){this._nodeDocumentOverride=y},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"_registeredObserverList",{get:function(){return this.__registeredObserverList||(this.__registeredObserverList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeType",{get:function(){return this._nodeType},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeName",{get:function(){return u.Guard.isElementNode(this)?this._htmlUppercasedQualifiedName:u.Guard.isAttrNode(this)?this._qualifiedName:u.Guard.isExclusiveTextNode(this)?"#text":u.Guard.isCDATASectionNode(this)?"#cdata-section":u.Guard.isProcessingInstructionNode(this)?this._target:u.Guard.isCommentNode(this)?"#comment":u.Guard.isDocumentNode(this)?"#document":u.Guard.isDocumentTypeNode(this)?this._name:u.Guard.isDocumentFragmentNode(this)?"#document-fragment":""},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"baseURI",{get:function(){return g.urlSerializer(this._nodeDocument._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"isConnected",{get:function(){return u.Guard.isElementNode(this)&&h.shadowTree_isConnected(this)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"ownerDocument",{get:function(){return this._nodeType===l.NodeType.Document?null:this._nodeDocument},enumerable:!0,configurable:!0}),m.prototype.getRootNode=function(y){return h.tree_rootNode(this,!!y&&y.composed)},Object.defineProperty(m.prototype,"parentNode",{get:function(){return this._nodeType===l.NodeType.Attribute?null:this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"parentElement",{get:function(){return this._parent&&u.Guard.isElementNode(this._parent)?this._parent:null},enumerable:!0,configurable:!0}),m.prototype.hasChildNodes=function(){return this._firstChild!==null},Object.defineProperty(m.prototype,"childNodes",{get:function(){return this._childNodes},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"firstChild",{get:function(){return this._firstChild},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"lastChild",{get:function(){return this._lastChild},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"previousSibling",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nextSibling",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeValue",{get:function(){return u.Guard.isAttrNode(this)?this._value:u.Guard.isCharacterDataNode(this)?this._data:null},set:function(y){y===null&&(y=""),u.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,y):u.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,this._data.length,y)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"textContent",{get:function(){return u.Guard.isDocumentFragmentNode(this)||u.Guard.isElementNode(this)?h.text_descendantTextContent(this):u.Guard.isAttrNode(this)?this._value:u.Guard.isCharacterDataNode(this)?this._data:null},set:function(y){y===null&&(y=""),u.Guard.isDocumentFragmentNode(this)||u.Guard.isElementNode(this)?h.node_stringReplaceAll(y,this):u.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,y):u.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,h.tree_nodeLength(this),y)},enumerable:!0,configurable:!0}),m.prototype.normalize=function(){for(var y,w,C,S,T=[],_=h.tree_getFirstDescendantNode(this,!1,!1,function(te){return u.Guard.isExclusiveTextNode(te)});_!==null;)T.push(_),_=h.tree_getNextDescendantNode(this,_,!1,!1,function(te){return u.Guard.isExclusiveTextNode(te)});for(var E=0;ER;R++)if((m||R in D)&&(_=b(T=D[R],R,E),d)){if(h)L[R]=_;else if(_)switch(d){case 3:return!0;case 5:return T;case 6:return R;case 2:f.call(L,T)}else if(v)return!1}return x?-1:p||v?v:L}};r.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(r,n,i){var o=this&&this.__values||function(E){var D=typeof Symbol=="function"&&Symbol.iterator,b=D&&E[D],I=0;if(b)return b.call(E);if(E&&typeof E.length=="number")return{next:function(){return E&&I>=E.length&&(E=void 0),{value:E&&E[I++],done:!E}}};throw new TypeError(D?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(E,D){var b=typeof Symbol=="function"&&E[Symbol.iterator];if(!b)return E;var I,R,M=b.call(E),L=[];try{for(;(D===void 0||D-- >0)&&!(I=M.next()).done;)L.push(I.value)}catch(A){R={error:A}}finally{try{I&&!I.done&&(b=M.return)&&b.call(M)}finally{if(R)throw R.error}}return L},s=this&&this.__spread||function(){for(var E=[],D=0;D1)throw new l.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has "+Y+" element nodes.");if(Y===1){try{for(var de=o(D._children),fe=de.next();!fe.done;fe=de.next())if(fe.value._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("The document node already has a document element node.")}catch(H){M={error:H}}finally{try{fe&&!fe.done&&(L=de.return)&&L.call(de)}finally{if(M)throw M.error}}if(b){if(j===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");for(var se=b._nextSibling;se;){if(se._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");se=se._nextSibling}}}}else if($===f.NodeType.Element){try{for(var k=o(D._children),O=k.next();!O.done;O=k.next())if(O.value._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Document already has a document element node. Node is "+E.nodeName+".")}catch(H){A={error:H}}finally{try{O&&!O.done&&(G=k.return)&&G.call(k)}finally{if(A)throw A.error}}if(b){if(j===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+E.nodeName+".");for(se=b._nextSibling;se;){if(se._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+E.nodeName+".");se=se._nextSibling}}}else if($===f.NodeType.DocumentType){try{for(var B=o(D._children),U=B.next();!U.done;U=B.next())if(U.value._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Document already has a document type node. Node is "+E.nodeName+".")}catch(H){P={error:H}}finally{try{U&&!U.done&&(N=B.return)&&N.call(B)}finally{if(P)throw P.error}}if(b)for(var z=b._previousSibling;z;){if(z._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+E.nodeName+".");z=z._previousSibling}else for(z=D._firstChild;z;){if(z._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+E.nodeName+".");z=z._nextSibling}}}}function S(E,D,b){C(E,D,b);var I=b;return I===E&&(I=E._nextSibling),w.document_adopt(E,D._nodeDocument),T(E,D,I),E}function T(E,D,b,I){var R,M;if(b!==null||E._nodeType===f.NodeType.DocumentFragment){var L=E._nodeType===f.NodeType.DocumentFragment?E._children.size:1;if(b!==null&&c.dom.rangeList.size!==0){var A=p.tree_index(b);try{for(var G=o(c.dom.rangeList),P=G.next();!P.done;P=G.next()){var N=P.value;N._start[0]===D&&N._start[1]>A&&(N._start[1]+=L),N._end[0]===D&&N._end[1]>A&&(N._end[1]+=L)}}catch(fe){R={error:fe}}finally{try{P&&!P.done&&(M=G.return)&&M.call(G)}finally{if(R)throw R.error}}}var V=E._nodeType===f.NodeType.DocumentFragment?new(Array.bind.apply(Array,s([void 0],E._children))):[E];if(E._nodeType===f.NodeType.DocumentFragment)for(;E._firstChild;)_(E._firstChild,E,!0);c.dom.features.mutationObservers&&E._nodeType===f.NodeType.DocumentFragment&&m.observer_queueTreeMutationRecord(E,[],V,null,null);for(var $=b?b._previousSibling:D._lastChild,j=b===null?-1:p.tree_index(b),Y=0;YV&&Y._start[1]--,Y._end[0]===D&&Y._end[1]>V&&Y._end[1]--}}catch(he){I={error:he}}finally{try{j&&!j.done&&(R=$.return)&&R.call($)}finally{if(I)throw I.error}}try{for(var te=o(c.dom.rangeList),Q=te.next();!Q.done;Q=te.next())(Y=Q.value)._start[0]===D&&Y._start[1]>V&&(Y._start[1]-=1),Y._end[0]===D&&Y._end[1]>V&&(Y._end[1]-=1)}catch(he){M={error:he}}finally{try{Q&&!Q.done&&(L=te.return)&&L.call(te)}finally{if(M)throw M.error}}}if(c.dom.features.steps)try{for(var re=o(v.nodeIterator_iteratorList()),de=re.next();!de.done;de=re.next()){var fe=de.value;fe._root._nodeDocument===E._nodeDocument&&y.dom_runNodeIteratorPreRemovingSteps(fe,E)}}catch(he){A={error:he}}finally{try{de&&!de.done&&(G=re.return)&&G.call(re)}finally{if(A)throw A.error}}var se=E._previousSibling,k=E._nextSibling;u.Guard.isDocumentNode(D)&&u.Guard.isElementNode(E)&&(D._documentElement=null),E._parent=null,D._children.delete(E);var O=E._previousSibling,B=E._nextSibling;E._previousSibling=null,E._nextSibling=null,O&&(O._nextSibling=B),B&&(B._previousSibling=O),O||(D._firstChild=B),B||(D._lastChild=O),c.dom.features.slots&&u.Guard.isSlotable(E)&&E._assignedSlot!==null&&x.shadowTree_isAssigned(E)&&x.shadowTree_assignSlotables(E._assignedSlot),c.dom.features.slots&&u.Guard.isShadowRoot(p.tree_rootNode(D))&&u.Guard.isSlot(D)&&d.isEmpty(D._assignedNodes)&&x.shadowTree_signalASlotChange(D),c.dom.features.slots&&p.tree_getFirstDescendantNode(E,!0,!1,function(he){return u.Guard.isSlot(he)})!==null&&(x.shadowTree_assignSlotablesForATree(p.tree_rootNode(D)),x.shadowTree_assignSlotablesForATree(E)),c.dom.features.steps&&y.dom_runRemovingSteps(E,D),c.dom.features.customElements&&u.Guard.isCustomElementNode(E)&&g.customElement_enqueueACustomElementCallbackReaction(E,"disconnectedCallback",[]);for(var U=p.tree_getFirstDescendantNode(E,!1,!0);U!==null;)c.dom.features.steps&&y.dom_runRemovingSteps(U,E),c.dom.features.customElements&&u.Guard.isCustomElementNode(U)&&g.customElement_enqueueACustomElementCallbackReaction(U,"disconnectedCallback",[]),U=p.tree_getNextDescendantNode(E,U,!1,!0);if(c.dom.features.mutationObservers)for(var z=p.tree_getFirstAncestorNode(D,!0);z!==null;){try{for(var H=(P=void 0,o(z._registeredObserverList)),K=H.next();!K.done;K=H.next()){var ie=K.value;ie.options.subtree&&E._registeredObserverList.push({observer:ie.observer,options:ie.options,source:ie})}}catch(he){P={error:he}}finally{try{K&&!K.done&&(N=H.return)&&N.call(H)}finally{if(P)throw P.error}}z=p.tree_getNextAncestorNode(D,z,!0)}c.dom.features.mutationObservers&&(b||m.observer_queueTreeMutationRecord(D,[],[E],se,k)),c.dom.features.steps&&u.Guard.isTextNode(E)&&y.dom_runChildTextContentChangeSteps(D)}n.mutation_ensurePreInsertionValidity=C,n.mutation_preInsert=S,n.mutation_insert=T,n.mutation_append=function(E,D){return S(E,D,null)},n.mutation_replace=function(E,D,b){var I,R,M,L,A,G,P,N;if(b._nodeType!==f.NodeType.Document&&b._nodeType!==f.NodeType.DocumentFragment&&b._nodeType!==f.NodeType.Element)throw new l.HierarchyRequestError("Only document, document fragment and element nodes can contain child nodes. Parent node is "+b.nodeName+".");if(p.tree_isHostIncludingAncestorOf(b,D,!0))throw new l.HierarchyRequestError("The node to be inserted cannot be an ancestor of parent node. Node is "+D.nodeName+", parent node is "+b.nodeName+".");if(E._parent!==b)throw new l.NotFoundError("The reference child node cannot be found under parent node. Child node is "+E.nodeName+", parent node is "+b.nodeName+".");if(D._nodeType!==f.NodeType.DocumentFragment&&D._nodeType!==f.NodeType.DocumentType&&D._nodeType!==f.NodeType.Element&&D._nodeType!==f.NodeType.Text&&D._nodeType!==f.NodeType.ProcessingInstruction&&D._nodeType!==f.NodeType.CData&&D._nodeType!==f.NodeType.Comment)throw new l.HierarchyRequestError("Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is "+D.nodeName+".");if(D._nodeType===f.NodeType.Text&&b._nodeType===f.NodeType.Document)throw new l.HierarchyRequestError("Cannot insert a text node as a child of a document node. Node is "+D.nodeName+".");if(D._nodeType===f.NodeType.DocumentType&&b._nodeType!==f.NodeType.Document)throw new l.HierarchyRequestError("A document type node can only be inserted under a document node. Parent node is "+b.nodeName+".");if(b._nodeType===f.NodeType.Document){if(D._nodeType===f.NodeType.DocumentFragment){var V=0;try{for(var $=o(D._children),j=$.next();!j.done;j=$.next()){var Y=j.value;if(Y._nodeType===f.NodeType.Element)V++;else if(Y._nodeType===f.NodeType.Text)throw new l.HierarchyRequestError("Cannot insert text a node as a child of a document node. Node is "+Y.nodeName+".")}}catch(ie){I={error:ie}}finally{try{j&&!j.done&&(R=$.return)&&R.call($)}finally{if(I)throw I.error}}if(V>1)throw new l.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has "+V+" element nodes.");if(V===1){try{for(var te=o(b._children),Q=te.next();!Q.done;Q=te.next())if((O=Q.value)._nodeType===f.NodeType.Element&&O!==E)throw new l.HierarchyRequestError("The document node already has a document element node.")}catch(ie){M={error:ie}}finally{try{Q&&!Q.done&&(L=te.return)&&L.call(te)}finally{if(M)throw M.error}}for(var re=E._nextSibling;re;){if(re._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");re=re._nextSibling}}}else if(D._nodeType===f.NodeType.Element){try{for(var de=o(b._children),fe=de.next();!fe.done;fe=de.next())if((O=fe.value)._nodeType===f.NodeType.Element&&O!==E)throw new l.HierarchyRequestError("Document already has a document element node. Node is "+D.nodeName+".")}catch(ie){A={error:ie}}finally{try{fe&&!fe.done&&(G=de.return)&&G.call(de)}finally{if(A)throw A.error}}for(re=E._nextSibling;re;){if(re._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+D.nodeName+".");re=re._nextSibling}}else if(D._nodeType===f.NodeType.DocumentType){try{for(var se=o(b._children),k=se.next();!k.done;k=se.next()){var O;if((O=k.value)._nodeType===f.NodeType.DocumentType&&O!==E)throw new l.HierarchyRequestError("Document already has a document type node. Node is "+D.nodeName+".")}}catch(ie){P={error:ie}}finally{try{k&&!k.done&&(N=se.return)&&N.call(se)}finally{if(P)throw P.error}}for(var B=E._previousSibling;B;){if(B._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+D.nodeName+".");B=B._previousSibling}}}var U=E._nextSibling;U===D&&(U=D._nextSibling);var z=E._previousSibling;w.document_adopt(D,b._nodeDocument);var H=[];E._parent!==null&&(H.push(E),_(E,E._parent,!0));var K=[];return D._nodeType===f.NodeType.DocumentFragment?K=Array.from(D._children):K.push(D),T(D,b,U,!0),c.dom.features.mutationObservers&&m.observer_queueTreeMutationRecord(b,K,H,z,U),E},n.mutation_replaceAll=function(E,D){var b,I;E!==null&&w.document_adopt(E,D._nodeDocument);var R=Array.from(D._children),M=[];E&&E._nodeType===f.NodeType.DocumentFragment?M=Array.from(E._children):E!==null&&M.push(E);try{for(var L=o(R),A=L.next();!A.done;A=L.next())_(A.value,D,!0)}catch(G){b={error:G}}finally{try{A&&!A.done&&(I=L.return)&&I.call(L)}finally{if(b)throw b.error}}E!==null&&T(E,D,null,!0),c.dom.features.mutationObservers&&m.observer_queueTreeMutationRecord(D,M,R,null,null)},n.mutation_preRemove=function(E,D){if(E._parent!==D)throw new l.NotFoundError("The child node cannot be found under parent node. Child node is "+E.nodeName+", parent node is "+D.nodeName+".");return _(E,D),E},n.mutation_remove=_},function(r,n,i){function o(a){return a==null}r.exports.isNothing=o,r.exports.isObject=function(a){return typeof a=="object"&&a!==null},r.exports.toArray=function(a){return Array.isArray(a)?a:o(a)?[]:[a]},r.exports.repeat=function(a,s){var c,l="";for(c=0;c0?o:i)(a)}},function(r,n,i){var o=i(8);r.exports=function(a,s){var c=[][a];return!!c&&o(function(){c.call(null,s||function(){throw 1},1)})}},function(r,n){r.exports={}},function(r,n,i){i(31),i(32),i(33),i(220),i(64),i(19),i(65),i(20),i(68),i(66),i(92),i(144),i(22),i(94),i(23);var o=this&&this.__values||function(g){var p=typeof Symbol=="function"&&Symbol.iterator,v=p&&g[p],x=0;if(v)return v.call(g);if(g&&typeof g.length=="number")return{next:function(){return g&&x>=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(g,p){var v=typeof Symbol=="function"&&g[Symbol.iterator];if(!v)return g;var x,m,y=v.call(g),w=[];try{for(;(p===void 0||p-- >0)&&!(x=y.next()).done;)w.push(x.value)}catch(C){m={error:C}}finally{try{x&&!x.done&&(v=y.return)&&v.call(y)}finally{if(m)throw m.error}}return w},s=this&&this.__spread||function(){for(var g=[],p=0;p/g,">");this.text(x)},g.prototype._serializeDocumentFragmentNS=function(p,v,x,m,y){var w,C;try{for(var S=o(p.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;this._serializeNodeNS(_,v,x,m,y)}}catch(E){w={error:E}}finally{try{T&&!T.done&&(C=S.return)&&C.call(S)}finally{if(w)throw w.error}}},g.prototype._serializeDocumentFragment=function(p,v){var x,m;try{for(var y=o(p._children),w=y.next();!w.done;w=y.next()){var C=w.value;this._serializeNode(C,v)}}catch(S){x={error:S}}finally{try{w&&!w.done&&(m=y.return)&&m.call(y)}finally{if(x)throw x.error}}},g.prototype._serializeDocumentType=function(p,v){if(v&&!d.xml_isPubidChar(p.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(v&&(!d.xml_isLegalChar(p.systemId)||p.systemId.indexOf('"')!==-1&&p.systemId.indexOf("'")!==-1))throw new Error("DocType system identifier contains invalid characters (well-formed required).");this.docType(p.name,p.publicId,p.systemId)},g.prototype._serializeProcessingInstruction=function(p,v){if(v&&(p.target.indexOf(":")!==-1||/^xml$/i.test(p.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(v&&(!d.xml_isLegalChar(p.data)||p.data.indexOf("?>")!==-1))throw new Error("Processing instruction data contains invalid characters (well-formed required).");this.instruction(p.target,p.data)},g.prototype._serializeCData=function(p,v){if(v&&p.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters (well-formed required).");this.cdata(p.data)},g.prototype._serializeAttributesNS=function(p,v,x,m,y,w){var C,S,T=[],_=w?new l.LocalNameSet:void 0;try{for(var E=o(p.attributes),D=E.next();!D.done;D=E.next()){var b=D.value;if(w||y||b.namespaceURI!==null){if(w&&_&&_.has(b.namespaceURI,b.localName))throw new Error("Element contains duplicate attributes (well-formed required).");w&&_&&_.set(b.namespaceURI,b.localName);var I=b.namespaceURI,R=null;if(I!==null)if(R=v.get(b.prefix,I),I===u.namespace.XMLNS){if(b.value===u.namespace.XML||b.prefix===null&&y||b.prefix!==null&&(!(b.localName in m)||m[b.localName]!==b.value)&&v.has(b.localName,b.value))continue;if(w&&b.value===u.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(w&&b.value==="")throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");b.prefix==="xmlns"&&(R="xmlns")}else R===null&&(R=b.prefix===null||v.hasPrefix(b.prefix)&&!v.has(b.prefix,I)?this._generatePrefix(I,v,x):b.prefix,T.push([null,"xmlns",R,this._serializeAttributeValue(I,w)]));if(w&&(b.localName.indexOf(":")!==-1||!d.xml_isName(b.localName)||b.localName==="xmlns"&&I===null))throw new Error("Attribute local name contains invalid characters (well-formed required).");T.push([I,R,b.localName,this._serializeAttributeValue(b.value,w)])}else T.push([null,null,b.localName,this._serializeAttributeValue(b.value,w)])}}catch(M){C={error:M}}finally{try{D&&!D.done&&(S=E.return)&&S.call(E)}finally{if(C)throw C.error}}return T},g.prototype._serializeAttributes=function(p,v){var x,m,y=[],w=v?{}:void 0;try{for(var C=o(p.attributes),S=C.next();!S.done;S=C.next()){var T=S.value;if(v){if(v&&w&&T.localName in w)throw new Error("Element contains duplicate attributes (well-formed required).");if(v&&w&&(w[T.localName]=!0),v&&(T.localName.indexOf(":")!==-1||!d.xml_isName(T.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");y.push([null,null,T.localName,this._serializeAttributeValue(T.value,v)])}else y.push([null,null,T.localName,this._serializeAttributeValue(T.value,v)])}}catch(_){x={error:_}}finally{try{S&&!S.done&&(m=C.return)&&m.call(C)}finally{if(x)throw x.error}}return y},g.prototype._recordNamespaceInformation=function(p,v,x){var m,y,w=null;try{for(var C=o(p.attributes),S=C.next();!S.done;S=C.next()){var T=S.value,_=T.namespaceURI,E=T.prefix;if(_===u.namespace.XMLNS){if(E===null){w=T.value;continue}var D=T.localName,b=T.value;if(b===u.namespace.XML||(b===""&&(b=null),v.has(D,b)))continue;v.set(D,b),x[D]=b||""}}}catch(I){m={error:I}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},g.prototype._generatePrefix=function(p,v,x){var m="ns"+x.value.toString();return x.value++,v.set(m,p),m},g.prototype._serializeAttributeValue=function(p,v){if(v&&p!==null&&!d.xml_isLegalChar(p))throw new Error("Invalid characters in attribute value.");return p===null?"":p.replace(/(?!&([^&;]*);)&/g,"&").replace(//g,">").replace(/"/g,""")},g._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),g}();n.BaseWriter=h},function(r,n,i){var o=this&&this.__values||function(v){var x=typeof Symbol=="function"&&Symbol.iterator,m=x&&v[x],y=0;if(m)return m.call(v);if(v&&typeof v.length=="number")return{next:function(){return v&&y>=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(v,x){var m=typeof Symbol=="function"&&v[Symbol.iterator];if(!m)return v;var y,w,C=m.call(v),S=[];try{for(;(x===void 0||x-- >0)&&!(y=C.next()).done;)S.push(y.value)}catch(T){w={error:T}}finally{try{y&&!y.done&&(m=C.return)&&m.call(C)}finally{if(w)throw w.error}}return S};Object.defineProperty(n,"__esModule",{value:!0});var s=i(6),c=i(3),l=i(7),f=i(29),u=i(17),d=i(97);function h(){var v=s.dom.window;v._mutationObserverMicrotaskQueued||(v._mutationObserverMicrotaskQueued=!0,Promise.resolve().then(function(){g()}))}function g(){var v,x,m,y,w=s.dom.window;w._mutationObserverMicrotaskQueued=!1;var C=l.set.clone(w._mutationObservers),S=l.set.clone(w._signalSlots);l.set.empty(w._signalSlots);var T=function(R){var M=l.list.clone(R._recordQueue);l.list.empty(R._recordQueue);for(var L=0;L"+x+"<\/script>"},v=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch{}var x,m;v=o?function(w){w.write(p("")),w.close();var C=w.parentWindow.Object;return w=null,C}(o):((m=u("iframe")).style.display="none",f.appendChild(m),m.src="javascript:",(x=m.contentWindow.document).open(),x.write(p("document.F=Object")),x.close(),x.F);for(var y=c.length;y--;)delete v.prototype[c[y]];return v()};l[h]=!0,r.exports=Object.create||function(x,m){var y;return x!==null?(g.prototype=a(x),y=new g,g.prototype=null,y[h]=x):y=v(),m===void 0?y:s(y,m)}},function(r,n,i){var o=i(121),a=i(84);r.exports=Object.keys||function(s){return o(s,a)}},function(r,n,i){var o=i(15).f,a=i(14),s=i(5)("toStringTag");r.exports=function(c,l,f){c&&!a(c=f?c:c.prototype,s)&&o(c,s,{configurable:!0,value:l})}},function(r,n,i){var o=i(8),a=i(5),s=i(129),c=a("species");r.exports=function(l){return s>=51||!o(function(){var f=[];return(f.constructor={})[c]=function(){return{foo:1}},f[l](Boolean).foo!==1})}},function(r,n,i){var o=i(4),a=i(122).indexOf,s=i(48),c=i(28),l=[].indexOf,f=!!l&&1/[1].indexOf(1,-0)<0,u=s("indexOf"),d=c("indexOf",{ACCESSORS:!0,1:0});o({target:"Array",proto:!0,forced:f||!u||!d},{indexOf:function(h){return f?l.apply(this,arguments)||0:a(this,h,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(16),a=i(15).f,s=Function.prototype,c=s.toString,l=/^\s*function ([^ (]*)/;o&&!("name"in s)&&a(s,"name",{configurable:!0,get:function(){try{return c.call(this).match(l)[1]}catch{return""}}})},function(r,n,i){var o=i(25),a=i(18),s=i(8),c=i(136),l=RegExp.prototype,f=l.toString,u=s(function(){return f.call({source:"a",flags:"b"})!="/a/b"}),d=f.name!="toString";(u||d)&&o(RegExp.prototype,"toString",function(){var h=a(this),g=String(h.source),p=h.flags;return"/"+g+"/"+String(p===void 0&&h instanceof RegExp&&!("flags"in l)?c.call(h):p)},{unsafe:!0})},function(r,n,i){i(31),i(32),i(33),i(19),i(138),i(20),i(66),i(22),i(23);var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)}),s=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(1),l=i(2),f=function(u){function d(h,g){var p=u.call(this,h)||this;return p._writerOptions=c.applyDefaults(g,{format:"object",wellFormed:!1,group:!1,verbose:!1}),p}return a(d,u),d.prototype.serialize=function(h){return this._currentList=[],this._currentIndex=0,this._listRegister=[this._currentList],this.serializeNode(h,this._writerOptions.wellFormed),this._process(this._currentList,this._writerOptions)},d.prototype._process=function(h,g){var p,v,x,m,y,w,C;if(h.length===0)return{};for(var S={},T=!1,_=0,E=0,D=0,b=0,I=0;I2)try{for(var C=s(h),S=C.next();!S.done;S=C.next()){var T=S.value;g[v+(m++).toString()]=T}}catch(_){y={error:_}}finally{try{S&&!S.done&&(w=C.return)&&w.call(C)}finally{if(y)throw y.error}}else g[x>1?v+(m++).toString():v]=h;return m},d.prototype.beginElement=function(h){var g,p,v=[];if(this._currentList.length===0)this._currentList.push(((g={})[h]=v,g));else{var x=this._currentList[this._currentList.length-1];this._isElementNode(x,h)?x[h].length!==0&&c.isArray(x[h][0])?x[h].push(v):x[h]=[x[h],v]:this._currentList.push(((p={})[h]=v,p))}this._currentIndex++,this._listRegister.length>this._currentIndex?this._listRegister[this._currentIndex]=v:this._listRegister.push(v),this._currentList=v},d.prototype.endElement=function(){this._currentList=this._listRegister[--this._currentIndex]},d.prototype.attribute=function(h,g){var p,v;if(this._currentList.length===0)this._currentList.push({"@":(p={},p[h]=g,p)});else{var x=this._currentList[this._currentList.length-1];this._isAttrNode(x)?x["@"][h]=g:this._currentList.push({"@":(v={},v[h]=g,v)})}},d.prototype.comment=function(h){if(this._currentList.length===0)this._currentList.push({"!":h});else{var g=this._currentList[this._currentList.length-1];this._isCommentNode(g)?c.isArray(g["!"])?g["!"].push(h):g["!"]=[g["!"],h]:this._currentList.push({"!":h})}},d.prototype.text=function(h){if(this._currentList.length===0)this._currentList.push({"#":h});else{var g=this._currentList[this._currentList.length-1];this._isTextNode(g)?c.isArray(g["#"])?g["#"].push(h):g["#"]=[g["#"],h]:this._currentList.push({"#":h})}},d.prototype.instruction=function(h,g){var p=g===""?h:h+" "+g;if(this._currentList.length===0)this._currentList.push({"?":p});else{var v=this._currentList[this._currentList.length-1];this._isInstructionNode(v)?c.isArray(v["?"])?v["?"].push(p):v["?"]=[v["?"],p]:this._currentList.push({"?":p})}},d.prototype.cdata=function(h){if(this._currentList.length===0)this._currentList.push({$:h});else{var g=this._currentList[this._currentList.length-1];this._isCDATANode(g)?c.isArray(g.$)?g.$.push(h):g.$=[g.$,h]:this._currentList.push({$:h})}},d.prototype._isAttrNode=function(h){return"@"in h},d.prototype._isTextNode=function(h){return"#"in h},d.prototype._isCommentNode=function(h){return"!"in h},d.prototype._isInstructionNode=function(h){return"?"in h},d.prototype._isCDATANode=function(h){return"$"in h},d.prototype._isElementNode=function(h,g){return g in h},d.prototype._getAttrKey=function(){return this._builderOptions.convert.att},d.prototype._getNodeKey=function(h){switch(h){case l.NodeType.Comment:return this._builderOptions.convert.comment;case l.NodeType.Text:return this._builderOptions.convert.text;case l.NodeType.ProcessingInstruction:return this._builderOptions.convert.ins;case l.NodeType.CData:return this._builderOptions.convert.cdata;default:throw new Error("Invalid node type.")}},d}(i(50).BaseWriter);n.ObjectWriter=f},function(r,n,i){var o=i(4),a=i(93);o({target:"RegExp",proto:!0,forced:/./.exec!==a},{exec:a})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){this._items={},this._nullItems={}}return a.prototype.set=function(s,c){s===null?this._nullItems[c]=!0:(this._items[s]||(this._items[s]={}),this._items[s][c]=!0)},a.prototype.has=function(s,c){return s===null?this._nullItems[c]===!0:!!this._items[s]&&this._items[s][c]===!0},a}();n.LocalNameSet=o},function(r,n,i){var o=this&&this.__read||function(f,u){var d=typeof Symbol=="function"&&f[Symbol.iterator];if(!d)return f;var h,g,p=d.call(f),v=[];try{for(;(u===void 0||u-- >0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v};Object.defineProperty(n,"__esModule",{value:!0});var a=i(9),s=i(3),c=i(0),l=function(){function f(){}return Object.defineProperty(f.prototype,"_eventListenerList",{get:function(){return this.__eventListenerList||(this.__eventListenerList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"_eventHandlerMap",{get:function(){return this.__eventHandlerMap||(this.__eventHandlerMap={})},enumerable:!0,configurable:!0}),f.prototype.addEventListener=function(u,d,h){h===void 0&&(h={passive:!1,once:!1,capture:!1});var g,p=o(c.eventTarget_flattenMore(h),3),v=p[0],x=p[1],m=p[2];d&&(g=s.Guard.isEventListener(d)?d:{handleEvent:d},c.eventTarget_addEventListener(this,{type:u,callback:g,capture:v,passive:x,once:m,removed:!1}))},f.prototype.removeEventListener=function(u,d,h){h===void 0&&(h={capture:!1});var g=c.eventTarget_flatten(h);if(d)for(var p=0;p=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(x,m){var y=typeof Symbol=="function"&&x[Symbol.iterator];if(!y)return x;var w,C,S=y.call(x),T=[];try{for(;(m===void 0||m-- >0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},s=this&&this.__spread||function(){for(var x=[],m=0;m",amp:"&",quot:'"',apos:"'"},s}();n.BaseReader=a},function(r,n,i){var o=i(39);r.exports=o.DEFAULT=new o({include:[i(54)],explicit:[i(299),i(300),i(301)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(185);n.XMLBuilderImpl=o.XMLBuilderImpl;var a=i(304);n.XMLBuilderCBImpl=a.XMLBuilderCBImpl;var s=i(183);n.builder=s.builder,n.create=s.create,n.fragment=s.fragment,n.convert=s.convert;var c=i(309);n.createCB=c.createCB,n.fragmentCB=c.fragmentCB},function(r,n){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch{typeof window=="object"&&(i=window)}r.exports=i},function(r,n,i){var o={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,s=a&&!o.call({1:2},1);n.f=s?function(c){var l=a(this,c);return!!l&&l.enumerable}:o},function(r,n,i){var o=i(11),a=i(21);r.exports=function(s,c){try{a(o,s,c)}catch{o[s]=c}return c}},function(r,n,i){var o=i(44),a=i(118);(r.exports=function(s,c){return a[s]||(a[s]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(r,n,i){var o=i(121),a=i(84).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(s){return o(s,a)}},function(r,n,i){var o=i(47),a=Math.max,s=Math.min;r.exports=function(c,l){var f=o(c);return f<0?a(f+l,0):s(f,l)}},function(r,n){r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(r,n){n.f=Object.getOwnPropertySymbols},function(r,n,i){var o=i(8);r.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())})},function(r,n,i){var o=i(127);r.exports=function(a,s,c){if(o(a),s===void 0)return a;switch(c){case 0:return function(){return a.call(s)};case 1:return function(l){return a.call(s,l)};case 2:return function(l,f){return a.call(s,l,f)};case 3:return function(l,f,u){return a.call(s,l,f,u)}}return function(){return a.apply(s,arguments)}}},function(r,n,i){var o=i(4),a=i(195),s=i(132),c=i(133),l=i(62),f=i(21),u=i(25),d=i(5),h=i(44),g=i(49),p=i(131),v=p.IteratorPrototype,x=p.BUGGY_SAFARI_ITERATORS,m=d("iterator"),y=function(){return this};r.exports=function(w,C,S,T,_,E,D){a(S,C,T);var b,I,R,M=function($){if($===_&&N)return N;if(!x&&$ in G)return G[$];switch($){case"keys":case"values":case"entries":return function(){return new S(this,$)}}return function(){return new S(this)}},L=C+" Iterator",A=!1,G=w.prototype,P=G[m]||G["@@iterator"]||_&&G[_],N=!x&&P||M(_),V=C=="Array"&&G.entries||P;if(V&&(b=s(V.call(new w)),v!==Object.prototype&&b.next&&(h||s(b)===v||(c?c(b,v):typeof b[m]!="function"&&f(b,m,y)),l(b,L,!0,!0),h&&(g[L]=y))),_=="values"&&P&&P.name!=="values"&&(A=!0,N=function(){return P.call(this)}),h&&!D||G[m]===N||f(G,m,N),g[C]=N,_)if(I={values:M("values"),keys:E?N:M("keys"),entries:M("entries")},D)for(R in I)(x||A||!(R in G))&&u(G,R,I[R]);else o({target:C,proto:!0,forced:x||A},I);return I}},function(r,n,i){var o=i(4),a=i(13),s=i(59),c=i(83),l=i(26),f=i(24),u=i(134),d=i(5),h=i(63),g=i(28),p=h("slice"),v=g("slice",{ACCESSORS:!0,0:0,1:2}),x=d("species"),m=[].slice,y=Math.max;o({target:"Array",proto:!0,forced:!p||!v},{slice:function(w,C){var S,T,_,E=f(this),D=l(E.length),b=c(w,D),I=c(C===void 0?D:C,D);if(s(E)&&(typeof(S=E.constructor)!="function"||S!==Array&&!s(S.prototype)?a(S)&&(S=S[x])===null&&(S=void 0):S=void 0,S===Array||S===void 0))return m.call(E,b,I);for(T=new(S===void 0?Array:S)(y(I-b,0)),_=0;b`;return iL(c,e)}const E_=Symbol("ElementCursorsMap");function bC(t,e){$d(t)[0]=e,bh(t,e)}function bh(t,e){const r=$d(t);r[1]=r[0],r[0]=e,t.style.cursor=(e instanceof qr?e:qr.getDefinedCursor("auto")).getStyleProperty()}function ct(t){bh(t,$d(t)[1])}function Qe(t){bh(t,qr.getDefinedCursor("none"))}function $d(t){let e=$d[E_];e instanceof WeakMap||(e=new WeakMap,Object.defineProperty($d,E_,{value:e}));let r=e.get(t);return r||(r=[null,null],e.set(t,r)),r}const zse=Object.freeze(Object.defineProperty({__proto__:null,hideElementCursor:Qe,initElementCursor:bC,resetElementCursor:ct,setElementCursor:bh},Symbol.toStringTag,{value:"Module"}));function $se(t,e){let r=Mu.getDefinedCursor(e,!0);r||(r=qr.getDefinedCursor(e)),r||(console.log(`Cursor ${e} is not defined either as SVG or as a standard cursor.`),r=qr.getDefinedCursor(e)),bh(t,r)}const jse=[...Rse,...bse],Hse=Object.freeze(Object.defineProperty({__proto__:null,CursorNames:jse,CursorSVG:g2,ImageMouseCursor:zd,MouseCursor:qr,SVGMouseCursor:Mu,elementCursor:zse,registerCursor:Ose,setCursorForElement:$se},Symbol.toStringTag,{value:"Module"}));function Wn(t){return ve.toolGroups.find(e=>e.id===t)}const{Active:of,Passive:Yv,Enabled:Jv,Disabled:Zv}=Ft,Kse=[{mouseButton:la.Primary}];class IC{constructor(e){this.viewportsInfo=[],this.toolOptions={},this.currentActivePrimaryToolName=null,this.prevActivePrimaryToolName=null,this.restoreToolOptions={},this._toolInstances={},this.id=e}getViewportIds(){return this.viewportsInfo.map(({viewportId:e})=>e)}getViewportsInfo(){return this.viewportsInfo.slice()}getToolInstance(e){const r=this._toolInstances[e];if(!r){console.warn(`'${e}' is not registered with this toolGroup (${this.id}).`);return}return r}getToolInstances(){return this._toolInstances}hasTool(e){return!!this._toolInstances[e]}addTool(e,r={}){const n=ve.tools[e],i=typeof e<"u"&&e!=="",o=this.toolOptions[e];if(!i){console.warn("Tool with configuration did not produce a toolName: ",r);return}if(!n){console.warn(`'${e}' is not registered with the library. You need to use cornerstoneTools.addTool to register it.`);return}if(o){console.warn(`'${e}' is already registered for ToolGroup ${this.id}.`);return}const{toolClass:a}=n,s={name:e,toolGroupId:this.id,configuration:r},c=new a(s);this._toolInstances[e]=c}addToolInstance(e,r,n={}){var o;let i=(o=ve.tools[e])==null?void 0:o.toolClass;if(!i){const a=ve.tools[r].toolClass;class s extends a{}s.toolName=e,i=s,ve.tools[e]={toolClass:s}}this.addTool(i.toolName,n)}addViewport(e,r){if(typeof e!="string")throw new Error("viewportId must be defined and be a string");const n=this._findRenderingEngine(e,r);this.viewportsInfo.some(({viewportId:s})=>s===e)||this.viewportsInfo.push({viewportId:e,renderingEngineId:n});const i=this.getActivePrimaryMouseButtonTool();hn.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(i);const a={toolGroupId:this.id,viewportId:e,renderingEngineId:n};De(Ce,F.TOOLGROUP_VIEWPORT_ADDED,a)}removeViewports(e,r){const n=[];if(this.viewportsInfo.forEach((o,a)=>{let s=!1;o.renderingEngineId===e&&(s=!0,r&&o.viewportId!==r&&(s=!1)),s&&n.push(a)}),n.length)for(let o=n.length-1;o>=0;o--)this.viewportsInfo.splice(n[o],1);const i={toolGroupId:this.id,viewportId:r,renderingEngineId:e};De(Ce,F.TOOLGROUP_VIEWPORT_REMOVED,i)}setActiveStrategy(e,r){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool configuration.`);return}n.setActiveStrategy(r)}setToolMode(e,r,n={}){if(!e){console.warn("setToolMode: toolName must be defined");return}if(r===Ft.Active){this.setToolActive(e,n||this.restoreToolOptions[e]);return}if(r===Ft.Passive){this.setToolPassive(e);return}if(r===Ft.Enabled){this.setToolEnabled(e);return}if(r===Ft.Disabled){this.setToolDisabled(e);return}console.warn("setToolMode: mode must be defined")}setToolActive(e,r={}){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}if(!n){console.warn(`'${e}' instance ${n} is not registered with this toolGroup, can't set tool mode.`);return}const i=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=r.bindings?r.bindings:[],s={bindings:[...i,...o].reduce((u,d)=>{const h=d.numTouchPoints!==void 0,g=d.mouseButton!==void 0;return!u.some(p=>Qv(p,d))&&(h||g)&&u.push(d),u},[]),mode:of};this.toolOptions[e]=s,this._toolInstances[e].mode=of;const l=hn.getRuntimeSettings().get("useCursors");if(this._hasMousePrimaryButtonBinding(r)&&l)this.setViewportsCursorByToolName(e);else if(!this.getActivePrimaryMouseButtonTool()&&l){const d=qr.getDefinedCursor("default");this._setCursorForViewports(d)}this._hasMousePrimaryButtonBinding(r)&&(this.prevActivePrimaryToolName===null?this.prevActivePrimaryToolName=e:this.prevActivePrimaryToolName=this.currentActivePrimaryToolName,this.currentActivePrimaryToolName=e),typeof n.onSetToolActive=="function"&&n.onSetToolActive(),this._renderViewports();const f={toolGroupId:this.id,toolName:e,toolBindingsOptions:r};De(Ce,F.TOOL_ACTIVATED,f),this._triggerToolModeChangedEvent(e,of,r)}setToolPassive(e,r){const n=this._toolInstances[e];if(n===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const i=this.getToolOptions(e),o=Object.assign({bindings:i?i.bindings:[]},i,{mode:Yv}),a=Array.isArray(r==null?void 0:r.removeAllBindings)?r.removeAllBindings:this.getDefaultPrimaryBindings();o.bindings=o.bindings.filter(c=>(r==null?void 0:r.removeAllBindings)!==!0&&!a.some(l=>Qv(c,l)));let s=Yv;o.bindings.length!==0&&(s=of,o.mode=s),this.toolOptions[e]=o,n.mode=s,typeof n.onSetToolPassive=="function"&&n.onSetToolPassive(),this._renderViewports(),this._triggerToolModeChangedEvent(e,Yv)}setToolEnabled(e){const r=this._toolInstances[e];if(r===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const n={bindings:[],mode:Jv};this.toolOptions[e]=n,r.mode=Jv,typeof r.onSetToolEnabled=="function"&&r.onSetToolEnabled(),this._renderViewports(),this._triggerToolModeChangedEvent(e,Jv)}setToolDisabled(e){const r=this._toolInstances[e];if(r===void 0){console.warn(`Tool ${e} not added to toolGroup, can't set tool mode.`);return}const n={bindings:[],mode:Zv};this.restoreToolOptions[e]=this.toolOptions[e],this.toolOptions[e]=n,r.mode=Zv,typeof r.onSetToolDisabled=="function"&&r.onSetToolDisabled(),this._renderViewports(),this._triggerToolModeChangedEvent(e,Zv)}getToolOptions(e){const r=this.toolOptions[e];if(r!==void 0)return r}getActivePrimaryMouseButtonTool(){return Object.keys(this.toolOptions).find(e=>{const r=this.toolOptions[e];return r.mode===of&&this._hasMousePrimaryButtonBinding(r)})}setViewportsCursorByToolName(e,r){const n=this._getCursor(e,r);this._setCursorForViewports(n)}_getCursor(e,r){let n,i;return r&&(n=`${e}.${r}`,i=Mu.getDefinedCursor(n,!0),i)||(n=`${e}`,i=Mu.getDefinedCursor(n,!0),i)||(n=e,i=Mu.getDefinedCursor(n,!0),i)?i:qr.getDefinedCursor("default")}_setCursorForViewports(e){this.viewportsInfo.forEach(({renderingEngineId:r,viewportId:n})=>{const i=dr(n,r);if(!i)return;const{viewport:o}=i;bC(o.element,e)})}setToolConfiguration(e,r,n){const i=this._toolInstances[e];if(i===void 0)return console.warn(`Tool ${e} not present, can't set tool configuration.`),!1;let o;return n?o=r:o=Object.assign(i.configuration,r),i.configuration=o,typeof i.onSetToolConfiguration=="function"&&i.onSetToolConfiguration(),this._renderViewports(),!0}getDefaultMousePrimary(){return la.Primary}getDefaultPrimaryBindings(){return Kse}getToolConfiguration(e,r){if(this._toolInstances[e]===void 0){console.warn(`Tool ${e} not present, can't set tool configuration.`);return}const n=Dse(this._toolInstances[e].configuration,r)||this._toolInstances[e].configuration;return to(n)}getPrevActivePrimaryToolName(){return this.prevActivePrimaryToolName}setActivePrimaryTool(e){const r=this.getCurrentActivePrimaryToolName();this.setToolDisabled(r),this.setToolActive(e,{bindings:[{mouseButton:la.Primary}]})}getCurrentActivePrimaryToolName(){return this.currentActivePrimaryToolName}clone(e,r=null){let n=Wn(e);return n?(console.debug(`ToolGroup ${e} already exists`),n):(n=new IC(e),ve.toolGroups.push(n),r=r??(()=>!0),Object.keys(this._toolInstances).filter(r).forEach(i=>{const o=this._toolInstances[i],a=this.toolOptions[i],s=o.mode;n.addTool(i),n.setToolMode(i,s,{bindings:a.bindings??[]})}),n)}_hasMousePrimaryButtonBinding(e){var n;const r=this.getDefaultPrimaryBindings();return(n=e==null?void 0:e.bindings)==null?void 0:n.some(i=>r.some(o=>Qv(i,o)))}_renderViewports(){this.viewportsInfo.forEach(({renderingEngineId:e,viewportId:r})=>{gr(e).renderViewport(r)})}_triggerToolModeChangedEvent(e,r,n){const i={toolGroupId:this.id,toolName:e,mode:r,toolBindingsOptions:n};De(Ce,F.TOOL_MODE_CHANGED,i)}_findRenderingEngine(e,r){const n=_i();if((n==null?void 0:n.length)===0)throw new Error("No rendering engines found.");if(r)return r;const i=n.filter(o=>o.getViewport(e));if(i.length===0){if(n.length===1)return n[0].id;throw new Error("No rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.")}if(i.length>1)throw new Error("Multiple rendering engines found that contain the viewport with the same viewportId, you must specify a renderingEngineId.");return i[0].id}}function Qv(t,e){return t.mouseButton!==e.mouseButton||t.numTouchPoints!==e.numTouchPoints?!1:t.modifierKey===e.modifierKey}function oL(t){if(ve.toolGroups.some(n=>n.id===t)){console.warn(`'${t}' already exists.`);return}const r=new IC(t);return ve.toolGroups.push(r),r}function aL(t){const e=ve.toolGroups.findIndex(r=>r.id===t);e>-1&&ve.toolGroups.splice(e,1)}function sL(){const t=[...ve.toolGroups];for(const e of t)aL(e.id);ve.toolGroups=[]}function Cn(t,e){var n;e||(e=(n=_i().find(i=>i.getViewports().find(o=>o.id===t)))==null?void 0:n.id);const r=ve.toolGroups.filter(i=>i.viewportsInfo.some(o=>o.renderingEngineId===e&&(!o.viewportId||o.viewportId===t)));if(r.length){if(r.length>1)throw new Error(`Multiple tool groups found for renderingEngineId: ${e} and viewportId: ${t}. You should only + have one tool group per viewport in a renderingEngine.`);return r[0]}}function qse(){return ve.toolGroups}const Xse=[Ft.Active,Ft.Passive,Ft.Enabled];function cL(t){return ve.toolGroups.filter(({toolOptions:e})=>{const r=Object.keys(e);for(let n=0;n{a.viewportsInfo.forEach(s=>{const{renderingEngineId:c,viewportId:l}=s,{FrameOfReferenceUID:f}=dr(l,c);t.metadata.FrameOfReferenceUID===f&&n.push(s)})});const i=F.ANNOTATION_ADDED,o={annotation:t};if(!n.length){De(Ce,i,o);return}n.forEach(({renderingEngineId:a,viewportId:s})=>{o.viewportId=s,o.renderingEngineId=a,De(Ce,i,o)})}function OC(t){const e=F.ANNOTATION_REMOVED;De(Ce,e,t)}function fn(t,e,r=Bn.HandlesUpdated){const n=re(e),{viewportId:i,renderingEngineId:o}=n,a=F.ANNOTATION_MODIFIED;De(Ce,a,{annotation:t,viewportId:i,renderingEngineId:o,changeType:r})}function en(t){lL({annotation:t})}function MC(t,e=!1){lL({annotation:t,contourHoleProcessingEnabled:e})}function lL(t){const e=F.ANNOTATION_COMPLETED;De(Ce,e,t)}const Ws=new Set;function uL(t,e=!0){const r=dL();t&&(e?nce(t,Ws,r):hL(t,Ws,r)),gL(r,Ws)}function Qse(){const t=dL();rce(Ws,t),gL(t,Ws)}function ece(){return Array.from(Ws)}function rr(t){return Ws.has(t)}function tce(){return Ws.size}function fL(t){const e=rr(t);return uL(t,e),e}function dL(){return Object.freeze({added:[],removed:[],locked:[]})}function nce(t,e,r){if(!e.has(t)){e.add(t),r.added.push(t);const n=On(t);n&&(n.isLocked=!0)}}function hL(t,e,r){if(e.delete(t)){r.removed.push(t);const n=On(t);n&&(n.isLocked=!1)}}function rce(t,e){t.forEach(r=>{hL(r,t,e)})}function gL(t,e){(t.added.length>0||t.removed.length>0)&&(e.forEach(r=>void t.locked.push(r)),De(Ce,F.ANNOTATION_LOCK_CHANGE,t))}const ice=Object.freeze(Object.defineProperty({__proto__:null,checkAndSetAnnotationLocked:fL,getAnnotationsLocked:ece,getAnnotationsLockedCount:tce,isAnnotationLocked:rr,setAnnotationLocked:uL,unlockAllAnnotations:Qse},Symbol.toStringTag,{value:"Module"})),oce=t=>(t.data||(t.data={}),t.data.handles||(t.data.handles={}),t.data.handles.textBox||(t.data.handles.textBox={}),t),ace=t=>(t.data||(t.data={}),t.data.cachedStats||(t.data.cachedStats={}),t),Yo=new Set;function Vi(t,e=!0,r=!1){e?sce(t,r):RC(t)}function sce(t,e=!1){const r=mL();if(!e){vL(Yo,r);const n=On(t);n&&(n.isSelected=!0)}if(t&&!Yo.has(t)){Yo.add(t),r.added.push(t);const n=On(t);n&&(n.isSelected=!0)}yL(r,Yo)}function RC(t){const e=mL();if(t){if(Yo.delete(t)){e.removed.push(t);const r=On(t);r.isSelected=!1}}else vL(Yo,e);yL(e,Yo)}function pL(){return Array.from(Yo)}function cce(t){return pL().filter(e=>{var n;const r=On(e);return((n=r==null?void 0:r.metadata)==null?void 0:n.toolName)===t})}function Ih(t){return Yo.has(t)}function lce(){return Yo.size}function mL(){return Object.freeze({added:[],removed:[],selection:[]})}function vL(t,e){t.forEach(r=>{if(t.delete(r)){e.removed.push(r);const n=On(r);n&&(n.isSelected=!1)}})}function yL(t,e){(t.added.length>0||t.removed.length>0)&&(e.forEach(r=>void t.selection.push(r)),De(Ce,F.ANNOTATION_SELECTION_CHANGE,t))}const uce=Object.freeze(Object.defineProperty({__proto__:null,deselectAnnotation:RC,getAnnotationsSelected:pL,getAnnotationsSelectedByToolName:cce,getAnnotationsSelectedCount:lce,isAnnotationSelected:Ih,setAnnotationSelected:Vi},Symbol.toStringTag,{value:"Module"})),hl=new Set;function xL(t,e=!0){const r=wL();t&&(e?CL(t,hl,r):dce(t,hl,r)),SL(r)}function fce(){const t=wL();hl.forEach(e=>{CL(e,hl,t)}),SL(t)}function Ur(t){if(On(t))return!hl.has(t)}function wL(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function CL(t,e,r){if(e.delete(t)){r.lastVisible.push(t);const n=On(t);n.isVisible=!0}}function dce(t,e,r){e.has(t)||(e.add(t),Ih(t)&&RC(t),r.lastHidden.push(t))}function SL(t){(t.lastHidden.length>0||t.lastVisible.length>0)&&(hl.forEach(e=>void t.hidden.push(e)),De(Ce,F.ANNOTATION_VISIBILITY_CHANGE,t))}function TL(t){const e=!hl.has(t);return xL(t,e),e}const hce=Object.freeze(Object.defineProperty({__proto__:null,checkAndSetAnnotationVisibility:TL,isAnnotationVisible:Ur,setAnnotationVisibility:xL,showAllAnnotations:fce},Symbol.toStringTag,{value:"Module"}));let p2=wC;const gce=t=>{t=oce(t),t=ace(t);const e=t.annotationUID,r=fL(e);t.isLocked=r;const n=TL(e);return t.isVisible=n,t};p2.setPreprocessingFn(gce);function ha(){return p2}function pce(t){p2=t}function mce(){p2=wC}function _t(t,e){const r=ha(),n=r.getGroupKey(e);return r.getAnnotations(n,t)}function Ru(){return ha().getAllAnnotations()}function LC(t){const{annotationUID:e,parentAnnotationUID:r}=t;if(!r)return;const n=On(r),i=n.childAnnotationUIDs.indexOf(e);n.childAnnotationUIDs.splice(i,1),t.parentAnnotationUID=void 0}function NC(t,e){const{annotationUID:r}=t,{annotationUID:n}=e;LC(e),t.childAnnotationUIDs||(t.childAnnotationUIDs=[]),!t.childAnnotationUIDs.includes(n)&&(t.childAnnotationUIDs.push(n),e.parentAnnotationUID=r)}function _L(t){return t.parentAnnotationUID?On(t.parentAnnotationUID):void 0}function m2(t){var e;return((e=t.childAnnotationUIDs)==null?void 0:e.map(r=>On(r)))??[]}function Ut(t,e){t.annotationUID||(t.annotationUID=wn());const r=ha();if(e instanceof HTMLDivElement){const n=r.getGroupKey(e);r.addAnnotation(t,n),Jse(t,e)}else r.addAnnotation(t,void 0),Zse(t);return t.annotationUID}function vce(t,e){const r=ha(),n=r.getGroupKey(e);return r.getNumberOfAnnotations(n,t)}function Ot(t){var n;if(!t)return;const e=ha(),r=e.getAnnotation(t);r&&((n=r.childAnnotationUIDs)==null||n.forEach(i=>Ot(i)),e.removeAnnotation(t),OC({annotation:r,annotationManagerUID:e.uid}))}function Lf(){const t=ha(),e=t.removeAllAnnotations();for(const r of e)OC({annotation:r,annotationManagerUID:t.uid})}function yce(t,e){const r=ha(),n=r.getGroupKey(e),i=r.removeAnnotations(n,t);for(const o of i)OC({annotation:o,annotationManagerUID:r.uid})}function EL(t){let e=t;for(;e;)e.invalidated=!0,e=e.parentAnnotationUID?On(e.parentAnnotationUID):void 0}const xce=Object.freeze(Object.defineProperty({__proto__:null,addAnnotation:Ut,addChildAnnotation:NC,clearParentAnnotation:LC,getAllAnnotations:Ru,getAnnotation:On,getAnnotationManager:ha,getAnnotations:_t,getChildAnnotations:m2,getNumberOfAnnotations:vce,getParentAnnotation:_L,invalidateAnnotation:EL,removeAllAnnotations:Lf,removeAnnotation:Ot,removeAnnotations:yce,resetAnnotationManager:mce,setAnnotationManager:pce},Symbol.toStringTag,{value:"Module"}));function pr(t){const e=t.toolName;if(ve.tools[e],!e)throw new Error(`No Tool Found for the ToolClass ${t.name}`);ve.tools[e]={toolClass:t}}function wce(t){return!!ve.tools[t]}function Cce(t){const e=t.toolName;if(!e)throw new Error(`No tool found for: ${t.name}`);if(!ve.tools[e]!==void 0)delete ve.tools[e];else throw new Error(`${e} cannot be removed because it has not been added`)}function El(t,e){const r=e||t.currentTarget,{viewport:n}=re(r)||{};if(!n)return;const i=_ce(t),o=Tce(t),a=Sce(r,o),s=n.canvasToWorld(a);return{page:o,client:i,canvas:a,world:s}}function Sce(t,e){const r=t.getBoundingClientRect();return[e[0]-r.left-window.pageXOffset,e[1]-r.top-window.pageYOffset]}function Tce(t){return[t.pageX,t.pageY]}function _ce(t){return[t.clientX,t.clientY]}function DL(t){const e=t.currentTarget,{viewportId:r,renderingEngineId:n}=re(e),i=El(t,e),o={page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},a={event:t,eventName:F.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:n,camera:{},element:e,startPoints:i,lastPoints:i,currentPoints:i,deltaPoints:o};!De(e,F.MOUSE_DOUBLE_CLICK,a)&&(t.stopImmediatePropagation(),t.preventDefault())}const D_=F.MOUSE_MOVE;function Oh(t){const e=t.currentTarget,r=re(e),{renderingEngineId:n,viewportId:i}=r,o=El(t);!De(e,D_,{renderingEngineId:n,viewportId:i,camera:{},element:e,currentPoints:o,eventName:D_,event:t})&&(t.stopImmediatePropagation(),t.preventDefault())}const{MOUSE_DOWN:b_,MOUSE_DOWN_ACTIVATE:Ece,MOUSE_CLICK:Dce,MOUSE_UP:bce,MOUSE_DRAG:I_}=F,Ice=400,Oce=150,Mce=3,Rce={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};let at={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};const ur={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function bL(t){if(ur.doubleClickTimeout){if(t.buttons===ur.mouseDownEvent.buttons)return;ur.mouseDownEvent=t,sm();return}ur.doubleClickTimeout=setTimeout(sm,t.buttons===1?Ice:Oce),ur.mouseDownEvent=t,ur.ignoreDoubleClick=!1,at.element=t.currentTarget,at.mouseButton=t.buttons;const e=re(at.element),{renderingEngineId:r,viewportId:n}=e;at.renderingEngineId=r,at.viewportId=n,at.preventClickTimeout=setTimeout(Nce,at.clickDelay),at.element.removeEventListener("mousemove",Oh);const i=El(t,at.element);at.startPoints=zs(i),at.lastPoints=zs(i),document.addEventListener("mouseup",PC),document.addEventListener("mousemove",IL)}function Lce(t){const e=v2(at.startPoints,at.startPoints),r={event:t,eventName:b_,element:at.element,mouseButton:at.mouseButton,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},startPoints:at.startPoints,lastPoints:at.startPoints,currentPoints:at.startPoints,deltaPoints:e};at.lastPoints=zs(r.lastPoints),De(r.element,b_,r)&&De(r.element,Ece,r)}function IL(t){const e=re(at.element);if(!(e!=null&&e.viewport))return;const r=El(t,at.element),n=LL(at.element,at.lastPoints),i=v2(r,n);if(ur.doubleClickTimeout)if(ML(i.canvas))sm();else return;const o={event:t,eventName:I_,mouseButton:at.mouseButton,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},element:at.element,startPoints:zs(at.startPoints),lastPoints:zs(n),currentPoints:r,deltaPoints:i};!De(at.element,I_,o)&&(t.stopImmediatePropagation(),t.preventDefault()),at.lastPoints=zs(r)}function PC(t){if(clearTimeout(at.preventClickTimeout),ur.doubleClickTimeout)ur.mouseUpEvent?w3():(ur.mouseUpEvent=t,at.element.addEventListener("mousemove",OL));else{const e=at.isClickEvent?Dce:bce,r=El(t,at.element),n=v2(r,at.lastPoints),i={event:t,eventName:e,mouseButton:at.mouseButton,element:at.element,renderingEngineId:at.renderingEngineId,viewportId:at.viewportId,camera:{},startPoints:zs(at.startPoints),lastPoints:zs(at.lastPoints),currentPoints:r,deltaPoints:n};De(i.element,e,i),w3()}document.removeEventListener("mousemove",IL)}function OL(t){const e=El(t,at.element),r=LL(at.element,at.lastPoints),n=v2(e,r);ML(n.canvas)&&(sm(),Oh(t))}function ML(t){return Math.abs(t[0])+Math.abs(t[1])>Mce}function Nce(){at.isClickEvent=!1}function sm(){ur.ignoreDoubleClick=!0;const t=ur.mouseDownEvent,e=ur.mouseUpEvent;RL(),Lce(t),e&&PC(e)}function RL(){ur.doubleClickTimeout&&(clearTimeout(ur.doubleClickTimeout),ur.doubleClickTimeout=null),ur.mouseDownEvent=null,ur.mouseUpEvent=null}function w3(){var t,e;document.removeEventListener("mouseup",PC),(t=at.element)==null||t.removeEventListener("mousemove",OL),(e=at.element)==null||e.addEventListener("mousemove",Oh),RL(),at=JSON.parse(JSON.stringify(Rce))}function zs(t){return JSON.parse(JSON.stringify(t))}function LL(t,e){const{viewport:r}=re(t)||{};if(!r)return e;const n=r.canvasToWorld(e.canvas);return{page:e.page,client:e.client,canvas:e.canvas,world:n}}function v2(t,e){return!t||!e?{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}:{page:ey(t.page,e.page),client:ey(t.client,e.client),canvas:ey(t.canvas,e.canvas),world:Pce(t.world,e.world)}}function ey(t,e){return[t[0]-e[0],t[1]-e[1]]}function Pce(t,e){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function Ace(){return at.mouseButton}function NL(t){ur.ignoreDoubleClick?(ur.ignoreDoubleClick=!1,t.stopImmediatePropagation(),t.preventDefault()):w3()}function PL(t){t.removeEventListener("dblclick",DL),t.removeEventListener("mousedown",bL),t.removeEventListener("mousemove",Oh),t.removeEventListener("dblclick",NL,{capture:!0})}function kce(t){PL(t),t.addEventListener("dblclick",DL),t.addEventListener("mousedown",bL),t.addEventListener("mousemove",Oh),t.addEventListener("dblclick",NL,{capture:!0})}const AL={enable:kce,disable:PL},Vce=2e3,t0={mouse:0,touch:1};let O_,M_;function kL(t,e){const r=Date.now();if(t!==O_){if(r-M_<=Vce)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!1;O_=t}M_=r}const VL=kL.bind(null,t0.mouse),FL=kL.bind(null,t0.touch);function R_(t,e,r){const n=r?VL:FL;e.forEach(function(i){t.addEventListener(i,n,{passive:!1})})}function L_(t,e,r){const n=r?VL:FL;e.forEach(function(i){t.removeEventListener(i,n)})}const UL=["mousedown","mouseup","mousemove"],BL=["touchstart","touchend"];function GL(t){L_(t,UL,t0.mouse),L_(t,BL,t0.touch)}function Fce(t){GL(t),R_(t,UL,t0.mouse),R_(t,BL,t0.touch)}const WL={enable:Fce,disable:GL};function y2(t,e){const r=e||t.currentTarget,n=t.type==="touchend"?t.changedTouches:t.touches;return Object.keys(n).map(i=>{const o=Gce(n[i]),a=Bce(n[i]),s=Uce(r,a),{viewport:c}=re(r),l=c.canvasToWorld(s);return{page:a,client:o,canvas:s,world:l,touch:{identifier:i,radiusX:n[i].radiusX,radiusY:n[i].radiusY,force:n[i].force,rotationAngle:n[i].rotationAngle}}})}function Uce(t,e){const r=t.getBoundingClientRect();return[e[0]-r.left-window.pageXOffset,e[1]-r.top-window.pageYOffset]}function Bce(t){return[t.pageX,t.pageY]}function Gce(t){return[t.clientX,t.clientY]}function cm(t,e){const r=jd(t),n=jd(e);return{page:ty(r.page,n.page),client:ty(r.client,n.client),canvas:ty(r.canvas,n.canvas),world:zce(r.world,n.world)}}function AC(t,e){const r=jd(t),n=jd(e);return{page:Lu(r.page,n.page),client:Lu(r.client,n.client),canvas:Lu(r.canvas,n.canvas),world:zL(r.world,n.world)}}function Wce(t,e){}function lm(t,e){const r=N_(t),n=N_(e);return{page:r.page-n.page,client:r.client-n.client,canvas:r.canvas-n.canvas,world:r.world-n.world}}function na(t){return JSON.parse(JSON.stringify(t))}function C3(t){return JSON.parse(JSON.stringify(t))}function jd(t){return t.reduce((e,r)=>({page:[e.page[0]+r.page[0]/t.length,e.page[1]+r.page[1]/t.length],client:[e.client[0]+r.client[0]/t.length,e.client[1]+r.client[1]/t.length],canvas:[e.canvas[0]+r.canvas[0]/t.length,e.canvas[1]+r.canvas[1]/t.length],world:[e.world[0]+r.world[0]/t.length,e.world[1]+r.world[1]/t.length,e.world[2]+r.world[2]/t.length]}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]})}function Mo(t){return t.reduce((e,r)=>({page:[e.page[0]+r.page[0]/t.length,e.page[1]+r.page[1]/t.length],client:[e.client[0]+r.client[0]/t.length,e.client[1]+r.client[1]/t.length],canvas:[e.canvas[0]+r.canvas[0]/t.length,e.canvas[1]+r.canvas[1]/t.length],world:[e.world[0]+r.world[0]/t.length,e.world[1]+r.world[1]/t.length,e.world[2]+r.world[2]/t.length],touch:{identifier:null,radiusX:e.touch.radiusX+r.touch.radiusX/t.length,radiusY:e.touch.radiusY+r.touch.radiusY/t.length,force:e.touch.force+r.touch.force/t.length,rotationAngle:e.touch.rotationAngle+r.touch.rotationAngle/t.length}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:{identifier:null,radiusX:0,radiusY:0,force:0,rotationAngle:0}})}function ty(t,e){return[t[0]-e[0],t[1]-e[1]]}function zce(t,e){return[t[0]-e[0],t[1]-e[1],t[2]-e[2]]}function N_(t){const e=[];for(let r=0;r({page:r.page+n.page/e.length,client:r.client+n.client/e.length,canvas:r.canvas+n.canvas/e.length,world:r.world+n.world/e.length}),{page:0,client:0,canvas:0,world:0})}function Lu(t,e){return Math.sqrt(Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2))}function zL(t,e){return Math.sqrt(Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2))}const $ce=Object.freeze(Object.defineProperty({__proto__:null,copyPoints:C3,copyPointsList:na,getDeltaDistance:AC,getDeltaDistanceBetweenIPoints:lm,getDeltaPoints:cm,getDeltaRotation:Wce,getMeanPoints:jd,getMeanTouchPoints:Mo},Symbol.toStringTag,{value:"Module"}));hn.getRuntimeSettings();const{TOUCH_START:P_,TOUCH_START_ACTIVATE:jce,TOUCH_PRESS:A_,TOUCH_DRAG:k_,TOUCH_END:V_,TOUCH_TAP:F_,TOUCH_SWIPE:ny}=F,Hd={page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},um={page:0,client:0,canvas:0,world:0},$L={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...Hd,touch:null}],lastPointsList:[{...Hd,touch:null}],isTouchStart:!1,startTime:null,pressTimeout:null,pressDelay:700,pressMaxDistance:5,accumulatedDistance:um,swipeDistanceThreshold:48,swiped:!1,swipeToleranceMs:300},jL={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...Hd,touch:null}],taps:0,tapTimeout:null,tapMaxDistance:24,tapToleranceMs:300};let Ke=JSON.parse(JSON.stringify($L)),Kn=JSON.parse(JSON.stringify(jL));function Zs(t,e,r){return De(t,e,r)}function HL(t){Ke.element=t.currentTarget;const e=re(Ke.element),{renderingEngineId:r,viewportId:n}=e;Ke.renderingEngineId=r,Ke.viewportId=n,!Ke.isTouchStart&&(clearTimeout(Ke.pressTimeout),Ke.pressTimeout=setTimeout(()=>Hce(t),Ke.pressDelay),Kce(t),document.addEventListener("touchmove",KL),document.addEventListener("touchend",qL))}function Hce(t){if(Ke.accumulatedDistance.canvas>Ke.pressMaxDistance)return;const r={event:t,eventName:A_,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,startPointsList:na(Ke.startPointsList),lastPointsList:na(Ke.lastPointsList),startPoints:C3(Mo(Ke.startPointsList)),lastPoints:C3(Mo(Ke.lastPointsList))};Zs(r.element,A_,r)}function Kce(t){Ke.isTouchStart=!0,Ke.startTime=new Date;const e=y2(t,Ke.element),r=Mo(e),n=Hd,i=um,o={event:t,eventName:P_,element:Ke.element,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},startPointsList:e,lastPointsList:e,currentPointsList:e,startPoints:r,lastPoints:r,currentPoints:r,deltaPoints:n,deltaDistance:i};Ke.startPointsList=na(o.startPointsList),Ke.lastPointsList=na(o.lastPointsList),Zs(o.element,P_,o)&&Zs(o.element,jce,o)}function KL(t){const e=y2(t,Ke.element),r=XL(Ke.element,Ke.lastPointsList),n=e.length===r.length?cm(e,r):Hd,i=e.length===r.length?lm(e,r):um,o=e.length===r.length?AC(e,Ke.lastPointsList):um;Ke.accumulatedDistance={page:Ke.accumulatedDistance.page+o.page,client:Ke.accumulatedDistance.client+o.client,canvas:Ke.accumulatedDistance.canvas+o.canvas,world:Ke.accumulatedDistance.world+o.world};const a={event:t,eventName:k_,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,startPoints:Mo(Ke.startPointsList),lastPoints:Mo(r),currentPoints:Mo(e),startPointsList:na(Ke.startPointsList),lastPointsList:na(r),currentPointsList:e,deltaPoints:n,deltaDistance:i};Zs(Ke.element,k_,a),Xce(t,n),Ke.lastPointsList=na(e)}function qL(t){clearTimeout(Ke.pressTimeout);const e=y2(t,Ke.element),r=XL(Ke.element,Ke.lastPointsList),n=e.length===r.length?cm(e,r):cm(e,e),i=e.length===r.length?lm(e,r):lm(e,e),o={event:t,eventName:V_,element:Ke.element,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},startPointsList:na(Ke.startPointsList),lastPointsList:na(r),currentPointsList:e,startPoints:Mo(Ke.startPointsList),lastPoints:Mo(r),currentPoints:Mo(e),deltaPoints:n,deltaDistance:i};Zs(o.element,V_,o),qce(t),Ke=JSON.parse(JSON.stringify($L)),document.removeEventListener("touchmove",KL),document.removeEventListener("touchend",qL)}function qce(t){const e=new Date().getTime(),r=Ke.startTime.getTime();if(e-r>Kn.tapToleranceMs||(Kn.taps===0&&(Kn.element=Ke.element,Kn.renderingEngineId=Ke.renderingEngineId,Kn.viewportId=Ke.viewportId,Kn.startPointsList=Ke.startPointsList),Kn.taps>0&&!(Kn.element==Ke.element&&Kn.renderingEngineId==Ke.renderingEngineId&&Kn.viewportId==Ke.viewportId)))return;const n=y2(t,Kn.element);AC(n,Kn.startPointsList).canvas>Kn.tapMaxDistance||(clearTimeout(Kn.tapTimeout),Kn.taps+=1,Kn.tapTimeout=setTimeout(()=>{const o={event:t,eventName:F_,element:Kn.element,renderingEngineId:Kn.renderingEngineId,viewportId:Kn.viewportId,camera:{},currentPointsList:n,currentPoints:Mo(n),taps:Kn.taps};Zs(o.element,F_,o),Kn=JSON.parse(JSON.stringify(jL))},Kn.tapToleranceMs))}function Xce(t,e){const r=new Date().getTime(),n=Ke.startTime.getTime();if(Ke.swiped||r-n>Ke.swipeToleranceMs)return;const[i,o]=e.canvas,a={event:t,eventName:ny,renderingEngineId:Ke.renderingEngineId,viewportId:Ke.viewportId,camera:{},element:Ke.element,swipe:null};Math.abs(i)>Ke.swipeDistanceThreshold&&(a.swipe=i>0?Wc.RIGHT:Wc.LEFT,Zs(a.element,ny,a),Ke.swiped=!0),Math.abs(o)>Ke.swipeDistanceThreshold&&(a.swipe=o>0?Wc.DOWN:Wc.UP,Zs(a.element,ny,a),Ke.swiped=!0)}function XL(t,e){const{viewport:r}=re(t);return e.map(n=>{const i=r.canvasToWorld(n.canvas);return{page:n.page,client:n.client,canvas:n.canvas,world:i,touch:n.touch}})}function YL(t){WL.disable(t),t.removeEventListener("touchstart",HL)}function Yce(t){YL(t),WL.enable(t),t.addEventListener("touchstart",HL,{passive:!1})}const JL={enable:Yce,disable:YL},U_=10,B_=40,G_=800;function Jce(t){let e=0,r=0,n=0,i=0;return"detail"in t&&(r=t.detail),"wheelDelta"in t&&(r=-t.wheelDelta/120),"wheelDeltaY"in t&&(r=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(e=-t.wheelDeltaX/120),n=e*U_,i=r*U_,"deltaY"in t&&(i=t.deltaY),"deltaX"in t&&(n=t.deltaX),(n||i)&&t.deltaMode&&(t.deltaMode===1?(n*=B_,i*=B_):(n*=G_,i*=G_)),n&&!e&&(e=n<1?-1:1),i&&!r&&(r=i<1?-1:1),{spinX:e,spinY:r,pixelX:n,pixelY:i}}function ZL(t){const e=t.currentTarget,r=re(e),{renderingEngineId:n,viewportId:i}=r;if(t.deltaY>-1&&t.deltaY<1)return;t.preventDefault();const{spinX:o,spinY:a,pixelX:s,pixelY:c}=Jce(t),l=a<0?-1:1,f={event:t,eventName:F.MOUSE_WHEEL,renderingEngineId:n,viewportId:i,element:e,camera:{},detail:t,wheel:{spinX:o,spinY:a,pixelX:s,pixelY:c,direction:l},points:El(t)};De(e,F.MOUSE_WHEEL,f)}function Zce(t){QL(t),t.addEventListener("wheel",ZL,{passive:!1})}function QL(t){t.removeEventListener("wheel",ZL)}const eN={enable:Zce,disable:QL},Qce={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};let Qn={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function x2(t){Qn.element=t.currentTarget;const e=re(Qn.element),{renderingEngineId:r,viewportId:n}=e;Qn.renderingEngineId=r,Qn.viewportId=n,Qn.key=t.key,Qn.keyCode=t.keyCode,t.preventDefault();const i={renderingEngineId:Qn.renderingEngineId,viewportId:Qn.viewportId,element:Qn.element,key:Qn.key,keyCode:Qn.keyCode};De(i.element,F.KEY_DOWN,i),document.addEventListener("keyup",tN),document.addEventListener("visibilitychange",kC),Qn.element.removeEventListener("keydown",x2)}function kC(){document.removeEventListener("visibilitychange",kC),document.visibilityState==="hidden"&&nN()}function tN(t){const e={renderingEngineId:Qn.renderingEngineId,viewportId:Qn.viewportId,element:Qn.element,key:Qn.key,keyCode:Qn.keyCode};document.removeEventListener("keyup",tN),document.removeEventListener("visibilitychange",kC),Qn.element.addEventListener("keydown",x2),Qn=structuredClone(Qce),De(e.element,F.KEY_UP,e)}function ele(){return Qn.keyCode}function nN(){Qn.keyCode=void 0}function tle(t){rN(t),t.addEventListener("keydown",x2)}function rN(t){t.removeEventListener("keydown",x2)}const O0={enable:tle,disable:rN,getModifierKey:ele},{EPSILON:zl}=Sl;function iN(t,e,r=!1){var f;let n=1/0,i=r?-1/0:0,o=1/0,a=r?-1/0:0,s=1/0,c=r?-1/0:0;const l=((f=t[0])==null?void 0:f.length)===3;for(let u=0;uJSON.stringify(t)===JSON.stringify(e);function VC(t,e,r,n){const i=r[0]/2,o=r[1]/2,a=r[2]/2,s=new Array(8);s[0]=Gn(t,[n[0]-i,n[1]-o,n[2]-a]);const c=[[1,-1,-1],[-1,1,-1],[1,1,-1],[-1,-1,1],[1,-1,1],[-1,1,1],[1,1,1]];for(let l=0;l<7;l++){const[f,u,d]=c[l];s[l+1]=Gn(t,[n[0]+f*i,n[1]+u*o,n[2]+d*a])}return Qs(s,e)}function aN(t,e){const{spacing:r}=t,n=t.voxelManager.getScalarDataLength(),i=[];let o=0;for(let a=0;a{const e=FC.get(t);e&&(e.isDirty=!0)},ile=t=>{const e=FC.get(t);return e&&!e.isDirty?e.indices:null},ole=(t,e)=>{FC.set(t,{indices:e,isDirty:!1})};function Ei(t,e){const r={segmentationId:t,modifiedSlicesToUse:e};rle(t),De(Ce,F.SEGMENTATION_DATA_MODIFIED,r)}function Di(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_MODIFIED,e)}function UC(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_REMOVED,e)}function Jo(t,e,r){const n={segmentationId:e,type:r,viewportId:t};De(Ce,F.SEGMENTATION_REPRESENTATION_ADDED,n)}function S3(t,e,r){const n={viewportId:t,segmentationId:e,type:r};De(Ce,F.SEGMENTATION_REPRESENTATION_REMOVED,n)}const ale=Object.freeze(Object.defineProperty({__proto__:null,triggerSegmentationDataModified:Ei,triggerSegmentationModified:Di,triggerSegmentationRemoved:UC,triggerSegmentationRepresentationModified:Jo,triggerSegmentationRepresentationRemoved:S3},Symbol.toStringTag,{value:"Module"})),sle={renderOutline:!0,outlineWidthAutoGenerated:3,outlineWidth:1,outlineWidthInactive:1,outlineOpacity:1,outlineOpacityInactive:.85,outlineDash:void 0,outlineDashInactive:void 0,outlineDashAutoGenerated:"5,3",activeSegmentOutlineWidthDelta:0,renderFill:!0,fillAlpha:.5,fillAlphaInactive:.3,fillAlphaAutoGenerated:.3};function cle(){return sle}const lle={renderOutline:!0,renderOutlineInactive:!0,outlineWidth:3,outlineWidthInactive:2,activeSegmentOutlineWidthDelta:0,renderFill:!0,renderFillInactive:!0,fillAlpha:.5,fillAlphaInactive:.4,outlineOpacity:1,outlineOpacityInactive:.85};function ule(){return lle}class fle{constructor(){this.config={global:{},segmentations:{},viewportsStyle:{}}}setStyle(e,r){const{viewportId:n,segmentationId:i,type:o,segmentIndex:a}=e,s=this.getStyle(e);let c;if(!n&&!i?c={...s,...r}:c=this.copyActiveToInactiveIfNotProvided({...s,...r},o),!o)throw new Error("Type is required to set a style");if(n){this.config.viewportsStyle[n]||(this.config.viewportsStyle[n]={renderInactiveSegmentations:!1,representations:{}});const l=this.config.viewportsStyle[n].representations;if(i){l[i]||(l[i]={}),l[i][o]||(l[i][o]={});const f=l[i][o];a!==void 0?(f.perSegment||(f.perSegment={}),f.perSegment[a]=c):f.allSegments=c}else{const f="__allSegmentations__";l[f]||(l[f]={}),l[f][o]||(l[f][o]={}),l[f][o].allSegments=c}}else if(i){this.config.segmentations[i]||(this.config.segmentations[i]={}),this.config.segmentations[i][o]||(this.config.segmentations[i][o]={});const l=this.config.segmentations[i][o];a!==void 0?(l.perSegment||(l.perSegment={}),l.perSegment[a]=c):l.allSegments=c}else this.config.global[o]=c}copyActiveToInactiveIfNotProvided(e,r){const n={...e};if(r===Ge.Labelmap){const i=n;i.renderOutlineInactive=i.renderOutline,i.outlineWidthInactive=i.outlineWidth,i.renderFillInactive=i.renderFill,i.fillAlphaInactive=i.fillAlpha,i.outlineOpacityInactive=i.outlineOpacity}else if(r===Ge.Contour){const i=n;i.outlineWidthInactive=i.outlineWidth,i.outlineOpacityInactive=i.outlineOpacity,i.outlineDashInactive=i.outlineDash,i.renderOutlineInactive=i.renderOutline,i.renderFillInactive=i.renderFill,i.fillAlphaInactive=i.fillAlpha}return n}getStyle(e){var s,c,l,f,u;const{viewportId:r,segmentationId:n,type:i,segmentIndex:o}=e;let a=this.getDefaultStyle(i);if(this.config.global[i]&&(a={...a,...this.config.global[i]}),(s=this.config.segmentations[n])!=null&&s[i]&&(a={...a,...this.config.segmentations[n][i].allSegments},o!==void 0&&((c=this.config.segmentations[n][i].perSegment)!=null&&c[o])&&(a={...a,...this.config.segmentations[n][i].perSegment[o]})),r&&this.config.viewportsStyle[r]){this.config.viewportsStyle[r].renderInactiveSegmentations;const d="__allSegmentations__";(l=this.config.viewportsStyle[r].representations[d])!=null&&l[i]&&(a={...a,...this.config.viewportsStyle[r].representations[d][i].allSegments}),n&&((f=this.config.viewportsStyle[r].representations[n])!=null&&f[i])&&(a={...a,...this.config.viewportsStyle[r].representations[n][i].allSegments},o!==void 0&&((u=this.config.viewportsStyle[r].representations[n][i].perSegment)!=null&&u[o])&&(a={...a,...this.config.viewportsStyle[r].representations[n][i].perSegment[o]}))}return a}getRenderInactiveSegmentations(e){var r;return(r=this.config.viewportsStyle[e])==null?void 0:r.renderInactiveSegmentations}setRenderInactiveSegmentations(e,r){this.config.viewportsStyle[e]||(this.config.viewportsStyle[e]={renderInactiveSegmentations:!1,representations:{}}),this.config.viewportsStyle[e].renderInactiveSegmentations=r}getDefaultStyle(e){switch(e){case Ge.Labelmap:return ule();case Ge.Contour:return cle();case Ge.Surface:return{};default:throw new Error(`Unknown representation type: ${e}`)}}clearSegmentationStyle(e){this.config.segmentations[e]&&delete this.config.segmentations[e]}clearAllSegmentationStyles(){this.config.segmentations={}}clearViewportStyle(e){this.config.viewportsStyle[e]&&delete this.config.viewportsStyle[e]}clearAllViewportStyles(){for(const e in this.config.viewportsStyle){const n=this.config.viewportsStyle[e].renderInactiveSegmentations;this.config.viewportsStyle[e]={renderInactiveSegmentations:n,representations:{}}}}resetToGlobalStyle(){this.clearAllSegmentationStyles(),this.clearAllViewportStyles()}hasCustomStyle(e){const{type:r}=e,n=this.getStyle(e),i=this.getDefaultStyle(r);return!wR(n,i)}}const Fi=new fle;function dle(t){const e={segmentationId:t};De(Ce,F.SEGMENTATION_ADDED,e)}const W_={colorLUT:[],segmentations:[],viewportSegRepresentations:{}};class hle{constructor(e){this._stackLabelmapImageIdReferenceMap=new Map,e||(e=wn()),this.state=Object.freeze(to(W_)),this.uid=e}getState(){return this.state}updateState(e){const r=to(this.state);e(r),this.state=Object.freeze(r)}getColorLUT(e){return this.state.colorLUT[e]}getNextColorLUTIndex(){return this.state.colorLUT.length}resetState(){this.state=Object.freeze(to(W_))}getSegmentation(e){return this.state.segmentations.find(r=>r.segmentationId===e)}updateSegmentation(e,r){this.updateState(n=>{const i=n.segmentations.find(o=>o.segmentationId===e);if(!i){console.warn(`Segmentation with id ${e} not found. Update aborted.`);return}Object.assign(i,r)}),Di(e)}addSegmentation(e){if(this.getSegmentation(e.segmentationId))throw new Error(`Segmentation with id ${e.segmentationId} already exists`);this.updateState(r=>{const n=to(e);if(n.representationData.Labelmap&&"volumeId"in n.representationData.Labelmap&&!("imageIds"in n.representationData.Labelmap)){const i=this.getLabelmapImageIds(n.representationData);n.representationData.Labelmap.imageIds=i}r.segmentations.push(n)}),dle(e.segmentationId)}removeSegmentation(e){this.updateState(r=>{const n=r.segmentations.filter(i=>i.segmentationId!==e);r.segmentations.splice(0,r.segmentations.length,...n)}),UC(e)}addSegmentationRepresentation(e,r,n,i){if(!Xn(e))return;if(this.getSegmentationRepresentations(e,{type:n,segmentationId:r}).length>0){console.debug("A segmentation representation of type",n,"already exists in viewport",e,"for segmentation",r);return}this.updateState(s=>{s.viewportSegRepresentations[e]||(s.viewportSegRepresentations[e]=[],Fi.setRenderInactiveSegmentations(e,!0)),n!==Ge.Labelmap?this.addDefaultSegmentationRepresentation(s,e,r,n,i):this.addLabelmapRepresentation(s,e,r,i)}),Jo(e,r,n)}addDefaultSegmentationRepresentation(e,r,n,i,o){const a=e.segmentations.find(c=>c.segmentationId===n);if(!a)return;const s={};Object.keys(a.segments).forEach(c=>{s[Number(c)]={visible:!0}}),e.viewportSegRepresentations[r].push({segmentationId:n,type:i,active:!0,visible:!0,colorLUTIndex:0,segments:s,config:{...z_(i),...o}}),this._setActiveSegmentation(e,r,n)}addLabelmapRepresentation(e,r,n,i=z_(Ge.Labelmap)){if(!Xn(r))return;const a=this.getSegmentation(n);if(!a)return;const{representationData:s}=a;if(!s.Labelmap)return this.addDefaultSegmentationRepresentation(e,r,n,Ge.Labelmap,i);this.processLabelmapRepresentationAddition(r,n),this.addDefaultSegmentationRepresentation(e,r,n,Ge.Labelmap,i)}async processLabelmapRepresentationAddition(e,r){const n=Xn(e);if(!n)return;const i=this.getSegmentation(r);if(!i)return;const o=n.viewport instanceof Mn,{representationData:a}=i,s="volumeId"in a.Labelmap;n.viewport,!o&&!s&&this.updateLabelmapSegmentationImageReferences(e,i.segmentationId)}_updateLabelmapSegmentationReferences(e,r,n,i){const o=r.getCurrentImageId();let a=!1;for(const s of n)r.isReferenceViewable({referencedImageId:s},{asOverlay:!0})&&(a=!0,this._stackLabelmapImageIdReferenceMap.get(e).set(o,s));return i&&i(r,e,n),a?this._stackLabelmapImageIdReferenceMap.get(e).get(o):void 0}updateLabelmapSegmentationImageReferences(e,r){const n=this.getSegmentation(r);if(!n)return;this._stackLabelmapImageIdReferenceMap.has(r)||this._stackLabelmapImageIdReferenceMap.set(r,new Map);const{representationData:i}=n;if(!i.Labelmap)return;const o=this.getLabelmapImageIds(i),s=Xn(e).viewport;return this._updateLabelmapSegmentationReferences(r,s,o,null)}_updateAllLabelmapSegmentationImageReferences(e,r){const n=this.getSegmentation(r);if(!n)return;this._stackLabelmapImageIdReferenceMap.has(r)||this._stackLabelmapImageIdReferenceMap.set(r,new Map);const{representationData:i}=n;if(!i.Labelmap)return;const o=this.getLabelmapImageIds(i),s=Xn(e).viewport;this._updateLabelmapSegmentationReferences(r,s,o,(c,l,f)=>{c.getImageIds().forEach((d,h)=>{for(const g of f)c.isReferenceViewable({referencedImageId:g,sliceIndex:h},{asOverlay:!0,withNavigation:!0})&&this._stackLabelmapImageIdReferenceMap.get(l).set(d,g)})})}getLabelmapImageIds(e){const r=e.Labelmap;let n;if(r.imageIds)n=r.imageIds;else if(!n&&r.volumeId){const i=r.volumeId;n=_e.getVolume(i).imageIds}return n}getCurrentLabelmapImageIdForViewport(e,r){const n=Xn(e);if(!n||!this._stackLabelmapImageIdReferenceMap.has(r))return;const o=n.viewport.getCurrentImageId();return this._stackLabelmapImageIdReferenceMap.get(r).get(o)}getStackSegmentationImageIdsForViewport(e,r){if(!this.getSegmentation(r))return[];this._updateAllLabelmapSegmentationImageReferences(e,r);const{viewport:i}=Xn(e),o=i.getImageIds(),a=this._stackLabelmapImageIdReferenceMap.get(r);return o.map(s=>a.get(s))}removeSegmentationRepresentationsInternal(e,r){const n=[];return this.updateState(i=>{if(!i.viewportSegRepresentations[e])return;const o=i.viewportSegRepresentations[e];let a=!1;if(!r||Object.values(r).every(s=>s===void 0))n.push(...o),delete i.viewportSegRepresentations[e];else{const{segmentationId:s,type:c}=r;i.viewportSegRepresentations[e]=o.filter(l=>{const f=s&&c&&l.segmentationId===s&&l.type===c||s&&!c&&l.segmentationId===s||!s&&c&&l.type===c;return f&&(n.push(l),l.active&&(a=!0)),!f}),i.viewportSegRepresentations[e].length===0?delete i.viewportSegRepresentations[e]:a&&(i.viewportSegRepresentations[e][0].active=!0)}}),n}removeSegmentationRepresentations(e,r){const n=this.removeSegmentationRepresentationsInternal(e,r);n.forEach(o=>{S3(e,o.segmentationId,o.type)});const i=this.getSegmentationRepresentations(e);return i.length>0&&i[0].active&&Jo(e,i[0].segmentationId,i[0].type),n}removeSegmentationRepresentation(e,r,n){const i=this.removeSegmentationRepresentationsInternal(e,r);return n||i.forEach(({segmentationId:o,type:a})=>{S3(e,o,a)}),i}_setActiveSegmentation(e,r,n){const i=e.viewportSegRepresentations[r];i&&i.forEach(o=>{o.active=o.segmentationId===n})}setActiveSegmentation(e,r){this.updateState(n=>{const i=n.viewportSegRepresentations[e];i&&i.forEach(o=>{o.active=o.segmentationId===r})}),Jo(e,r)}getActiveSegmentation(e){if(!this.state.viewportSegRepresentations[e])return;const r=this.state.viewportSegRepresentations[e].find(n=>n.active);if(r)return this.getSegmentation(r.segmentationId)}getSegmentationRepresentations(e,r={}){const n=this.state.viewportSegRepresentations[e];return n?!r.type&&!r.segmentationId?n:n.filter(i=>{const o=r.type?i.type===r.type:!0,a=r.segmentationId?i.segmentationId===r.segmentationId:!0;return o&&a}):[]}getSegmentationRepresentation(e,r){return this.getSegmentationRepresentations(e,r)[0]}getSegmentationRepresentationVisibility(e,r){const n=this.getSegmentationRepresentation(e,r);return n==null?void 0:n.visible}setSegmentationRepresentationVisibility(e,r,n){this.updateState(i=>{const o=this.getSegmentationRepresentations(e,r);o&&o.forEach(a=>{a.visible=n,Object.entries(a.segments).forEach(([s,c])=>{c.visible=n})})}),Jo(e,r.segmentationId,r.type)}addColorLUT(e,r){this.updateState(n=>{n.colorLUT[r]&&console.warn("Color LUT table already exists, overwriting"),n.colorLUT[r]=to(e)})}removeColorLUT(e){this.updateState(r=>{delete r.colorLUT[e]})}_getStackIdForImageIds(e){return e.map(r=>r.slice(-Math.round(r.length*.15))).join("_")}getAllViewportSegmentationRepresentations(){return Object.entries(this.state.viewportSegRepresentations).map(([e,r])=>({viewportId:e,representations:r}))}getSegmentationRepresentationsBySegmentationId(e){const r=[];return Object.entries(this.state.viewportSegRepresentations).forEach(([n,i])=>{const o=i.filter(a=>a.segmentationId===e);o.length>0&&r.push({viewportId:n,representations:o})}),r}}async function sN({imageIds:t,options:e}){const r=t,n=(e==null?void 0:e.volumeId)||wn();return await oC(n,r),{volumeId:n}}async function gle({segmentationId:t,options:e}){const r=Xt.getSegmentation(t),n=r.representationData.Labelmap,{volumeId:i}=await sN({imageIds:n.imageIds,options:e});r.representationData.Labelmap.volumeId=i}function z_(t){const e=Ys.newInstance(),r=qu.newInstance();return r.addPoint(0,0),t===Ge.Labelmap?{cfun:e,ofun:r}:{}}const Xt=new hle("DEFAULT");function Ti(t,e={}){return Xt.getSegmentationRepresentations(t,e)}function w2(t,e){const r=Xt;if(!e.segmentationId||!e.type)throw new Error("getSegmentationRepresentation: No segmentationId or type provided, you need to provide at least one of them");const n=r.getSegmentationRepresentations(t,e);return n==null?void 0:n[0]}function ple(t){return Xt.getSegmentationRepresentationsBySegmentationId(t)}function cN(t,e,r){const n=Xn(t);if(!n)return;const{renderingEngine:i,viewport:o}=n;if(!i||!o)return;const s=o.getActors().filter(r);return s.length>0?s[0]:void 0}function mle(t,e){const r=Ga(t,e);return r==null?void 0:r.uid}function Ga(t,e){return cN(t,e,r=>{var n;return(n=r.representationUID)==null?void 0:n.startsWith(`${e}-${Ge.Labelmap}`)})}function lN(t,e,r){return cN(t,e,n=>{var i;return(i=n.representationUID)==null?void 0:i.startsWith(`${e}-${Ge.Surface}-${r}`)})}function uN(t,e,r){const n=r?r.toString():"",i=lN(t,e,n);return i==null?void 0:i.uid}function vle(t,e){const r=re(t),{viewport:n}=r,o=n.getActors().filter(a=>a.uid.startsWith(uN(n.id,e,"")));n.removeActors(o.map(a=>a.uid))}function yle(t,e,r){const n=re(t),{viewport:i}=n,o=uN(i.id,r,e.segmentIndex),a=lN(i.id,r,e.segmentIndex),s=a==null?void 0:a.actor;if(s){const v=s.getMapper(),x=v.getInputData(),m=e.points,y=e.polys,w=x.getPoints().getData(),C=x.getPolys().getData();if(m.length===w.length&&y.length===C.length)return;const S=hr.newInstance();S.getPoints().setData(m,3);const T=ul.newInstance({values:Float32Array.from(y)});S.setPolys(T),v.setInputData(S),v.modified(),i.getRenderer().resetCameraClippingRange();return}const c=e.points,l=e.polys,f=e.color,u=hr.newInstance();u.getPoints().setData(c,3);const d=ul.newInstance({values:Float32Array.from(l)});u.setPolys(d);const h=oa.newInstance({});let g;h.setInputData(u);const p=ca.newInstance();p.setMapper(h),p.getProperty().setColor(f[0]/255,f[1]/255,f[2]/255),p.getProperty().setLineWidth(2),i.addActor({uid:wn(),actor:p,clippingFilter:g,representationUID:o}),i.resetCamera(),i.getRenderer().resetCameraClippingRange(),i.render()}function Ct(t){return Xt.getSegmentation(t)}function M0(t){return Xt.getColorLUT(t)}function xle(t){if("volumeId"in t){if(t=t,!_e.getVolume(t.volumeId))throw new Error(`volumeId of ${t.volumeId} not found in cache, you should load and cache volume before adding segmentation`)}else if("imageIds"in t){if(t=t,!t.imageIds)throw new Error("The segmentationInput.representationData.imageIds is undefined, please provide a valid representationData.imageIds for stack data")}else throw new Error("The segmentationInput.representationData is undefined, please provide a valid representationData")}function wle(t){xle(t)}const Cle=new Map([[Ge.Labelmap,new Set([Ge.Surface,Ge.Contour])],[Ge.Contour,new Set([Ge.Labelmap,Ge.Surface])],[Ge.Surface,new Set([Ge.Labelmap])]]);function C2(t,e){const{representationData:r}=Ct(t);return Sle(r).some(i=>Tle(i,e))}function Sle(t){const e=[];return Object.keys(t).forEach(r=>{const n=t[r];let i;switch(r){case Ge.Labelmap:i=wle;break}if(i)try{i(n),e.push(r)}catch{console.warn(`Validation failed for labelmap of type ${r}`)}else e.push(r)}),e}async function Tle(t,e){var r;return((r=Cle.get(t))==null?void 0:r.has(e))||!1}function _le({segmentationId:t,type:e,data:r}){const n=Ct(t);if(!n)throw new Error(`Segmentation ${t} not found`);switch(n.representationData[e]&&console.warn(`Representation data of type ${e} already exists for segmentation ${t}, overwriting it.`),e){case Ge.Labelmap:r&&(n.representationData[e]=r);break;case Ge.Contour:r&&(n.representationData[e]=r);break;case Ge.Surface:r&&(n.representationData[e]=r);break;default:throw new Error(`Invalid representation type ${e}`)}}function BC(t){const e=typeof t;return t!==null&&(e==="object"||e==="function")}function S2(t,e,r){let n,i,o,a,s,c,l=0,f=!1,u=!1,d=!0;const h=!e&&e!==0&&typeof window.requestAnimationFrame=="function";if(typeof t!="function")throw new TypeError("Expected a function");e=Number(e)||0,BC(r)&&(f=!!r.leading,u="maxWait"in r,o=u?Math.max(Number(r.maxWait)||0,e):o,d="trailing"in r?!!r.trailing:d);function g(D){const b=n,I=i;return n=i=void 0,l=D,a=t.apply(I,b),a}function p(D,b){return h?window.requestAnimationFrame(D):setTimeout(D,b)}function v(D){if(h)return window.cancelAnimationFrame(D);clearTimeout(D)}function x(D){return l=D,s=p(w,e),f?g(D):a}function m(D){const b=D-c,I=D-l,R=e-b;return u?Math.min(R,o-I):R}function y(D){const b=D-c,I=D-l;return c===void 0||b>=e||b<0||u&&I>=o}function w(){const D=Date.now();if(y(D))return C(D);s=p(w,m(D))}function C(D){return s=void 0,d&&n?g(D):(n=i=void 0,a)}function S(){s!==void 0&&v(s),l=0,n=c=i=s=void 0}function T(){return s===void 0?a:C(Date.now())}function _(){return s!==void 0}function E(...D){const b=Date.now(),I=y(b);if(n=D,i=this,c=b,I){if(s===void 0)return x(c);if(u)return s=p(w,e),g(c)}return s===void 0&&(s=p(w,e)),a}return E.cancel=S,E.flush=T,E.pending=_,E}let $_=!1;function fN(){if($_)return;$_=!0;const t=()=>new Worker(new URL("/static/dv3d/assets/polySegConverters-Bo1kNbAR.js",import.meta.url),{name:"polySeg",type:"module"}),e=cc(),r={maxWorkerInstances:1,autoTerminateOnIdle:{enabled:!0,idleTimeThreshold:2e3}};e.registerWorker("polySeg",t,r)}const Bp=new Map;async function GC(t,e,r,n,i){fN();const o=await r();_le({segmentationId:t,type:e,data:o}),i==null||i(),Bp.has(t)||Bp.set(t,[]);const a=Bp.get(t);return a.includes(e)||a.push(e),Ele(n),Di(t),o}function Ele(t){const e=r=>{Dle(r,t)};t._debouncedUpdateFunction=e,Ce.removeEventListener(F.SEGMENTATION_DATA_MODIFIED,t._debouncedUpdateFunction),Ce.addEventListener(F.SEGMENTATION_DATA_MODIFIED,t._debouncedUpdateFunction)}const Dle=S2((t,e)=>{const r=t.detail.segmentationId,n=Bp.get(r);!n||!n.length||(e(r),n.length&&Di(r))},300);function ga(t){const e=ile(t);if(e)return e;const r=Ct(t);if(!r)throw new Error(`No segmentation found for segmentationId ${t}`);let n;if(r.representationData.Labelmap)n=ble(r,t);else if(r.representationData.Contour)n=Mle(r);else if(r.representationData.Surface)n=Rle(r);else throw new Error(`Unsupported segmentation type: ${r.representationData}`);return ole(t,n),n}function ble(t,e){const r=t.representationData[Ge.Labelmap],n=new Set;return r.imageIds?Ole(n,r.imageIds):Ile(n,e),Array.from(n).map(Number).sort((i,o)=>i-o)}function Ile(t,e){_e.getVolume(e).voxelManager.forEach(({value:n})=>{n!==0&&t.add(n)})}function Ole(t,e){e.forEach(r=>{_e.getImage(r).voxelManager.getScalarData().forEach(o=>{o!==0&&t.add(o)})})}function Mle(t){const{annotationUIDsMap:e,geometryIds:r}=t.representationData.Contour||{};if(!r)throw new Error(`No geometryIds found for segmentationId ${t.segmentationId}`);const n=new Set([...e.keys()]);return r.forEach(i=>{const o=_e.getGeometry(i);n.add(o.data.segmentIndex)}),Array.from(n).sort((i,o)=>i-o)}function Rle(t){var r;const e=((r=t.representationData.Surface)==null?void 0:r.geometryIds)??[];return Array.from(e.keys()).map(Number).sort((n,i)=>n-i)}const Lle=cc(),ry=(t,e,r)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:b0.POLYSEG_CONTOUR_TO_SURFACE,id:r})};async function Nle(t,e){const{annotationUIDsMap:r}=t,n=[],i=[],o=r.get(e);for(const s of o){const c=On(s),{polyline:l}=c.data.contour;i.push(l.length),l.forEach(f=>n.push(...f))}ry(Ce,0,e);const a=await Lle.executeTask("polySeg","convertContourToSurface",{polylines:n,numPointsArray:i},{callbacks:[s=>{ry(Ce,s,e)}]});return ry(Ce,100,e),a}function WC(){return Xt.getNextColorLUTIndex()}const zC=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function $C(t,e){const r=Xt,n=e??WC();let i=[...t];if(pt(i[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),i=[[0,0,0,0],...i]),i=i.map(o=>o.length===3?[o[0],o[1],o[2],255]:o),i.length<255){const o=zC.slice(i.length);i=[...i,...o]}return r.addColorLUT(i,n),n}function Ple(t,e){if(!t)throw new Error("addColorLUT: colorLUT is required");return $C(t,e)}function Ale(t,e,r){if(!M0(r))throw new Error(`setColorLUT: could not find colorLUT with index ${r}`);const n=Ti(t,{segmentationId:e});if(!n)throw new Error(`viewport specific state for viewport ${t} does not exist`);n.forEach(i=>{i.colorLUTIndex=r}),Jo(t,e)}function ts(t,e,r){const n=Ti(t,{segmentationId:e});if(!n||n.length===0)return null;const i=n[0],{colorLUTIndex:o}=i,a=M0(o);let s=a[r];if(!s){if(typeof r!="number")throw new Error(`Can't create colour for LUT index ${r}`);s=a[r]=[0,0,0,0]}return s}function dN(t,e,r,n){const i=ts(t,e,r);for(let o=0;o{const s=e[a],c=s.segmentIndex,l=ts(r.viewport.id,n.segmentationId,c).slice(0,3);if(!l)throw new Error("No color found for segment index, unable to create surface");const f={id:`segmentation_${n.segmentationId}_surface_${c}`,color:l,frameOfReferenceUID:"test-frameOfReferenceUID",points:s.data.points,polys:s.data.polys,segmentIndex:c},u=f.id;return i.set(c,u),Dae(u,{type:al.SURFACE,geometryData:f})});return await Promise.all(o),{geometryIds:i}}async function gN(t){return sN(t)}const Vle=cc(),iy=(t,e,r)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:b0.POLYSEG_LABELMAP_TO_SURFACE,id:r})};async function Fle(t,e){let r;if(t.volumeId)r=t.volumeId;else{const{imageIds:f}=t;({volumeId:r}=await gN({imageIds:f}))}const n=_e.getVolume(r),i=n.voxelManager.getCompleteScalarDataArray(),{dimensions:o,spacing:a,origin:s,direction:c}=n;iy(Ce,0,e);const l=await Vle.executeTask("polySeg","convertLabelmapToSurface",{scalarData:i,dimensions:o,spacing:a,origin:s,direction:c,segmentIndex:e},{callbacks:[f=>{iy(Ce,f,e)}]});return iy(Ce,100,e),l}async function Ule(t,e={}){var s;const r=(s=e.segmentIndices)!=null&&s.length?e.segmentIndices:ga(t);let n;const i=Ct(t),o=i.representationData;try{o.Contour?n=await Ble(t,{segmentIndices:r,...e}):o.Labelmap&&(n=await jC(i.segmentationId,{segmentIndices:r,...e}))}catch(c){throw console.error(c),c}if(!n)throw new Error("Not enough data to convert to surface, currently only support converting volume labelmap to surface if available");return await hN(t,n,e)}async function jC(t,e={}){var l;const r=Ct(t);if(!((l=r==null?void 0:r.representationData)!=null&&l.Labelmap)){console.warn("Only support surface update from labelmaps");return}const n=r.representationData.Labelmap,i=e.segmentIndices||ga(t),o=i.map(f=>Fle(n,f)),a=await Promise.allSettled(o),s=a.filter(f=>f.status==="rejected");if(s.length>0)throw console.error(s),new Error("Failed to convert labelmap to surface");return a.map((f,u)=>{if(f.status==="fulfilled")return{segmentIndex:i[u],data:f.value}}).filter(Boolean)}async function Ble(t,e={}){const n=Ct(t).representationData.Contour,o=(e.segmentIndices||ga(t)).map(async s=>{const c=await Nle(n,s);return{segmentIndex:s,data:c}});return await Promise.all(o)}function R0(t){const n=Xt.getState().viewportSegRepresentations;return Object.entries(n).filter(([,o])=>o.some(a=>a.segmentationId===t)).map(([o])=>o)}async function Gle(t){const e=await jC(t);if(!e)return;const r=Ct(t),n=ga(t);if(!n.length){r.representationData.Surface.geometryIds.forEach(a=>{const c=_e.getGeometry(a).data;c.points=[],c.polys=[]}),Di(t);return}const i=e.map(({data:o,segmentIndex:a})=>{const s=`segmentation_${t}_surface_${a}`,c=_e.getGeometry(s);if(c)if(n.includes(a)){const l=c.data;l.points=o.points,l.polys=o.polys}else{const l=c.data;l.points=[],l.polys=[]}else return R0(t).map(f=>[w2(f,{segmentationId:t,type:Ge.Surface})].map(d=>(r.representationData.Surface.geometryIds.set(a,s),hN(t,[{segmentIndex:a,data:o}],{segmentationId:d.segmentationId}))))});await Promise.all(i),Di(t)}function pN(t,e={}){return GC(t,Ge.Surface,()=>Ule(t,e),()=>Gle(t))}function Wle(t,e,r=!1){const n=Xn(t);if(!n)return;const{viewport:i}=n;vle(i.element,e),r&&i.render()}async function zle(t,e){const{segmentationId:r}=e,n=Ct(r);if(!n)return;let i=n.representationData[Ge.Surface];if(!i&&C2(r,Ge.Surface)&&(i=await pN(r,{viewport:t}),!i))throw new Error(`No Surface data found for segmentationId ${r}.`);const{geometryIds:o}=i;o!=null&&o.size||console.warn(`No Surfaces found for segmentationId ${r}. Skipping render.`);const{colorLUTIndex:a}=e,s=M0(a);o.forEach(c=>{const l=_e.getGeometry(c);if(!(l!=null&&l.data)){console.warn(`No Surfaces found for geometryId ${c}. Skipping render.`);return}const f=l.data.segmentIndex,u=l.data,d=s[f];u.color=d.slice(0,3),yle(t.element,u,r)}),t.render()}const mN={render:zle,removeRepresentation:Wle};function $le(t,e,r,n){const i=t.getViewReference(),{viewPlaneNormal:o,FrameOfReferenceUID:a}=i,s={annotationUID:(n==null?void 0:n.annotationUID)||wn(),data:{handles:{points:r}},highlighted:!1,autoGenerated:!1,invalidated:!1,isLocked:!1,isVisible:!0,metadata:{toolName:e,viewPlaneNormal:o,FrameOfReferenceUID:a,referencedImageId:jle(t,r[0],o),...n}};return Ut(s,t.element),s}function jle(t,e,r){let n;if(t instanceof ln)n=HC(t,e,r);else if(t instanceof Mn){const i=Hle(t),o=da(i),a=_e.getVolume(o);n=Xa(a,e,r)}else throw new Error("getReferencedImageId: viewport must be a StackViewport or BaseVolumeViewport");return n}function Hle(t){var r;const e=(r=t.getViewReferenceId)==null?void 0:r.call(t);if(e)return e;if(t instanceof Mn)return`volumeId:${Kle(t)}`;throw new Error("getTargetId: viewport must have a getTargetId method")}function Kle(t){var r;const e=t.getActors();if(e)return(r=e.find(n=>n.actor.getClassName()==="vtkVolume"))==null?void 0:r.uid}function HC(t,e,r){const n=t.getImageIds();if(!n||!n.length)return;const i=n.map(o=>{const{imagePositionPatient:a}=Pe("imagePlaneModule",o),s=qle(e,a,r);return{imageId:o,distance:s}});return i.sort((o,a)=>o.distance-a.distance),i[0].imageId}function qle(t,e,r){const n=we();Qt(n,t,e);const i=je(n,r);return Math.abs(i)}function vN(t,e){const{segmentation:r}=t.data,{segmentation:n}=e.data;return r.segmentationId===n.segmentationId&&r.segmentIndex===n.segmentIndex}function Mh(t){var e;return!!((e=t.data)!=null&&e.segmentation)}function n0(t){if(t.parentAnnotationUID)return;if(!t.data.segmentation)throw new Error("addContourSegmentationAnnotation: annotation does not have a segmentation data");const{segmentationId:e,segmentIndex:r}=t.data.segmentation,n=Ct(e);n.representationData.Contour||(n.representationData.Contour={annotationUIDsMap:new Map});const{annotationUIDsMap:i}=n.representationData.Contour;let o=i.get(r);o||(o=new Set,i.set(r,o)),i.set(r,o.add(t.annotationUID))}function T2(t){if(!t.data.segmentation)throw new Error("removeContourSegmentationAnnotation: annotation does not have a segmentation data");const{segmentationId:e,segmentIndex:r}=t.data.segmentation,n=Ct(e),{annotationUIDsMap:i}=(n==null?void 0:n.representationData.Contour)||{},o=i==null?void 0:i.get(r);o&&(o.delete(t.annotationUID),o.size||i.delete(r))}const Xle=Object.freeze(Object.defineProperty({__proto__:null,addContourSegmentationAnnotation:n0,areSameSegment:vN,isContourSegmentationAnnotation:Mh,removeContourSegmentationAnnotation:T2},Symbol.toStringTag,{value:"Module"}));function Yle(t){if(!t)throw new Error(`No contours found for geometryId ${t.id}`);const e=t.id;if(t.type!==al.CONTOUR)throw new Error(`Geometry type ${t.type} not supported for rendering.`);if(!t.data){console.warn(`No contours found for geometryId ${e}. Skipping render.`);return}}function Jle(t,e,r,n){r.size?t.render():Zle(t,e,n)}function Zle(t,e,r){const{segmentationId:n}=r,i=new Map;e.forEach(o=>{const a=_e.getGeometry(o);if(!a){console.warn(`No geometry found for geometryId ${o}. Skipping render.`);return}const s=a.data.segmentIndex;Yle(a);const c=Fi.getStyle({viewportId:t.id,segmentationId:n,type:Ge.Contour,segmentIndex:s}),l=a.data,f=t.getCamera().viewPlaneNormal;l.contours.forEach(u=>{const{points:d,color:h,id:g}=u,p=HC(t,d[0],f),v={annotationUID:wn(),data:{contour:{closed:!0,polyline:d},segmentation:{segmentationId:n,segmentIndex:s,color:h,id:g},handles:{}},handles:{},highlighted:!1,autoGenerated:!1,invalidated:!1,isLocked:!0,isVisible:!0,metadata:{referencedImageId:p,toolName:"PlanarFreehandContourSegmentationTool",FrameOfReferenceUID:t.getFrameOfReferenceUID(),viewPlaneNormal:t.getCamera().viewPlaneNormal}},x=t.element;Ut(v,x),n0(v)}),c&&i.set(s,c)}),t.resetCamera(),t.render()}function KC(t,e=5){return parseFloat(t[0]).toFixed(e)+","+parseFloat(t[1]).toFixed(e)+","+parseFloat(t[2]).toFixed(e)+","}const yN=cc(),T3=new Map,_3=new Map,Gp=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:b0.SURFACE_CLIPPING})};async function xN(t,e){var a;fN();const r=(a=e.getSlicesClippingPlanes)==null?void 0:a.call(e);if(!r)return;const n=e.getSliceIndex();r.sort((s,c)=>{const l=Math.abs(s.sliceIndex-n),f=Math.abs(c.sliceIndex-n);return l-f}),Gp(Ce,0),await Qle(t);const i=new Map;t.forEach(s=>{i.set(s.id,_3.get(s.id))});const o=e.getCamera();return await yN.executeTask("polySeg","cutSurfacesIntoPlanes",{surfacesInfo:t,planesInfo:r,surfacesAABB:i},{callbacks:[({progress:s})=>{Gp(Ce,s)},({sliceIndex:s,polyDataResults:c})=>{c.forEach((l,f)=>{const u=Number(f),d=eue(e,o.viewPlaneNormal,s);tue(u,d,l)})}]}).catch(s=>{console.error(s)}),Gp(Ce,100),T3}async function Qle(t){const e=t.filter(n=>!_3.has(n.id));if(!e.length)return;(await yN.executeTask("polySeg","getSurfacesAABBs",{surfacesInfo:e},{callbacks:[({progress:n})=>{Gp(Ce,n)}]})).forEach((n,i)=>{_3.set(i,n)})}function eue(t,e,r){return`${t.id}-${KC(e)}-${r}`}function tue(t,e,r){const{points:n,lines:i,numberOfCells:o}=r;let a=T3.get(t);a||(a=new Map,T3.set(t,a)),a.set(e,{points:n,lines:i,numberOfCells:o})}function wN(t){const e=new Map;for(const[r,n]of t){const i=Number(r);for(const[o,a]of n)a&&(e.has(i)||e.set(i,[]),e.get(i).push(a))}return e}const{CalibrationTypes:af}=Ao,Cc="px",CN=[1],nue=["3,3"],rue=["4,3"],E3={0:"px",1:"percent",2:"dB",3:"cm",4:"seconds",5:"hertz",6:"dB/seconds",7:"cm/sec",8:"cm²",9:"cm²/s",12:"degrees"},iue=.001,sf="²",Bi=(t,e)=>{const{calibration:r,hasPixelSpacing:n}=t;let i=n?"mm":Cc,o=i+sf,a=1,s="";if(!r||!r.type&&!r.sequenceOfUltrasoundRegions)return{unit:i,areaUnit:o,scale:a};if(r.type===af.UNCALIBRATED)return{unit:Cc,areaUnit:Cc+sf,scale:a};if(r.sequenceOfUltrasoundRegions){let l,f;if(Array.isArray(e)&&e.length===2)[l,f]=e;else if(typeof e=="function"){const v=e();l=v[0],f=v[1]}let u=r.sequenceOfUltrasoundRegions.filter(v=>l[0]>=v.regionLocationMinX0&&l[0]<=v.regionLocationMaxX1&&l[1]>=v.regionLocationMinY0&&l[1]<=v.regionLocationMaxY1&&f[0]>=v.regionLocationMinX0&&f[0]<=v.regionLocationMaxX1&&f[1]>=v.regionLocationMinY0&&f[1]<=v.regionLocationMaxY1);if(!(u!=null&&u.length))return{unit:i,areaUnit:o,scale:a};if(u=u.filter(v=>CN.includes(v.regionDataType)&&nue.includes(`${v.physicalUnitsXDirection},${v.physicalUnitsYDirection}`)),!u.length)return{unit:Cc,areaUnit:Cc+sf,scale:a};const d=u[0],h=Math.abs(d.physicalDeltaX),g=Math.abs(d.physicalDeltaY);if(pt(h,g,iue))a=1/h,s="US Region",i=E3[d.physicalUnitsXDirection]||"unknown",o=i+sf;else return{unit:Cc,areaUnit:Cc+sf,scale:a}}else r.scale&&(a=r.scale);return[af.ERMF,af.USER,af.ERROR,af.PROJECTION].includes(r==null?void 0:r.type)&&(s=r.type),{unit:i+(s?` ${s}`:""),areaUnit:o+(s?` ${s}`:""),scale:a}},fm=(t,e)=>{const[r]=e,{calibration:n}=t;let i=["raw"],o=[null],a="";if(!n||!n.type&&!n.sequenceOfUltrasoundRegions)return{units:i,values:o};if(n.sequenceOfUltrasoundRegions){const s=n.sequenceOfUltrasoundRegions.filter(p=>CN.includes(p.regionDataType)&&rue.includes(`${p.physicalUnitsXDirection},${p.physicalUnitsYDirection}`));if(!(s!=null&&s.length))return{units:i,values:o};const c=s.find(p=>r[0]>=p.regionLocationMinX0&&r[0]<=p.regionLocationMaxX1&&r[1]>=p.regionLocationMinY0&&r[1]<=p.regionLocationMaxY1);if(!c)return{units:i,values:o};const{referencePixelX0:l=0,referencePixelY0:f=0}=c,{physicalDeltaX:u,physicalDeltaY:d}=c,h=(r[1]-c.regionLocationMinY0-f)*d,g=(r[0]-c.regionLocationMinX0-l)*u;a="US Region",o=[g,h],i=[E3[c.physicalUnitsXDirection],E3[c.physicalUnitsYDirection]]}return{units:i,values:o,calibrationType:a}},qC=t=>{var e;return((e=t.calibration)==null?void 0:e.aspect)||1};function SN(t,e){return t.minX<=e.maxX&&t.maxX>=e.minX&&t.minY<=e.maxY&&t.maxY>=e.minY}function dm(t,e){const r=t.maxX-t.minX,n=t.maxY-t.minY,i=[r,n],o=[t.minX+r/2,t.minY+n/2],a=[Math.abs(e[0]-o[0]),Math.abs(e[1]-o[1])],s=a[0]-i[0]*.5,c=a[1]-i[1]*.5;if(s>0&&c>0)return s*s+c*c;const l=Math.max(s,0)+Math.max(c,0);return l*l}function oue(t,e){return Math.sqrt(dm(t,e))}const aue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:oue,distanceToPointSquared:dm,intersectAABB:SN},Symbol.toStringTag,{value:"Module"}));class TN{}const{PointsManager:j_}=Yt,rt=class rt extends TN{static statsInit(e){e.storePointData||(rt.pointsInShape=null)}};rt.max=[-1/0],rt.min=[1/0],rt.sum=[0],rt.count=0,rt.runMean=[0],rt.m2=[0],rt.pointsInShape=j_.create3(1024),rt.statsCallback=({value:e,pointLPS:r=null})=>{var i;Array.isArray(e)&&e.length>1&&rt.max.length===1&&(rt.max.push(rt.max[0],rt.max[0]),rt.min.push(rt.min[0],rt.min[0]),rt.sum.push(rt.sum[0],rt.sum[0]),rt.runMean.push(0,0),rt.m2.push(rt.m2[0],rt.m2[0])),(i=rt.pointsInShape)==null||i.push(r);const n=Array.isArray(e)?e:[e];rt.count+=1,rt.max.map((o,a)=>{const s=n[a],c=s-rt.runMean[a];rt.sum[a]+=s,rt.runMean[a]+=c/rt.count;const l=s-rt.runMean[a];rt.m2[a]+=c*l,rt.min[a]=Math.min(rt.min[a],s),rt.max[a]=Math.max(o,s)})},rt.getStatistics=e=>{const r=rt.sum.map(a=>a/rt.count),n=rt.m2.map(a=>Math.sqrt(a/rt.count)),i=(e==null?void 0:e.unit)||null,o={max:{name:"max",label:"Max Pixel",value:Wg(rt.max),unit:i},min:{name:"min",label:"Min Pixel",value:Wg(rt.min),unit:i},mean:{name:"mean",label:"Mean Pixel",value:Wg(r),unit:i},stdDev:{name:"stdDev",label:"Standard Deviation",value:Wg(n),unit:i},count:{name:"count",label:"Pixel Count",value:rt.count,unit:null},pointsInShape:rt.pointsInShape,array:[]};return o.array.push(o.max,o.mean,o.stdDev,o.stdDev,o.count),rt.max=[-1/0],rt.min=[1/0],rt.sum=[0],rt.m2=[0],rt.runMean=[0],rt.count=0,rt.pointsInShape=j_.create3(1024),o};let Ya=rt;function Wg(t){return t.length===1?t[0]:t}const sue=Object.freeze(Object.defineProperty({__proto__:null,BasicStatsCalculator:Ya,Calculator:TN},Symbol.toStringTag,{value:"Module"}));function _2(t,e,r={}){return r.precalculated||XC(t,r),r.precalculated(e)}const XC=(t,e={})=>{const{xRadius:r,yRadius:n,zRadius:i}=t;(e.invXRadiusSq===void 0||e.invYRadiusSq===void 0||e.invZRadiusSq===void 0)&&(e.invXRadiusSq=r!==0?1/r**2:0,e.invYRadiusSq=n!==0?1/n**2:0,e.invZRadiusSq=i!==0?1/i**2:0);const{invXRadiusSq:o,invYRadiusSq:a,invZRadiusSq:s}=e,{center:c}=t,[l,f,u]=c;return e.precalculated=d=>{const h=d[0]-l;let g=h*h*o;if(g>1)return!1;const p=d[1]-f;if(g+=p*p*a,g>1)return!1;const v=d[2]-u;return g+=v*v*s,g<=1},e};function Yf(t){const[e,r,n,i]=t,o=[n[0],r[1]],a=[i[0],e[1]];return[o,a]}const cue=Object.freeze(Object.defineProperty({__proto__:null,getCanvasEllipseCorners:Yf,pointInEllipse:_2,precalculatePointInEllipse:XC},Symbol.toStringTag,{value:"Module"}));function Ja(t,e){if(t.length!==e.length)throw Error("Both points should have the same dimensionality");const[r,n,i=0]=t,[o,a,s=0]=e,c=o-r,l=a-n,f=s-i;return c*c+l*l+f*f}function so(t,e){return Math.sqrt(Ja(t,e))}function D3(t,e){const[r,n]=t,[i,o]=e,a=2*i-r,s=2*o-n;return[a,s]}const lue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:so,distanceToPointSquared:Ja,mirror:D3},Symbol.toStringTag,{value:"Module"}));function hm(t,e,r){let n;const i=Ja(t,e);if(t[0]===e[0]&&t[1]===e[1]&&(n=t),!n){const o=((r[0]-t[0])*(e[0]-t[0])+(r[1]-t[1])*(e[1]-t[1]))/i;o<0?n=t:o>1?n=e:n=[t[0]+o*(e[0]-t[0]),t[1]+o*(e[1]-t[1])]}return{point:[...n],distanceSquared:Ja(r,n)}}function Rh(t,e,r){return hm(t,e,r).distanceSquared}function Pr(t,e,r){if(t.length!==2||e.length!==2||r.length!==2)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(Rh(t,e,r))}function zg(t){return typeof t=="number"?t?t<0?-1:1:t===t?0:NaN:NaN}function b3(t,e,r,n){const[i,o]=t,[a,s]=e,[c,l]=r,[f,u]=n,d=s-o,h=i-a,g=a*o-i*s,p=d*c+h*l+g,v=d*f+h*u+g;if(p!==0&&v!==0&&zg(p)===zg(v))return;const x=u-l,m=c-f,y=f*l-c*u,w=x*i+m*o+y,C=x*a+m*s+y;if(w!==0&&C!==0&&zg(w)===zg(C))return;const S=d*m-x*h;let T;T=h*y-m*g;const _=T/S;T=x*g-d*y;const E=T/S;return[_,E]}const cf=.01;function Wp(t,e,r){const n=t[0]<=e[0]?t[0]:e[0],i=t[0]>=e[0]?t[0]:e[0],o=t[1]<=e[1]?t[1]:e[1],a=t[1]>=e[1]?t[1]:e[1];if(!(r[0]>=n-cf&&r[0]<=i+cf&&r[1]>=o-cf&&r[1]<=a+cf))return!1;const c=(e[1]-t[1])*(r[0]-e[0])-(e[0]-t[0])*(r[1]-e[1]);return(c>=0?c:-c)<=cf}const uue=Object.freeze(Object.defineProperty({__proto__:null,distanceToPoint:Pr,distanceToPointSquared:Rh,distanceToPointSquaredInfo:hm,intersectLine:b3,isPointOnLineSegment:Wp},Symbol.toStringTag,{value:"Module"}));function _N(t){if(t.length<3)return!1;const e=t.length,r=t[0],n=t[e-1],i=Ja(r,n);return Xs(0,i)}function gl(t,e,r={closed:void 0}){if(t.length<3)return!1;const n=t.length;let i=0;const{closed:o,holes:a}=r;if(a!=null&&a.length){for(const l of a)if(gl(l,e))return!1}const s=!(o===void 0?_N(t):o),c=t.length-(s?1:2);for(let l=0;l<=c;l++){const f=t[l],u=l===n-1?0:l+1,d=t[u],h=f[0]>=d[0]?f[0]:d[0],g=f[1]>=d[1]?f[1]:d[1],p=f[1]<=d[1]?f[1]:d[1];if(e[0]<=h&&e[1]>=p&&e[1]h?s:h,c=c>g?c:g,i&&(l=lp?f:p)}return i?{minX:o,maxX:s,minY:a,maxY:c,minZ:l,maxZ:f}:{minX:o,maxX:s,minY:a,maxY:c}}function Lh(t){const e=t.length;let r=0,n=e-1;for(let i=0;i=0?1:-1}function fue(t){const e=we(),r=t[0];for(let n=0,i=t.length;ne[0]?t[0]:e[0],c=t[1]>e[1]?t[1]:e[1],l=r[0]n[0]?r[0]:n[0],d=r[1]>n[1]?r[1]:n[1];if(o>u||sd||c0?1:2}function jg(t,e,r){return e[0]<=Math.max(t[0],r[0])&&e[0]>=Math.min(t[0],r[0])&&e[1]<=Math.max(t[1],r[1])&&e[1]>=Math.min(t[1],r[1])}function QC(t,e,r,n=!0){const i=[],o=t.length,a=o-(n?1:2);for(let s=0;s<=a;s++){const c=t[s],l=s===o-1?0:s+1,f=t[l];ZC(e,r,c,f)&&i.push([s,l])}return i}const hue=.01;function EN(t,e,r,n){const i=[e[0]-t[0],e[1]-t[1]],o=[n[0]-r[0],n[1]-r[1]],a=o[1]*i[0]-o[0]*i[1];if((a>=0?a:-a)e[0]?t[0]:e[0],t[1]e[1]?t[1]:e[1]],p=[r[0]n[0]?r[0]:n[0],r[1]n[1]?r[1]:n[1]];if(!(g[0]<=p[1]&&g[1]>=p[0]&&g[2]<=p[3]&&g[3]>=p[2])||!(Wp(t,e,r)||Wp(t,e,n)||Wp(r,n,t)))return;const m=g[0]>p[0]?g[0]:p[0],y=g[1]p[2]?g[2]:p[2],C=g[3]{const p=g[0],v=e[g[0]],x=e[g[1]],m=EN(l,d,v,x),y=Ja(l,m);return{sourceLineSegmentId:p,coordinate:m,targetStartPointDistSquared:y}});h.sort((g,p)=>g.targetStartPointDistSquared-p.targetStartPointDistSquared),h.forEach(g=>{const{sourceLineSegmentId:p,coordinate:v}=g,x={type:Jc.Intersection,coordinates:v,position:Nu.Edge,direction:a,visited:!1,next:null},m={...x,direction:lu.Unknown,cloned:!0};a===lu.Entering?x.next=m:m.next=x;let y=i.get(p);y||(y=[],i.set(p,y)),r.push(x),y.push(m),a*=-1})}for(let s=0,c=e.length;s({intersectionPoint:h,lineSegStartDistSquared:Ja(f,h.coordinates)})).sort((h,g)=>h.lineSegStartDistSquared-g.lineSegStartDistSquared).map(({intersectionPoint:h})=>h).forEach(h=>n.push(h))}return H_(r),H_(n),{targetPolylinePoints:r,sourcePolylinePoints:n}}function bN(t){for(let e=0,r=t.length;ed&&(d=v,h=g)}d{const u=[t[f[0]],t[f[1]]],d=[(u[0][0]+u[1][0])/2,(u[0][1]+u[1][1])/2];s.push(bn(d,e))});const c=Math.min(...s),l=s.indexOf(c);return{segment:a[l],distance:c}}const $l=.001,mue=(t,e)=>{let r,n,i;if(t instanceof ln){const a=t.getImageData();n=a.direction.slice(0,3),i=a.direction.slice(3,6),r=a.spacing}else{const a=t.getImageData(),{direction:s,spacing:c}=a,{viewPlaneNormal:l,viewUp:f}=t.getCamera(),u=s.slice(0,3),d=s.slice(3,6),h=s.slice(6,9),g=we();Kt(g,f,l);const p=Math.abs(je(g,u)),v=Math.abs(je(g,d)),x=Math.abs(je(g,h));let m;if(Math.abs(1-p)<$l)m=c[0],n=u;else if(Math.abs(1-v)<$l)m=c[1],n=d;else if(Math.abs(1-x)<$l)m=c[2],n=h;else throw new Error("No support yet for oblique plane planar contours");const y=Math.abs(je(f,u)),w=Math.abs(je(f,d)),C=Math.abs(je(f,h));let S;if(Math.abs(1-y)<$l)S=c[0],i=u;else if(Math.abs(1-w)<$l)S=c[1],i=d;else if(Math.abs(1-C)<$l)S=c[2],i=h;else throw new Error("No support yet for oblique plane planar contours");r=[m,S]}return{spacing:[r[0]/e,r[1]/e],xDir:n,yDir:i}},vue=(t,e,r)=>Dw(t,e){const{xDir:i,yDir:o,spacing:a}=n,s=re(t),{viewport:c}=s;if(!e.length)return e.push(r),console.log(">>>>> !canvasPoints. :: RETURN"),1;const l=c.canvasToWorld(e[e.length-1]),f=c.canvasToWorld(r),u=we();kt(u,f,l);const d=Math.abs(je(u,i)),h=Math.abs(je(u,o)),g=Math.max(Math.floor(d/a[0]),Math.floor(h/a[0]));if(g>1){const p=e[e.length-1],v=Dw(p,r),x=ot();kn(x,r,p),eo(x,x[0]/v,x[1]/v);const m=v/g;for(let y=1;y<=g;y++)e.push([p[0]+m*x[0]*y,p[1]+m*x[1]*y])}else e.push(r);return g},xue=(t,e,r,n)=>{const i=[t[0]-e[0],t[1]-e[1]],o=[r[0]-e[0],r[1]-e[1]],a=i[0]*o[0]+i[1]*o[1];if(a<0)return!1;const s=Math.sqrt(o[0]*o[0]+o[1]*o[1]);if(s===0)return!1;const c=a/s,l=[o[0]/s,o[1]/s],f=[l[0]*c,l[1]*c],u=[e[0]+f[0],e[1]+f[1]];return!(bn(t,u)>n||bn(e,u)>bn(e,r))},wue=1e-6;function PN(t){let e;const r=xR(t,50);for(let a=0;a<3;a++)if(r.every((s,c,l)=>Math.abs(s[a]-l[0][a]){const[l,f]=s[c],u=Pr(l,f,e);u0){if(o>i)return 0;o>n&&(r[0]=o)}else{if(o=r[0]&&o<=r[2]&&a>=r[1]&&a<=r[3])return K_;const u=[0,1];if(Hg(r[0]-o,l,u)&&Hg(o-r[2],-l,u)&&Hg(r[1]-a,f,u)&&Hg(a-r[3],-f,u)){const[d,h]=u;return h<1&&(i[0]=o+h*l,i[1]=a+h*f),d>0&&(n[0]+=d*l,n[1]+=d*f),K_}return _ue}const Eue=Object.freeze(Object.defineProperty({__proto__:null,findClosestPoint:I3,liangBarksyClip:Nf},Symbol.toStringTag,{value:"Module"})),Due=Object.freeze(Object.defineProperty({__proto__:null,BasicStatsCalculator:sue,aabb:aue,ellipse:cue,lineSegment:uue,point:lue,polyline:lc,rectangle:Sue,vec2:Eue},Symbol.toStringTag,{value:"Module"})),{EPSILON:bue}=Sl,Iue=1-bue;function tS(t,e,r){const{viewPlaneNormal:n}=e,i=t.filter(c=>{let l=c.metadata.viewPlaneNormal;if(!l){const{referencedImageId:u}=c.metadata,{imageOrientationPatient:d}=Pe("imagePlaneModule",u),h=Ye(d[0],d[1],d[2]),g=Ye(d[3],d[4],d[5]);l=we(),Kt(l,h,g),c.metadata.viewPlaneNormal=l}const f=Math.abs(je(n,l))>Iue;return l&&f});if(!i.length)return[];const o=r/2,{focalPoint:a}=e,s=[];for(const c of i){const f=c.data.handles.points[0];if(!c.isVisible)continue;const u=we();Qt(u,a,f);const d=je(u,n);Math.abs(d)n.isVisible?n.data.isCanvasAnnotation?!0:t.isReferenceViewable(n.metadata,r):!1)}function nS(t,e,r,n,i=.25){const o=t.getCamera(),{position:a}=o,{spacingInNormalDirection:s}=E0(t,o,r),c=s*i,l=t.getBounds(),f=l[0],u=l[1],d=[0,0,0];let h=[0,0,0];nt.subtract(e,a,d);let g;for(let p=f;p<=u;p=p+c){h=[p,0,0];const v=(p-a[0])/d[0];if(h[1]=v*d[1]+a[1],h[2]=v*d[2]+a[2],Oue(h,l)){const x=t.getIntensityFromWorld(h),m=n(x,h);m&&(g=m)}}return g}const Oue=function(t,e){const[r,n,i,o,a,s]=e;return t[0]>r&&t[0]i&&t[1]a&&t[2]{const c=[Ye(r,n,i),Ye(o,n,i),Ye(r,a,i),Ye(o,a,i),Ye(r,n,s),Ye(o,n,s),Ye(r,a,s),Ye(o,a,s)],l=Ye(e[0],e[1],e[2]),f=Ye(t[0],t[1],t[2]),u=-je(l,f);let d=null;for(const h of c){const g=je(l,h)+u;if(d===null)d=Math.sign(g);else if(Math.sign(g)!==d)return!0}return!1},{EPSILON:Mue}=Sl,Rue=1-Mue;function b2(t,e){const{viewPlaneNormal:r}=e,n=t.filter(i=>{let o=i.metadata.viewPlaneNormal;if(!o){const{referencedImageId:s}=i.metadata,{imageOrientationPatient:c}=Pe("imagePlaneModule",s),l=Ye(c[0],c[1],c[2]),f=Ye(c[3],c[4],c[5]);o=we(),Kt(o,l,f),i.metadata.viewPlaneNormal=o}const a=Math.abs(je(r,o))>Rue;return o&&a});return n.length?n:[]}const Lue={filterAnnotationsWithinSlice:tS,getWorldWidthAndHeightFromCorners:E2,filterAnnotationsForDisplay:D2,getPointInLineOfSightWithCriteria:nS,isPlaneIntersectingAABB:kN,filterAnnotationsWithinSamePlane:b2},Nue=Object.freeze(Object.defineProperty({__proto__:null,default:Lue,filterAnnotationsForDisplay:D2,filterAnnotationsWithinSamePlane:b2,filterAnnotationsWithinSlice:tS,getPointInLineOfSightWithCriteria:nS,getWorldWidthAndHeightFromCorners:E2,isPlaneIntersectingAABB:kN},Symbol.toStringTag,{value:"Module"}));function Qr(t,e,r){let n=!0,i=!0;if(typeof t!="function")throw new TypeError("Expected a function");return BC(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),S2(t,e,{leading:n,trailing:i,maxWait:e})}function VN(t,e){const r=t.length,n=[];for(let i=0;i{const i=n.getCamera();return Math.abs(je(i.viewPlaneNormal,e.viewPlaneNormal))>r})}function He(t,e,r=!0){const n=re(t),{renderingEngine:i,FrameOfReferenceUID:o}=n;let a=i.getViewports();a=VN(a,o),a=I2(a,e);const s=i.getViewport(n.viewportId);return r&&(a=FN(a,s.getCamera())),a.map(l=>l.id)}const Fue=Object.freeze(Object.defineProperty({__proto__:null,filterViewportsWithFrameOfReferenceUID:VN,filterViewportsWithParallelNormals:FN,filterViewportsWithToolEnabled:I2,getViewportIdsWithToolToRender:He},Symbol.toStringTag,{value:"Module"})),Uue="viewport-element";function Bue(t){const e=re(t),{viewportId:r,renderingEngineId:n}=e,i=`${r}:${n}`,o=Gue(t);return Object.keys(ve.svgNodeCache[i]).forEach(a=>{ve.svgNodeCache[i][a].touched=!1}),{svgLayerElement:o,svgNodeCacheForCanvas:ve.svgNodeCache,getSvgNode:Wue.bind(this,i),appendNode:zue.bind(this,o,i),setNodeTouched:$ue.bind(this,i),clearUntouched:jue.bind(this,o,i)}}function Gue(t){const e=`.${Uue}`,r=t.querySelector(e);return r==null?void 0:r.querySelector(":scope > .svg-layer")}function Wue(t,e){if(ve.svgNodeCache[t]&&ve.svgNodeCache[t][e])return ve.svgNodeCache[t][e].domRef}function zue(t,e,r,n){if(!ve.svgNodeCache[e])return null;ve.svgNodeCache[e][n]={touched:!0,domRef:r},t.appendChild(r)}function $ue(t,e){ve.svgNodeCache[t]&&ve.svgNodeCache[t][e]&&(ve.svgNodeCache[t][e].touched=!0)}function jue(t,e){ve.svgNodeCache[e]&&Object.keys(ve.svgNodeCache[e]).forEach(r=>{const n=ve.svgNodeCache[e][r];!n.touched&&n.domRef&&(t.removeChild(n.domRef),delete ve.svgNodeCache[e][r])})}function UN(t,e){const r=Bue(t);e(r),r.clearUntouched()}function ns(t,e,r){return`${t}::${e}::${r}`}function co(t,e){Object.keys(t).forEach(r=>{const n=e.getAttribute(r),i=t[r];i===void 0||i===""?e.removeAttribute(r):n!==i&&e.setAttribute(r,i)})}function rs(t,e){Object.keys(t).forEach(r=>{const n=t[r];n!==void 0&&n!==""&&e.setAttribute(r,n)})}function bi(t,e,r,n,i,o={},a=""){const{color:s,fill:c,width:l,lineWidth:f,lineDash:u,fillOpacity:d,strokeOpacity:h}=Object.assign({color:"rgb(0, 255, 0)",fill:"transparent",width:"2",lineDash:void 0,lineWidth:void 0,strokeOpacity:1,fillOpacity:1},o),g=f||l,p="http://www.w3.org/2000/svg",v=ns(e,"circle",r),x=t.getSvgNode(v),m={cx:`${n[0]}`,cy:`${n[1]}`,r:`${i}`,stroke:s,fill:c,"stroke-width":g,"stroke-dasharray":u,"fill-opacity":d,"stroke-opacity":h};if(x)co(m,x),t.setNodeTouched(v);else{const y=document.createElementNS(p,"circle");a!==""&&y.setAttribute("data-id",a),rs(m,y),t.appendNode(y,v)}}function rS(t,e,r,n,i={},o=""){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},i),f=c||s,u="http://www.w3.org/2000/svg",d=ns(e,"ellipse",r),h=t.getSvgNode(d),[g,p,v,x]=n,m=Math.hypot(v[0]-x[0],v[1]-x[1]),y=Math.hypot(p[0]-g[0],p[1]-g[1]),w=Math.atan2(v[1]-x[1],v[0]-x[0])*180/Math.PI,C=[(v[0]+x[0])/2,(p[1]+g[1])/2],S=m/2,T=y/2,_={cx:`${C[0]}`,cy:`${C[1]}`,rx:`${S}`,ry:`${T}`,stroke:a,fill:"transparent",transform:`rotate(${w} ${C[0]} ${C[1]})`,"stroke-width":f,"stroke-dasharray":l};if(h)co(_,h),t.setNodeTouched(d);else{const E=document.createElementNS(u,"ellipse");o!==""&&E.setAttribute("data-id",o),rs(_,E),t.appendNode(E,d)}}function Hue(t,e,r,n,i,o={},a=""){const s=[(n[0]+i[0])/2,n[1]],c=[(n[0]+i[0])/2,i[1]],l=[n[0],(n[1]+i[1])/2],f=[i[0],(n[1]+i[1])/2];rS(t,e,r,[c,s,l,f],o={},a="")}function gm(t,e,r,n,i={},o){const{color:a,handleRadius:s,width:c,lineWidth:l,fill:f,type:u,opacity:d}=Object.assign({color:"rgb(0, 255, 0)",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle",opacity:1},i),h=l||c,g="http://www.w3.org/2000/svg",p=ns(e,"handle",`hg-${r}-index-${o}`);let v;if(u==="circle")v={cx:`${n[0]}`,cy:`${n[1]}`,r:s,stroke:a,fill:f,"stroke-width":h,opacity:d};else if(u==="rect"){const y=parseFloat(s)*1.5,w=n[0]-y*.5,C=n[1]-y*.5;v={x:`${w}`,y:`${C}`,width:`${y}`,height:`${y}`,stroke:a,fill:f,"stroke-width":h,rx:`${y*.1}`,opacity:d}}else throw new Error(`Unsupported handle type: ${u}`);const x=t.getSvgNode(p);if(x)co(v,x),t.setNodeTouched(p);else{const m=document.createElementNS(g,u);rs(v,m),t.appendNode(m,p)}}function sn(t,e,r,n,i={}){n.forEach((o,a)=>{gm(t,e,r,o,i,a)})}function It(t,e,r,n,i,o={},a=""){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:s,width:c,lineWidth:l,lineDash:f,shadow:u}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},o),d=l||c,h="http://www.w3.org/2000/svg",g=ns(e,"line",r),p=t.getSvgNode(g),v=u?`filter:url(#shadow-${t.svgLayerElement.id});`:"",x={x1:`${n[0]}`,y1:`${n[1]}`,x2:`${i[0]}`,y2:`${i[1]}`,stroke:s,style:v,"stroke-width":d,"stroke-dasharray":f};if(p)co(x,p),t.setNodeTouched(g);else{const m=document.createElementNS(h,"line");a!==""&&m.setAttribute("data-id",a),rs(x,m),t.appendNode(m,g)}}function BN(t,e,r,n,i,o={}){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o),f=i[0]+(n[0]-i[0])/2,u=[f,n[1]],d=[f,i[1]],h={start:n,end:u},g={start:u,end:d},p={start:d,end:i};It(t,e,"1",h.start,h.end,{color:a,width:s,lineWidth:c}),It(t,e,"2",g.start,g.end,{color:a,width:s,lineWidth:c}),It(t,e,"3",p.start,p.end,{color:a,width:s,lineWidth:c})}function ua(t,e,r,n,i){if(n.length<2)return;const{color:o="rgb(0, 255, 0)",width:a=10,fillColor:s="none",fillOpacity:c=0,lineWidth:l,lineDash:f,closePath:u=!1}=i,d=l||a,h="http://www.w3.org/2000/svg",g=ns(e,"polyline",r),p=t.getSvgNode(g);let v="";for(const m of n)v+=`${m[0].toFixed(1)}, ${m[1].toFixed(1)} `;if(u){const m=n[0];v+=`${m[0]}, ${m[1]}`}const x={points:v,stroke:o,fill:s,"fill-opacity":c,"stroke-width":d,"stroke-dasharray":f};if(p)co(x,p),t.setNodeTouched(g);else{const m=document.createElementNS(h,"polyline");rs(x,m),t.appendNode(m,g)}}function $s(t,e,r,n,i){const a=n.length&&n[0].length&&Array.isArray(n[0][0])?n:[n],{color:s="rgb(0, 255, 0)",width:c=10,fillColor:l="none",fillOpacity:f=0,lineWidth:u,lineDash:d,closePath:h=!1}=i,g=u||c,p="http://www.w3.org/2000/svg",v=ns(e,"path",r),x=t.getSvgNode(v);let m="";for(let w=0,C=a.length;wm.length){for(let C=0;C0?I3(n,i):i,c=Yue(o),l=I3(c,s),f=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},a);It(t,e,`link-${r}`,s,l,f)}function Yue(t){const{x:e,y:r,height:n,width:i}=t,o=i/2,a=n/2,s=[e+o,r],c=[e,r+a],l=[e+o,r+n],f=[e+i,r+a];return[s,c,l,f]}function ei(t,e,r,n,i,o,a,s={}){const c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},s),l=pl(t,e,r,n,i,c);return Xue(t,e,r,o,i,l,c),l}function iS(t,e,r,n,i={},o=""){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},i),f=c||s,u="http://www.w3.org/2000/svg",d=ns(e,"rect",r),h=t.getSvgNode(d),[g,p,v,x]=n,m=Math.hypot(g[0]-p[0],g[1]-p[1]),y=Math.hypot(g[0]-v[0],g[1]-v[1]),w=[(x[0]+g[0])/2,(x[1]+g[1])/2],C=[(v[0]+g[0])/2,(v[1]+g[1])/2],S=Math.atan2(w[1]-C[1],w[0]-C[0])*180/Math.PI,T={x:`${w[0]-m/2}`,y:`${w[1]-y/2}`,width:`${m}`,height:`${y}`,stroke:a,fill:"transparent",transform:`rotate(${S} ${w[0]} ${w[1]})`,"stroke-width":f,"stroke-dasharray":l};if(h)co(T,h),t.setNodeTouched(d);else{const _=document.createElementNS(u,"rect");o!==""&&_.setAttribute("data-id",o),rs(T,_),t.appendNode(_,d)}}function Nh(t,e,r,n,i,o={},a=""){const s=[n[0],n[1]],c=[i[0],n[1]],l=[n[0],i[1]],f=[i[0],i[1]];iS(t,e,r,[s,c,l,f],o,a)}function pm(t,e,r,n,i,o={}){if(isNaN(n[0])||isNaN(n[1])||isNaN(i[0])||isNaN(i[1]))return;const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o);It(t,e,r,n,i,{color:a,width:s,lineWidth:c,lineDash:l});const f=10,u=Math.atan2(i[1]-n[1],i[0]-n[0]),d={start:[i[0]-f*Math.cos(u-Math.PI/7),i[1]-f*Math.sin(u-Math.PI/7)],end:i},h={start:[i[0]-f*Math.cos(u+Math.PI/7),i[1]-f*Math.sin(u+Math.PI/7)],end:i};It(t,e,"2",d.start,d.end,{color:a,width:s,lineWidth:c}),It(t,e,"3",h.start,h.end,{color:a,width:s,lineWidth:c})}function GN(t,e,r,n,i,o={}){const{color:a,width:s,lineWidth:c,lineDash:l}=Object.assign({color:"rgb(0, 255, 0)",width:"2",lineWidth:void 0,lineDash:void 0},o),f=c||s,u="http://www.w3.org/2000/svg",d=ns(e,"rect",r),h=t.getSvgNode(d),g=[Math.min(n[0],i[0]),Math.min(n[1],i[1])],p=Math.abs(n[0]-i[0]),v=Math.abs(n[1]-i[1]),x={x:`${g[0]}`,y:`${g[1]}`,width:`${p}`,height:`${v}`,stroke:a,fill:"black","stroke-width":f,"stroke-dasharray":l};if(h)co(x,h),t.setNodeTouched(d);else{const m=document.createElementNS(u,"rect");rs(x,m),t.appendNode(m,d)}}const Jue=Object.freeze(Object.defineProperty({__proto__:null,draw:UN,drawArrow:pm,drawCircle:bi,drawEllipse:Hue,drawEllipseByCoordinates:rS,drawHandle:gm,drawHandles:sn,drawHeight:BN,drawLine:It,drawLinkedTextBox:ei,drawPath:$s,drawPolyline:ua,drawRect:Nh,drawRectByCoordinates:iS,drawRedactionRect:GN,drawTextBox:pl,setAttributesIfNecessary:co,setNewAttributesIfValid:rs},Symbol.toStringTag,{value:"Module"}));function WN(t,e){const r=re(t),{renderingEngineId:n,viewportId:i}=r,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;c{this._throwIfDestroyed();const e=Array.from(this._viewportElements.values());for(let r=0;r{this._needsRender.add(r)}),this._renderFlaggedViewports()}_setViewportsToBeRenderedNextFrame(e){const r=[...this._viewportElements.values()];e.forEach(n=>{r.indexOf(n)!==-1&&this._needsRender.add(n)}),this._render()}_render(){this._needsRender.size>0&&this._animationFrameSet===!1&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}_triggerRender(e){const r=re(e);if(!r)return;if(!gr(r.renderingEngineId)){console.warn("rendering Engine has been destroyed");return}const i=WN(e,[Zue,Que,e0e]),{renderingEngineId:o,viewportId:a}=r,s={element:e,renderingEngineId:o,viewportId:a};UN(e,c=>{let l=!1;const f=u=>{if(u.renderAnnotation){const d=u.renderAnnotation(r,c);l=l||d}};i.forEach(f),l&&De(e,F.ANNOTATION_RENDERED,{...s})})}_reset(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null,this._setAllViewportsToBeRenderedNextFrame()}}const oS=new t0e;function L0(t){oS.renderViewport(t)}function pe(t){t.length&&t.forEach(e=>{const r=Xn(e);if(!r){console.warn(`Viewport not available for ${e}`);return}const{viewport:n}=r;if(!n){console.warn(`Viewport not available for ${e}`);return}const i=n.element;L0(i)})}function n0e(t){var e;return((e=t[0])==null?void 0:e.length)===3}function r0e(t,e){if(!e||e.length===0||e.length===t.length)return t;const r=e[e.length-1]-e[0]+1,n=zv(e.map(o=>t[o][0])),i=zv(e.map(o=>t[o][1]));if(n0e(t)){const o=zv(e.map(a=>t[a][2]));return q8(rf(n,r),rf(i,r),rf(o,r))}else return q8(rf(n,r),rf(i,r))}function i0e(t,e){const r=[],[n,i]=e,o=i-n+1,a=Math.floor(o/t);let s=0,c=Math.round((o-1)/(a-1)*s)+n;for(;c<=i;)r.push(c),s++,c=Math.round((o-1)/(a-1)*s)+n;return r}function M3(t,e,r,n){const i=r-e+1,o=Math.floor(n/100*i)??1,a=Math.floor(i/o)??1;if(isNaN(i)||!i||!a||i/a<2)return t;const s=Math.max(0,e),c=Math.min(t.length-1,r),l=t.slice(0,s),f=t.slice(c+1,t.length),u=i0e(a,[s,c]),d=r0e(t,u);return[...l,...d,...f]}function O2(t,e){var n,i;return e!=null&&e.autoGenerated?!1:((n=t==null?void 0:t.smoothing)==null?void 0:n.smoothOnAdd)===!0||((i=t==null?void 0:t.smoothing)==null?void 0:i.smoothOnEdit)===!0}function o0e(t,e){return so(t,e)<.001}function a0e(t,e){return so(t,e)===0}function s0e(t,e){for(let r=0;ro0e(c,l)===!1,[o,a]=Y_([uu(r,t.length,1),r,t],[uu(n,e.length,1),n,e],i,1),[s]=Y_([uu(o,t.length,-1),o,t],[uu(a,e.length,-1),a,e],i,-1);return[o,s]}function M2(t,e,r){const{interpolation:n,smoothing:i}=t,o=e;if(n){const{knotsRatioPercentageOnAdd:a,knotsRatioPercentageOnEdit:s,smoothOnAdd:c=!1,smoothOnEdit:l=!1}=i,f=r?s:a;if(r?l:c){const[d,h]=r?c0e(e,r):[0,e.length-1];return!e[d]||!e[h]?e:M3(e,d,h,f)}}return o}const N0=t=>{if(t.shiftKey)return t.ctrlKey?vr.ShiftCtrl:t.altKey?vr.ShiftAlt:t.metaKey?vr.ShiftMeta:vr.Shift;if(t.ctrlKey)return t.altKey?vr.CtrlAlt:t.metaKey?vr.CtrlMeta:vr.Ctrl;if(t.altKey)return t.metaKey&&vr.AltMeta||vr.Alt;if(t.metaKey)return vr.Meta};function aS(t,e){const r=t[0],n=t[t.length-1],i=ot();eo(i,n[0]-r[0],n[1]-r[1]),Na(i,i);const o=ot(),a=ot();eo(o,-i[1],i[0]),eo(a,i[1],-i[0]);const s=[(r[0]+n[0])/2,(r[1]+n[1])/2],c={dist:0,index:null};for(let u=0;uc.dist&&(c.dist=h,c.index=u)}return[t[c.index],s].map(e.canvasToWorld)}function l0e(t,e){const{viewport:r}=t,n=e.data.contour.polyline.map(r.worldToCanvas);return aS(n,r)}var ec;(function(t){t[t.CounterClockwise=-1]="CounterClockwise",t[t.Unknown=0]="Unknown",t[t.Clockwise=1]="Clockwise"})(ec||(ec={}));const{addCanvasPointsToArray:sS,pointsAreWithinCloseContourProximity:zN,getFirstLineSegmentIntersectionIndexes:$N,getSubPixelSpacingAndXYDirections:u0e}=lc;function f0e(t,e,r){this.isDrawing=!0;const n=t.detail,{currentPoints:i,element:o}=n,a=i.canvas,s=re(o),{viewport:c}=s,l=N0(t.detail.event)===this.configuration.contourHoleAdditionModifierKey,{spacing:f,xDir:u,yDir:d}=u0e(c,this.configuration.subPixelResolution);this.drawData={canvasPoints:[a],polylineIndex:0,contourHoleProcessingEnabled:l},this.commonData={annotation:e,viewportIdsToRender:r,spacing:f,xDir:u,yDir:d,movingTextBox:!1},ve.isInteractingWithTool=!0,o.addEventListener(F.MOUSE_UP,this.mouseUpDrawCallback),o.addEventListener(F.MOUSE_DRAG,this.mouseDragDrawCallback),o.addEventListener(F.MOUSE_CLICK,this.mouseUpDrawCallback),o.addEventListener(F.TOUCH_END,this.mouseUpDrawCallback),o.addEventListener(F.TOUCH_DRAG,this.mouseDragDrawCallback),o.addEventListener(F.TOUCH_TAP,this.mouseUpDrawCallback),Qe(o)}function d0e(t){ve.isInteractingWithTool=!1,t.removeEventListener(F.MOUSE_UP,this.mouseUpDrawCallback),t.removeEventListener(F.MOUSE_DRAG,this.mouseDragDrawCallback),t.removeEventListener(F.MOUSE_CLICK,this.mouseUpDrawCallback),t.removeEventListener(F.TOUCH_END,this.mouseUpDrawCallback),t.removeEventListener(F.TOUCH_DRAG,this.mouseDragDrawCallback),t.removeEventListener(F.TOUCH_TAP,this.mouseUpDrawCallback),ct(t)}function h0e(t){const e=t.detail,{currentPoints:r,element:n}=e,i=r.world,o=r.canvas,a=re(n),{renderingEngine:s,viewport:c}=a,{annotation:l,viewportIdsToRender:f,xDir:u,yDir:d,spacing:h,movingTextBox:g}=this.commonData,{polylineIndex:p,canvasPoints:v}=this.drawData,x=v[v.length-1],m=c.canvasToWorld(x),y=we();kt(y,i,m);const w=Math.abs(je(y,u)),C=Math.abs(je(y,d));if(!(w<=h[0]&&C<=h[1])){if(g){this.isDrawing=!1;const{deltaPoints:S}=e,T=S.world,{textBox:_}=l.data.handles,{worldPosition:E}=_;E[0]+=T[0],E[1]+=T[1],E[2]+=T[2],_.hasMoved=!0}else{const S=this.findCrossingIndexDuringCreate(t);if(S!==void 0)this.applyCreateOnCross(t,S);else{const T=sS(n,v,o,this.commonData);this.drawData.polylineIndex=p+T}}pe(f)}}function g0e(t){const{allowOpenContours:e}=this.configuration,{canvasPoints:r,contourHoleProcessingEnabled:n}=this.drawData,i=r[0],o=r[r.length-1],a=t.detail,{element:s}=a;e&&!zN(i,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(s,{contourHoleProcessingEnabled:n}):this.completeDrawClosedContour(s,{contourHoleProcessingEnabled:n})}function p0e(t,e){this.removeCrossedLinesOnCompleteDraw();const{canvasPoints:r}=this.drawData,{contourHoleProcessingEnabled:n,minPointsToSave:i}=e??{};if(i&&r.length=2)if(c.length>this.configuration.checkCanvasEditFallbackProximity){const u=c[0],d=[];for(let p=0;pp.distance-v.distance);const h=[d[0],d[1]],g=Math.min(h[0].index,h[1].index);this.editData.startCrossingIndex=g}else{const u=ot();kn(u,c[1],c[0]),Na(u,u);const d=6,h=[c[0][0]-u[0]*d,c[0][1]-u[1]*d],g=ml(l,h,c[0],e);if(g){const p=[h];_0e(n,p,c[0],this.commonData),c.unshift(...p),this.removePointsUpUntilFirstCrossing(e),this.editData.editIndex=c.length-1,this.editData.startCrossingIndex=g[0]}}}function D0e(t){const{editCanvasPoints:e,prevCanvasPoints:r}=this.editData;let n=0;for(let i=0;i0;n--){const i=[r[n],r[n-1]],o=!!ml(e,i[0],i[1],t);if(r.pop(),o)break}}function O0e(){const{editCanvasPoints:t,prevCanvasPoints:e,startCrossingIndex:r}=this.editData;if(r===void 0)return;const n=t[t.length-1],i=[];for(let a=0;aa.distance-s.distance);const o=t.slice(0,-1);for(let a=0;a3){const x=Ja(c[0],c[u-1]);v=pt(0,x)}f=v}if((n==null?void 0:n.updateWindingDirection)!==!1){let v=h?h.data.contour.windingDirection*-1:s;v===void 0&&(v=l),v!==l&&c.reverse();const x=a.handles.points.map(m=>o(m));x.length>2&&zp(x)!==v&&a.handles.points.reverse(),l=v}for(let v=0;v1&&this.checkForFirstCrossing(t,!0),this.editData.snapIndex=this.findSnapIndex(),this.editData.snapIndex===-1){this.finishEditAndStartNewEdit(t);return}this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(t),p!==void 0&&this.checkForSecondCrossing(t,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(t)),pe(l)}function k0e(t){const e=t.detail,{element:r}=e,n=re(r),{viewport:i,renderingEngine:o}=n,{annotation:a,viewportIdsToRender:s}=this.commonData,{fusedCanvasPoints:c,editCanvasPoints:l}=this.editData;is(a,{points:c,closed:!0,targetWindingDirection:ec.Clockwise},i),a.autoGenerated&&(a.autoGenerated=!1),fn(a,r);const f=l.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[f],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},pe(s)}function V0e(t){const{prevCanvasPoints:e,editCanvasPoints:r,startCrossingIndex:n,snapIndex:i}=this.editData;if(n===void 0||i===void 0)return;const o=t.detail,{element:a}=o,s=[...r];jN(a,s,e[i],this.commonData),s.length>r.length&&s.pop();let c,l;n>i?(c=i,l=n):(c=n,l=i);const f=bn(e[c],s[0]),u=bn(e[c],s[s.length-1]),d=bn(e[l],s[0]),h=bn(e[l],s[s.length-1]),g=[];for(let C=0;C=0;C--){const S=s[C];g.push([S[0],S[1]])}for(let C=l;C=0;C--){const S=s[C];x.push([S[0],S[1]])}const m=J_(g),y=J_(x);return m>y?g:x}function F0e(t){const e=t.detail,{element:r}=e;this.completeClosedContourEdit(r)}function U0e(t){var c;const e=re(t),{viewport:r,renderingEngine:n}=e,{annotation:i,viewportIdsToRender:o}=this.commonData,{fusedCanvasPoints:a,prevCanvasPoints:s}=this.editData;if(a){const l=O2(this.configuration,i)?M2(this.configuration,a,s):a,f=((c=this.configuration)==null?void 0:c.decimate)||{};is(i,{points:l,closed:!0,targetWindingDirection:ec.Clockwise},r,{decimate:{enabled:!!f.enabled,epsilon:f.epsilon}}),i.autoGenerated&&(i.autoGenerated=!1),fn(i,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,pe(o),this.deactivateClosedContourEdit(t)}function B0e(t){this.completeClosedContourEdit(t)}function G0e(t){t.activateClosedContourEdit=N0e.bind(t),t.deactivateClosedContourEdit=P0e.bind(t),t.mouseDragClosedContourEditCallback=A0e.bind(t),t.mouseUpClosedContourEditCallback=F0e.bind(t),t.finishEditAndStartNewEdit=k0e.bind(t),t.fuseEditPointsWithClosedContour=V0e.bind(t),t.cancelClosedContourEdit=B0e.bind(t),t.completeClosedContourEdit=U0e.bind(t)}const{addCanvasPointsToArray:HN,getSubPixelSpacingAndXYDirections:W0e}=lc;function z0e(t,e,r){this.isEditingOpen=!0;const n=t.detail,{currentPoints:i,element:o}=n,a=i.canvas,s=re(o),{viewport:c}=s,l=e.data.contour.polyline.map(c.worldToCanvas),{spacing:f,xDir:u,yDir:d}=W0e(c,this.configuration.subPixelResolution);this.editData={prevCanvasPoints:l,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:e,viewportIdsToRender:r,spacing:f,xDir:u,yDir:d,movingTextBox:!1},ve.isInteractingWithTool=!0,o.addEventListener(F.MOUSE_UP,this.mouseUpOpenContourEditCallback),o.addEventListener(F.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),o.addEventListener(F.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),o.addEventListener(F.TOUCH_END,this.mouseUpOpenContourEditCallback),o.addEventListener(F.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),o.addEventListener(F.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Qe(o)}function $0e(t){ve.isInteractingWithTool=!1,t.removeEventListener(F.MOUSE_UP,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),t.removeEventListener(F.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.TOUCH_END,this.mouseUpOpenContourEditCallback),t.removeEventListener(F.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),t.removeEventListener(F.TOUCH_TAP,this.mouseUpOpenContourEditCallback),ct(t)}function j0e(t){const e=t.detail,{currentPoints:r,element:n}=e,i=r.world,o=r.canvas,a=re(n),{renderingEngine:s,viewport:c}=a,{viewportIdsToRender:l,xDir:f,yDir:u,spacing:d}=this.commonData,{editIndex:h,editCanvasPoints:g,startCrossingIndex:p}=this.editData,v=g[g.length-1],x=c.canvasToWorld(v),m=we();kt(m,i,x);const y=Math.abs(je(m,f)),w=Math.abs(je(m,u));if(y<=d[0]&&w<=d[1])return;p!==void 0&&this.checkAndRemoveCrossesOnEditLine(t);const C=HN(n,g,o,this.commonData),S=h+C;this.editData.editIndex=S,p===void 0&&g.length>1&&this.checkForFirstCrossing(t,!1),this.editData.snapIndex=this.findSnapIndex(),this.editData.fusedCanvasPoints=this.fuseEditPointsWithOpenContour(t),p!==void 0&&this.checkForSecondCrossing(t,!1)?(this.removePointsAfterSecondCrossing(!1),this.finishEditOpenOnSecondCrossing(t)):this.checkIfShouldOverwriteAnEnd(t)&&this.openContourEditOverwriteEnd(t),pe(l)}function H0e(t){const e=t.detail,{element:r}=e,n=re(r),{viewport:i}=n,{annotation:o,viewportIdsToRender:a}=this.commonData,s=this.fuseEditPointsForOpenContourEndEdit();is(o,{points:s,closed:!1},i);const c=o.data.contour.polyline;o.data.handles.points=[c[0],c[c.length-1]],o.data.handles.activeHandleIndex=1,fn(o,r),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(r),this.activateOpenContourEndEdit(t,o,a,null)}function K0e(t){const e=t.detail,{currentPoints:r,lastPoints:n}=e,i=r.canvas,o=n.canvas,{snapIndex:a,prevCanvasPoints:s,startCrossingIndex:c}=this.editData;if(c===void 0||a===void 0)return!1;if(a===-1)return!0;if(a!==0&&a!==s.length-1)return!1;const l=i,f=o,u=s[a],d=ot(),h=ot();eo(d,l[0]-f[0],l[1]-f[1]),eo(h,l[0]-u[0],l[1]-u[1]);const g=Ew(d,h),p=Math.sqrt(d[0]*d[0]+d[1]*d[1]),v=Math.sqrt(h[0]*h[0]+h[1]*h[1]);return Math.acos(g/(p*v))=n;s--){const c=e[s];i.push([c[0],c[1]])}else for(let s=0;s=0;s--){const c=r[s];i.push([c[0],c[1]])}return i}function X0e(t){const{prevCanvasPoints:e,editCanvasPoints:r,startCrossingIndex:n,snapIndex:i}=this.editData;if(n===void 0||i===void 0)return;const o=t.detail,{element:a}=o,s=[...r];HN(a,s,e[i],this.commonData),s.length>r.length&&s.pop();let c,l;n>i?(c=i,l=n):(c=n,l=i);const f=bn(e[c],s[0]),u=bn(e[c],s[s.length-1]),d=bn(e[l],s[0]),h=bn(e[l],s[s.length-1]),g=[];for(let x=0;x=0;x--){const m=s[x];g.push([m[0],m[1]])}for(let x=l;xOn(r).data.contour.polyline)}function Ph(t,e){const r=KN(t),n=[];return r.forEach(i=>{const o=i.length,a=new Array(o);for(let s=0;sn.worldToCanvas(l)),a=Ph(r,n),s=[o,...a];$s(e,r.annotationUID,"1",s,i)}function lfe(t,e,r){var c;const{viewport:n}=t,i=this._getRenderingOptions(t,r),o=r.data.contour.polyline.map(l=>n.worldToCanvas(l));ua(e,r.annotationUID,"1",o,i);const s=r.data.handles.activeHandleIndex;if(((c=this.configuration.alwaysRenderOpenContourHandles)==null?void 0:c.enabled)===!0){const l=this.configuration.alwaysRenderOpenContourHandles.radius,f="0",u=[o[0],o[o.length-1]];s===0?u.shift():s===1&&u.pop(),sn(e,r.annotationUID,f,u,{color:i.color,handleRadius:l})}if(s!==null){const l="1",f=s===0?0:o.length-1,u=o[f];sn(e,r.annotationUID,l,[u],{color:i.color})}}function ufe(t,e,r){const{viewport:n}=t,{openUShapeContourVectorToPeak:i}=r.data,{polyline:o}=r.data.contour;if(this.renderOpenContour(t,e,r),!i)return;const a=n.worldToCanvas(o[0]),s=n.worldToCanvas(o[o.length-1]),c=[n.worldToCanvas(i[0]),n.worldToCanvas(i[1])],l=this._getRenderingOptions(t,r);ua(e,r.annotationUID,"first-to-last",[a,s],{color:l.color,width:l.width,closePath:!1,lineDash:"2,2"}),ua(e,r.annotationUID,"midpoint-to-open-contour",[c[0],c[1]],{color:l.color,width:l.width,closePath:!1,lineDash:"2,2"})}function ffe(t,e,r){const n=this._getRenderingOptions(t,r),{allowOpenContours:i}=this.configuration,{canvasPoints:o}=this.drawData;if(n.closePath=!1,ua(e,r.annotationUID,"1",o,n),i){const a=o[0],s=o[o.length-1];ife(a,s,this.configuration.closeContourProximity)?ua(e,r.annotationUID,"2",[s,a],n):sn(e,r.annotationUID,"0",[a],{color:n.color,handleRadius:2})}}function dfe(t,e,r){const{viewport:n}=t,{fusedCanvasPoints:i}=this.editData;if(i===void 0){this.renderClosedContour(t,e,r);return}const o=Ph(r,n),a=[i,...o],s=this._getRenderingOptions(t,r),c="preview-1";r.parentAnnotationUID&&s.fillOpacity&&(s.fillOpacity=0),$s(e,r.annotationUID,c,a,s)}function hfe(t,e,r){const{fusedCanvasPoints:n}=this.editData;if(n===void 0){this.renderOpenContour(t,e,r);return}const i=this._getRenderingOptions(t,r);ua(e,r.annotationUID,"preview-1",n,i)}function gfe(t,e,r){if(r.parentAnnotationUID)return;const{viewport:n}=t,i=this._getRenderingOptions(t,r),o=r.data.contour.polyline.map(g=>n.worldToCanvas(g)),a=Ph(r,n),s="1",c=o[0],l=6,f=100,u=[];for(let g=0;g0}else if(t instanceof ln){const{preScale:r}=t.getImageData()||{};return!!(r!=null&&r.scaled)}else return!1}function R3(t,e){let r=0;for(let n=0;no.getCurrentImageId()===r),!i||!i.length)?void 0:i[0].getImageData()}else if(e.startsWith("volumeId:")){const r=da(e),n=Th(r);return!n||!n.length?void 0:n[0].getImageData()}else if(e.startsWith("videoId:")){const r=Nn(e),n=J1(r);return!n||!n.length?void 0:n[0].getImageData()}else throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}getTargetId(e){var n;const r=(n=e.getViewReferenceId)==null?void 0:n.call(e);if(r)return r;throw new Error("getTargetId: viewport must have a getViewReferenceId method")}}or.toolName="BaseTool";function qN(t){if(t){if(t.data&&t.highlighted)return Oa.Highlighted;if(Ih(t.annotationUID))return Oa.Selected;if(rr(t.annotationUID))return Oa.Locked;if(t.data&&t.autoGenerated)return Oa.AutoGenerated}return Oa.Default}function yfe(t,e,r){const n=e0("textBoxFontSize",t,e,r),i=e0("textBoxFontFamily",t,e,r);return`${n}px ${i}`}const xfe=Object.freeze(Object.defineProperty({__proto__:null,getFont:yfe,getState:qN,style:DC},Symbol.toStringTag,{value:"Module"}));class uc extends or{constructor(){super(...arguments),this.onImageSpacingCalibrated=e=>{const{element:r,imageId:n}=e.detail,i=Nn(n),o=ha();o.getFramesOfReference().forEach(s=>{const l=o.getAnnotations(s)[this.getToolName()];!l||!l.length||(l.forEach(f=>{var d;if(!((d=f.metadata)!=null&&d.referencedImageId))return;Nn(f.metadata.referencedImageId)===i&&(f.invalidated=!0,f.data.cachedStats={})}),L0(r))})}}filterInteractableAnnotationsForElement(e,r){if(!r||!r.length)return;const n=re(e),{viewport:i}=n;return D2(i,r)}getReferencedImageId(e,r,n,i){const o=this.getTargetId(e);let a=o.split(/^[a-zA-Z]+:/)[1];if(e instanceof Mn){const s=da(o),c=_e.getVolume(s);a=Xa(c,r,n)}return a}getStyle(e,r,n){return e0(e,r,qN(n),this.mode)}}uc.toolName="AnnotationDisplayTool";class ar extends uc{static createAnnotation(...e){let r={annotationUID:null,highlighted:!0,invalidated:!0,metadata:{toolName:this.toolName},data:{text:"",handles:{points:new Array,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};for(const n of e)r=Zr(r,n);return r}static createAnnotationForViewport(e,...r){return this.createAnnotation({metadata:e.getViewReference()},...r)}static createAndAddAnnotation(e,...r){const n=this.createAnnotationForViewport(e,...r);Ut(n,e.element),fn(n,e.element)}constructor(e,r){var n,i;super(e,r),this.mouseMoveCallback=(o,a)=>{if(!a)return!1;const{element:s,currentPoints:c}=o.detail,l=c.canvas;let f=!1;for(const u of a){if(rr(u.annotationUID)||!Ur(u.annotationUID))continue;const{data:d}=u,h=d.handles?d.handles.activeHandleIndex:void 0,g=this._imagePointNearToolOrHandle(s,u,l,6),p=g&&!u.highlighted,v=!g&&u.highlighted;p||v?(u.highlighted=!u.highlighted,f=!0):d.handles&&d.handles.activeHandleIndex!==h&&(f=!0)}return f},(n=e.configuration)!=null&&n.getTextLines&&(this.configuration.getTextLines=e.configuration.getTextLines),(i=e.configuration)!=null&&i.statsCalculator&&(this.configuration.statsCalculator=e.configuration.statsCalculator)}getHandleNearImagePoint(e,r,n,i){const o=re(e),{viewport:a}=o,{data:s}=r,{isCanvasAnnotation:c}=s,{points:l,textBox:f}=s.handles;if(f){const{worldBoundingBox:u}=f;if(u){const d={topLeft:a.worldToCanvas(u.topLeft),topRight:a.worldToCanvas(u.topRight),bottomLeft:a.worldToCanvas(u.bottomLeft),bottomRight:a.worldToCanvas(u.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return s.handles.activeHandleIndex=null,f}}for(let u=0;u<(l==null?void 0:l.length);u++){const d=l[u],h=c?d.slice(0,2):a.worldToCanvas(d);if(bn(n,h)this.getStyle(h,n,r),{annotationUID:o}=r,a=Ur(o),s=rr(o),c=i("lineWidth"),l=i("lineDash"),f=i("color"),u=i("shadow"),d=this.getLinkedTextBoxStyle(n,r);return{visibility:a,locked:s,color:f,lineWidth:c,lineDash:l,lineOpacity:1,fillColor:f,fillOpacity:0,shadow:u,textbox:d}}_imagePointNearToolOrHandle(e,r,n,i){if(this.getHandleNearImagePoint(e,r,n,i)||this.isPointNearTool(e,r,n,i,"mouse"))return!0}}ar.toolName="AnnotationTool";class wfe extends ar{constructor(e,r){super(e,r)}renderAnnotation(e,r){let n=!1;const{viewport:i}=e,{element:o}=i;if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),n;let a=_t(this.getToolName(),o);if(!(a!=null&&a.length)||(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length)))return n;const s=this.getTargetId(i),c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id};for(let l=0;lthis.moveAnnotation(i,r))}updateContourPolyline(e,r,n,i){var a;const o=((a=this.configuration)==null?void 0:a.decimate)||{};is(e,r,n,{decimate:{enabled:!!o.enabled,epsilon:o.epsilon},updateWindingDirection:i==null?void 0:i.updateWindingDirection})}getPolylinePoints(e){var r;return((r=e.data.contour)==null?void 0:r.polyline)??e.data.polyline}renderAnnotationInstance(e){const{enabledElement:r,annotationStyle:n,svgDrawingHelper:i}=e,o=e.annotation;if(o.parentAnnotationUID)return;const{annotationUID:a}=o,{viewport:s}=r,{worldToCanvas:c}=s,l=this.getPolylinePoints(o).map(x=>c(x)),{lineWidth:f,lineDash:u,color:d,fillColor:h,fillOpacity:g}=n,p=Ph(o,s),v=[l,...p];return $s(i,a,"contourPolyline",v,{color:d,lineDash:u,lineWidth:Math.max(.1,f),fillColor:h,fillOpacity:g}),!0}}class Cfe{constructor(){this.annotationUIDs=new Set,this._isVisible=!0,this.visibleFilter=this.unboundVisibleFilter.bind(this)}unboundVisibleFilter(e){return!this._isVisible||!this.annotationUIDs.has(e)}has(e){return this.annotationUIDs.has(e)}setVisible(e=!0,r,n){this._isVisible!==e&&(this._isVisible=e,this.annotationUIDs.forEach(i=>{const o=On(i);if(!o){this.annotationUIDs.delete(i);return}if(o.isVisible===e||!e&&(n==null?void 0:n(i))===!1)return;o.isVisible=e;const a={...r,annotation:o};De(Ce,F.ANNOTATION_MODIFIED,a)}))}get isVisible(){return this._isVisible}findNearby(e,r){const n=[...this.annotationUIDs];if(n.length===0)return null;if(!e)return n[r===1?0:n.length-1];const i=n.indexOf(e);return i===-1||i+r<0||i+r>=n.length?null:n[i+r]}add(...e){e.forEach(r=>this.annotationUIDs.add(r))}remove(...e){e.forEach(r=>this.annotationUIDs.delete(r))}clear(){this.annotationUIDs.clear()}}const Sfe=Object.freeze(Object.defineProperty({__proto__:null,AnnotationGroup:Cfe,FrameOfReferenceSpecificAnnotationManager:KR,config:xfe,locking:ice,selection:uce,state:xce,visibility:hce},Symbol.toStringTag,{value:"Module"})),Z_="PlanarFreehandContourSegmentationTool";function cS(t,e=[]){const{viewport:r,sliceData:n,annotation:i}=t,o=new Map,{toolName:a,originalToolName:s}=i.metadata,c=s||a,l=(_t(c,r.element)||[]).filter(f=>!f.metadata.originalToolName||f.metadata.originalToolName===c);if(c!==Z_){const f=_t(Z_,r.element);f!=null&&f.length&&f.forEach(u=>{const{metadata:d}=u;d.originalToolName===c&&d.originalToolName!==d.toolName&&l.push(u)})}if(!(l!=null&&l.length))return o;for(let f=0;fh.metadata.sliceIndex===f);if(!(u!=null&&u.length))continue;const d=u.filter(h=>e.every(g=>{const p=g.parentKey?g.parentKey(h):h,v=p==null?void 0:p[g.key];return Array.isArray(v)?v.every((x,m)=>x===g.value[m]):v===g.value}));d.length&&o.set(f,d)}return o}function Tfe(t,e){const r=cS(t,e),n=[];if(!(r!=null&&r.size))return n;for(const i of r.values())i.forEach(o=>{n.push(o)});return n}function XN(t,e,r){const n=Zr({data:{},metadata:{}},r);return Object.assign(n,{highlighted:!1,invalidated:!0,autoGenerated:!0,annotationUID:void 0,cachedStats:{},childAnnotationUIDs:[],parentAnnotationUID:void 0}),Object.assign(n.data,{handles:{points:e.points||e||[],interpolationSources:e.sources,activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},contour:{...r.data.contour,polyline:t}}),n}function _fe(t,e){const r=cS(e,[{key:"interpolationUID",value:e.interpolationUID}]),n=Efe(r);if(!n){console.warn("No annotations found to interpolate",r);return}const i=Dfe(r,t.annotationUID),o=[];for(let a=n[0]+1;a=e[0];o--){const a=r.get(o);if(a!=null&&a.length){if(a[0].autoGenerated)continue;a.length>1&&(i=!1),n.push(o);break}}if(!(!i||!n.length)){for(let o=t+1;o<=e[1];o++){const a=r.get(o);if(a!=null&&a.length){if(a[0].autoGenerated)continue;a.length>1&&(i=!1),n.push(o);break}}if(!(!i||n.length<2))return n}}const{PointsManager:Q_}=Yt;function Mfe(t,e=12){const r=Q_.create3(e);r.sources=[];const{sources:n}=r,{length:i,sources:o=[]}=t,a=5;if(in.push(Q_.create3(e)));const c=Rfe(t,a),l=Lfe(c,e),f=[];if((l==null?void 0:l.length)>2){let u=-1;const d=s/3;l.forEach(p=>{const[v,,x]=p,m=Math.ceil((v+x)/2);x-u2*d?(jl(f,u,v,s,i),u=jl(f,v,m,s,i)):u=jl(f,u,m,s,i),x-u>d&&(u=jl(f,u,x,s,i)))});const h=f[0];L3(h+i-u,i)>2*d&&jl(f,u,h-d,s,i)}else{const u=Math.floor(i/e);jl(f,-1,i-u,u,i)}return f.forEach(u=>{const d=t.getPointArray(u);r.push(d),o.forEach((h,g)=>n[g].push(h.getPoint(u)))}),r}function Rfe(t,e=6){const{length:r}=t,n=we(),i=we(),o=new Float32Array(r);for(let a=0;a{if(r.FrameOfReferenceUID===e.FrameOfReferenceUID){const n=r.viewport,{viewPlaneNormal:i,viewUp:o}=n.getCamera();return eE(i,e.viewPlaneNormal)&&(!e.viewUp||eE(o,e.viewUp))}}).map(r=>r.viewport)}const Jf="PlanarFreehandContourSegmentationTool";async function Afe(t){const e=t.detail.annotation;if(!Mh(e))return;const r=kfe(e),n=Vfe(r,e);if(!n.length)return;const i=R2(e.data.contour.polyline,r),o=Ffe(r,i,n);if(!o)return;const{targetAnnotation:a,targetPolyline:s,isContourHole:c}=o;if(c){const{contourHoleProcessingEnabled:l=!1}=t.detail;if(!l)return;ZN(r,a,e)}else Bfe(r,a,s,e,i)}function JN(t,e=!1){const r="PlanarFreehandContourSegmentationTool",n=Cn(t.id,t.renderingEngineId);let i;return n.hasTool(r)?n.getToolOptions(r)||(i=`Tool ${r} must be in active/passive state`):i=`Tool ${r} not added to ${n.id} toolGroup`,i&&!e&&console.warn(i),!i}function kfe(t){const e=YN(t);return e.find(n=>JN(n,!0))??e[0]}function R2(t,e){const r=t.length,n=new Array(r);for(let i=0;ii.annotationUID&&i.annotationUID!==r&&Mh(i)&&vN(i,e)&&t.isReferenceViewable(i.metadata))}function Ffe(t,e,r){const n=r0(e);for(let i=0;i{const n=R2(r.data.contour.polyline,t);return{annotation:r,polyline:n}})}function Bfe(t,e,r,n,i){var y;if(!wce(Jf)){console.warn(`${Jf} is not registered in cornerstone`);return}if(!JN(t))return;const o=i[0],a=gl(r,o),s=Ufe(t,e),c=new Set(s),l=new Map,f=(w,C)=>{let S=l.get(w);S||(S=[],l.set(w,S)),S.push(C),c.delete(C)},u=[];if(a){const w=IN(r,i);u.push(w),Array.from(c.keys()).forEach(C=>f(w,C))}else ON(r,i).forEach(C=>{u.push(C),Array.from(c.keys()).forEach(S=>{YC(C,S.polyline)&&(f(C,S),c.delete(S))})});Array.from(l.values()).forEach(w=>w.forEach(C=>LC(C.annotation)));const{element:d}=t,h=re(d),{metadata:g,data:p}=e,{handles:v,segmentation:x}=p,{textBox:m}=v;Ot(n.annotationUID),Ot(e.annotationUID);for(let w=0;wNC(_,E.annotation))}Gfe(h,e,n)}function Gfe(t,e,r){const{viewport:n}=t,{element:i}=n,o=new Set([Jf,e.metadata.toolName,r.metadata.toolName]);for(const a of o.values()){const s=He(i,a);pe(s)}return new Promise(a=>window.requestAnimationFrame(a))}const{PointsManager:lf}=Yt,tE=.2;function $p(t){if(!t.annotation)return;const{isInterpolationUpdate:e,annotation:r}=t;queueMicrotask(()=>{try{e&&(r.isInterpolationUpdate=!0,r.autoGenerated=!1),Wfe(t)}finally{e&&(r.autoGenerated=!0)}})}function Wfe(t){const{annotation:e}=t;Pfe(e);const{interpolationData:r,interpolationList:n}=_fe(e,t)||{};if(!r||!n)return;const i={toolName:e.metadata.toolName,toolType:e.metadata.toolName,viewport:t.viewport};for(let l=0;ls.x.length,n)})}function $fe(t,e,r,n,i,o,a){const[s,c]=n,l=(r-s)/(c-s),f=i.get(s)[0],u=i.get(c)[0],d=Kfe(t,e,l,o),h=l>.5?u:f,g=Mfe(d);i.has(r)?Hfe(d,g,r,h,a):jfe(d,g,r,h,a)}function jfe(t,e,r,n,i){var f;const o=t.points,{viewport:a}=i,s=XN(o,e,n),c=a.getViewReference({sliceIndex:r});if(!c)throw new Error(`Can't find slice ${r}`);Object.assign(s.metadata,c),Ut(s,a.element),(f=n.onInterpolationComplete)==null||f.call(n,s,n);const{parentAnnotationUID:l}=n;if(l){const u=On(l),d=QN(u,r,i);ZN(a,d,s)}}function QN(t,e,r){const{viewport:n}=r,i=_t(t.metadata.toolName,n.element);for(let o=0;o!f.autoGenerated)||(s=o||s===n||c.forEach(l=>{l.autoGenerated&&(Ot(l.annotationUID),a.push(l))});if(a.length){const s={annotations:a,element:t.viewport.element,viewportId:t.viewport.id,renderingEngineId:t.viewport.getRenderingEngine().id};De(t.viewport.element,F.INTERPOLATED_ANNOTATIONS_REMOVED,s)}if(i>=0&&o{var h;const r=e.detail.annotation;if(!(r!=null&&r.metadata))return;const{toolName:n,originalToolName:i}=r.metadata;if(!Yi.toolNames.includes(n)&&!Yi.toolNames.includes(i))return;const o=jp(r);if(!o){console.warn("Unable to find viewport for",r);return}const a=oy(o),s={viewport:o,sliceData:a,annotation:r,interpolationUID:r.interpolationUID},c=!!r.interpolationUID;if(r.autoGenerated=!1,c){lE(s),$p(s);return}const l=[{key:"segmentIndex",value:r.data.segmentation.segmentIndex,parentKey:g=>g.data.segmentation},{key:"viewPlaneNormal",value:r.metadata.viewPlaneNormal,parentKey:g=>g.metadata},{key:"viewUp",value:r.metadata.viewUp,parentKey:g=>g.metadata}];let f=Tfe(s,l);const{sliceIndex:u}=r.metadata,d=new Set;f.forEach(g=>{if(g.interpolationCompleted||g.metadata.sliceIndex===u){const{interpolationUID:p}=g;d.add(p)}}),f=f.filter(g=>!d.has(g.interpolationUID)),r.interpolationUID=((h=f[0])==null?void 0:h.interpolationUID)||Jfe(),s.interpolationUID=r.interpolationUID,$p(s)},Yi.handleAnnotationUpdate=e=>{const r=e.detail.annotation,{changeType:n=Bn.HandlesUpdated}=e.detail;if(!(r!=null&&r.metadata))return;const{toolName:i,originalToolName:o}=r.metadata;if(!Yi.toolNames.includes(i)&&!Yi.toolNames.includes(o)||!Zfe.includes(n))return;const a=jp(r);if(!a){console.warn("Unable to find matching viewport for annotation interpolation",r);return}r.autoGenerated&&(n0(r),r.autoGenerated=!1);const s=oy(a),c={viewport:a,sliceData:s,annotation:r,interpolationUID:r.interpolationUID,isInterpolationUpdate:n===Bn.InterpolationUpdated};$p(c)},Yi.handleAnnotationDelete=e=>{const r=e.detail.annotation;if(!(r!=null&&r.metadata))return;const{toolName:n}=r.metadata;if(!Yi.toolNames.includes(n)||r.autoGenerated)return;const i=jp(r);if(!i){console.warn("No viewport, can't delete interpolated results",r);return}const o=oy(i),a={viewport:i,sliceData:o,annotation:r,interpolationUID:r.interpolationUID};r.autoGenerated=!1,lE(a)};let ra=Yi;function oy(t){return{numberOfSlices:t.getNumberOfSlices(),imageIndex:t.getCurrentImageIdIndex()}}function eP(t){t.forEach(e=>{const r=Wn(e);if(!r){console.warn(`ToolGroup not available for ${e}`);return}r.getViewportsInfo().forEach(i=>{const{renderingEngineId:o,viewportId:a}=i,s=gr(o);if(!s){console.warn(`RenderingEngine not available for ${o}`);return}const c=s.getViewport(a);L0(c.element)})})}function qd(t){return Xt.getActiveSegmentation(t)}function tP(t,e){return Xt.getSegmentationRepresentationVisibility(t,e)}function No(t){const e=Ct(t);if(e){const r=Object.keys(e.segments).find(n=>e.segments[n].active);return r?Number(r):void 0}}function Qfe(t,e){const r=Ct(t);if(!r)throw new Error(`No segmentation state found for ${t}`);const{segments:n}=r;return n[e].locked}function ede(t,e,r=!0){const n=Ct(t);if(!n)throw new Error(`No segmentation state found for ${t}`);const{segments:i}=n;i[e].locked=r,Di(t)}function Dl(t){const e=Ct(t);if(!e)throw new Error(`No segmentation state found for ${t}`);const{segments:r}=e;return Object.keys(r).filter(i=>r[i].locked).map(i=>parseInt(i))}const tde=Object.freeze(Object.defineProperty({__proto__:null,getLockedSegmentIndices:Dl,isSegmentIndexLocked:Qfe,setSegmentIndexLocked:ede},Symbol.toStringTag,{value:"Module"}));function nP(t,e){const r=w2(t,e);return r?Object.entries(r.segments).reduce((i,[o,a])=>(a.visible||i.add(Number(o)),i),new Set):new Set}class lS extends wfe{constructor(e,r){var n;super(e,r),(n=this.configuration.interpolation)!=null&&n.enabled&&ra.addTool(this.getToolName())}isContourSegmentationTool(){return!0}createAnnotation(e){const r=e.detail,{element:n}=r,i=re(n);if(!i)return;const{viewport:o}=i,a=super.createAnnotation(e);if(!this.isContourSegmentationTool())return a;const s=qd(o.id);if(!s)throw new Error("No active segmentation detected, create one before using scissors tool");if(!s.representationData.Contour)throw new Error("A contour segmentation must be active");const{segmentationId:c}=s,l=No(c);return Zr(a,{data:{segmentation:{segmentationId:c,segmentIndex:l}}})}addAnnotation(e,r){const n=super.addAnnotation(e,r);return this.isContourSegmentationTool()&&n0(e),n}cancelAnnotation(e){this.isContourSegmentationTool()&&T2(e),super.cancelAnnotation(e)}getAnnotationStyle(e){const r=super.getAnnotationStyle(e);if(!this.isContourSegmentationTool())return r;const n=this._getContourSegmentationStyle(e);return Zr(r,n)}renderAnnotationInstance(e){const{annotation:r}=e,{invalidated:n}=r,i=super.renderAnnotationInstance(e);if(n&&this.isContourSegmentationTool()){const{segmentationId:o}=r.data.segmentation;Ei(o);const s=R0(o).map(c=>Cn(c).id);eP(s)}return i}_getContourSegmentationStyle(e){const r=e.annotation,{segmentationId:n,segmentIndex:i}=r.data.segmentation,{viewportId:o}=e.styleSpecifier,a=Ti(o,{segmentationId:n});if(!(a!=null&&a.length))return{};a.length>1?a.find(_=>_.segmentationId===n&&_.type===Ge.Contour):a[0];const{autoGenerated:s}=r,l=Dl(n).includes(i),f=ts(e.styleSpecifier.viewportId,n,i),u=tP(o,{segmentationId:n,type:Ge.Contour}),d=qd(o),h=(d==null?void 0:d.segmentationId)===n,p=Fi.getStyle({viewportId:o,segmentationId:n,type:Ge.Contour,segmentIndex:i});let v=1,x,m=1,y=0;s?(v=p.outlineWidthAutoGenerated??v,x=p.outlineDashAutoGenerated??x,m=p.outlineOpacity??m,y=p.fillAlphaAutoGenerated??y):h?(v=p.outlineWidth??v,x=p.outlineDash??x,m=p.outlineOpacity??m,y=p.fillAlpha??y):(v=p.outlineWidthInactive??v,x=p.outlineDashInactive??x,m=p.outlineOpacityInactive??m,y=p.fillAlphaInactive??y),No(n)===i&&(v+=p.activeSegmentOutlineWidthDelta),v=p.renderOutline?v:0,y=p.renderFill?y:0;const w=`rgba(${f[0]}, ${f[1]}, ${f[2]}, ${m})`,C=`rgb(${f[0]}, ${f[1]}, ${f[2]})`,T=!nP(o,{segmentationId:n,type:Ge.Contour}).has(i);return{color:w,fillColor:C,lineWidth:v,fillOpacity:y,lineDash:x,textbox:{color:w},visibility:u&&T,locked:l}}}function bl(t,e,r){return t==="CT"?"HU":t==="PT"?nde(e,r):""}function nde(t,e){if(!e.isPreScaled)return"raw";if(e.isSuvScaled)return"SUV";const r=Pe("generalSeriesModule",t);if((r==null?void 0:r.modality)==="PT"){const n=Pe("petSeriesModule",t);return(n==null?void 0:n.units)||"unitless"}return"unknown"}const{pointCanProjectOnLine:uE}=lc,{EPSILON:rde}=Sl,ide=1-rde;class vl extends lS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{storePointData:!1,shadow:!0,preventHandleOutsideImage:!1,contourHoleAdditionModifierKey:vr.Shift,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,makeClockWise:!0,subPixelResolution:4,smoothing:{smoothOnAdd:!1,smoothOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40},interpolation:{enabled:!1,onInterpolationComplete:null},decimate:{enabled:!1,epsilon:.1},displayOnePointAsCrosshairs:!1,calculateStats:!0,getTextLines:ode,statsCalculator:Ya}}){super(e,r),this.isDrawing=!1,this.isEditingClosed=!1,this.isEditingOpen=!1,this.addNewAnnotation=n=>{const i=n.detail,{element:o}=i,a=this.createAnnotation(n);this.addAnnotation(a,o);const s=He(o,this.getToolName());return this.activateDraw(n,a,s),n.preventDefault(),pe(s),a},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,c=He(s,this.getToolName());this.activateOpenContourEndEdit(n,i,c,o)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o,s=He(a,this.getToolName());i.data.contour.closed?this.activateClosedContourEdit(n,i,s):this.activateOpenContourEdit(n,i,s),n.preventDefault()},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{polyline:l}=i.data.contour;let f=c.worldToCanvas(l[0]);for(let h=1;h{const i=this.isDrawing,o=this.isEditingOpen,a=this.isEditingClosed;i?this.cancelDrawing(n):o?this.cancelOpenContourEdit(n):a&&this.cancelClosedContourEdit(n)},this._calculateCachedStats=(n,i,o,a)=>{const{data:s}=n,{cachedStats:c}=s,{polyline:l,closed:f}=s.contour,u=Object.keys(c);for(let d=0;di.worldToCanvas(C)),m={isPreScaled:os(i,h),isSuvScaled:this.isSuvScaled(i,h,n.metadata.referencedImageId)},y=bl(v.Modality,n.metadata.referencedImageId,m),w=Bi(g,()=>{const C=s.contour.polyline,S=C.length,T=new Array(S);for(let A=0;A{const{data:s}=n,c=this.getTargetId(i),l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:o.viewport.id},f=this.getLinkedTextBoxStyle(l,n);if(!f.visibility)return;const u=this.configuration.getTextLines(s,c);if(!u||u.length===0)return;const d=s.contour.polyline.map(w=>i.worldToCanvas(w));if(!s.handles.textBox.hasMoved){const w=$i(d);s.handles.textBox.worldPosition=i.canvasToWorld(w)}const h=i.worldToCanvas(s.handles.textBox.worldPosition),p=ei(a,n.annotationUID??"","1",u,h,d,{},f),{x:v,y:x,width:m,height:y}=p;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([v,x]),topRight:i.canvasToWorld([v+m,x]),bottomLeft:i.canvasToWorld([v,x+y]),bottomRight:i.canvasToWorld([v+m,x+y])}},T0e(this),R0e(this),G0e(this),efe(this),rfe(this),pfe(this),this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}filterInteractableAnnotationsForElement(e,r){if(!r||!r.length)return;const n=re(e),{viewport:i}=n;let o;if(i instanceof an){const a=i.getCamera(),{spacingInNormalDirection:s}=E0(i,a);o=this.filterAnnotationsWithinSlice(r,a,s)}else o=D2(i,r);return o}filterAnnotationsWithinSlice(e,r,n){const{viewPlaneNormal:i}=r,o=e.filter(l=>{const f=l.metadata.viewPlaneNormal,u=Math.abs(je(i,f))>ide;return f&&u});if(!o.length)return[];const a=n/2,{focalPoint:s}=r,c=[];for(const l of o){const u=l.data.contour.polyline[0];if(!l.isVisible)continue;const d=we();Qt(d,s,u);const h=je(d,i);Math.abs(h){a.data.handles.points.length=0};return Zr(n,{data:{contour:{polyline:[[...r]]},label:"",cachedStats:{}},onInterpolationComplete:i})}getAnnotationStyle(e){return super.getAnnotationStyle(e)}renderAnnotationInstance(e){const{enabledElement:r,targetId:n,svgDrawingHelper:i}=e,o=e.annotation;let a=!1;const{viewport:s,renderingEngine:c}=r,l=this.isDrawing,f=this.isEditingOpen,u=this.isEditingClosed;if(!(l||f||u))this.configuration.displayOnePointAsCrosshairs&&o.data.contour.polyline.length===1?this.renderPointContourWithMarker(r,i,o):this.renderContour(r,i,o);else{const d=this.commonData.annotation.annotationUID;if(o.annotationUID===d)if(l)this.renderContourBeingDrawn(r,i,o);else if(u)this.renderClosedContourBeingEdited(r,i,o);else if(f)this.renderOpenContourBeingEdited(r,i,o);else throw new Error(`Unknown ${this.getToolName()} annotation rendering state`);else this.configuration.displayOnePointAsCrosshairs&&o.data.contour.polyline.length===1?this.renderPointContourWithMarker(r,i,o):this.renderContour(r,i,o);a=!0}if(this.configuration.calculateStats)return this._calculateStatsIfActive(o,n,s,c,r),this._renderStats(o,s,r,i),a}_calculateStatsIfActive(e,r,n,i,o){var s,c,l;const a=(s=this.commonData)==null?void 0:s.annotation.annotationUID;if(!(e.annotationUID===a&&!((c=this.commonData)!=null&&c.movingTextBox))&&!((l=this.commonData)!=null&&l.movingTextBox)){const{data:f}=e;!f.cachedStats[r]||f.cachedStats[r].areaUnit==null?(f.cachedStats[r]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(e,n,i,o)):e.invalidated&&this._throttledCalculateCachedStats(e,n,i,o)}}updateClosedCachedStats({viewport:e,points:r,imageData:n,metadata:i,cachedStats:o,targetId:a,modalityUnit:s,canvasCoordinates:c,calibratedScale:l}){var ne,Q,ee;const{scale:f,areaUnit:u,units:d}=l,{voxelManager:h}=e.getImageData(),g=c[0],p=e.canvasToWorld(g),v=e.canvasToWorld([g[0]+1,g[1]]),x=e.canvasToWorld([g[0],g[1]+1]),m=Cr(p,v),y=Cr(p,x),w=Gn(n,r[0]);w[0]=Math.floor(w[0]),w[1]=Math.floor(w[1]),w[2]=Math.floor(w[2]);let C=w[0],S=w[0],T=w[1],_=w[1],E=w[2],D=w[2];for(let de=1;de{let le=!0;const k=e.worldToCanvas(de);return k[1]!=N&&($=0,N=k[1],V=NN(c,k,[P[0],k[1]]),V.sort(function(O){return function(B,U){return B[O]===U[O]?0:B[O]V[0][0]&&(V.shift(),$++),$%2===0&&(le=!1),le},boundsIJK:A,returnPoints:this.configuration.storePointData}),Y=this.configuration.statsCalculator.getStatistics();o[a]={Modality:i.Modality,area:I,perimeter:R3(c,closed)/f,mean:(ne=Y.mean)==null?void 0:ne.value,max:(Q=Y.max)==null?void 0:Q.value,stdDev:(ee=Y.stdDev)==null?void 0:ee.value,statsArray:Y.array,pointsInShape:H,areaUnit:u,modalityUnit:s,unit:d}}updateOpenCachedStats({targetId:e,metadata:r,canvasCoordinates:n,cachedStats:i,modalityUnit:o,calibratedScale:a}){const{scale:s,units:c}=a;i[e]={Modality:r.Modality,length:R3(n,!1)/s,modalityUnit:o,getPixelValueUnitunit:c}}}function ode(t,e){const r=t.cachedStats[e],{area:n,mean:i,stdDev:o,length:a,perimeter:s,max:c,isEmptyArea:l,unit:f,areaUnit:u,modalityUnit:d}=r||{},h=[];if(n){const g=l?"Area: Oblique not supported":`Area: ${yt(n)} ${u}`;h.push(g)}return i&&h.push(`Mean: ${yt(i)} ${d}`),Number.isFinite(c)&&h.push(`Max: ${yt(c)} ${d}`),o&&h.push(`Std Dev: ${yt(o)} ${d}`),s&&h.push(`Perimeter: ${yt(s)} ${f}`),a&&h.push(`${yt(a)} ${f}`),h}vl.toolName="PlanarFreehandROI";class Za extends vl{constructor(e){const r=Zr({configuration:{calculateStats:!1,allowOpenContours:!1}},e);super(r)}isContourSegmentationTool(){return!0}renderAnnotationInstance(e){const r=e.annotation,{invalidated:n}=r,i=super.renderAnnotationInstance(e);if(n){const{segmentationId:o}=r.data.segmentation;Ei(o)}return i}}Za.toolName="PlanarFreehandContourSegmentationTool";function ade(t,e,r){const n=new Map;for(const[i,o]of t)for(const a of o){const{points:s}=a,{lineSegments:c,linesNumberOfPoints:l}=sde(a);for(let f=0;f{const{numberOfCells:e,lines:r}=t,n=[],i=[];for(let o=0;o({id:s.segmentIndex.toString(),points:s.data.points,polys:s.data.polys,segmentIndex:s.segmentIndex})),o=await xN(i,n);return wN(o)}async function ude(t,e={}){var u;if(!e.viewport)throw new Error("Viewport is required to compute contour from surface");const{viewport:r}=e,n=(u=e.segmentIndices)!=null&&u.length?e.segmentIndices:ga(t),i=new Map,o=new Map,s=Ct(t).representationData.Surface,c=[];s.geometryIds.forEach((d,h)=>{var g;if(n.includes(h)){i.set(h,d);const p=(g=_e.getGeometry(d))==null?void 0:g.data;p&&c.push({id:d,points:p.points,polys:p.polys,segmentIndex:h})}}),i.forEach((d,h)=>{o.set(d,h)});const l=await xN(c,r);return wN(l)}function rP(t,e={}){return GC(t,Ge.Contour,()=>cde(t,e),()=>{})}function fde(t,e,r=!1){const n=Ct(e),{annotationUIDsMap:i}=n.representationData.Contour;i.forEach(o=>{o.forEach(a=>{Ot(a)})})}let ay=!1;function dde(t,e,r=!1){const n=Xn(t);if(!n)return;const{viewport:i}=n;r&&(fde(t,e),i.render())}async function hde(t,e){var o;const{segmentationId:r}=e,n=Ct(r);if(!n)return;let i=n.representationData[Ge.Contour];!i&&C2(r,Ge.Contour)&&!ay&&(ay=!0,i=await rP(r,{viewport:t}),ay=!1),i&&(o=i.geometryIds)!=null&&o.length&&Jle(t,i.geometryIds,i.annotationUIDsMap,e)}const iP={render:hde,removeRepresentation:dde};function Gi(t,e){return Xt.getCurrentLabelmapImageIdForViewport(t,e)}const{uuidv4:oP}=Yt;async function gde(t,e,r){const n=re(t),{renderingEngine:i,viewport:o}=n,{id:a}=o,s=!0,c=!1,l=!0;if(o instanceof Mn){const u=pde(e,r);_e.getVolume(u)||await mde(e);const d=[{volumeId:u,visibility:s,blendMode:$u.MAXIMUM_INTENSITY_BLEND,representationUID:`${r}-${Ge.Labelmap}`}];await Kne(i,d,[a],c,l)}else{const u=[{imageId:Gi(o.id,r),representationUID:`${r}-${Ge.Labelmap}`}];await qne(i,u,[a])}}function pde(t,e){let{volumeId:r}=t;if(!r){r=oP();const n=Ct(e);n.representationData.Labelmap={...n.representationData.Labelmap,volumeId:r},t.volumeId=r,Di(e)}return r}async function mde(t){const e=t;if(!(e.imageIds.length>0))throw new Error("cannot create labelmap, no imageIds found for the volume labelmap");return await oC(t.volumeId||oP(),e.imageIds)}function vde(t,e){const r=re(t),{viewport:n}=r;n.removeActors([mle(n.id,e)])}function yde(t,e){Xt.setActiveSegmentation(t,e)}function Il(t){return qd(t)}function xde(t,e,r=!1){yde(t,e)}const wde=Object.freeze(Object.defineProperty({__proto__:null,getActiveSegmentation:Il,setActiveSegmentation:xde},Symbol.toStringTag,{value:"Module"})),aP=cc(),Pu=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:b0.POLYSEG_CONTOUR_TO_LABELMAP})};async function Cde(t,e={}){var p;const r=e.viewport,n=r.getVolumeId();if(!yR(r))throw new Error("No imageIds found, labelmap computation from contour requires viewports with imageIds");const o=wn(),a=aC(n,{volumeId:o}),{dimensions:s,origin:c,direction:l,spacing:f,voxelManager:u}=a,{segmentIndices:d,annotationUIDsInSegmentMap:h}=sP(t,e);Pu(Ce,0);const g=await aP.executeTask("polySeg","convertContourToVolumeLabelmap",{segmentIndices:d,dimensions:s,scalarData:(p=u.getCompleteScalarDataArray)==null?void 0:p.call(u),origin:c,direction:l,spacing:f,annotationUIDsInSegmentMap:h},{callbacks:[v=>{Pu(Ce,v)}]});return Pu(Ce,100),u.setCompleteScalarDataArray(g),a.modified(),{volumeId:a.volumeId}}async function Sde(t,e={}){if(!e.viewport)throw new Error("No viewport provided, labelmap computation from contour requires viewports");const n=e.viewport.getImageIds();if(!n)throw new Error("No imageIds found, labelmap computation from contour requires viewports with imageIds");n.forEach(u=>{if(!_e.getImageLoadObject(u))throw new Error("ImageIds must be cached before converting contour to labelmap")});const o=(await MM(n)).map(u=>u.imageId),{segmentIndices:a,annotationUIDsInSegmentMap:s}=sP(t,e),c=new Map;o.forEach((u,d)=>{const h=_e.getImage(u),g=Pe(si.IMAGE_PLANE,u);let{columnCosines:p,rowCosines:v,rowPixelSpacing:x,columnPixelSpacing:m,imagePositionPatient:y}=g;p=p??[0,1,0],v=v??[1,0,0],x=x??1,m=m??1,y=y??[0,0,0];const w=Ye(v[0],v[1],v[2]),C=Ye(p[0],p[1],p[2]),S=we();Kt(S,w,C);const T=[...w,...C,...S],_=[x,m,1],E=y;c.set(n[d],{direction:T,spacing:_,origin:E,scalarData:h.voxelManager.getScalarData(),imageId:u,dimensions:[h.width,h.height,1]})}),Pu(Ce,0);const l=await aP.executeTask("polySeg","convertContourToStackLabelmap",{segmentationsInfo:c,annotationUIDsInSegmentMap:s,segmentIndices:a},{callbacks:[u=>{Pu(Ce,u)}]});Pu(Ce,100);const f=[];return l.forEach(({scalarData:u},d)=>{var v,x;const h=c.get(d),{imageId:g}=h,p=_e.getImage(g);p.voxelManager.getScalarData().set(u),(x=(v=p.imageFrame)==null?void 0:v.pixelData)==null||x.set(u),f.push(g)}),{imageIds:f}}function sP(t,e={}){var o;const r=t.annotationUIDsMap,n=(o=e.segmentIndices)!=null&&o.length?e.segmentIndices:Array.from(r.keys()),i=new Map;return n.forEach(a=>{const s=r.get(a);let c=Array.from(s);c=c.filter(f=>!On(f).parentAnnotationUID);const l=c.map(f=>{var h;const u=On(f),d=(h=u.childAnnotationUIDs)==null?void 0:h.length;return{polyline:u.data.contour.polyline,referencedImageId:u.metadata.referencedImageId,holesPolyline:d&&u.childAnnotationUIDs.map(g=>On(g).data.contour.polyline)}});i.set(a,l)}),{segmentIndices:n,annotationUIDsInSegmentMap:i}}const Tde=cc(),sy=(t,e)=>{De(t,Se.WEB_WORKER_PROGRESS,{progress:e,type:b0.POLYSEG_SURFACE_TO_LABELMAP})};async function _de(t,e){const{geometryIds:r}=t;if(!(r!=null&&r.size))throw new Error("No geometry IDs found for surface representation");const n=new Map;r.forEach((f,u)=>{const h=_e.getGeometry(f).data,g=h.points,p=h.polys;n.set(u,{points:g,polys:p})});const{dimensions:i,direction:o,origin:a,spacing:s,voxelManager:c}=e;sy(Ce,0);const l=await Tde.executeTask("polySeg","convertSurfacesToVolumeLabelmap",{segmentsInfo:n,dimensions:i,spacing:s,direction:o,origin:a},{callbacks:[f=>{sy(Ce,f)}]});return sy(Ce,100),c.setCompleteScalarDataArray(l),e.modified(),{volumeId:e.volumeId}}function Ede(t,e){const{segmentationId:r,config:n}=e,i={colorLUTIndex:Dde(n)};Xt.addSegmentationRepresentation(t,r,e.type,i),e.type===Ge.Contour&&pe([t]),Di(r)}function Dde(t){const{colorLUTOrIndex:e}=t||{},r=typeof e=="number",n=r?M0(e):zC,i=r?e:WC();return r||$C(n,i),i}function P0(t,e){e.map(r=>Ede(t,r))}function cP(t,e){return P0(t,e.map(r=>({...r,type:Ge.Contour})))}function bde(t){const e={};for(const[r,n]of Object.entries(t))e[r]=cP(r,n);return e}function lP(t,e){return P0(t,e.map(r=>({...r,type:Ge.Labelmap})))}function Ide(t){for(const[e,r]of Object.entries(t))lP(e,r.map(n=>({...n,type:Ge.Labelmap})))}function uP(t,e){return P0(t,e.map(r=>({...r,type:Ge.Surface})))}function Ode(t){const e={};for(const[r,n]of Object.entries(t))e[r]=uP(r,n);return e}async function Mde({segmentationId:t,viewportId:e,imageIds:r,options:n}){const i=Ct(t);if(n!=null&&n.removeOriginal){const o=i.representationData.Labelmap;_e.getVolume(o.volumeId)&&_e.removeVolumeLoadObject(o.volumeId),i.representationData.Labelmap={imageIds:r}}else i.representationData.Labelmap={...i.representationData.Labelmap,imageIds:r};await P0(e,[{segmentationId:t,type:Ge.Labelmap}]),Ce.addEventListenerOnce(F.SEGMENTATION_RENDERED,()=>Ei(t))}async function Rde({volumeId:t}){return{imageIds:_e.getVolume(t).imageIds}}function Lde({segmentationId:t,options:e}){const r=Ct(t);if(!r)return;const{volumeId:n}=r.representationData.Labelmap,i=_e.getVolume(n);return Mde({segmentationId:t,viewportId:e.viewportId,imageIds:i.imageIds,options:e})}async function Nde(t,e={}){var a;const r=(a=e.segmentIndices)!=null&&a.length?e.segmentIndices:ga(t);let n;const i=Ct(t),o=i.representationData;try{o.Contour?n=await Pde(t,{segmentIndices:r,...e}):o.Surface&&(n=await Ade(i.segmentationId,{segmentIndices:r,...e}))}catch(s){throw console.error(s),s}if(!n)throw new Error("Not enough data to convert to surface, currently only support converting volume labelmap to surface if available");return n}async function Pde(t,e={}){var c;const r=e.viewport instanceof an;if(r&&!e.viewport)throw new Error("Cannot compute labelmap from contour segmentation without providing the viewport");const n=(c=e.segmentIndices)!=null&&c.length?e.segmentIndices:ga(t),o=Ct(t).representationData.Contour;return await(r?Cde:Sde)(o,{segmentIndices:n,viewport:e.viewport})}async function Ade(t,e={}){var u;const{viewport:r}=e,n=r instanceof an,i=(u=e.segmentIndices)!=null&&u.length?e.segmentIndices:ga(t),o=Ct(t),a=new Map;if(o.representationData.Surface.geometryIds.forEach((d,h)=>{i.includes(h)&&a.set(h,d)}),n&&!r)throw new Error("Cannot compute labelmap from surface segmentation without providing the viewport");let c;if(n){const d=r.getVolumeId();c=await aC(d)}else{const d=e.viewport.getImageIds(),g=MM(d).map(p=>p.imageId);c=await oC("generatedSegmentationVolumeId",g)}const l=await _de({geometryIds:a},c);return n?l:await Rde({volumeId:c.volumeId})}async function fP(t,e={}){return GC(t,Ge.Labelmap,()=>Nde(t,e),()=>null,()=>{Xt.processLabelmapRepresentationAddition(e.viewport.id,t),setTimeout(()=>{Ei(t)},0)})}const cy=255,Zf=new Map;let ly=!1;function kde(t,e,r=!1){const n=Xn(t);if(Zf.forEach((o,a)=>{a.includes(e)&&Zf.delete(a)}),!n)return;const{viewport:i}=n;vde(i.element,e),r&&i.render()}async function Vde(t,e){const{segmentationId:r}=e,n=Ct(r);if(!n){console.warn("No segmentation found for segmentationId: ",r);return}let i=n.representationData[Ge.Labelmap],o=Ga(t.id,r);if(!i&&C2(r,Ge.Labelmap)&&!ly){if(ly=!0,i=await fP(r,{viewport:t}),!i)throw new Error(`No labelmap data found for segmentationId ${r}.`);ly=!1}if(i){if(t instanceof an)o||await dE(t,i,r),o=Ga(t.id,r);else{if(!Gi(t.id,r))return;o||await dE(t,i,r),o=Ga(t.id,r)}o&&Fde(t.id,o,e)}}function Fde(t,e,r){const{segmentationId:n}=r,{cfun:i,ofun:o}=r.config,{colorLUTIndex:a}=r,s=Il(t),c=(s==null?void 0:s.segmentationId)===n,l=Fi.getStyle({viewportId:t,type:Ge.Labelmap,segmentationId:n}),f=Fi.getRenderInactiveSegmentations(t),u=M0(a),d=Math.min(256,u.length),{outlineWidth:h,renderOutline:g,outlineOpacity:p,activeSegmentOutlineWidthDelta:v}=fE(l,c),x=nP(t,{segmentationId:n,type:Ge.Labelmap});for(let w=0;w_i().flatMap(r=>r.getViewports()),this._renderFlaggedSegmentations=()=>{this._throwIfDestroyed(),Array.from(this._needsRender).forEach(r=>{this._triggerRender(r)}),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}renderSegmentationsForViewport(e){const r=e?[e]:this._getViewportIdsForSegmentation();this._setViewportsToBeRenderedNextFrame(r)}renderSegmentation(e){const r=this._getViewportIdsForSegmentation(e);this._setViewportsToBeRenderedNextFrame(r)}_getViewportIdsForSegmentation(e){const r=this._getAllViewports(),n=[];for(const i of r){const o=i.id;if(e){const a=Ti(o,{segmentationId:e});(a==null?void 0:a.length)>0&&n.push(o)}else{const a=Ti(o);(a==null?void 0:a.length)>0&&n.push(o)}}return n}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}_setViewportsToBeRenderedNextFrame(e){e.forEach(r=>{this._needsRender.add(r)}),this._render()}_render(){this._needsRender.size>0&&this._animationFrameSet===!1&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedSegmentations),this._animationFrameSet=!0)}_triggerRender(e){const r=Ti(e);if(!(r!=null&&r.length))return;const{viewport:n}=Xn(e)||{};if(!n)return;const i=[],o=r.map(a=>{a.type===Ge.Contour&&this._addPlanarFreeHandToolIfAbsent(n);const s=Bde[a.type];try{const c=s.render(n,a);i.push(c)}catch(c){console.error(c)}return Promise.resolve({segmentationId:a.segmentationId,type:a.type})});Promise.allSettled(o).then(a=>{const s=a.filter(f=>f.status==="fulfilled").map(f=>f.value);function c(f){const{element:u,viewportId:d}=f.detail;u.removeEventListener(Se.IMAGE_RENDERED,c),s.forEach(h=>{const g={viewportId:d,segmentationId:h.segmentationId,type:h.type};De(Ce,F.SEGMENTATION_RENDERED,{...g})})}n.element.addEventListener(Se.IMAGE_RENDERED,c),n.render()})}_addPlanarFreeHandToolIfAbsent(e){qg in ve.tools||pr(Za);const r=Cn(e.id);r.hasTool(qg)||(r.addTool(qg),r.setToolPassive(qg))}}function A0(t){hP.renderSegmentationsForViewport(t)}function L2(t){hP.renderSegmentation(t)}const hP=new Gde;function N2(){return Xt.getState().segmentations}function Wde(t){const{segmentationId:e,representation:r,config:n}=t,{type:i,data:o}=r,a=o?{...o}:{};if(!a)throw new Error("Segmentation representation data may not be undefined");i===Ge.Contour&&zde(a);const s=$de(n==null?void 0:n.segments,i,a);return n==null||delete n.segments,{segmentationId:e,label:(n==null?void 0:n.label)??null,cachedStats:(n==null?void 0:n.cachedStats)??{},segments:s,representationData:{[i]:{...a}}}}function zde(t){t.geometryIds=t.geometryIds??[],t.annotationUIDsMap=t.annotationUIDsMap??new Map}function $de(t,e,r){const n={};return t?Object.entries(t).forEach(([i,o])=>{n[i]={segmentIndex:Number(i),label:o.label??`Segment ${i}`,locked:o.locked??!1,cachedStats:o.cachedStats??{},active:o.active??!1}}):e===Ge.Surface?jde(n,r):n[1]=Hde(),n}function jde(t,e){const{geometryIds:r}=e;r.forEach(n=>{const i=_e.getGeometry(n);if(i!=null&&i.data){const{segmentIndex:o}=i.data;t[o]={segmentIndex:o}}})}function Hde(){return{segmentIndex:1,label:"Segment 1",locked:!1,cachedStats:{},active:!0}}function gP(t,e){const r=Xt;t.forEach(n=>{const i=Wde(n);r.addSegmentation(i),e||Di(i.segmentationId)})}function k0(t,e,r){return mP(t,e,r)}function pP(t,e,r){return mP(t,e,r)}function mP(t,e,r){const{segmentationId:n,type:i}=e;return Kde(t,n,i,r),Xt.removeSegmentationRepresentations(t,{segmentationId:n,type:i})}function vP(){Xt.getAllViewportSegmentationRepresentations().forEach(({viewportId:e,representations:r})=>{r.forEach(({segmentationId:n,type:i})=>{k0(e,{segmentationId:n,type:i})})}),Xt.resetState()}function yP(t,e,r){k0(t,{segmentationId:e,type:Ge.Labelmap},r)}function xP(t,e,r){k0(t,{segmentationId:e,type:Ge.Contour},r)}function wP(t,e,r){k0(t,{segmentationId:e,type:Ge.Surface},r)}function Kde(t,e,r,n){Ti(t,{segmentationId:e,type:r}).forEach(a=>{a.type===Ge.Labelmap?dP.removeRepresentation(t,a.segmentationId,n):a.type===Ge.Contour?iP.removeRepresentation(t,a.segmentationId,n):a.type===Ge.Surface&&mN.removeRepresentation(t,a.segmentationId,n)});const{viewport:o}=Xn(t)||{};o&&o.render()}function uS(t){const e=Xt;e.getAllViewportSegmentationRepresentations().filter(({representations:n})=>n.some(i=>i.segmentationId===t)).map(({viewportId:n})=>n).forEach(n=>{pP(n,{segmentationId:t})}),e.removeSegmentation(t),UC(t)}function CP(){const t=Xt;t.getState().segmentations.forEach(r=>{uS(r.segmentationId)}),t.resetState()}function qde(t){Xt.removeColorLUT(t)}function SP(t,e){return Xt.getState().viewportSegRepresentations[t].map(s=>(e&&s.type===e,Ct(s.segmentationId))).filter(s=>s!==void 0)}function TP(t,e){return Xt.updateLabelmapSegmentationImageReferences(t,e)}function _P(t,e){return Xt.getStackSegmentationImageIdsForViewport(t,e)}function Xde(){Xt.resetState()}const Yde=Object.freeze(Object.defineProperty({__proto__:null,addColorLUT:$C,addSegmentations:gP,destroy:Xde,getColorLUT:M0,getCurrentLabelmapImageIdForViewport:Gi,getNextColorLUTIndex:WC,getSegmentation:Ct,getSegmentationRepresentation:w2,getSegmentationRepresentations:Ti,getSegmentationRepresentationsBySegmentationId:ple,getSegmentations:N2,getStackSegmentationImageIdsForViewport:_P,getViewportIdsWithSegmentation:R0,getViewportSegmentations:SP,removeAllSegmentationRepresentations:vP,removeAllSegmentations:CP,removeColorLUT:qde,removeContourRepresentation:xP,removeLabelmapRepresentation:yP,removeSegmentation:uS,removeSegmentationRepresentation:k0,removeSurfaceRepresentation:wP,updateLabelmapSegmentationImageReferences:TP},Symbol.toStringTag,{value:"Module"})),Jde=function(t){const{segmentationId:e,modifiedSlicesToUse:r}=t.detail,{representationData:n}=Ct(e),i=R0(e),o=i.some(c=>{const{viewport:l}=Xn(c);return l instanceof an}),a=i.some(c=>{const{viewport:l}=Xn(c);return l instanceof ln}),s=o&&a;i.forEach(c=>{const{viewport:l}=Xn(c);l instanceof an&&Zde({modifiedSlicesToUse:s?[]:r,representationData:n,type:Ge.Labelmap}),l instanceof ln&&Qde({viewportIds:i,segmentationId:e})})};function Zde({modifiedSlicesToUse:t,representationData:e,type:r}){const n=_e.getVolume(e[r].volumeId);if(!n){console.warn("segmentation not found in cache");return}const{imageData:i,vtkOpenGLTexture:o}=n;let a;if((t==null?void 0:t.length)>0)a=t;else{const s=i.getDimensions()[2];a=[...Array(s).keys()]}a.forEach(s=>{o.setUpdatedFrame(s)}),i.modified()}function Qde({viewportIds:t,segmentationId:e}){t.forEach(r=>{let n=Ti(r,{segmentationId:e});n=n.filter(i=>i.type===Ge.Labelmap),n.forEach(i=>{if(i.segmentationId!==e)return;const o=Xn(r);if(!o)return;const{viewport:a}=o;if(a instanceof an)return;const s=Ga(r,e);if(!s)return;const c=s.actor.getMapper().getInputData(),l=Gi(r,e),f=_e.getImage(l);c.modified(),u2(c,f)})})}const EP=function(t){const{segmentationId:e}=t.detail,{representationData:r}=Ct(e);r.Labelmap&&Jde(t),L2(e)},DP=function(t){const{segmentationId:e}=t.detail;L2(e)},ehe=function(t){const{viewport:e}=re(t);e instanceof Mn||(t.addEventListener(Se.STACK_NEW_IMAGE,Xd),t.addEventListener(Se.IMAGE_RENDERED,Xd))},the=function(t){t.removeEventListener(Se.STACK_NEW_IMAGE,Xd),t.removeEventListener(Se.IMAGE_RENDERED,Xd)};function Xd(t){const e=t.detail,{viewportId:r,renderingEngineId:n}=e,{viewport:i}=dr(r,n),o=Ti(r);if(!(o!=null&&o.length))return;const a=o.filter(l=>l.type===Ge.Labelmap),s=i.getActors();a.forEach(l=>{const{segmentationId:f}=l;TP(r,f)});const c=a.map(l=>Ga(r,l.segmentationId)).filter(l=>l!==void 0);c.length&&(c.forEach(l=>{a.find(u=>Gi(r,u.segmentationId)===l.referencedId)||i.removeActors([l.uid])}),a.forEach(l=>{const{segmentationId:f}=l,u=i.getCurrentImageId(),d=Gi(r,f);if(!d)return;const h=_e.getImage(d);if(!h){console.warn("No derived image found in the cache for segmentation representation",l);return}const g=s.find(p=>p.referencedId===d);if(g){const p=g.actor.getMapper().getInputData();p.setDerivedImage?p.setDerivedImage(h):u2(p,h)}else{const{dimensions:p,spacing:v,direction:x}=i.getImageDataMetadata(h),m=_e.getImage(u)||{imageId:u},{origin:y}=i.getImageDataMetadata(m),w=y,C=tt.newInstance({name:"Pixels",numberOfComponents:1,values:[...h.voxelManager.getScalarData()]}),S=C0.newInstance();S.setDimensions(p[0],p[1],1),S.setSpacing(v),S.setDirection(x),S.setOrigin(w),S.getPointData().setScalars(C),S.modified(),i.addImages([{imageId:d,representationUID:`${f}-${Ge.Labelmap}`,callback:({imageActor:T})=>{T.getMapper().setInputData(S)}}]),A0(r);return}i.render(),t.type===Se.IMAGE_RENDERED&&i.element.removeEventListener(Se.IMAGE_RENDERED,Xd)}))}const bP={enable:ehe,disable:the};function nhe(t){const e=t.detail.annotation;T2(e)}function IP(t){const e=t.detail.annotation;Mh(e)&&Afe(t)}function mm(t){if(!t.detail.removed.length)return;_i().forEach(n=>{const o=n.getViewports().map(a=>a.id);pe(o)})}function OP(t){const{viewportId:e}=t.detail;pe([e])}function rhe(t){const e=t.detail.annotation;Mh(e)&&nhe(t)}const MP=function(t){L0(t.detail.element)},ihe=function(t){t.addEventListener(Se.IMAGE_RENDERED,MP)},ohe=function(t){t.removeEventListener(Se.IMAGE_RENDERED,MP)},RP={enable:ihe,disable:ohe},{Active:ahe}=Ft;function V0(t,e,r){if(ve.isInteractingWithTool)return!1;const{renderingEngineId:n,viewportId:i}=r.detail,o=Cn(i,n);if(!o)return!1;let a;const s=Object.keys(o.toolOptions);for(let c=0;c{for(const c of s){if(c.isLocked||!c.isVisible)continue;const l=a.getHandleNearImagePoint(t,c,r,i);if(l){o.push({tool:a,annotation:c,handle:l});break}}}),o}function Ah(t,e){const r=[];for(let n=0;n0&&r.push({tool:i,annotations:o}))}return r}function fS(t,e,r,n="mouse"){const i=n==="touch"?36:6,o=[];return e.forEach(({tool:a,annotations:s})=>{for(const c of s){if(c.isLocked||!c.isVisible)continue;if(a.isPointNearTool(t,c,r,i,n)){o.push({tool:a,annotation:c});break}}}),o}const{Active:she}=Ft;function P2(t){const{renderingEngineId:e,viewportId:r,event:n}=t.detail,i=N0(n)||O0.getModifierKey(),o=Cn(r,e);if(!o)return null;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary(),c=t.detail.buttons??(n==null?void 0:n.buttons)??s;for(let l=0;lh.mouseButton===c&&h.modifierKey===i);if(u.mode===she&&d)return o.getToolInstance(f)}}function i0(t,e,r){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;cd.mouseButton===r);if(e.includes(f.mode)&&(!r||u)){const d=o.getToolInstance(l);a.push(d)}}return a}function che(t,e){var u;const r=new Map,{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return r;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary(),c=t.detail.event,l=(c==null?void 0:c.buttons)??s,f=N0(c)||O0.getModifierKey();for(let d=0;dm.bindings.length&&m.bindings.some(y=>y.mouseButton===l&&y.modifierKey===f));x&&r.set(g,x)}return r}const{Active:lhe,Passive:uhe}=Ft;function fhe(t){if(ve.isInteractingWithTool)return!1;const e=t.detail,{element:r}=e,n=re(r),{canvas:i}=e.currentPoints;if(!n)return!1;const o=che(t,[lhe,uhe]),a=Array.from(o.keys()),s=Ah(r,a),c=fS(r,s,i);if(c.length>0){const{tool:l,annotation:f}=c[0],u=o.get(l);return(typeof u.method=="string"?l[u.method]:u.method).call(l,t,f),!0}return!1}const{Active:dhe,Passive:hhe}=Ft;function AP(t){if(ve.isInteractingWithTool)return;const e=P2(t);if(e&&typeof e.preMouseDownCallback=="function"&&e.preMouseDownCallback(t))return;const r=t.detail.event.buttons===1,n=i0(t,[dhe],t.detail.event.buttons),i=r?i0(t,[hhe]):void 0,o=[...n||[],...i||[]];if(fhe(t))return;const s=t.detail,{element:c}=s,l=Ah(c,o),f=s.currentPoints.canvas,u=PP(c,l,f,"mouse"),d=!!t.detail.event.shiftKey;if(u.length>0){const{tool:g,annotation:p,handle:v}=hE(u);gE(p.annotationUID,d),g.handleSelectedCallback(t,p,v,"Mouse");return}const h=fS(c,l,f,"mouse");if(h.length>0){const{tool:g,annotation:p}=hE(h);gE(p.annotationUID,d),g.toolSelectedCallback(t,p,"Mouse",f);return}e&&typeof e.postMouseDownCallback=="function"&&e.postMouseDownCallback(t)}function hE(t){if(t.length>1){const e=t.find(r=>{const n=!rr(r.annotation.annotationUID),i=Ur(r.annotation.annotationUID);return n&&i});if(e)return e}return t[0]}function gE(t,e=!1){e?Ih(t)?Vi(t,!1):Vi(t,!0,!0):Vi(t,!0,!1)}function kP(t){if(ve.isInteractingWithTool)return;const e=P2(t);if(e&&!ve.isMultiPartToolActive&&e.addNewAnnotation){const r=e.addNewAnnotation(t,"mouse");Vi(r.annotationUID)}}function VP(t){if(ve.isInteractingWithTool)return;const e=P2(t);!e||typeof e.mouseDragCallback!="function"||e.mouseDragCallback(t)}const{Active:ghe,Passive:phe}=Ft;function FP(t){if(ve.isInteractingWithTool||ve.isMultiPartToolActive)return;const e=i0(t,[ghe,phe]),r=t.detail,{element:n}=r,i=Ah(n,e),o=e.filter(s=>!i.some(l=>l.tool.getToolName()===s.getToolName()));let a=!1;for(const{tool:s,annotations:c}of i)typeof s.mouseMoveCallback=="function"&&(a=s.mouseMoveCallback(t,c)||a);o.forEach(s=>{typeof s.mouseMoveCallback=="function"&&s.mouseMoveCallback(t)}),a===!0&&L0(n),ve.isInteractingWithTool||bC(n,null)}const UP=V0.bind(null,"Mouse","mouseUpCallback");function BP(t){if(ve.isInteractingWithTool)return;t.detail.buttons=la.Wheel|(t.detail.event.buttons||0);const e=P2(t);if(e)return e.mouseWheelCallback(t)}const mhe=function(t){t.addEventListener(F.MOUSE_CLICK,LP),t.addEventListener(F.MOUSE_DOWN,AP),t.addEventListener(F.MOUSE_DOWN_ACTIVATE,kP),t.addEventListener(F.MOUSE_DOUBLE_CLICK,NP),t.addEventListener(F.MOUSE_DRAG,VP),t.addEventListener(F.MOUSE_MOVE,FP),t.addEventListener(F.MOUSE_UP,UP),t.addEventListener(F.MOUSE_WHEEL,BP)},vhe=function(t){t.removeEventListener(F.MOUSE_CLICK,LP),t.removeEventListener(F.MOUSE_DOWN,AP),t.removeEventListener(F.MOUSE_DOWN_ACTIVATE,kP),t.removeEventListener(F.MOUSE_DOUBLE_CLICK,NP),t.removeEventListener(F.MOUSE_DRAG,VP),t.removeEventListener(F.MOUSE_MOVE,FP),t.removeEventListener(F.MOUSE_UP,UP),t.removeEventListener(F.MOUSE_WHEEL,BP)},GP={enable:mhe,disable:vhe},{Active:yhe}=Ft;function WP(t){const{renderingEngineId:e,viewportId:r}=t.detail,n=Ace(),i=O0.getModifierKey(),o=Cn(r,e);if(!o)return null;const a=Object.keys(o.toolOptions),s=o.getDefaultMousePrimary();for(let c=0;cd.mouseButton===(n??s)&&d.modifierKey===i))return o.getToolInstance(l)}}function xhe(t,e){var c;const r=new Map,{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return r;const a=Object.keys(o.toolOptions),s=t.detail.key;for(let l=0;lp.bindings.some(v=>v.key===s));g&&r.set(u,g)}return r}function zP(t){const e=WP(t);if(e){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n),a=e.getToolName();Object.keys(o.toolOptions).includes(a)&&o.setViewportsCursorByToolName(a)}const r=xhe(t,[Ft.Active]);if(r!=null&&r.size){const{element:n}=t.detail;for(const[i,o]of[...r.entries()])(typeof o.method=="function"?o.method:i[o.method]).call(i,n,o,t)}}function $P(t){const e=WP(t);if(!e)return;const{renderingEngineId:r,viewportId:n}=t.detail,i=Cn(n,r);nN();const o=e.getToolName();Object.keys(i.toolOptions).includes(o)&&i.setViewportsCursorByToolName(o)}const whe=function(t){t.addEventListener(F.KEY_DOWN,zP),t.addEventListener(F.KEY_UP,$P)},Che=function(t){t.removeEventListener(F.KEY_DOWN,zP),t.removeEventListener(F.KEY_UP,$P)},jP={enable:whe,disable:Che},{Active:She,Passive:The,Enabled:_he}=Ft,HP=function(t){i0(t,[She,The,_he]).forEach(r=>{r.onCameraModified&&r.onCameraModified(t)})},Ehe=function(t){t.addEventListener(Se.CAMERA_MODIFIED,HP)},Dhe=function(t){t.removeEventListener(Se.CAMERA_MODIFIED,HP)},KP={enable:Ehe,disable:Dhe},{Active:bhe,Passive:Ihe,Enabled:Ohe}=Ft,qP=function(t){i0(t,[bhe,Ihe,Ohe]).forEach(r=>{r.onImageSpacingCalibrated&&r.onImageSpacingCalibrated(t)})},Mhe=function(t){t.addEventListener(Se.IMAGE_SPACING_CALIBRATED,qP)},Rhe=function(t){t.removeEventListener(Se.IMAGE_SPACING_CALIBRATED,qP)},XP={enable:Mhe,disable:Rhe},{Active:Lhe}=Ft;function dS(t){const{renderingEngineId:e,viewportId:r}=t.detail,n=t.detail.event,i=Cn(r,e);if(!i)return null;const o=Object.keys(i.toolOptions),a=Object.keys(n.touches).length,s=N0(n)||O0.getModifierKey(),c=i.getDefaultMousePrimary();for(let l=0;l(h.numTouchPoints===a||a===1&&h.mouseButton===c)&&h.modifierKey===s);if(u.mode===Lhe&&d)return i.getToolInstance(f)}}function pE(t,e,r){const{renderingEngineId:n,viewportId:i}=t.detail,o=Cn(i,n);if(!o)return[];const a=[],s=Object.keys(o.toolOptions);for(let c=0;cd.numTouchPoints===r);if(e.includes(f.mode)&&(!r||u)){const d=o.getToolInstance(l);a.push(d)}}return a}const{Active:Nhe,Passive:Phe}=Ft;function YP(t){if(ve.isInteractingWithTool)return;const e=dS(t);if(e&&typeof e.preTouchStartCallback=="function"&&e.preTouchStartCallback(t))return;const r=Object.keys(t.detail.event.touches).length===1,n=pE(t,[Nhe],Object.keys(t.detail.event.touches).length),i=r?pE(t,[Phe]):void 0,o=[...n||[],...i||[],e],a=t.detail,{element:s}=a,c=Ah(s,o),l=a.currentPoints.canvas,f=PP(s,c,l,"touch"),u=!1;if(f.length>0){const{tool:h,annotation:g,handle:p}=mE(f);vE(g.annotationUID,u),h.handleSelectedCallback(t,g,p,"Touch");return}const d=fS(s,c,l,"touch");if(d.length>0){const{tool:h,annotation:g}=mE(d);vE(g.annotationUID,u),h.toolSelectedCallback(t,g,"Touch");return}e&&typeof e.postTouchStartCallback=="function"&&e.postTouchStartCallback(t)}function mE(t){return t.length>1&&t.find(e=>!rr(e.annotation.annotationUID)&&Ur(e.annotation.annotationUID))||t[0]}function vE(t,e=!1){e?Ih(t)?Vi(t,!1):Vi(t,!0,!0):Vi(t,!0,!1)}function JP(t){if(ve.isInteractingWithTool)return;const e=dS(t);if(e&&!ve.isMultiPartToolActive&&e.addNewAnnotation){const r=e.addNewAnnotation(t,"touch");Vi(r.annotationUID)}}function ZP(t){if(ve.isInteractingWithTool)return;const e=dS(t);!e||typeof e.touchDragCallback!="function"||e.touchDragCallback(t)}const QP=V0.bind(null,"Touch","touchEndCallback"),Ahe=V0.bind(null,"Touch","touchTapCallback"),eA=V0.bind(null,"Touch","touchPressCallback"),khe=function(t){t.addEventListener(F.TOUCH_START,YP),t.addEventListener(F.TOUCH_START_ACTIVATE,JP),t.addEventListener(F.TOUCH_DRAG,ZP),t.addEventListener(F.TOUCH_END,QP),t.addEventListener(F.TOUCH_TAP,Ahe),t.addEventListener(F.TOUCH_PRESS,eA)},Vhe=function(t){t.removeEventListener(F.TOUCH_START,YP),t.removeEventListener(F.TOUCH_START_ACTIVATE,JP),t.removeEventListener(F.TOUCH_DRAG,ZP),t.removeEventListener(F.TOUCH_END,QP),t.removeEventListener(F.TOUCH_PRESS,eA)},tA={enable:khe,disable:Vhe},Fhe=function(){Ce.addEventListener(F.ANNOTATION_COMPLETED,ra.handleAnnotationCompleted),Ce.addEventListener(F.ANNOTATION_MODIFIED,ra.handleAnnotationUpdate),Ce.addEventListener(F.ANNOTATION_REMOVED,ra.handleAnnotationDelete)},Uhe=function(){Ce.removeEventListener(F.ANNOTATION_COMPLETED,ra.handleAnnotationCompleted),Ce.removeEventListener(F.ANNOTATION_MODIFIED,ra.handleAnnotationUpdate),Ce.removeEventListener(F.ANNOTATION_REMOVED,ra.handleAnnotationDelete)},nA={enable:Fhe,disable:Uhe},{Active:Bhe,Passive:Ghe,Enabled:Whe}=Ft,rA=function(t){i0(t,[Bhe,Ghe,Whe]).forEach(r=>{r.onResetCamera&&r.onResetCamera(t)})},zhe=function(t){t.addEventListener(Se.CAMERA_RESET,rA)},$he=function(t){t.removeEventListener(Se.CAMERA_RESET,rA)},iA={enable:zhe,disable:$he};function oA(t){const{element:e,viewportId:r}=t.detail,n=jhe(r);Hhe(e),Khe(n,e),oS.addViewportElement(r,e),AL.enable(e),eN.enable(e),JL.enable(e),O0.enable(e),bP.enable(e),RP.enable(e),KP.enable(e),XP.enable(e),iA.enable(e),GP.enable(e),jP.enable(e),tA.enable(e),ve.enabledElements.push(e)}function jhe(t){const e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg"),n=`svg-layer-${t}`;r.classList.add("svg-layer"),r.setAttribute("id",n),r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.style.width="100%",r.style.height="100%",r.style.pointerEvents="none",r.style.position="absolute";const i=document.createElementNS(e,"defs"),o=document.createElementNS(e,"filter"),a=document.createElementNS(e,"feOffset"),s=document.createElementNS(e,"feColorMatrix"),c=document.createElementNS(e,"feBlend");return o.setAttribute("id",`shadow-${n}`),o.setAttribute("filterUnits","userSpaceOnUse"),a.setAttribute("result","offOut"),a.setAttribute("in","SourceGraphic"),a.setAttribute("dx","0.5"),a.setAttribute("dy","0.5"),s.setAttribute("result","matrixOut"),s.setAttribute("in","offOut"),s.setAttribute("in2","matrix"),s.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),c.setAttribute("in","SourceGraphic"),c.setAttribute("in2","matrixOut"),c.setAttribute("mode","normal"),o.appendChild(a),o.appendChild(s),o.appendChild(c),i.appendChild(o),r.appendChild(i),r}function Hhe(t){const{viewportUid:e,renderingEngineUid:r}=t.dataset,n=`${e}:${r}`;ve.svgNodeCache[n]={}}function Khe(t,e){e.querySelector("div.viewport-element").appendChild(t)}function aA(t,e){const r=[];if(!e&&!t)throw new Error("At least one of renderingEngineId or viewportId should be given");for(let n=0;n{const e=re(t);aA(e.viewportId,e.renderingEngineId).forEach(n=>{n.remove(e)})},Yhe=t=>{const{renderingEngineId:e,viewportId:r}=re(t),n=Cn(r,e);n&&n.removeViewports(e,r)};function Jhe(t){const{viewportUid:e,renderingEngineUid:r}=t.dataset,n=`${e}:${r}`;delete ve.svgNodeCache[n]}function Zhe(t){const e=t.querySelector(`div.${qhe}`),r=e.querySelector("svg");r&&e.removeChild(r)}const Qhe=function(t){const e=ve.enabledElements.findIndex(r=>r===t);e>-1&&ve.enabledElements.splice(e,1)};function ege(t){const e=WN(t,[Ft.Active,Ft.Passive]),r=Ah(t,e);for(const{tool:n}of r){const i=n.cancel(t);if(i)return i}}class cA{constructor(e,r,n,i){this._viewportOptions={},this._onEvent=o=>{var l;if(this._ignoreFiredEvents===!0||!this._targetViewports.length)return;const a=this._eventSource==="element"?re(o.currentTarget):Xn((l=o.detail)==null?void 0:l.viewportId);if(!a)return;const{renderingEngineId:s,viewportId:c}=a;this._sourceViewports.find(f=>f.viewportId===c)&&this.fireEvent({renderingEngineId:s,viewportId:c},o)},this._enabled=!0,this._eventName=r,this._eventHandler=n,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this._options=i||{},this._eventSource=this._options.eventSource||"element",this._auxiliaryEvents=this._options.auxiliaryEvents||[],this.id=e}isDisabled(){return!this._enabled||!this._hasSourceElements()}setOptions(e,r={}){this._viewportOptions[e]=r}setEnabled(e){this._enabled=e}getOptions(e){return this._viewportOptions[e]}add(e){this.addTarget(e),this.addSource(e)}addSource(e){if(Xg(this._sourceViewports,e))return;const{renderingEngineId:r,viewportId:n}=e,i=gr(r).getViewport(n);if(!i){console.warn(`Synchronizer.addSource: No viewport for ${r} ${n}`);return}(this._eventSource==="element"?i.element:Ce).addEventListener(this._eventName,this._onEvent.bind(this)),this._auxiliaryEvents.forEach(({name:a,source:s})=>{(s==="element"?i.element:Ce).addEventListener(a,this._onEvent.bind(this))}),this._updateDisableHandlers(),this._sourceViewports.push(e)}addTarget(e){Xg(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}getSourceViewports(){return this._sourceViewports}getTargetViewports(){return this._targetViewports}destroy(){this._sourceViewports.forEach(e=>this.removeSource(e)),this._targetViewports.forEach(e=>this.removeTarget(e))}remove(e){this.removeTarget(e),this.removeSource(e)}removeSource(e){const r=yE(this._sourceViewports,e);if(r===-1)return;const n=this._eventSource==="element"?this.getViewportElement(e):Ce;this._sourceViewports.splice(r,1),n.removeEventListener(this._eventName,this._eventHandler),this._auxiliaryEvents.forEach(({name:i,source:o})=>{(o==="element"?this.getViewportElement(e):Ce).removeEventListener(i,this._eventHandler)}),this._updateDisableHandlers()}removeTarget(e){const r=yE(this._targetViewports,e);r!==-1&&(this._targetViewports.splice(r,1),this._updateDisableHandlers())}hasSourceViewport(e,r){return Xg(this._sourceViewports,{renderingEngineId:e,viewportId:r})}hasTargetViewport(e,r){return Xg(this._targetViewports,{renderingEngineId:e,viewportId:r})}fireEvent(e,r){if(this.isDisabled()||this._ignoreFiredEvents)return;this._ignoreFiredEvents=!0;const n=[];try{for(let i=0;i{this._ignoreFiredEvents=!1}):this._ignoreFiredEvents=!1}}_hasSourceElements(){return this._sourceViewports.length!==0}_updateDisableHandlers(){const e=tge(this._sourceViewports,this._targetViewports),r=this.remove.bind(this),n=i=>{r(i.detail.element)};e.forEach(i=>{const o=this.getEventSource(i);o.removeEventListener(Se.ELEMENT_DISABLED,n),o.addEventListener(Se.ELEMENT_DISABLED,n)})}getEventSource(e){return this._eventSource==="element"?this.getViewportElement(e):Ce}getViewportElement(e){const{renderingEngineId:r,viewportId:n}=e,i=gr(r);if(!i)throw new Error(`No RenderingEngine for Id: ${r}`);return i.getViewport(n).element}}function tge(t,e){const r=[],n=t.concat(e);for(let i=0;io.renderingEngineId===a.renderingEngineId&&o.viewportId===a.viewportId)||r.push(o)}return r}function yE(t,e){return t.findIndex(r=>e.renderingEngineId===r.renderingEngineId&&e.viewportId===r.viewportId)}function Xg(t,e){return t.some(r=>r.renderingEngineId===e.renderingEngineId&&r.viewportId===e.viewportId)}function Ol(t,e,r,n){if(ve.synchronizers.some(a=>a.id===t))throw new Error(`Synchronizer with id '${t}' already exists.`);const o=new cA(t,e,r,n);return ve.synchronizers.push(o),o}function nge(){for(;ve.synchronizers.length>0;)ve.synchronizers.pop().destroy()}function rge(t){return ve.synchronizers.find(e=>e.id===t)}function ige(){return ve.synchronizers}function oge(t){const e=ve.synchronizers.findIndex(r=>r.id===t);e>-1&&(ve.synchronizers[e].destroy(),ve.synchronizers.splice(e,1))}const age=Object.freeze(Object.defineProperty({__proto__:null,createSynchronizer:Ol,destroy:nge,destroySynchronizer:oge,getAllSynchronizers:ige,getSynchronizer:rge,getSynchronizersForViewport:aA},Symbol.toStringTag,{value:"Module"})),vm=function(t){const{viewportId:e}=t.detail;A0(e)};let N3=!1;function lA(t={}){N3||(cge(),lge(),N3=!0)}function sge(){uA(),fA(),sL(),Iae();const t=ha(),e=Xt;t.restoreAnnotations({}),e.resetState(),N3=!1}function cge(){uA();const t=Se.ELEMENT_ENABLED,e=Se.ELEMENT_DISABLED;Ce.addEventListener(t,oA),Ce.addEventListener(e,sA),nA.enable()}function uA(){const t=Se.ELEMENT_ENABLED,e=Se.ELEMENT_DISABLED;Ce.removeEventListener(t,oA),Ce.removeEventListener(e,sA),nA.disable()}function lge(){fA(),Ce.addEventListener(F.ANNOTATION_COMPLETED,IP),Ce.addEventListener(F.ANNOTATION_MODIFIED,OP),Ce.addEventListener(F.ANNOTATION_SELECTION_CHANGE,mm),Ce.addEventListener(F.ANNOTATION_SELECTION_CHANGE,mm),Ce.addEventListener(F.ANNOTATION_REMOVED,rhe),Ce.addEventListener(F.SEGMENTATION_MODIFIED,DP),Ce.addEventListener(F.SEGMENTATION_DATA_MODIFIED,EP),Ce.addEventListener(F.SEGMENTATION_REPRESENTATION_MODIFIED,vm),Ce.addEventListener(F.SEGMENTATION_REPRESENTATION_ADDED,vm)}function fA(){Ce.removeEventListener(F.ANNOTATION_COMPLETED,IP),Ce.removeEventListener(F.ANNOTATION_MODIFIED,OP),Ce.removeEventListener(F.ANNOTATION_SELECTION_CHANGE,mm),Ce.removeEventListener(F.ANNOTATION_SELECTION_CHANGE,mm),Ce.removeEventListener(F.SEGMENTATION_MODIFIED,DP),Ce.removeEventListener(F.SEGMENTATION_DATA_MODIFIED,EP),Ce.removeEventListener(F.SEGMENTATION_REPRESENTATION_MODIFIED,vm),Ce.removeEventListener(F.SEGMENTATION_REPRESENTATION_ADDED,vm)}const uge=Object.freeze(Object.defineProperty({__proto__:null,COLOR_LUT:zC},Symbol.toStringTag,{value:"Module"}));function fge(t,e,r,n){const{camera:i}=n.detail,o=gr(r.renderingEngineId);if(!o)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const a=o.getViewport(r.viewportId);a.setCamera(i),a.render()}const{CAMERA_MODIFIED:dge}=Se;function hge(t){return Ol(t,dge,fge)}function gge(t,e,r,n,i){const o=gr(r.renderingEngineId);if(!o)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const a=o.getViewport(r.viewportId),c=o.getViewport(e.viewportId).getViewPresentation(i);a.setViewPresentation(c),a.render()}const{CAMERA_MODIFIED:pge}=Se;function mge(t,e){return Ol(t,pge,gge,{viewPresentation:e})}function vge(t,e,r,n,i){const o=n.detail,{volumeId:a,range:s,invertStateChanged:c,invert:l,colormap:f}=o,u=gr(r.renderingEngineId);if(!u)throw new Error(`Rendering Engine does not exist: ${r.renderingEngineId}`);const d=u.getViewport(r.viewportId),h={voiRange:s};if(i!=null&&i.syncInvertState&&c&&(h.invert=l),i!=null&&i.syncColormap&&f&&(h.colormap=f),d instanceof Mn)d._actors&&d._actors.size>1?d.setProperties(h,a):d.setProperties(h);else if(d instanceof ln)d.setProperties(h);else throw new Error("Viewport type not supported.");d.render()}function yge(t,e){return e=Object.assign({syncInvertState:!0,syncColormap:!0},e),Ol(t,Se.VOI_MODIFIED,vge,{auxiliaryEvents:[{name:Se.COLORMAP_MODIFIED}],...e})}function xge(t,e,r){const n=gr(r.renderingEngineId);if(!n)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const i=t.getOptions(r.viewportId),o=n.getViewport(r.viewportId),a=n.getViewport(e.viewportId);if((i==null?void 0:i.syncZoom)!==!1){const s=a.getZoom();o.setZoom(s)}if((i==null?void 0:i.syncPan)!==!1){const s=a.getPan();o.setPan(s)}o.render()}const{CAMERA_MODIFIED:wge}=Se;function Cge(t){return Ol(t,wge,xge)}function Sge(t,e){const{viewPlaneNormal:r}=t.getCamera(),{viewPlaneNormal:n}=e.getCamera(),i=je(r,n);return Math.abs(i)>.9}const xE=(t,e)=>Fd.get("spatialRegistrationModule",t,e);async function Tge(t,e,r){const n=gr(r.renderingEngineId);if(!n)throw new Error(`No RenderingEngine for Id: ${r.renderingEngineId}`);const i=n.getViewport(e.viewportId),o=t.getOptions(r.viewportId);if(o!=null&&o.disabled)return;const a=n.getViewport(r.viewportId),s=i.getCurrentImageId(),l=Pe("imagePlaneModule",s).imagePositionPatient,f=a.getImageIds();if(!Sge(i,a))return;let u=xE(r.viewportId,e.viewportId);if(!u){const p=i.getFrameOfReferenceUID(),v=a.getFrameOfReferenceUID();if(p===v&&(o==null?void 0:o.useInitialPosition)!==!1?u=qe(lo()):(gR(i,a),u=xE(r.viewportId,e.viewportId)),!u)return}const d=et(we(),l,u),h=_ge(d,f);let g=h.index;a instanceof an&&(g=f.length-h.index-1),h.index!==-1&&a.getCurrentImageIdIndex()!==h.index&&await Ho(a.element,{imageIndex:g})}function _ge(t,e){return e.reduce((r,n,i)=>{const{imagePositionPatient:o}=Pe("imagePlaneModule",n),a=Cr(o,t);return a{i.getImageIds().includes(t)&&i.calibrateSpacing(t)})}function gA(t,e){const r=t.findIndex(([n,i])=>n===i);if(r===-1)throw new Error("3D bounding boxes not supported in an oblique plane");return t[r][0]-=e,t[r][1]+=e,t}const Age=Object.freeze(Object.defineProperty({__proto__:null,extend2DBoundingBoxInViewAxis:gA,getBoundingBoxAroundShape:Qs,getBoundingBoxAroundShapeIJK:Qs,getBoundingBoxAroundShapeWorld:oN},Symbol.toStringTag,{value:"Module"})),{transformWorldToIndex:uy}=Yt;function pA(t,e,r){const[n,i]=t,o=Ye((n[0]+i[0])/2,(n[1]+i[1])/2,(n[2]+i[2])/2),a=Cr(n,i)/2;if(!r)throw new Error("viewport is required in order to calculate the sphere bounds");const{boundsIJK:s,topLeftWorld:c,bottomRightWorld:l}=kge(e,r,t,o,a);return{boundsIJK:s,centerWorld:o,radiusWorld:a,topLeftWorld:c,bottomRightWorld:l}}function kge(t,e,r,n,i){const[o,a]=r,s=t.getDimensions(),c=e.getCamera(),l=Ye(c.viewUp[0],c.viewUp[1],c.viewUp[2]),f=Ye(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),u=we();Kt(u,l,f);const d=we(),h=we();Vt(d,a,f,i),Vt(h,o,f,-i),Vt(d,d,u,-i),Vt(h,h,u,i);const g=uy(t,d),p=uy(t,h),v=r.map(m=>uy(t,m));return{boundsIJK:Qs([g,p,...v],s),topLeftWorld:d,bottomRightWorld:h}}const jS=class jS{static imageIdToFrames(e){const r=e.match(this.frameRangeExtractor);if(!r||!r[2])return null;const n=r[2].split("-").map(i=>Number(i));return n.length===1?n[0]:n}static framesToString(e){return Array.isArray(e)?`${e[0]}-${e[1]}`:String(e)}static framesToImageId(e,r){const n=e.match(this.frameRangeExtractor);if(!n||!n[2])return null;const i=this.framesToString(r);return e.replace(this.frameRangeExtractor,`${n[1]}${i}`)}static setFrameRange(e,r,n){const{referencedImageId:i}=e.metadata;e.metadata.referencedImageId=this.framesToImageId(i,r);const o={...n,annotation:e};De(Ce,F.ANNOTATION_MODIFIED,o)}static getFrameRange(e){return this.imageIdToFrames(e.metadata.referencedImageId)}};jS.frameRangeExtractor=/(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;let P3=jS;function Vge(t,e){const{viewPlaneNormal:r}=t.metadata,{viewPlaneNormal:n}=e.metadata,i=je(r,n);if(!Xs(1,Math.abs(i)))return!1;const{polyline:a}=t.data.contour,{polyline:s}=e.data.contour,c=je(r,a[0]),l=je(r,s[0]);return Xs(c,l)}function mA(t,e,r){let n=-1;if(e.forEach((i,o)=>{n>=0||i.a==t.b&&(n=o)}),n>=0){const i=e[n];return e.splice(n,1),r.push(i.b),r[0]==i.b?{remainingLines:e,contourPoints:r,type:"CLOSED_PLANAR"}:mA(i,e,r)}return{remainingLines:e,contourPoints:r,type:"OPEN_PLANAR"}}function hS(t){if(t.length==0)return[];const e=[],r=t.shift();e.push(r.a),e.push(r.b);const n=mA(r,t,e);if(n.remainingLines.length==0)return[{type:n.type,contourPoints:n.contourPoints}];{const i=hS(n.remainingLines);return i.push({type:n.type,contourPoints:n.contourPoints}),i}}function vA(t){return hS(t)}const Fge={findContours:hS,findContoursFromReducedSet:vA};function yA(t,e=!1){const r=t.getPoints(),n=t.getLines(),i=new Array(r.getNumberOfPoints()).fill(0).map((c,l)=>r.getPoint(l).slice()),o=new Array(n.getNumberOfCells()).fill(0).map((c,l)=>{const f=n.getCell(l*3).slice();return{a:f[0],b:f[1]}});if(e)return{points:i,lines:o};const a=[];for(const[c,l]of i.entries()){const f=a.findIndex(u=>u[0]===l[0]&&u[1]===l[1]&&u[2]===l[2]);if(f>=0)o.map(u=>(u.a===c&&(u.a=f),u.b===c&&(u.b=f),u));else{const u=a.length;a.push(l),o.map(d=>(d.a===c&&(d.a=u),d.b===c&&(d.b=u),d))}}const s=o.filter(c=>c.a!==c.b);return{points:a,lines:s}}const Uge=(t,e)=>{const r=t[0],n=t[1];let i=!1;for(let o=0,a=e.length-1;on!=f>n&&r<(l-s)*(n-c)/(f-c)+s&&(i=!i)}return i};function Bge(t,e,r){const n=[];t.contourPoints.forEach(o=>{n.push([r[o][0],r[o][1]])});let i=0;return e.contourPoints.forEach(o=>{Uge([r[o][0],r[o][1]],n)||i++}),i===0}function Gge(t,e,r=!0){const n=t.filter(s=>s.type!=="CLOSED_PLANAR"),i=t.filter(s=>s.type==="CLOSED_PLANAR"),o=[];let a=[];return i.forEach((s,c)=>{const l=[];i.forEach((f,u)=>{c!=u&&Bge(s,f,e)&&l.push(u)}),l.length>0?o.push({contour:s,holes:l}):a.push(c)}),r&&(o.forEach(s=>{s.contour.type="CLOSEDPLANAR_XOR",n.push(s.contour),s.holes.forEach(c=>{i[c].type="CLOSEDPLANAR_XOR",n.push(i[c]),a=a.filter(l=>l!==c)})}),a.forEach(s=>{n.push(i[s])})),n}const Wge={processContourHoles:Gge};class zge{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.oriented=e,this.edgeMap=new Map}initialize(){this.edgeMap.clear()}computeEdgeKey(e,r){return this.oriented||e0&&arguments[0]!==void 0?arguments[0]:{};return new zge(t.oriented)}var jge={newInstance:$ge};const Hge=[[-1,-1,-1,-1,-1],[0,3,-1,-1,-1],[1,0,-1,-1,-1],[1,3,-1,-1,-1],[2,1,-1,-1,-1],[0,3,2,1,-1],[2,0,-1,-1,-1],[2,3,-1,-1,-1],[3,2,-1,-1,-1],[0,2,-1,-1,-1],[1,0,3,2,-1],[1,2,-1,-1,-1],[3,1,-1,-1,-1],[0,1,-1,-1,-1],[3,0,-1,-1,-1],[-1,-1,-1,-1,-1]],Kge=[[0,1],[1,3],[2,3],[0,2]];function qge(t){return Hge[t]}function Xge(t){return Kge[t]}var wE={getCase:qge,getEdge:Xge};const{vtkErrorMacro:CE,vtkDebugMacro:Yge}=W;function Jge(t,e){function r(){let s=0,c=1;return e.slicingMode===1?(s=0,c=2):e.slicingMode===0&&(s=1,c=2),[s,c]}e.classHierarchy.push("vtkImageMarchingSquares"),t.getContourValues=()=>e.contourValues,t.setContourValues=s=>{e.contourValues=s,t.modified()};const n=[],i=[],o=[],a=jge.newInstance();t.getPixelScalars=(s,c,l,f,u,d)=>{const[h,g,p]=s;n[0]=p*c[1]*c[0]+g*c[0]+h,n[1]=n[0]+f[u],n[2]=n[0]+f[d],n[3]=n[2]+f[u];for(let v=0;v<4;++v)i[v]=l[n[v]]},t.getPixelPoints=(s,c,l,f,u)=>{const d=s[f],h=s[u];o[0]=c[f]+d*l[f],o[1]=c[u]+h*l[u],o[2]=o[0]+l[f],o[3]=o[1],o[4]=o[0],o[5]=o[1]+l[u],o[6]=o[2],o[7]=o[5]},t.produceLines=(s,c,l,f,u,d,h,g,p,v,x)=>{var E;const m=c[e.slicingMode],y=[1,2,8,4],w=[];let C;t.getPixelScalars(c,l,d,p,v,x);let S=0;for(let D=0;D<4;D++)i[D]>=s&&(S|=y[D]);const T=wE.getCase(S);if(T[0]<0)return;t.getPixelPoints(c,f,u,v,x);const _=f[e.slicingMode]+m*u[e.slicingMode];for(let D=0;T[D]>=0;D+=2){g.push(2);for(let b=0;b<2;b++){const I=wE.getEdge(T[D+b]);if(C=void 0,e.mergePoints&&(C=(E=a.isInsertedEdge(n[I[0]],n[I[1]]))==null?void 0:E.value),C===void 0){const R=(s-i[I[0]])/(i[I[1]]-i[I[0]]),M=o.slice(I[0]*2,(I[0]+1)*2),L=o.slice(I[1]*2,(I[1]+1)*2);w[v]=M[0]+R*(L[0]-M[0]),w[x]=M[1]+R*(L[1]-M[1]),w[e.slicingMode]=_,C=h.length/3,h.push(w[0],w[1],w[2]),e.mergePoints&&a.insertEdge(n[I[0]],n[I[1]],C)}g.push(C)}}},t.requestData=(s,c)=>{const l=s[0];if(!l){CE("Invalid or missing input");return}if(e.slicingMode==null||e.slicingMode<0||e.slicingMode>2){CE("Invalid or missing slicing mode");return}console.time("msquares");const f=l.getOrigin(),u=l.getSpacing(),d=l.getDimensions(),h=l.getExtent(),g=l.computeIncrements(h),p=l.getPointData().getScalars().getData(),[v,x]=r(),m=[],y=[];let w=Math.round(e.slice);w>=d[e.slicingMode]&&(w=0);const C=[0,0,0];C[e.slicingMode]=w;for(let T=0;T2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Zge,r),W.obj(t,e),W.algo(t,e,1,1),W.setGet(t,e,["slicingMode","slice","mergePoints"]),W.algo(t,e,1,1),Jge(t,e)}const Qge=W.newInstance(xA,"vtkImageMarchingSquares");var epe={newInstance:Qge,extend:xA};const{Labelmap:tpe}=Ge;function wA({segmentations:t}){var u;const{representationData:e,segments:r=[0,1]}=t,{volumeId:n}=e[tpe],i=_e.getVolume(n);if(!i){console.warn(`No volume found for ${n}`);return}const o=i.dimensions[2],a=i.voxelManager,s=i.dimensions[0]*i.dimensions[1];for(let d=0;d{const c=rpe(a),l=ipe(o[s],r);return{NumberOfContourPoints:c.length/3,ContourImageSequence:l,ContourGeometricType:"CLOSED_PLANAR",ContourData:c}})}}CA.toolName="RectangleROIStartEndThreshold";function rpe(t){return[...t[0],...t[1],...t[3],...t[2]].flat().map(i=>i.toFixed(2))}function ipe(t,e){const r=e.get("sopCommonModule",t);return{ReferencedSOPClassUID:r.sopClassUID,ReferencedSOPInstanceUID:r.sopInstanceUID}}function ope(t){if(!(t!=null&&t.data))throw new Error("Tool data is empty");if(!t.metadata||t.metadata.referencedImageId)throw new Error("Tool data is not associated with any imageId")}const sd=class sd{constructor(){}static convert(e,r,n){ope(e);const{toolName:i}=e.metadata,o=sd.TOOL_NAMES[i];if(!o)throw new Error(`Unknown tool type: ${i}, cannot convert to RTSSReport`);const a=o.getContourSequence(e,n),s=[Math.floor(Math.random()*255),Math.floor(Math.random()*255),Math.floor(Math.random()*255)];return{ReferencedROINumber:r+1,ROIDisplayColor:s,ContourSequence:a}}static register(e){sd.TOOL_NAMES[e.toolName]=e}};sd.TOOL_NAMES={};let ym=sd;ym.register(CA);function ape(t,e){ra.acceptAutoGenerated(t,e)}const{isEqual:spe}=Yt;function A3(t,e){const{polyline:r}=t.data.contour,{points:n}=t.data.handles,{length:i}=n;if(e===i)return r.length;if(e<0&&(e=(e+i)%i),e===0)return 0;const o=n[e],a=r.findIndex(c=>spe(o,c));if(a!==-1)return a;let s=1/0;return r.reduce((c,l,f)=>{const u=ib(l,o);return u{const C=({value:R})=>{d=d+1,R>=h.lower&&R<=h.upper&&(u=u+1)},{imageData:S,dimensions:T,lower:_,upper:E}=m,D=VC(S,T,y,w);d=0,u=0,h={lower:_,upper:E};let b=!1;const{voxelManager:I}=S.get("voxelManager");return I.forEach(C,{imageData:S,boundsIJK:D}),a===0?b=u>0:a==1&&(b=u===d),b},p=(m,y)=>{const{imageData:w,lower:C,upper:S}=m,T=w.get("voxelManager").voxelManager,_=T.toIndex(y),E=T.getAtIndex(_);return!(E<=C||E>=S)},v=({index:m,pointIJK:y,pointLPS:w})=>{let C=f.length>0;for(let S=0;S{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{points:[[...s],[...s],[...s],[...s]],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=c.worldToCanvas(f[0]),d=c.worldToCanvas(f[3]),h=this._getRectangleImageCoordinates([u,d]),g=[o[0],o[1]],{left:p,top:v,width:x,height:m}=h;return eS([p,v,x,m],g)<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;o.worldPosition?l=!0:f=c.handles.points.findIndex(d=>d===o);const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),Qe(s),re(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a))},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world,{points:h}=f.handles;h.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=re(o),{worldToCanvas:h,canvasToWorld:g}=d.viewport,p=u.world,{points:v}=f.handles;v[c]=[...p];let x,m,y,w,C,S,T,_;switch(c){case 0:case 3:x=h(v[0]),w=h(v[3]),m=[w[0],x[1]],y=[x[0],w[1]],S=g(m),T=g(y),v[1]=S,v[2]=T;break;case 1:case 2:m=h(v[1]),y=h(v[2]),x=[y[0],m[1]],w=[m[0],y[1]],C=g(x),_=g(w),v[0]=C,v[3]=_;break}a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(V));u.annotationUID=g;const{color:y,lineWidth:w,lineDash:C}=this.getAnnotationStyle({annotation:h,styleSpecifier:u}),{viewPlaneNormal:S,viewUp:T}=a.getCamera();if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(h,S,T,f,n);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,S,T,f,n),a instanceof an)){const{referencedImageId:V}=h.metadata;for(const $ in p.cachedStats)$.startsWith("imageId")&&f.getStackViewports().find(ne=>{const Q=Nn(V),ee=ne.hasImageURI(Q),de=Nn(ne.getCurrentImageId());return ee&&de!==Q})&&delete p.cachedStats[$]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let _;if(!Ur(g))continue;!rr(g)&&!this.editData&&x!==null&&(_=[m[x]]),_&&sn(i,g,"0",_,{color:y});const E=`${g}-rect`;iS(i,g,"0",m,{color:y,lineDash:C,lineWidth:w},E),o=!0;const b=this.getLinkedTextBoxStyle(u,h);if(!b.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const I=this.configuration.getTextLines(p,l);if(!I||I.length===0)continue;if(!p.handles.textBox.hasMoved){const V=$i(m);p.handles.textBox.worldPosition=a.canvasToWorld(V)}const R=a.worldToCanvas(p.handles.textBox.worldPosition),L=ei(i,g,"1",I,R,m,{},b),{x:A,y:G,width:P,height:N}=L;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([A,G]),topRight:a.canvasToWorld([A+P,G]),bottomLeft:a.canvasToWorld([A,G+N]),bottomRight:a.canvasToWorld([A+P,G+N])}}return o},this._getRectangleImageCoordinates=n=>{const[i,o]=n;return{left:Math.min(i[0],o[0]),top:Math.min(i[1],o[1]),width:Math.abs(i[0]-o[0]),height:Math.abs(i[1]-o[1])}},this._calculateCachedStats=(n,i,o,a,s)=>{var p,v,x;const{data:c}=n,{viewport:l}=s,{element:f}=l,u=c.handles.points[0],d=c.handles.points[3],{cachedStats:h}=c,g=Object.keys(h);for(let m=0;mIn(n,o)&&In(i,o),this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}}function lpe(t,e){const r=t.cachedStats[e],{area:n,mean:i,max:o,stdDev:a,areaUnit:s,modalityUnit:c}=r;if(i===void 0)return;const l=[];return l.push(`Area: ${yt(n)} ${s}`),l.push(`Mean: ${yt(i)} ${c}`),l.push(`Max: ${yt(o)} ${c}`),l.push(`Std Dev: ${yt(a)} ${c}`),l}tc.toolName="RectangleROI";const{transformWorldToIndex:uf}=Yt;class gS extends tc{constructor(e={},r={configuration:{storePointData:!1,numSlicesToPropagate:10,computePointsInsideVolume:!1,getTextLines:upe,statsCalculator:Ya,showTextBox:!1}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u;let g,p,v;if(l instanceof ln)throw new Error("Stack Viewport Not implemented");{const T=this.getTargetId(l);v=da(T),p=_e.getVolume(v),g=Xa(p,s,d)}const x=qa(p,d),m=this._getStartCoordinate(s,d),y=this._getEndCoordinate(s,x,d),w=l.getFrameOfReferenceUID(),C={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...d],enabledElement:c,viewUp:[...h],FrameOfReferenceUID:w,referencedImageId:g,toolName:this.getToolName(),volumeId:v,spacingInNormal:x},data:{label:"",startCoordinate:m,endCoordinate:y,cachedStats:{pointsInVolume:[],projectionPoints:[],projectionPointsImageIds:[g],statistics:[]},handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},labelmapUID:null}};this._computeProjectionPoints(C,p),Ut(C,a);const S=He(a,this.getToolName());return this.editData={annotation:C,viewportIdsToRender:S,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(S),C},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(c&&!l)return;f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o);const u=re(o);this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const d=this.getTargetId(u.viewport),h=_e.getVolume(d.split(/volumeId:|\?/)[1]);this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(a,d,h,u),pe(s),c&&en(a)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;let s=_t(this.getToolName(),a.element);if(!(s!=null&&s.length))return o;s=b2(s,a.getCamera());const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let l=0;la.worldToCanvas(G));c.annotationUID=u;const m=this.getStyle("lineWidth",c,f),y=this.getStyle("lineDash",c,f),w=this.getStyle("color",c,f),C=a.getCamera().focalPoint,S=a.getCamera().viewPlaneNormal;let T=h,_=g;Array.isArray(h)&&(T=this._getCoordinateForViewplaneNormal(T,S),d.startCoordinate=T,d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(S)]=T,d.startCoordinate=T,d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(S)]=T),Array.isArray(g)&&(_=this._getCoordinateForViewplaneNormal(_,S),d.endCoordinate=_,d.endCoordinate=_);const E=Rs(T),D=Rs(_),b=this._getCoordinateForViewplaneNormal(C,S),I=Rs(b);if(IMath.max(E,D))continue;f.invalidated&&this._throttledCalculateCachedStats(f,n);let R=!1;if((I===E||I===D)&&(R=!0),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let M;if(!Ur(u))continue;!rr(u)&&!this.editData&&v!==null&&R&&(M=[x[v]]),M&&sn(i,u,"0",M,{color:w});let L=y;if(R||(L=2),Nh(i,u,"0",x[0],x[3],{color:w,lineDash:L,lineWidth:m}),o=!0,this.configuration.showTextBox&&this.configuration.calculatePointsInsideVolume){const G=this.getLinkedTextBoxStyle(c,f);if(!G.visibility){d.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const P=this.configuration.getTextLines(d);if(!P||P.length===0)continue;if(!d.handles.textBox.hasMoved){const ee=$i(x);d.handles.textBox.worldPosition=a.canvasToWorld(ee)}const N=a.worldToCanvas(d.handles.textBox.worldPosition),$=ei(i,u,"1",P,N,x,{},G),{x:H,y:Y,width:ne,height:Q}=$;d.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([H,Y]),topRight:a.canvasToWorld([H+ne,Y]),bottomLeft:a.canvasToWorld([H,Y+Q]),bottomRight:a.canvasToWorld([H+ne,Y+Q])}}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStatsTool,100,{trailing:!0})}_computeProjectionPoints(e,r){const{data:n,metadata:i}=e,{viewPlaneNormal:o,spacingInNormal:a}=i,{imageData:s}=r,{startCoordinate:c,endCoordinate:l}=n,{points:f}=n.handles,u=uf(s,f[0]),d=uf(s,f[0]),h=we();s.indexToWorldVec3(u,h);const g=we();s.indexToWorldVec3(d,g),this._getIndexOfCoordinatesForViewplaneNormal(o)==2?(h[2]=c,g[2]=l):this._getIndexOfCoordinatesForViewplaneNormal(o)==0?(h[0]=c,g[0]=l):this._getIndexOfCoordinatesForViewplaneNormal(o)==1&&(h[1]=c,g[1]=l);const p=Cr(h,g),v=[];for(let x=0;x{const y=we();return Vt(y,m,o,x),Array.from(y)}));n.cachedStats.projectionPoints=v}_computePointsInsideVolume(e,r,n,i){var S,T,_;const{data:o,metadata:a}=e,{viewPlaneNormal:s,viewUp:c}=a,{viewport:l}=i,f=o.cachedStats.projectionPoints,u=[[]],d=this.getTargetImageData(r),h=o.handles.points[0],g=o.handles.points[3],{worldWidth:p,worldHeight:v}=E2(s,c,h,g),x=Bi(d,o.habdles),m=Math.abs(p*v)/(x.scale*x.scale),y={isPreScaled:os(l,r),isSuvScaled:this.isSuvScaled(l,r,e.metadata.referencedImageId)},w=bl(a.Modality,e.metadata.referencedImageId,y);for(let E=0;E{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getTargetId(l);let p,v;if(l instanceof ln)p=g.split("imageId:")[1];else{v=da(g);const w=_e.getVolume(v);p=Xa(w,s,d)}const x=l.getFrameOfReferenceUID(),m={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...d],enabledElement:c,viewUp:[...h],FrameOfReferenceUID:x,referencedImageId:p,toolName:this.getToolName(),volumeId:v},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},segmentationId:null}};Ut(m,a);const y=He(a,this.getToolName());return this.editData={annotation:m,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(y),m},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(S));l.annotationUID=d;const x=this.getStyle("lineWidth",l,u),m=this.getStyle("lineDash",l,u),y=this.getStyle("color",l,u);if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;fn(u,s);let w;if(!Ur(d))continue;!rr(d)&&!this.editData&&p!==null&&(w=[v[p]]),w&&sn(i,d,"0",w,{color:y}),Nh(i,d,"0",v[0],v[3],{color:y,lineDash:m,lineWidth:x}),o=!0}return o}}}pS.toolName="RectangleROIThreshold";function TA(t,e,r={}){const n=[];return t.forEach(o=>{var h,g;const{data:a}=o,{points:s}=a.handles,{imageData:c,dimensions:l}=e;let f=s;if((h=a.cachedStats)!=null&&h.projectionPoints){const{projectionPoints:p}=a.cachedStats;f=[].concat(...p)}const u=f.map(p=>Gn(c,p));let d=Qs(u,l);r.numSlicesToProject&&!((g=a.cachedStats)!=null&&g.projectionPoints)&&(d=gA(d,r.numSlicesToProject)),n.push(d)}),n.length===1?n[0]:n.reduce((o,a)=>({iMin:Math.min(o.iMin,a.iMin),jMin:Math.min(o.jMin,a.jMin),kMin:Math.min(o.kMin,a.kMin),iMax:Math.max(o.iMax,a.iMax),jMax:Math.max(o.jMax,a.jMax),kMax:Math.max(o.kMax,a.kMax)}),{iMin:1/0,jMin:1/0,kMin:1/0,iMax:-1/0,jMax:-1/0,kMax:-1/0})}function fpe(t,e,r,n){const i=t.map(s=>On(s));dpe(i);let o;for(let s=0;s{if(!pt(l,t[0].dimensions)||!pt(c,t[0].direction)||!pt(u,t[0].spacing)||!pt(f,t[0].origin))throw new Error("labelmaps must have the same size and shape")});const n=t[0],i=n.voxelManager.getConstructor(),o=new i(n.voxelManager.getScalarDataLength());t.forEach(c=>{const l=c.voxelManager,f=l.getScalarDataLength();for(let u=0;u0;)h(l.pop());return{flooded:f,boundaries:T()};function h(_){const E=_.currentArgs,D=_.previousArgs;g(E)||(p(E),v(E)?(x(E),y(E)):m(D))}function g(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));return u.has(I)}function p(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));u.add(I)}function v(_){const E=w(_);return o?o(E,s):E===s}function x(_){f.push(_),n&&n(..._)}function m(_){const[E,D,b=0]=_,I=E+32768+65536*(D+32768+65536*(b+32768));d.set(I,_),i&&i(..._)}function y(_){for(let E=0;E{const{strategySpecificConfiguration:e}=t;if(!e)return;const{centerSegmentIndex:r}=e;r&&(t.segmentIndex=r.segmentIndex)},[it.OnInteractionStart]:t=>{const{segmentIndex:e,previewSegmentIndex:r,segmentationVoxelManager:n,centerIJK:i,strategySpecificConfiguration:o,imageVoxelManager:a,segmentationImageData:s,preview:c}=t;if(!(o!=null&&o.useCenterSegmentIndex))return;delete o.centerSegmentIndex;let l=!1,f=!1;const u=({value:h})=>{l||(l=h===e),f||(f=h===r)};if(a.forEach(u,{imageData:s,isInObject:t.isInObject}),!l&&!f)return;let d=n.getAtIJKPoint(i);if(d===r)if(c)d=c.segmentIndex;else return;else f&&(d=null);t.segmentIndex=d,o.centerSegmentIndex={segmentIndex:d}}},ype={[it.Initialize]:t=>{const{operationName:e,centerIJK:r,strategySpecificConfiguration:n,segmentationVoxelManager:i,imageVoxelManager:o,segmentIndex:a}=t,{THRESHOLD:s}=n;if(!(s!=null&&s.isDynamic)||!r||!a||e===it.RejectPreview||e===it.OnInteractionEnd)return;const c=i.getBoundsIJK(),{threshold:l,dynamicRadius:f=0}=s,u=l?0:f,d=c.map((p,v)=>{const[x,m]=p;return[Math.max(x,r[v]-u),Math.min(m,r[v]+u)]}),h=l||[1/0,-1/0],g=({value:p})=>{const v=Array.isArray(p)?Rd(p):p;h[0]=Math.min(v,h[0]),h[1]=Math.max(v,h[1])};o.forEach(g,{boundsIJK:d}),t.strategySpecificConfiguration.THRESHOLD.threshold=h},[it.OnInteractionStart]:t=>{var n;const{strategySpecificConfiguration:e,preview:r}=t;!((n=e==null?void 0:e.THRESHOLD)!=null&&n.isDynamic)&&!r||(e.THRESHOLD.threshold=null)},[it.ComputeInnerCircleRadius]:t=>{const{configuration:e,viewport:r}=t,{THRESHOLD:{dynamicRadius:n=0}={}}=e.strategySpecificConfiguration||{};if(n===0)return;const i=r.getImageData();if(!i)return;const{spacing:o}=i,a=[r.element.clientWidth/2,r.element.clientHeight/2],s=n*o[0],l=r.canvasToWorld(a).map(g=>g+s),f=r.worldToCanvas(l),u=Math.abs(a[0]-f[0]),{strategySpecificConfiguration:d,activeStrategy:h}=e;d[h]||(d[h]={}),d[h].dynamicRadiusInCanvas=u}},xpe={[it.Initialize]:t=>{t.segmentIndex=0}},wpe={[it.OnInteractionEnd]:t=>{const{previewVoxelManager:e,segmentationVoxelManager:r,strategySpecificConfiguration:n,previewSegmentIndex:i,segmentIndex:o}=t;if(!n.THRESHOLD||o===null)return;const a=e.getPoints();if(!(a!=null&&a.length)||i===void 0)return;const s=e.getBoundsIJK().map((v,x)=>[Math.min(v[0],...a.map(m=>m[x])),Math.max(v[1],...a.map(m=>m[x]))]);if(s.find(v=>v[0]<0||v[1]>65535))return;const c=new Set,l=(v,x,m)=>{if(vs[0][1]||xs[1][1]||ms[2][1])return-1;const y=r.toIndex([v,x,m]);if(c.has(y))return-2;const w=r.getAtIndex(y),C=w===i||w===o?1:0;return C||r.addPoint(y),C};let f=0;const u=(v,x,m)=>{const y=r.toIndex([v,x,m]);c.has(y)||(e.setAtIJK(v,x,m,i),c.add(y),f++)};a.forEach(v=>{l(...v)===1&&xm(l,v,{onFlood:u,diagonals:!0})});let d=0,h=0;const g=({index:v,pointIJK:x,value:m})=>{const y=r.getAtIndex(v);if(c.has(v)){h++;const w=m===o?o:i;e.setAtIJKPoint(x,w)}else if(y===i){d++;const w=m??0;e.setAtIJKPoint(x,w)}};e.forEach(g,{}),f-h!==0&&console.warn("There were flooded=",f,"cleared=",d,"preview count=",h,"not handled",f-h);const p=new Set(r.points||[]);c.clear();for(const v of p.keys()){if(c.has(v))continue;let x=!0;const m=new Set,y=(C,S,T)=>{const _=e.toIndex([C,S,T]);c.add(_),(s[0][0]!==s[0][1]&&(C===s[0][0]||C===s[0][1])||s[1][0]!==s[1][1]&&(S===s[1][0]||S===s[1][1])||s[2][0]!==s[2][1]&&(T===s[2][0]||T===s[2][1]))&&(x=!1),x&&m.add(_)},w=e.toIJK(v);if(l(...w)===0&&(xm(l,w,{onFlood:y,diagonals:!1}),x))for(const C of m)e.setAtIndex(C,i)}Ei(t.segmentationId,e.getArrayOfModifiedSlices())}};function Cpe(t,e,r,n,i=.4){return[Math.round(t+(255-t)*i),Math.round(e+(255-e)*i),Math.round(r+(255-r)*i),n]}const Spe={[it.Preview]:function(t){var o,a;const{previewColors:e,strategySpecificConfiguration:r,enabledElement:n}=t;if(!e||!r)return;t.preview&&delete t.preview,delete r.centerSegmentIndex,(o=this.onInteractionStart)==null||o.call(this,n,t);const i=this.fill(n,t);return i&&(i.isPreviewFromHover=!0,t.preview=i,(a=this.onInteractionEnd)==null||a.call(this,n,t)),i},[it.Initialize]:t=>{const{segmentIndex:e,previewSegmentIndex:r,previewColors:n,preview:i}=t;if(n===void 0||(i&&(i.previewVoxelManager.sourceVoxelManager=t.segmentationVoxelManager,t.previewVoxelManager=i.previewVoxelManager),e===null||!r))return;const o=n==null?void 0:n[e],a=ts(t.viewport.id,t.segmentationId,e);if(!o&&!a)return;const s=o||Cpe(...a);dN(t.viewport.id,t.segmentationId,r,s)},[it.AcceptPreview]:t=>{const{segmentationVoxelManager:e,previewVoxelManager:r,previewSegmentIndex:n,preview:i}=t||{};if(n===void 0)return;const o=(i==null?void 0:i.segmentIndex)??t.segmentIndex,a=r;if(!a||a.modifiedSlices.size===0)return;const s=({index:c})=>{e.getAtIndex(c)===n&&e.setAtIndex(c,o)};a.forEach(s,{}),Ei(t.segmentationId,a.getArrayOfModifiedSlices()),a.clear()},[it.RejectPreview]:t=>{const{previewVoxelManager:e,segmentationVoxelManager:r}=t;if(e.modifiedSlices.size===0)return;const n=({index:i,value:o})=>{r.setAtIndex(i,o)};e.forEach(n),Ei(t.segmentationId,e.getArrayOfModifiedSlices()),e.clear()}},Tpe={[it.Fill]:t=>{var f;const{segmentsLocked:e,segmentationImageData:r,segmentationVoxelManager:n,previewVoxelManager:i,brushStrategy:o,centerIJK:a}=t,s=(f=o.createIsInThreshold)==null?void 0:f.call(o,t),{setValue:c}=o,l=s?u=>{const{value:d,index:h}=u;e.includes(d)||!s(h)||c(t,u)}:u=>c(t,u);n.forEach(l,{imageData:r,isInObject:t.isInObject,boundsIJK:t.isInObjectBoundsIJK}),i.addPoint(a)}},_pe={[it.INTERNAL_setValue]:(t,{value:e,index:r})=>{const{segmentsLocked:n,segmentIndex:i,previewVoxelManager:o,previewSegmentIndex:a,segmentationVoxelManager:s}=t,c=s.getAtIndex(r);if(i===null){const f=o.getAtIndex(r);f!==void 0&&o.setAtIndex(r,f);return}if(c===i||n.includes(e))return;if(c===a)if(o.getAtIndex(r)===void 0)s.setAtIndex(r,i);else return;const l=a??i;o.setAtIndex(r,l)}},Epe={[it.CreateIsInThreshold]:t=>{const{imageVoxelManager:e,strategySpecificConfiguration:r,segmentIndex:n}=t;if(!(!r||!n))return i=>{const{THRESHOLD:o,THRESHOLD_INSIDE_CIRCLE:a}=r,s=e.getAtIndex(i),c=Array.isArray(s)?ui(s):s,{threshold:l}=o||a||{};return l!=null&&l.length?l[0]<=c&&c<=l[1]:!0}}},tr={determineSegmentIndex:vpe,dynamicThreshold:ype,erase:xpe,islandRemoval:wpe,preview:Spe,regionFill:Tpe,setValue:_pe,threshold:Epe};function _A({operationData:t,viewport:e}){var s;let r,n,i,o,a;if(e instanceof Mn){const{volumeId:c,referencedVolumeId:l}=t;if(!c){const u=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"No volume id found for the segmentation"},cancelable:!0});return Ce.dispatchEvent(u),null}const f=_e.getVolume(c);if(!f)return;a=f.voxelManager,l&&(o=_e.getVolume(l).voxelManager),{imageData:r}=f}else{const{segmentationId:c}=t,l=Gi(e.id,c);if(!l)return;const f=e.getCurrentImageId();if(!f)return;const u=Ga(e.id,c);if(!u)return;const d=_e.getImage(l);r=u.actor.getMapper().getInputData(),a=d.voxelManager;const h=t.imageId,g=_e.getImage(h);if(!g)return;n=(s=g.getPixelData)==null?void 0:s.call(g);const p=_e.getImage(f),v=p?null:e.getImageData();i=(p==null?void 0:p.getPixelData())||v.getScalarData(),o=p==null?void 0:p.voxelManager}return{segmentationImageData:r,segmentationScalarData:n,imageScalarData:i,segmentationVoxelManager:a,imageVoxelManager:o}}const{VoxelManager:Dpe}=Yt,Ac=class Ac{constructor(e,...r){this._initialize=[],this._fill=[],this._onInteractionStart=[],this.fill=(n,i)=>{const o=this.initialize(n,i,it.Fill);if(!o)return;const{strategySpecificConfiguration:a={},centerIJK:s}=o;if(pt(s,a.centerIJK))return i.preview;a.centerIJK=s,this._fill.forEach(u=>u(o));const{segmentationVoxelManager:c,previewVoxelManager:l,previewSegmentIndex:f}=o;return Ei(o.segmentationId,c.getArrayOfModifiedSlices()),!f||!l.modifiedSlices.size?(c.resetModifiedSlices(),null):o.preview||o},this.onInteractionStart=(n,i)=>{const{preview:o}=i;if(o!=null&&o.isPreviewFromHover){o.isPreviewFromHover=!1;return}const a=this.initialize(n,i);a&&this._onInteractionStart.forEach(s=>s.call(this,a))},this.configurationName=e,this.compositions=r,r.forEach(n=>{const i=typeof n=="function"?n():n;if(i)for(const o in i){if(!Ac.childFunctions[o])throw new Error(`Didn't find ${o} as a brush strategy`);Ac.childFunctions[o](this,i[o])}}),this.strategyFunction=(n,i)=>this.fill(n,i);for(const n of Object.keys(Ac.childFunctions))this.strategyFunction[n]=this[n]}initialize(e,r,n){var p,v,x;const{viewport:i}=e,o=_A({operationData:r,viewport:i});if(!o)return console.warn("No data found for BrushStrategy"),r.preview;const{imageVoxelManager:a,segmentationVoxelManager:s,segmentationImageData:c}=o,l=((p=r.override)==null?void 0:p.voxelManager)||s,f=((v=r.override)==null?void 0:v.imageData)||c,u=((x=r.preview)==null?void 0:x.previewVoxelManager)||Dpe.createHistoryVoxelManager({sourceVoxelManager:l}),h=!!r.previewColors?255:void 0,g={operationName:n,previewSegmentIndex:h,...r,enabledElement:e,imageVoxelManager:a,segmentationVoxelManager:l,segmentationImageData:f,previewVoxelManager:u,viewport:i,centerWorld:null,isInObject:null,isInObjectBoundsIJK:null,brushStrategy:this};return this._initialize.forEach(m=>m(g)),g}};Ac.COMPOSITIONS=tr,Ac.childFunctions={[it.OnInteractionStart]:Sc(it.OnInteractionStart,it.Initialize),[it.OnInteractionEnd]:Sc(it.OnInteractionEnd,it.Initialize),[it.Fill]:Sc(it.Fill),[it.Initialize]:Sc(it.Initialize),[it.CreateIsInThreshold]:fy(it.CreateIsInThreshold),[it.AcceptPreview]:Sc(it.AcceptPreview,it.Initialize),[it.RejectPreview]:Sc(it.RejectPreview,it.Initialize),[it.INTERNAL_setValue]:fy(it.INTERNAL_setValue),[it.Preview]:fy(it.Preview,!1),[it.ComputeInnerCircleRadius]:Sc(it.ComputeInnerCircleRadius),compositions:null};let nc=Ac;function Sc(t,e){const r=`_${t}`;return(n,i)=>{n[r]||(n[r]=[]),n[r].push(i),n[t]||(n[t]=e?(o,a)=>{const s=n[e](o,a,t);n[r].forEach(c=>c.call(n,s))}:o=>{n[r].forEach(a=>a.call(n,o))})}}function fy(t,e=!0){return(r,n)=>{if(r[t])throw new Error(`The singleton method ${t} already exists`);r[t]=e?n:(i,o)=>(o.enabledElement=i,n.call(r,o))}}function EA(t,e){const{center:r,radius:n}=t,i=t.radius2||n*n;return(e[0]-r[0])*(e[0]-r[0])+(e[1]-r[1])*(e[1]-r[1])+(e[2]-r[2])*(e[2]-r[2])<=i}const{transformWorldToIndex:TE,isEqual:dy}=Yt,DA={[it.Initialize]:t=>{const{points:e,viewport:r,segmentationImageData:n}=t;if(!e)return;const i=Ye(0,0,0);e.forEach(d=>{xn(i,i,d)}),lr(i,i,1/e.length),t.centerWorld=i,t.centerIJK=TE(n,i);const o=e.map(d=>r.worldToCanvas(d)),[a,s]=Yf(o),c=r.canvasToWorld(a),l=r.canvasToWorld(s),f=e.map(d=>TE(n,d)),u=Qs(f,n.getDimensions());t.isInObject=bA({topLeftWorld:c,bottomRightWorld:l,center:i}),t.isInObjectBoundsIJK=u}};function bA(t){const{topLeftWorld:e,bottomRightWorld:r,center:n}=t,i=Math.abs(e[0]-r[0])/2,o=Math.abs(e[1]-r[1])/2,a=Math.abs(e[2]-r[2])/2,s=Math.max(i,o,a);if(dy(i,s)&&dy(o,s)&&dy(a,s)){const f={center:n,radius:s,radius2:s*s};return u=>EA(f,u)}const c={center:n,xRadius:i,yRadius:o,zRadius:a},{precalculated:l}=XC(c,{});return l}const IA=new nc("Circle",tr.regionFill,tr.setValue,DA,tr.determineSegmentIndex,tr.preview),bpe=new nc("CircleThreshold",tr.regionFill,tr.setValue,DA,tr.determineSegmentIndex,tr.dynamicThreshold,tr.threshold,tr.preview,tr.islandRemoval),OA=IA.strategyFunction,Ipe=bpe.strategyFunction,{transformWorldToIndex:Ope}=Yt,Mpe={[it.Initialize]:t=>{const{points:e,viewport:r,segmentationImageData:n}=t;if(!e)return;const i=Ye(0,0,0);e.forEach(c=>{xn(i,i,c)}),lr(i,i,1/e.length),t.centerWorld=i,t.centerIJK=Ope(n,i);const{boundsIJK:o,topLeftWorld:a,bottomRightWorld:s}=pA(e.slice(0,2),n,r);t.isInObjectBoundsIJK=o,t.isInObject=bA({topLeftWorld:a,bottomRightWorld:s,center:i})}},mS=new nc("Sphere",tr.regionFill,tr.setValue,Mpe,tr.determineSegmentIndex,tr.preview),MA=mS.strategyFunction,Rpe=new nc("SphereThreshold",...mS.compositions,tr.dynamicThreshold,tr.threshold,tr.islandRemoval),Lpe=Rpe.strategyFunction,Npe=new nc("EraseSphere",tr.erase,...mS.compositions),RA=Npe.strategyFunction,Ppe=new nc("EraseCircle",tr.erase,...IA.compositions),LA=Ppe.strategyFunction;class vS extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:OA,ERASE_INSIDE_CIRCLE:LA,FILL_INSIDE_SPHERE:MA,ERASE_INSIDE_SPHERE:RA,THRESHOLD_INSIDE_CIRCLE:Ipe,THRESHOLD_INSIDE_SPHERE:Lpe},strategySpecificConfiguration:{THRESHOLD:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",thresholdVolumeId:null,brushSize:25,preview:{enabled:!1,previewColors:{},previewTimeMs:250,previewMoveDistance:8,dragMoveDistance:4,dragTimeMs:500},actions:{[it.AcceptPreview]:{method:it.AcceptPreview,bindings:[{key:"Enter"}]},[it.RejectPreview]:{method:it.RejectPreview,bindings:[{key:"Escape"}]}}}}){super(e,r),this._previewData={preview:null,element:null,timerStart:0,timer:null,startPoint:[NaN,NaN],isDrag:!1},this.onSetToolPassive=n=>{this.disableCursor()},this.onSetToolEnabled=()=>{this.disableCursor()},this.onSetToolDisabled=n=>{this.disableCursor()},this.preMouseDownCallback=n=>{const i=n.detail,{element:o}=i,a=re(o);this._editData=this.createEditData(o),this._activateDraw(o),Qe(o),n.preventDefault(),this._previewData.isDrag=!1,this._previewData.timerStart=Date.now();const s=this._hoverData||this.createHoverData(o);pe(s.viewportIdsToRender);const c=this.getOperationData(o);return this.applyActiveStrategyCallback(a,c,it.OnInteractionStart),!0},this.mouseMoveCallback=n=>{if(this.mode===Ft.Active){if(this.updateCursor(n),!this.configuration.preview.enabled)return;const{previewTimeMs:i,previewMoveDistance:o,dragMoveDistance:a}=this.configuration.preview,{currentPoints:s,element:c}=n.detail,{canvas:l}=s,{preview:f,startPoint:u,timer:d,timerStart:h,isDrag:g}=this._previewData,p=bn(l,u),v=Date.now()-h;if((p>o||v>i&&p>a)&&(d&&(window.clearTimeout(d),this._previewData.timer=null),f&&!g&&this.rejectPreview(c)),!this._previewData.timer){const x=window.setTimeout(this.previewCallback,250);Object.assign(this._previewData,{timerStart:Date.now(),timer:x,startPoint:l,element:c})}}},this.previewCallback=()=>{this._previewData.timer=null,!this._previewData.preview&&(this._previewData.preview=this.applyActiveStrategyCallback(re(this._previewData.element),this.getOperationData(this._previewData.element),it.Preview))},this._dragCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=re(o);this.updateCursor(n);const{viewportIdsToRender:c}=this._hoverData;pe(c);const l=bn(a.canvas,this._previewData.startPoint),{dragTimeMs:f,dragMoveDistance:u}=this.configuration.preview;!this._previewData.isDrag&&this._previewData.preview&&Date.now()-this._previewData.timerStart{const i=n.detail,{element:o}=i,a=re(o),s=this.getOperationData(o);!this._previewData.preview&&!this._previewData.isDrag&&this.applyActiveStrategy(a,s),this._deactivateDraw(o),ct(o),this.updateCursor(n),this._editData=null,this.applyActiveStrategyCallback(a,s,it.OnInteractionEnd),this._previewData.isDrag||this.acceptPreview(o)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback)}}disableCursor(){this._hoverData=void 0,this.rejectPreview()}createEditData(e){var c,l;const r=re(e),{viewport:n}=r,i=qd(n.id);if(!i){const f=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"No active segmentation detected, create a segmentation representation before using the brush tool"},cancelable:!0});return Ce.dispatchEvent(f),null}const{segmentationId:o}=i,a=Dl(o),{representationData:s}=Ct(o);if(n instanceof Mn){const{volumeId:f}=s[Ge.Labelmap],u=n.getActors();if(n instanceof ln){const v=new CustomEvent(Se.ERROR_EVENT,{detail:{type:"Segmentation",message:"Cannot perform brush operation on the selected viewport"},cancelable:!0});return Ce.dispatchEvent(v),null}const h=u.map(v=>_e.getVolume(v.referencedId)),g=_e.getVolume(f),p=((c=h.find(v=>pt(v.dimensions,g.dimensions)))==null?void 0:c.volumeId)||((l=h[0])==null?void 0:l.volumeId);return{volumeId:f,referencedVolumeId:this.configuration.thresholdVolumeId??p,segmentsLocked:a}}else{const f=Gi(n.id,o);if(!f)return;if(this.configuration.activeStrategy.includes("SPHERE")){const u=n.getImageIds();if(!pR(u))throw new Error("Volume is not reconstructable for sphere manipulation");const h=`${o}_${n.id}`,g=_e.getVolume(h);if(g)return{imageId:f,segmentsLocked:a,override:{voxelManager:g.voxelManager,imageData:g.imageData}};{const p=_P(n.id,o);if(!p||p.length===1)return{imageId:f,segmentsLocked:a};const v=UM(h,p);return{imageId:f,segmentsLocked:a,override:{voxelManager:v.voxelManager,imageData:v.imageData}}}}else return{imageId:f,segmentsLocked:a}}}createHoverData(e,r){const n=re(e),{viewport:i}=n,o=i.getCamera(),{viewPlaneNormal:a,viewUp:s}=o,c=[i.id],{segmentIndex:l,segmentationId:f,segmentColor:u}=this.getActiveSegmentationData(i)||{};return{brushCursor:{metadata:{viewPlaneNormal:[...a],viewUp:[...s],FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:u},data:{}},centerCanvas:r,segmentIndex:l,viewport:i,segmentationId:f,segmentColor:u,viewportIdsToRender:c}}getActiveSegmentationData(e){const r=e.id,n=qd(r);if(!n)return;const{segmentationId:i}=n,o=No(i);if(!o)return;const a=ts(r,i,o);return{segmentIndex:o,segmentationId:i,segmentColor:a}}updateCursor(e){const r=e.detail,{element:n}=r,{currentPoints:i}=r,o=i.canvas;this._hoverData=this.createHoverData(n,o),this._calculateCursor(n,o),this._hoverData&&pe(this._hoverData.viewportIdsToRender)}getOperationData(e){var u,d;const r=this._editData||this.createEditData(e),{segmentIndex:n,segmentationId:i,brushCursor:o}=this._hoverData||this.createHoverData(e),{data:a,metadata:s={}}=o||{},{viewPlaneNormal:c,viewUp:l}=s;return{...r,points:(u=a==null?void 0:a.handles)==null?void 0:u.points,segmentIndex:n,previewColors:this.configuration.preview.enabled?this.configuration.preview.previewColors:null,viewPlaneNormal:c,toolGroupId:this.toolGroupId,segmentationId:i,viewUp:l,strategySpecificConfiguration:this.configuration.strategySpecificConfiguration,preview:(d=this._previewData)==null?void 0:d.preview}}_calculateCursor(e,r){const n=re(e),{viewport:i}=n,{canvasToWorld:o}=i,a=i.getCamera(),{brushSize:s}=this.configuration,c=Ye(a.viewUp[0],a.viewUp[1],a.viewUp[2]),l=Ye(a.viewPlaneNormal[0],a.viewPlaneNormal[1],a.viewPlaneNormal[2]),f=we();Kt(f,c,l);const u=o([r[0],r[1]]),d=we(),h=we(),g=we(),p=we();for(let w=0;w<=2;w++)d[w]=u[w]-c[w]*s,h[w]=u[w]+c[w]*s,g[w]=u[w]-f[w]*s,p[w]=u[w]+f[w]*s;if(!this._hoverData)return;const{brushCursor:v}=this._hoverData,{data:x}=v;x.handles===void 0&&(x.handles={}),x.handles.points=[d,h,g,p];const m=this.configuration.activeStrategy,y=this.configuration.strategies[m];typeof y.computeInnerCircleRadius=="function"&&y.computeInnerCircleRadius({configuration:this.configuration,viewport:i}),x.invalidated=!1}rejectPreview(e=this._previewData.element){if(!e||!this._previewData.preview)return;const r=re(e);this.applyActiveStrategyCallback(r,this.getOperationData(e),it.RejectPreview),this._previewData.preview=null,this._previewData.isDrag=!1}acceptPreview(e=this._previewData.element){if(!e)return;const r=re(e);this.applyActiveStrategyCallback(r,this.getOperationData(e),it.AcceptPreview),this._previewData.isDrag=!1,this._previewData.preview=null}invalidateBrushCursor(){if(this._hoverData===void 0)return;const{data:e}=this._hoverData.brushCursor,{viewport:r}=this._hoverData;e.invalidated=!0;const{segmentColor:n}=this.getActiveSegmentationData(r)||{};this._hoverData.brushCursor.metadata.segmentColor=n}renderAnnotation(e,r){var y;if(!this._hoverData)return;const{viewport:n}=e;if(!this._hoverData.viewportIdsToRender.includes(n.id))return;const o=this._hoverData.brushCursor;if(o.data.invalidated===!0){const{centerCanvas:w}=this._hoverData,{element:C}=n;this._calculateCursor(C,w)}const a=o.metadata;if(!a)return;const s=a.brushCursorUID,c=o.data,{points:l}=c.handles,f=l.map(w=>n.worldToCanvas(w)),u=f[0],d=f[1],h=[Math.floor((u[0]+d[0])/2),Math.floor((u[1]+d[1])/2)],g=Math.abs(u[1]-Math.floor((u[1]+d[1])/2)),p=`rgb(${((y=a.segmentColor)==null?void 0:y.slice(0,3))||[0,0,0]})`;if(!n.getRenderingEngine()){console.warn("Rendering Engine has been destroyed");return}bi(r,s,"0",h,g,{color:p});const x=this.configuration.activeStrategy,{dynamicRadiusInCanvas:m}=this.configuration.strategySpecificConfiguration[x]||{dynamicRadiusInCanvas:0};m&&bi(r,s,"1",h,m,{color:p})}}vS.toolName="Brush";function F0(t,e){const r=Wn(t);if(r===void 0)return;const n=r._toolInstances;return Object.keys(n).length?e&&n[e]?[n[e]]:Object.values(n).filter(o=>o instanceof vS):void 0}function Ape(t,e,r){const n=Wn(t);if(n===void 0)return;F0(t,r).forEach(l=>{l.configuration.brushSize=e,l.invalidateBrushCursor()});const o=n.getViewportsInfo(),a=Object.keys(o).map(l=>o[l]);if(!a.length)return;const{renderingEngineId:s}=a[0],c=n.getViewportIds();gr(s),pe(c)}function kpe(t,e){const r=Wn(t);if(r===void 0)return;const n=r._toolInstances;if(!Object.keys(n).length)return;const o=F0(t,e)[0];if(o)return o.configuration.brushSize}function Vpe(t,e,r={isDynamic:!1}){const n=Wn(t);if(n===void 0)return;const i=F0(t),o={...r,...e!==void 0&&{threshold:e}};i.forEach(l=>{l.configuration.strategySpecificConfiguration.THRESHOLD={...l.configuration.strategySpecificConfiguration.THRESHOLD,...o}});const a=n.getViewportsInfo();if(!a.length)return;const{renderingEngineId:s}=a[0],c=n.getViewportIds();gr(s),pe(c)}function Fpe(t){const e=Wn(t);if(e===void 0)return;const r=e._toolInstances;if(!Object.keys(r).length)return;const i=F0(t)[0];if(i)return i.configuration.strategySpecificConfiguration.THRESHOLD.threshold}function Upe(t,e,r,n){const{baseVolumeIdx:i,volumeInfoList:o}=aN(t,r),{voxelManager:a}=o[i],s=a,c=t.voxelManager.getScalarDataLength(),l=t.voxelManager;return o.forEach(f=>{const{volumeSize:u}=f;u===c?Gpe(l,s,e,f):Bpe(l,s,e,f,o,i,n)}),Ei(t.volumeId),t}function Bpe(t,e,r,n,i,o,a){const{imageData:s,lower:c,upper:l,dimensions:f}=n;let u,d,h;const g=t.getScalarDataLength();for(let p=0;p{u=u+1,y>=h.lower&&y<=h.upper&&(d=d+1)};u=0,d=0,h={lower:c,upper:l};let m=!1;t.forEach(x,{imageData:s,boundsIJK:v}),m=a===0?d>0:d===u,t.setAtIndex(p,m?r:0)}return{total:u,range:h,overlaps:d}}function Gpe(t,e,r,n){const{lower:i,upper:o}=n,a=t.getScalarDataLength();for(let s=0;s=i&&c<=o?r:0)}}function _E(t,e,r){const n=r.toIJK(t),i=r.toIJK(e),o=we(),{testIJK:a}=r,s=Qt(we(),n,i),c=Math.round(Math.max(...s.map(Math.abs)));if(c<2)return!0;const l=lr(we(),s,1/c);for(let f=1;f{const l=xn(we(),s,c).map(v=>v/2),f=n.imageData.worldToIndex(l).map(Math.round),[u,d,h]=f,g=u+d*o+h*a,p=i.getAtIndex(g);return p===e||(r==null?void 0:r.has(p))},toIJK:s=>n.imageData.worldToIndex(s),testIJK:s=>{const[c,l,f]=s,u=Math.round(c)+Math.round(l)*o+Math.round(f)*a,d=i.getAtIndex(u);return d===e||(r==null?void 0:r.has(d))}}}const ff=.01;function zpe(t,e,r){const{sliceContours:n}=t,{segmentIndex:i,containedSegmentIndices:o}=r;let a;const s=Wpe(e,i,o);for(const c of n){const l=$pe(c,s,a);l&&(a=l)}return a&&Object.assign(a,r),a}function $pe(t,e,r={maxMajor:0,maxMinor:0}){const{points:n}=t.polyData,{maxMinor:i,maxMajor:o}=r;let a=o*o,s=i*i,c;for(let v=0;vff||e.testCenter(m,y)&&_E(m,y,e)&&(s=w,d=[v,x])}if(!d)return;s=Math.sqrt(s);const h=n[d[0]],g=n[d[1]];return{majorAxis:[l,f],minorAxis:[h,g],maxMajor:a,maxMinor:s,...t}}const{Labelmap:jpe}=Ge;function NA(t){const e=wA({segmentations:t});if(!(e!=null&&e.length)||!e[0].sliceContours.length)return;const{representationData:r,segments:n=[null,{label:"Unspecified",color:null,containedSegmentIndices:null}]}=t,{volumeId:i}=r[jpe],o=n.findIndex(a=>!!a);if(o!==-1)return n[o].segmentIndex=o,zpe(e[0],i,n[o])}function PA(t,e){const{majorAxis:r,minorAxis:n,label:i="",sliceIndex:o}=t,[a,s]=r,[c,l]=n,f=[a,s,c,l];return{highlighted:!0,invalidated:!0,metadata:{toolName:"Bidirectional",...e.getViewReference({sliceIndex:o})},data:{handles:{points:f,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:i,cachedStats:{}},isLocked:!1,isVisible:!0}}const{transformWorldToIndex:Yg}=Yt;class yS extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,getTextLines:Hpe}}){super(e,r),this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles;let u=c.worldToCanvas(f[0]),d=c.worldToCanvas(f[1]),h={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},g=Pr([h.start.x,h.start.y],[h.end.x,h.end.y],[o[0],o[1]]);return g<=a||(u=c.worldToCanvas(f[2]),d=c.worldToCanvas(f[3]),h={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},g=Pr([h.start.x,h.start.y],[h.end.x,h.end.y],[o[0],o[1]]),g<=a)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),re(a),pe(s),Qe(a),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,c=i.data;i.highlighted=!0;let l=!1,f;o.worldPosition?l=!0:f=c.handles.points.findIndex(d=>d===o);const u=He(s,this.getToolName());Qe(s),this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),re(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.editData.handleIndex!==void 0){const{points:u}=f.handles,d=Cr(u[0],u[1]);if(Cr(u[2],u[3])>d){const g=[[...u[2]],[...u[3]]],p=[...u[0]],v=[...u[1]],x=ot();eo(x,g[1][0]-g[0][0],g[1][1]-g[1][0]);const m=ot();eo(m,-x[1],x[0]);const y=ot();eo(y,v[0]-p[0],v[1]-p[0]);let w;Ew(y,m)>0?w=[p,v]:w=[v,p],f.handles.points=[g[0],g[1],w[0],w[1]]}}this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1}},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=re(a),{renderingEngine:c,viewport:l}=s,{worldToCanvas:f}=l,{annotation:u,viewportIdsToRender:d,handleIndex:h}=this.editData,{data:g}=u,p=o.world;g.handles.points[h]=[...p];const v=g.handles.points.map(f),x={longLineSegment:{start:{x:v[0][0],y:v[0][1]},end:{x:v[1][0],y:v[1][1]}},shortLineSegment:{start:{x:v[2][0],y:v[2][1]},end:{x:v[3][0],y:v[3][1]}}},y=bn(v[0],v[1])/3,w=x.longLineSegment.start.x-x.longLineSegment.end.x,C=x.longLineSegment.start.y-x.longLineSegment.end.y,S=Math.sqrt(w*w+C*C),T=w/S,_=C/S,E=(x.longLineSegment.start.x+x.longLineSegment.end.x)/2,D=(x.longLineSegment.start.y+x.longLineSegment.end.y)/2,b=E+y*_,I=D-y*T,R=E-y*_,M=D+y*T;g.handles.points[2]=l.canvasToWorld([b,I]),g.handles.points[3]=l.canvasToWorld([R,M]),u.invalidated=!0,pe(d),this.editData.hasMoved=!0},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i;re(o);const{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragModifyHandle(n),a.invalidated=!0;pe(s)},this._dragModifyHandle=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=re(a),{viewport:c}=s,{annotation:l,handleIndex:f}=this.editData,{data:u}=l,d=o.world,h=[c.worldToCanvas(u.handles.points[0]),c.worldToCanvas(u.handles.points[1]),c.worldToCanvas(u.handles.points[2]),c.worldToCanvas(u.handles.points[3])],g={start:{x:h[0][0],y:h[0][1]},end:{x:h[1][0],y:h[1][1]}},p={start:{x:h[2][0],y:h[2][1]},end:{x:h[3][0],y:h[3][1]}},v=[...d],x=c.worldToCanvas(v);if(f===0||f===1){const y=h[f===0?1:0],w=eo(ot(),x[0]-y[0],x[1]-y[1]),C=eo(ot(),h[f][0]-y[0],h[f][1]-y[1]);Na(w,w),Na(C,C);const S={start:{x:y[0],y:y[1]},end:{x:x[0],y:x[1]}};if(this._movingLongAxisWouldPutItThroughShortAxis(S,p))return;const T=y,_=this._getSignedAngle(C,w);let E=h[2][0],D=h[2][1],b=h[3][0],I=h[3][1];E-=T[0],D-=T[1],b-=T[0],I-=T[1];const R=E*Math.cos(_)-D*Math.sin(_),M=E*Math.sin(_)+D*Math.cos(_),L=b*Math.cos(_)-I*Math.sin(_),A=b*Math.sin(_)+I*Math.cos(_);E=R+T[0],D=M+T[1],b=L+T[0],I=A+T[1];const G=c.canvasToWorld([E,D]),P=c.canvasToWorld([b,I]);u.handles.points[f]=v,u.handles.points[2]=G,u.handles.points[3]=P}else{const m=f===2?3:2,y={longLineSegment:{start:g.start,end:g.end},shortLineSegment:{start:p.start,end:p.end}},w=kn(ot(),[y.longLineSegment.end.x,y.longLineSegment.end.y],[y.longLineSegment.start.x,y.longLineSegment.start.y]),C=Na(ot(),w),S=kn(ot(),[x[0],x[1]],[h[f][0],h[f][1]]),T=z5(S),_=this._getSignedAngle(C,S),E=Math.cos(_)*T,D=aj(ot(),[h[m][0],h[m][1]],C,E);if(this._movingLongAxisWouldPutItThroughShortAxis({start:{x:x[0],y:x[1]},end:{x:D[0],y:D[1]}},{start:{x:y.longLineSegment.start.x,y:y.longLineSegment.start.y},end:{x:y.longLineSegment.end.x,y:y.longLineSegment.end.y}})||!b3([x[0],x[1]],[D[0],D[1]],[g.start.x,g.start.y],[g.end.x,g.end.y]))return;u.handles.points[m]=c.canvasToWorld(D),u.handles.points[f]=v}},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback)},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!0;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(H));u.annotationUID=g;const{color:y,lineWidth:w,lineDash:C,shadow:S}=this.getAnnotationStyle({annotation:h,styleSpecifier:u});if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,width:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let T;if(!Ur(g))continue;!rr(g)&&!this.editData&&x!==null&&(T=[m[x]]),T&&sn(i,g,"0",T,{color:y});const _=`${g}-line-1`,E=`${g}-line-2`;It(i,g,"0",m[0],m[1],{color:y,lineDash:C,lineWidth:w,shadow:S},_),It(i,g,"1",m[2],m[3],{color:y,lineDash:C,lineWidth:w,shadow:S},E),o=!0;const I=this.getLinkedTextBoxStyle(u,h);if(!I.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const R=this.configuration.getTextLines(p,l);if(!R||R.length===0)continue;let M;p.handles.textBox.hasMoved||(M=$i(m),p.handles.textBox.worldPosition=a.canvasToWorld(M));const L=a.worldToCanvas(p.handles.textBox.worldPosition),G=ei(i,g,"1",R,L,m,{},I),{x:P,y:N,width:V,height:$}=G;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,N]),topRight:a.canvasToWorld([P+V,N]),bottomLeft:a.canvasToWorld([P,N+$]),bottomRight:a.canvasToWorld([P+V,N+$])}}return o},this._movingLongAxisWouldPutItThroughShortAxis=(n,i)=>{const o=ot();eo(o,i.end.x-i.start.x,i.end.y-i.start.y),Na(o,o);const a={start:{x:i.start.x-o[0]*10,y:i.start.y-o[1]*10},end:{x:i.end.x+o[0]*10,y:i.end.y+o[1]*10}};return!b3([a.start.x,a.start.y],[a.end.x,a.end.y],[n.start.x,n.start.y],[n.end.x,n.end.y])},this._calculateCachedStats=(n,i,o)=>{const{data:a}=n,{element:s}=o.viewport,c=a.handles.points[0],l=a.handles.points[1],f=a.handles.points[2],u=a.handles.points[3],{cachedStats:d}=a,h=Object.keys(d);for(let g=0;gM?R:M,A=R>M?M:R,G=R>M?D:I,P=R>M?I:D;this._isInsideVolume(y,w,C,S,m)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,d[p]={length:L,width:A,unit:G,widthUnit:P}}return n.invalidated=!1,fn(n,s),d},this._isInsideVolume=(n,i,o,a,s)=>In(n,s)&&In(i,s)&&In(o,s)&&In(a,s),this._getSignedAngle=(n,i)=>Math.atan2(n[0]*i[1]-n[1]*i[0],n[0]*i[0]+n[1]*i[1]),this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,o=n.world,a=re(i),{viewport:s,renderingEngine:c}=a;this.isDrawing=!0;const l=s.getCamera(),{viewPlaneNormal:f,viewUp:u}=l,d=this.getReferencedImageId(s,o,f,u),h=s.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...f],viewUp:[...u],FrameOfReferenceUID:h,referencedImageId:d,...s.getViewReference({points:[o]})},data:{handles:{points:[[...o],[...o],[...o],[...o]],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};Ut(g,i);const p=He(i,this.getToolName());return this.editData={annotation:g,viewportIdsToRender:p,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(i),Qe(i),e.preventDefault(),pe(p),g}_calculateLength(e,r){const n=e[0]-r[0],i=e[1]-r[1],o=e[2]-r[2];return Math.sqrt(n*n+i*i+o*o)}}function Hpe(t,e){const{cachedStats:r,label:n}=t,{length:i,width:o,unit:a}=r[e],s=[];return n&&s.push(n),i===void 0||s.push(`L: ${yt(i)} ${a||a}`,`W: ${yt(o)} ${a}`),s}yS.toolName="Bidirectional";function Kpe(t,e){const{data:r}=e,n=re(t),i=(r.getSegment||qpe)(n,r);if(!i)return;const o=n.viewport.getFrameOfReferenceUID(),a=N2(),{segmentIndex:s,segmentationId:c}=i,l=_t(this.toolName||yS.toolName,o);let f=!1;const u=l.filter(h=>{const g=h.data.segment;return g?(g.segmentationId===c&&g.segmentIndex===s&&(f=!0,h.data.segment=g),!0):!1});f||u.push({data:{segment:i}});let d;if(u.forEach(h=>{const g=[],p=h.data.segment,{segmentIndex:v,segmentationId:x}=p;g[v]=p,Ot(h.annotationUID);const m=NA({...a.find(C=>C.segmentationId===x),segments:g});if(!m)return;const y=PA(m,n.viewport);y.annotationUID=h.annotationUID,y.data.segment=p;const w=Ut(y,o);if(p.segmentIndex===i.segmentIndex&&p.segmentationId===i.segmentationId){d=m;const{style:C}=i;C&&DC.setAnnotationStyles(w,C)}}),d){const{sliceIndex:h}=d,g=n.viewport.getImageIds();Ho(t,{imageIndex:g.length-1-h}),n.viewport.render()}else console.warn("No bidirectional found");return d}function qpe(t,e){var a;const r=N2();if(!r.length)return;const n=e.segmentationId||r[0].segmentationId,i=e.segmentIndex??No(n);if(!i)return;const o=(a=e.segmentData)==null?void 0:a.get(i);return{label:`Segment ${i}`,segmentIndex:i,segmentationId:n,...o}}function AA(t){const e=Wn(t);if(e===void 0)return;F0(t).forEach(a=>{a.invalidateBrushCursor()});const n=e.getViewportsInfo();if(!Object.keys(n).map(a=>n[a]).length)return;const o=e.getViewportIds();pe(o)}function kA(t,e,r={}){const n=Ct(t),i=n.representationData,o=(r==null?void 0:r.representationType)??Object.keys(i)[0];if(!o)throw new Error(`Segmentation ${t} does not have any representations`);switch(o){case Ge.Labelmap:return Xpe(n,e,r);case Ge.Contour:return Ype(n,e,r);default:return}}function Xpe(t,e,{viewport:r}){const n=t.representationData.Labelmap;if(r instanceof Mn){const{volumeId:d}=n,h=_e.getVolume(d);return h?h.imageData.getScalarValueFromWorld(e):void 0}const i=Gi(r.id,t.segmentationId);if(!_e.getImage(i))return;const a=Ga(r.id,t.segmentationId),s=a==null?void 0:a.actor.getMapper().getInputData(),c=Gn(s,e),l=s.getDimensions();return(s.voxelManager||es.createScalarVolumeVoxelManager({dimensions:l,scalarData:s.getPointData().getScalars().getData()})).getAtIJKPoint(c)}function Ype(t,e,{viewport:r}){const n=t.representationData.Contour,i=Array.from(n.annotationUIDsMap.keys()),{viewPlaneNormal:o}=r.getCamera();for(const a of i){const s=n.annotationUIDsMap.get(a);if(s)for(const c of s){const l=On(c);if(!l)continue;const{polyline:f}=l.data.contour;if(pt(o,l.metadata.viewPlaneNormal)&&AN(e,f))return Number(a)}}}function VA(t,e,{viewport:r,searchRadius:n}){const o=Ct(t).representationData.Labelmap;if(r instanceof Mn){const{volumeId:p}=o,v=_e.getVolume(p);if(!v)return;const x=v.voxelManager,m=v.imageData,y=Gn(m,e),w=x.getAtIJK(y[0],y[1],y[2]),C=r.worldToCanvas(e);return Zpe(C,w,r,m,n)?w:void 0}const a=Gi(r.id,t);if(!_e.getImage(a))return;const c=Ga(r.id,t),l=c==null?void 0:c.actor.getMapper().getInputData(),f=Gn(l,e),u=l.getDimensions(),d=l.voxelManager||es.createScalarVolumeVoxelManager({dimensions:u,scalarData:l.getPointData().getScalars().getData()}),h=d.getAtIJKPoint(f);return Jpe(f,u,d,h)?h:void 0}function FA(t,e,r=1){const n=Array.from({length:2*r+1},(i,o)=>o-r);for(const i of n)for(const o of n)for(const a of n){if(i===0&&o===0&&a===0)continue;const s=t(i,o,a);if(s!==void 0&&e!==s)return!0}return!1}function Jpe(t,e,r,n,i){return FA((a,s,c)=>{const l=[t[0]+a,t[1]+s,t[2]+c];return r.getAtIJK(l[0],l[1],l[2])},n,i)}function Zpe(t,e,r,n,i){return FA((a,s)=>{const c=[t[0]+a,t[1]+s],l=r.canvasToWorld(c),f=n.get("voxelManager").voxelManager,u=Gn(n,l);return f.getAtIJK(u[0],u[1],u[2])},e,i)}function UA(t){const e=Ct(t),{annotationUIDsMap:r}=e.representationData.Contour;for(const[n,i]of r.entries())if(Array.from(i).find(a=>On(a).highlighted))return n}const Qpe=Object.freeze(Object.defineProperty({__proto__:null,contourAndFindLargestBidirectional:NA,createBidirectionalToolData:PA,createLabelmapVolumeForViewport:gpe,createMergedLabelmapForIndex:hpe,floodFill:xm,getBrushSizeForToolGroup:kpe,getBrushThresholdForToolGroup:Fpe,getBrushToolInstances:F0,getHoveredContourSegmentationAnnotation:UA,getSegmentIndexAtLabelmapBorder:VA,getSegmentIndexAtWorldPoint:kA,getUniqueSegmentIndices:ga,invalidateBrushCursor:AA,rectangleROIThresholdVolumeByRange:fpe,segmentContourAction:Kpe,setBrushSizeForToolGroup:Ape,setBrushThresholdForToolGroup:Vpe,thresholdSegmentationByRange:Upe,thresholdVolumeByRange:SA,triggerSegmentationRender:A0,triggerSegmentationRenderBySegmentationId:L2},Symbol.toStringTag,{value:"Module"}));function e1e(t){let e="";const r=t[0]<0?"R":"L",n=t[1]<0?"A":"P",i=t[2]<0?"F":"H",o=[Math.abs(t[0]),Math.abs(t[1]),Math.abs(t[2])],a=1e-4;for(let s=0;s<3;s++)if(o[0]>a&&o[0]>o[1]&&o[0]>o[2])e+=r,o[0]=0;else if(o[1]>a&&o[1]>o[0]&&o[1]>o[2])e+=n,o[1]=0;else if(o[2]>a&&o[2]>o[0]&&o[2]>o[1])e+=i,o[2]=0;else if(o[0]>a&&o[1]>a&&o[0]===o[1])e+=r+n,o[0]=0,o[1]=0;else if(o[0]>a&&o[2]>a&&o[0]===o[2])e+=r+i,o[0]=0,o[2]=0;else if(o[1]>a&&o[2]>a&&o[1]===o[2])e+=n+i,o[1]=0,o[2]=0;else break;return e}function t1e(t){let e=t.replace("H","f");return e=e.replace("F","h"),e=e.replace("R","l"),e=e.replace("L","r"),e=e.replace("A","p"),e=e.replace("P","a"),e=e.toUpperCase(),e}const n1e=Object.freeze(Object.defineProperty({__proto__:null,getOrientationStringLPS:e1e,invertOrientationStringLPS:t1e},Symbol.toStringTag,{value:"Module"}));var k3;(function(t){t.CLIP_STOPPED="CORNERSTONE_CINE_TOOL_STOPPED",t.CLIP_STARTED="CORNERSTONE_CINE_TOOL_STARTED"})(k3||(k3={}));const Hp=k3,xS={};function BA(t,e){const r=re(t),{viewportId:n}=r;xS[n]=e}function wS(t){const e=re(t),{viewportId:r}=e;return xS[r]}function r1e(t){return xS[t]}const{ViewportStatus:GA}=Ao,{triggerEvent:hy}=Yt,WA=!0,V3=new Map;function i1e(t,e){let r,n;if(t===void 0)throw new Error("playClip: element must not be undefined");const i=re(t);if(!i)throw new Error("playClip: element must be a valid Cornerstone enabled element");e||(e={}),e.dynamicCineEnabled=e.dynamicCineEnabled??!0;const{viewport:o}=i,a=u1e(o,e);let s=wS(t);const c=e.dynamicCineEnabled;if(c&&$A(t),s?F3(t,{stopDynamicCine:!c,viewportId:o.id}):(s={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:e.frameTimeVector??void 0,speed:e.frameTimeVectorSpeedMultiplier??1,reverse:e.reverse??!1,loop:e.loop??!0},BA(t,s)),s.dynamicCineEnabled=e.dynamicCineEnabled,(e.framesPerSecond<0||e.framesPerSecond>0)&&(s.framesPerSecond=Number(e.framesPerSecond),s.reverse=s.framesPerSecond<0,s.ignoreFrameTimeVector=!0),s.ignoreFrameTimeVector!==!0&&s.frameTimeVector&&s.frameTimeVector.length===a.numScrollSteps&&a.frameTimeVectorEnabled){const{timeouts:u,isTimeVarying:d}=o1e(s.frameTimeVector,s.speed);r=u,n=d}const l=()=>{const{numScrollSteps:u,currentStepIndex:d}=a;let h=d+(s.reverse?-1:1);const g=h<0||h>=u;if(!s.loop&&g){F3(t,{stopDynamicCine:!c,viewportId:o.id});const v={element:t};hy(t,Hp.CLIP_STOPPED,v);return}h>=u?h=0:h<0&&(h=u-1);const p=h-d;if(p)try{a.scroll(p)}catch(v){console.warn("Play clip not scrolling",v),jA(s),hy(t,Hp.CLIP_STOPPED,f);return}};if(c){const u=CS(o);u&&V3.set(u.volumeId,t)}a.play?s.framesPerSecond=a.play(e.framesPerSecond):r&&r.length>0&&n?(s.usingFrameTimeVector=!0,s.intervalId=window.setTimeout(function u(){s.intervalId=window.setTimeout(u,r[a.currentStepIndex]),l()},0)):(s.usingFrameTimeVector=!1,s.intervalId=window.setInterval(l,1e3/Math.abs(s.framesPerSecond)));const f={element:t};hy(t,Hp.CLIP_STARTED,f)}function zA(t,e={}){F3(t,{stopDynamicCine:!0,...e})}function F3(t,e={stopDynamicCine:!0,viewportId:void 0}){const{stopDynamicCine:r,viewportId:n}=e,i=re(t);let o;const a=i==null?void 0:i.viewport;if(i){const{viewport:s}=i;o=wS(s.element)}else if(n)o=r1e(n);else return;o&&jA(o),a instanceof Vd?a.pause():r&&a instanceof Mn&&$A(t)}function $A(t){const{viewport:e}=re(t),r=CS(e);if(r!=null&&r.isDynamicVolume()){const n=V3.get(r.volumeId);V3.delete(r.volumeId),n&&n!==t&&zA(n)}}function o1e(t,e){let r,n,i,o=0;const a=t.length,s=[];let c=!1;for((typeof e!="number"||e<=0)&&(e=1),r=1;r0&&(c?i=o/s.length|0:i=s[0],s.push(i)),{timeouts:s,isTimeVarying:c}}function jA(t){const e=t.intervalId;typeof e<"u"&&(t.intervalId=void 0,t.usingFrameTimeVector?clearTimeout(e):clearInterval(e))}function CS(t){const e=t.getAllVolumeIds(),n=e.find(i=>{var o;return(o=_e.getVolume(i))==null?void 0:o.isDynamicVolume()})??e[0];return _e.getVolume(n)}function a1e(t,e){const r=t.getImageIds();return{get numScrollSteps(){return r.length},get currentStepIndex(){return t.getTargetImageIdIndex()},get frameTimeVectorEnabled(){return!0},waitForRenderedCount:0,scroll(n){if(this.waitForRenderedCount<=e&&t.viewportStatus!==GA.RENDERED){this.waitForRenderedCount++;return}this.waitForRenderedCount=0,fl(t,{delta:n,debounceLoading:WA})}}}function s1e(t,e){return{get numScrollSteps(){return t.getNumberOfSlices()},get currentStepIndex(){return t.getSliceIndex()},get frameTimeVectorEnabled(){return!0},waitForRenderedCount:0,scroll(r){if(this.waitForRenderedCount<=e&&t.viewportStatus!==GA.RENDERED){this.waitForRenderedCount++;return}this.waitForRenderedCount=0,fl(t,{delta:r,debounceLoading:WA})},play(r){return r&&t.setPlaybackRate(r/24),t.play(),t.getFrameRate()}}}function c1e(t,e){const{volumeId:r}=e,n={viewPlaneNormal:we(),scrollInfo:null},i=()=>{const o=t.getCamera();if(!n.scrollInfo||!W5(o.viewPlaneNormal,n.viewPlaneNormal)){const s=Iu(t,r);n.viewPlaneNormal=o.viewPlaneNormal,n.scrollInfo=s}return n.scrollInfo};return{get numScrollSteps(){return i().numScrollSteps},get currentStepIndex(){return i().currentStepIndex},get frameTimeVectorEnabled(){const o=t.getCamera(),a=e.direction.slice(6,9).map(c=>-c),s=je(a,o.viewPlaneNormal);return Xs(s,1)},scroll(o){i().currentStepIndex+=o,fl(t,{delta:o})}}}function l1e(t){return{get numScrollSteps(){return t.numTimePoints},get currentStepIndex(){return t.timePointIndex},get frameTimeVectorEnabled(){return!1},scroll(e){t.scroll(e)}}}function u1e(t,e){if(t instanceof ln)return a1e(t,e.waitForRendered??30);if(t instanceof an){const r=CS(t);return e.dynamicCineEnabled&&(r!=null&&r.isDynamicVolume())?l1e(r):c1e(t,r)}if(t instanceof Vd)return s1e(t,e.waitForRendered??30);throw new Error("Unknown viewport type")}const f1e=Object.freeze(Object.defineProperty({__proto__:null,Events:Hp,addToolState:BA,getToolState:wS,playClip:i1e,stopClip:zA},Symbol.toStringTag,{value:"Module"}));function d1e(t,e){var n,i,o;const r=(e==null?void 0:e.knotsRatioPercentage)||30;return!((o=(i=(n=t==null?void 0:t.data)==null?void 0:n.contour)==null?void 0:i.polyline)!=null&&o.length)||r<=0}function h1e(t,e){const r=lo(),n=xn(we(),e,t),i=Math.abs(t[0])>.1?Ye(-t[1],t[0],0):Ye(0,-t[2],t[1]);return Sw(r,e,n,i),r}function Jg(t,e=Math.floor(Math.random()*(t.length-1))){if(e===0)return 0;const r=[...t],{length:n}=t;for(let i=0;i{const u=et(we(),f,o);return[u[0],u[1]]});let s=n?Jg(a):0,c=M3(a,0,a.length,(e==null?void 0:e.knotsRatioPercentage)||30);if(c===a)return!1;Jg(c,-s);for(let f=1;f<(e==null?void 0:e.loop);f++)s=n?Jg(c):0,c=M3(c,0,a.length,(e==null?void 0:e.knotsRatioPercentage)||30),Jg(c,-s);const l=$n(lo(),o);return t.data.contour.polyline=c.map(f=>et([0,0,0],[...f,0],l)),!0}const g1e={smoothAnnotation:HA},p1e=Object.freeze(Object.defineProperty({__proto__:null,default:g1e,smoothAnnotation:HA},Symbol.toStringTag,{value:"Module"})),{isEqual:Zg}=Yt,m1e=Ye(1,0,0),v1e=Ye(0,1,0),y1e=Ye(0,0,1),EE=[m1e,v1e,y1e];function KA(t){const e=kt(we(),t[0],t[1]),r=kt(we(),t[0],t[2]),n=DE(e,EE),i=DE(r,EE);return[...n,...i].every(a=>Zg(a,0)||Zg(a,90)||Zg(a,180)||Zg(a,270))}function DE(t,e){return e.map(r=>Tw(t,r)*180/Math.PI)}const x1e=Object.freeze(Object.defineProperty({__proto__:null,getBoundsIJKFromRectangleAnnotations:TA,isAxisAlignedRectangle:KA},Symbol.toStringTag,{value:"Module"})),qA={};function XA(t,e){const r=re(t),{viewportId:n}=r;qA[n]=e}function U0(t){const e=re(t),{viewportId:r}=e;return qA[r]}const Zc=ht.Prefetch,YA=0;function w1e(t,e){t=Math.round(t)||0,e=Math.round(e)||0;const r=[];let n=e-t+1;if(n<=0)return r;for(;n--;)r[n]=e--;return r}function C1e(t,e){let r=0,n=t.length-1;return t.forEach((i,o)=>{ie&&(n=Math.min(o,n))}),{low:r,high:n}}function B0(t){const e=re(t);if(!e)return null;const{viewport:r}=e;return r instanceof ln?{currentImageIdIndex:r.getCurrentImageIdIndex(),imageIds:r.getImageIds()}:null}function A2(t){return function(e){const r=e.detail;let n;try{n=B0(t)}catch{return}if(!n||!n.imageIds||n.imageIds.length===0)return;const o=n.imageIds.indexOf(r.imageId);if(o<0)return;const a=U0(t);!a||!a.indicesToRequest||!a.indicesToRequest.length||a.indicesToRequest.push(o)}}const S1e=t=>{const e=new Set(t.imageIds);return r=>r.type!==Zc||!e.has(r.additionalDetails.imageId)};let Qf={maxImagesToPrefetch:1/0,preserveExistingPool:!0},U3;const T1e=10;function JA(t){var g,p;const e=U0(t);if(!e)return;const r=e||{},n=B0(t);if(!((g=n==null?void 0:n.imageIds)!=null&&g.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const{currentImageIdIndex:i}=n;if(r.enabled=r.enabled&&(((p=r.indicesToRequest)==null?void 0:p.length)??0)>0,r.enabled===!1)return;function o(v){const x=r.indicesToRequest.indexOf(v);x>-1&&r.indicesToRequest.splice(x,1)}if(e.indicesToRequest.sort((v,x)=>v-x),r.indicesToRequest.slice().forEach(function(v){const x=n.imageIds[v];if(!x)return;(Math.abs(i-v)<6?_e.getImageLoadObject(x):_e.isLoaded(x))&&o(v)}),!r.indicesToRequest.length)return;Qf.preserveExistingPool||fi.clearRequestStack(Zc);const s=C1e(r.indicesToRequest,n.currentImageIdIndex);let c,l,f=s.low,u=s.high;const d=[];for(;f>=0||uQf.maxImagesToPrefetch,m=r.indicesToRequest[u]-v>Qf.maxImagesToPrefetch,y=!x&&f>=0,w=!m&&uJs(v,x);d.forEach(v=>{const x={requestType:Zc};fi.addRequest(h.bind(null,v,x),Zc,{imageId:v},YA)})}function B3(t){clearTimeout(U3),U3=setTimeout(function(){const e=t.target;try{JA(e)}catch{return}},T1e)}function _1e(t){const e=B0(t);if(!e||!e.imageIds||e.imageIds.length===0){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const r={indicesToRequest:w1e(0,e.imageIds.length-1),enabled:!0,direction:1},n=r.indicesToRequest.indexOf(e.currentImageIdIndex);r.indicesToRequest.splice(n,1),XA(t,r),JA(t),t.removeEventListener(Se.STACK_NEW_IMAGE,B3),t.addEventListener(Se.STACK_NEW_IMAGE,B3);const i=A2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,i),Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,i)}function E1e(t){clearTimeout(U3),t.removeEventListener(Se.STACK_NEW_IMAGE,B3);const e=A2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,e);const r=U0(t);r&&r.indicesToRequest.length&&(r.enabled=!1,fi.clearRequestStack(Zc))}function D1e(){return Qf}function b1e(t){Qf=t}const I1e={enable:_1e,disable:E1e,getConfiguration:D1e,setConfiguration:b1e};let Yd={maxImagesToPrefetch:1/0,minBefore:2,maxAfter:2,directionExtraImages:10,preserveExistingPool:!1},G3;const O1e=5,M1e=t=>{var n;const e=B0(t);if(!e)return;if(!((n=e.imageIds)!=null&&n.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}TS(t),SS(t),t.removeEventListener(Se.STACK_NEW_IMAGE,W3),t.addEventListener(Se.STACK_NEW_IMAGE,W3);const r=A2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,r),Ce.addEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,r)};function SS(t){var l,f;const e=B0(t);if(!e)return;if(!((l=e==null?void 0:e.imageIds)!=null&&l.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const r=U0(t);if(!r)return;const n=r||{};if(n.enabled=n.enabled&&(((f=n.indicesToRequest)==null?void 0:f.length)??0)>0,n.enabled===!1)return;function i(u){const d=n.indicesToRequest.indexOf(u);d>-1&&n.indicesToRequest.splice(d,1)}const o=n.indicesToRequest.slice(),{currentImageIdIndex:a}=e;if(o.forEach(u=>{const d=e.imageIds[u];if(!d)return;(Math.abs(a-u)<6?_e.getImageLoadObject(d):_e.isLoaded(d))&&i(u)}),!n.indicesToRequest.length)return;Yd.preserveExistingPool||fi.filterRequests(S1e(e));function s(u){var v,x;const d=e.imageIds.indexOf(u);i(d);const h=_e.getCachedImageBasedOnImageURI(u),{stats:g}=n,p=((v=h==null?void 0:h.image)==null?void 0:v.decodeTimeInMS)||0;if(p){g.imageIds.set(u,p),g.decodeTimeInMS+=p;const m=((x=h==null?void 0:h.image)==null?void 0:x.loadTimeInMS)||0;g.loadTimeInMS+=m}if(!n.indicesToRequest.length&&h!=null&&h.sizeInBytes){const{sizeInBytes:m}=h,y=_e.getMaxCacheSize()/4/m;if(!n.cacheFill)g.initialTime=Date.now()-g.start,g.initialSize=g.imageIds.size,TS(t,y),SS(t);else if(g.imageIds.size){g.fillTime=Date.now()-g.start;const{size:w}=g.imageIds;g.fillSize=w}}}const c=(u,d)=>Js(u,d).then(()=>s(u));n.indicesToRequest.forEach(u=>{const d=e.imageIds[u],h={requestType:Zc};fi.addRequest(c.bind(null,d,h),Zc,{imageId:d},YA)})}function W3(t){clearTimeout(G3),G3=setTimeout(function(){const e=t.target;try{TS(e),SS(e)}catch{return}},O1e)}const R1e=t=>t<0?-1:1,TS=(t,e)=>{var d;const r=B0(t);if(!r)return;if(!((d=r.imageIds)!=null&&d.length)){console.warn("CornerstoneTools.stackPrefetch: No images in stack.");return}const{currentImageIdIndex:n}=r;let{maxAfter:i=2,minBefore:o=2}=Yd;const{directionExtraImages:a=10}=Yd,s=U0(t)||{indicesToRequest:[],currentImageIdIndex:n,stackCount:0,enabled:!0,direction:1,stats:{start:Date.now(),imageIds:new Map,decodeTimeInMS:0,loadTimeInMS:0,totalBytes:0}},c=n-s.currentImageIdIndex;if(s.direction=R1e(c),s.currentImageIdIndex=n,s.enabled=!0,s.stackCount<100&&(s.stackCount+=a),Math.abs(c)>i||!c)if(s.stackCount=0,e){const h=n/r.imageIds.length;o=Math.ceil(e*h),i=Math.ceil(e*(1-h)),s.cacheFill=!0}else s.cacheFill=!1;else c<0?(o+=s.stackCount,i=0):(i+=s.stackCount,o=0);const l=Math.max(0,n-o),f=Math.min(r.imageIds.length-1,n+i),u=[];for(let h=n+1;h<=f;h++)u.push(h);for(let h=n-1;h>=l;h--)u.push(h);s.indicesToRequest=u,XA(t,s)};function L1e(t){clearTimeout(G3),t.removeEventListener(Se.STACK_NEW_IMAGE,W3);const e=A2(t);Ce.removeEventListener(Se.IMAGE_CACHE_IMAGE_REMOVED,e);const r=U0(t);r&&(r.enabled=!1)}function N1e(){return Yd}function P1e(t){Yd=t}const A1e={enable:M1e,disable:L1e,getConfiguration:N1e,setConfiguration:P1e},k1e=Object.freeze(Object.defineProperty({__proto__:null,isViewportPreScaled:os},Symbol.toStringTag,{value:"Module"}));function V1e(t,e){let r;const n=e.frameNumbers||[...Array(t.numTimePoints).keys()];if(!e.maskVolumeId&&!e.worldCoordinate)throw new Error("You should provide either maskVolumeId or imageCoordinate");if(e.maskVolumeId&&e.worldCoordinate)throw new Error("You can only use one of maskVolumeId or imageCoordinate");if(e.maskVolumeId){const i=_e.getVolume(e.maskVolumeId);if(!i)throw new Error("Segmentation volume not found");const[o,a]=U1e(n,t,i);return[o,a]}return e.worldCoordinate?F1e(n,e.worldCoordinate,t):r}function F1e(t,e,r){const{dimensions:n,imageData:i}=r,o=i.worldToIndex(e);if(o[0]=Math.floor(o[0]),o[1]=Math.floor(o[1]),o[2]=Math.floor(o[2]),!In(o,n))throw new Error("outside bounds");const a=n[0],s=n[0]*n[1],c=[];return t.forEach(l=>{const f=o[2]*s+o[1]*a+o[0];c.push(r.voxelManager.getAtIndexAndTimePoint(f,l))}),c}function U1e(t,e,r){const{imageData:n}=r,i=r.voxelManager,o=i.getScalarDataLength(),a=[];a.length=o;let s=0;for(let d=0,h=o;d{if(h===0)return;const p=VC(e.imageData,e.dimensions,e.spacing,d);let v=0;const x=new Map;t.forEach(w=>x.set(w,0));const m=({index:w})=>{for(let C=0;C{y.push(w/v)}),f.push(g),c.push(y)};return r.voxelManager.forEach(u,{imageData:n}),[c,f]}function ZA(t,e){const r=t.getScalarDataLength(),n=new Float32Array(r);for(const i of e){const o=t.getTimePointScalarData(i);for(let a=0;a{const n=ZA(t,e);for(let i=0;i{const n=B1e(t,e);for(let i=0;i{if(e.length!==2)throw new Error("Please provide only 2 time points for subtraction.");const n=t.getScalarDataLength(),i=t.getTimePointScalarData(e[0]),o=t.getTimePointScalarData(e[1]);for(let a=0;a{c[l]=f}),c}function W1e(t,e,r){const{frameNumbers:n,targetVolume:i}=r;if(!i)throw new Error("A target volume must be provided");const o=n||[...Array(t.numTimePoints).keys()];if(o.length<=1)throw new Error("Please provide two or more time points");const a=t.voxelManager,s=i.voxelManager,c=QA[e];if(!c)throw new Error(`Unsupported operation: ${e}`);c(a,o,(l,f)=>{s.setAtIndex(l,f)}),s.resetModifiedSlices();for(let l=0;l{for(const[c,l]of s.entries())if(l!==void 0)return c;return-1};let a=o(n);for(;a!==-1;){const s=[a];for(;n.has(a);){const c=n.get(a)[1];n.has(c)&&s.push(c),n.delete(a),a=c}i.push(s),a=o(n)}return i.length?i:void 0}function nk(t){const e=tk(t);if(!e)return;const r=t.getPoints().getData();return e.map(n=>n.map(i=>ek(r,i)))}const $1e=Object.freeze(Object.defineProperty({__proto__:null,getPoint:ek,getPolyDataPointIndexes:tk,getPolyDataPoints:nk},Symbol.toStringTag,{value:"Module"}));var Ai;(function(t){t.Top="top",t.Left="left",t.Bottom="bottom",t.Right="right"})(Ai||(Ai={}));const j1e=Object.freeze(Object.defineProperty({__proto__:null,get ColorbarRangeTextPosition(){return Ai}},Symbol.toStringTag,{value:"Module"})),Aa=t=>t&&t.upper>t.lower,wm=t=>!!t&&t.width>0&&t.height>0,Jd=(t,e)=>!!t&&!!e&&t.lower===e.lower&&t.upper===e.upper,rk=(t,e)=>!!t&&!!e&&t.width===e.width&&t.height===e.height,H1e=(t,e,r)=>[t[0]*(1-r)+e[0]*r,t[1]*(1-r)+e[1]*r,t[2]*(1-r)+e[2]*r],{clamp:K1e}=Yt;class _S{constructor(e){_S.validateProps(e);const{colormap:r,size:n={width:20,height:100},imageRange:i={lower:0,upper:1},voiRange:o={lower:0,upper:1},container:a,showFullPixelValueRange:s=!1}=e;this._colormap=r,this._imageRange=i,this._voiRange=o,this._showFullImageRange=s,this._canvas=this._createRootElement(n),a&&this.appendTo(a)}get colormap(){return this._colormap}set colormap(e){this._colormap=e,this.render()}get size(){const{width:e,height:r}=this._canvas;return{width:e,height:r}}set size(e){const{_canvas:r}=this;!wm(e)||rk(r,e)||(this._setCanvasSize(r,e),this.render())}get imageRange(){return{...this._imageRange}}set imageRange(e){!Aa(e)||Jd(e,this._imageRange)||(this._imageRange=e,this.render())}get voiRange(){return{...this._voiRange}}set voiRange(e){!Aa(e)||Jd(e,this._voiRange)||(this._voiRange=e,this.render())}get showFullImageRange(){return this._showFullImageRange}set showFullImageRange(e){e!==this._showFullImageRange&&(this._showFullImageRange=e,this.render())}appendTo(e){e.appendChild(this._canvas),this.render()}dispose(){const{_canvas:e}=this,{parentElement:r}=e;r==null||r.removeChild(e)}static validateProps(e){const{size:r,imageRange:n,voiRange:i}=e;if(r&&!wm(r))throw new Error('Invalid "size"');if(n&&!Aa(n))throw new Error('Invalid "imageRange"');if(i&&!Aa(i))throw new Error('Invalid "voiRange"')}_setCanvasSize(e,r){const{width:n,height:i}=r;e.width=n,e.height=i,Object.assign(e.style,{width:`${n}px`,height:`${i}px`})}_createRootElement(e){const r=document.createElement("canvas");return Object.assign(r.style,{position:"absolute",top:"0",left:"0",pointerEvents:"none",boxSizing:"border-box"}),this._setCanvasSize(r,e),r}render(){if(!this._canvas.isConnected)return;const{_colormap:e}=this,{RGBPoints:r}=e,n=r.length/4,i=x=>{const m=4*x;if(!(x<0||x>=n))return{index:x,position:r[m],color:[r[m+1],r[m+2],r[m+3]]}},{width:o,height:a}=this._canvas,s=this._canvas.getContext("2d");if(!s)return;const c=o>a,l=c?o:a,{_voiRange:f}=this,u=this._showFullImageRange?this._imageRange:{...f},{windowWidth:d}=T0(f.lower,f.upper);let h,g=i(0);const p=(u.upper-u.lower)/(l-1);let v=u.lower;for(let x=0;xK1e(Math.round(C*255),0,255));s.fillStyle=`rgb(${w[0]}, ${w[1]}, ${w[2]})`,c?s.fillRect(x,0,1,a):s.fillRect(0,a-x-1,o,1),v+=p}}}const Tc={FONT:"10px Arial",COLOR:"white",TICK_SIZE:5,TICK_WIDTH:1,TICK_LABEL_MARGIN:3,MAX_NUM_TICKS:8,TICKS_STEPS:[1,2.5,5,10]};class ES{constructor(e){ES.validateProps(e);const{top:r=0,left:n=0,size:i={width:20,height:100},imageRange:o={lower:0,upper:1},voiRange:a={lower:0,upper:1},ticks:s,container:c,showFullPixelValueRange:l=!1}=e,{style:f,position:u}=s??{};this._imageRange=o,this._voiRange=a,this._font=(f==null?void 0:f.font)??Tc.FONT,this._color=(f==null?void 0:f.color)??Tc.COLOR,this._tickSize=(f==null?void 0:f.tickSize)??Tc.TICK_SIZE,this._tickWidth=(f==null?void 0:f.tickWidth)??Tc.TICK_WIDTH,this._labelMargin=(f==null?void 0:f.labelMargin)??Tc.TICK_LABEL_MARGIN,this._maxNumTicks=(f==null?void 0:f.maxNumTicks)??Tc.MAX_NUM_TICKS,this._rangeTextPosition=u??Ai.Right,this._showFullPixelValueRange=l,this._canvas=this._createCanvasElement(i,r,n),c&&this.appendTo(c)}get size(){const{width:e,height:r}=this._canvas;return{width:e,height:r}}set size(e){const{_canvas:r}=this;!wm(e)||rk(r,e)||(this._setCanvasSize(r,e),this.render())}get top(){return Number.parseInt(this._canvas.style.top)}set top(e){const{_canvas:r}=this,n=this.top;e!==n&&(r.style.top=`${e}px`,this.render())}get left(){return Number.parseInt(this._canvas.style.left)}set left(e){const{_canvas:r}=this,n=this.left;e!==n&&(r.style.left=`${e}px`,this.render())}get imageRange(){return{...this._imageRange}}set imageRange(e){!Aa(e)||Jd(e,this._imageRange)||(this._imageRange=e,this.render())}get voiRange(){return{...this._voiRange}}set voiRange(e){!Aa(e)||Jd(e,this._voiRange)||(this._voiRange=e,this.render())}get tickSize(){return this._tickSize}set tickSize(e){e!==this._tickSize&&(this._tickSize=e,this.render())}get tickWidth(){return this._tickWidth}set tickWidth(e){e!==this._tickWidth&&(this._tickWidth=e,this.render())}get color(){return this._color}set color(e){e!==this._color&&(this._color=e,this.render())}get showFullPixelValueRange(){return this._showFullPixelValueRange}set showFullPixelValueRange(e){e!==this._showFullPixelValueRange&&(this._showFullPixelValueRange=e,this.render())}get visible(){return this._canvas.style.display==="block"}set visible(e){e!==this.visible&&(this._canvas.style.display=e?"block":"none",e&&this.render())}appendTo(e){e.appendChild(this._canvas),this.render()}static validateProps(e){const{size:r,imageRange:n,voiRange:i}=e;if(r&&!wm(r))throw new Error('Invalid "size"');if(n&&!Aa(n))throw new Error('Invalid "imageRange"');if(i&&!Aa(i))throw new Error('Invalid "voiRange"')}_setCanvasSize(e,r){const{width:n,height:i}=r;e.width=n,e.height=i,Object.assign(e.style,{width:`${n}px`,height:`${i}px`})}_createCanvasElement(e,r,n){const i=document.createElement("canvas");return Object.assign(i.style,{display:"none",position:"absolute",boxSizing:"border-box",top:`${r}px`,left:`${n}px`}),this._setCanvasSize(i,e),i}_getTicks(e){const{lower:r,upper:n}=e,o=(n-r)/(this._maxNumTicks-1),a=Math.pow(10,-Math.floor(Math.log10(Math.abs(o)))),s=o*a,l=Tc.TICKS_STEPS.find(g=>g>=s)/a,f=Math.ceil(n/l)*l,u=Math.floor(r/l)*l,d=Math.round((f-u)/l)+1,h=[];for(let g=0;g=n,o=i?r:n,a=e.getContext("2d"),{_voiRange:s}=this,c=this._showFullPixelValueRange?this._imageRange:{...s},l=c.upper-c.lower,{ticks:f}=this._getTicks(c);a.clearRect(0,0,r,n),a.font=this._font,a.textBaseline="middle",a.fillStyle=this._color,a.strokeStyle=this._color,a.lineWidth=this.tickWidth,f.forEach(u=>{let d=Math.round(o*((u-c.lower)/l));if(i||(d=n-d),d<0||d>o)return;const h=u.toString(),g=a.measureText(h);let p;i?this._rangeTextPosition===Ai.Top?p=this._getTopTickInfo({position:d,labelMeasure:g}):p=this._getBottomTickInfo({position:d,labelMeasure:g}):this._rangeTextPosition===Ai.Left?p=this._getLeftTickInfo({position:d,labelMeasure:g}):p=this._getRightTickInfo({position:d});const{labelPoint:v,tickPoints:x}=p,{start:m,end:y}=x;return a.beginPath(),a.moveTo(m[0],m[1]),a.lineTo(y[0],y[1]),a.fillText(h,v[0],v[1]),a.stroke(),d})}}function q1e(t,e,r){return(t>=e?[Ai.Top,Ai.Bottom]:[Ai.Left,Ai.Right]).includes(r)}class X1e{constructor({id:e,container:r}){this._containerResizeCallback=n=>{let i,o;const{contentRect:a,contentBoxSize:s}=n[0];a?(i=a.width,o=a.height):s!=null&&s.length&&(i=s[0].inlineSize,o=s[0].blockSize),this._containerSize={width:i,height:o},this.onContainerResize()},this._id=e,this._containerSize={width:0,height:0},this._rootElement=this.createRootElement(e),this._containerResizeObserver=new ResizeObserver(this._containerResizeCallback),r&&this.appendTo(r)}get id(){return this._id}get rootElement(){return this._rootElement}appendTo(e){const{_rootElement:r,_containerResizeObserver:n}=this,{parentElement:i}=r;!e||e===i||(i&&n.unobserve(i),e.appendChild(r),n.observe(e))}destroy(){const{_rootElement:e,_containerResizeObserver:r}=this,{parentElement:n}=e;n==null||n.removeChild(e),r.disconnect()}get containerSize(){return{...this._containerSize}}createRootElement(e){const r=document.createElement("div");return r.id=e,r.classList.add("widget"),Object.assign(r.style,{width:"100%",height:"100%"}),r}onContainerResize(){}}const df={MULTIPLIER:1,RANGE_TEXT_POSITION:Ai.Right,TICKS_BAR_SIZE:50};class Zd extends X1e{constructor(e){var r;super(e),this._isMouseOver=!1,this._isInteracting=!1,this._mouseOverCallback=n=>{this._isMouseOver=!0,this.showTicks(),n.stopPropagation()},this._mouseOutCallback=n=>{this._isMouseOver=!1,this.hideTicks(),n.stopPropagation()},this._mouseDownCallback=n=>{this._isInteracting=!0,this.showTicks(),this._addVOIEventListeners(n),n.stopPropagation()},this._mouseDragCallback=(n,i)=>{const o=this.getVOIMultipliers(),a=this._getPointsFromMouseEvent(n),{points:s,voiRange:c}=i,l=Oo(ot(),a.local,s.local),f=l[0]*o[0],u=l[1]*o[1];if(!f&&!u)return;const{lower:d,upper:h}=c;let{windowWidth:g,windowCenter:p}=T0(d,h);g=Math.max(g+f,1),p+=u;const v=Gs(g,p);this.voiRange=v,n.stopPropagation(),n.preventDefault()},this._mouseUpCallback=n=>{this._isInteracting=!1,this.hideTicks(),this._removeVOIEventListeners(),n.stopPropagation()},this._eventListenersManager=new sR,this._colormaps=Zd.getColormapsMap(e),this._activeColormapName=Zd.getInitialColormapName(e),this._canvas=this._createCanvas(e),this._ticksBar=this._createTicksBar(e),this._rangeTextPosition=((r=e.ticks)==null?void 0:r.position)??df.RANGE_TEXT_POSITION,this._canvas.appendTo(this.rootElement),this._ticksBar.appendTo(this.rootElement),this._addRootElementEventListeners()}get activeColormapName(){return this._activeColormapName}set activeColormapName(e){if(e===this._activeColormapName)return;const r=this._colormaps.get(e);if(!r){console.warn(`Invalid colormap name (${e})`);return}this._activeColormapName=e,this._canvas.colormap=r}get imageRange(){return this._canvas.imageRange}set imageRange(e){this._canvas.imageRange=e,this._ticksBar.imageRange=e}get voiRange(){return this._canvas.voiRange}set voiRange(e){const{voiRange:r}=this._canvas;!Aa(e)||Jd(e,r)||(this._canvas.voiRange=e,this._ticksBar.voiRange=e,this.onVoiChange(e))}get showFullImageRange(){return this._canvas.showFullImageRange}set showFullImageRange(e){this._canvas.showFullImageRange=e,this._ticksBar.showFullPixelValueRange=e}destroy(){super.destroy(),this._eventListenersManager.reset()}createRootElement(){const e=document.createElement("div");return Object.assign(e.style,{position:"relative",fontSize:"0",width:"100%",height:"100%"}),e}onContainerResize(){super.onContainerResize(),this.updateTicksBar(),this._canvas.size=this.containerSize}getVOIMultipliers(){return[df.MULTIPLIER,df.MULTIPLIER]}onVoiChange(e){}showTicks(){this.updateTicksBar(),this._ticksBar.visible=!0}hideTicks(){this._isInteracting||this._isMouseOver||(this._ticksBar.visible=!1)}static getColormapsMap(e){const{colormaps:r}=e;return r.reduce((n,i)=>n.set(i.Name,i),new Map)}static getInitialColormapName(e){const{activeColormapName:r,colormaps:n}=e;return!!r&&n.some(o=>o.Name===r)?r:n[0].Name}_createCanvas(e){const{imageRange:r,voiRange:n,showFullPixelValueRange:i}=e,o=this._colormaps.get(this._activeColormapName);return new _S({colormap:o,imageRange:r,voiRange:n,showFullPixelValueRange:i})}_createTicksBar(e){const r=e.ticks;return new ES({imageRange:e.imageRange,voiRange:e.voiRange,ticks:r,showFullPixelValueRange:e.showFullPixelValueRange})}_getPointsFromMouseEvent(e){const{rootElement:r}=this,n=[e.clientX,e.clientY],i=[e.pageX,e.pageY],o=r.getBoundingClientRect(),a=[i[0]-o.left-window.pageXOffset,i[1]-o.top-window.pageYOffset];return{client:n,page:i,local:a}}updateTicksBar(){const{width:e,height:r}=this.containerSize;if(e===0&&r===0)return;const{_ticksBar:n,_rangeTextPosition:i}=this,o=e>=r,a=o?e:df.TICKS_BAR_SIZE,s=o?df.TICKS_BAR_SIZE:r;if(!q1e(e,r,i))throw new Error("Invalid rangeTextPosition value for the current colobar orientation");let c,l;n.size={width:a,height:s},o?(l=0,c=i===Ai.Top?-s:r):(c=0,l=i===Ai.Left?-a:e),n.top=c,n.left=l}_addRootElementEventListeners(){const{_eventListenersManager:e}=this,{rootElement:r}=this;e.addEventListener(r,"mouseover",this._mouseOverCallback),e.addEventListener(r,"mouseout",this._mouseOutCallback),e.addEventListener(r,"mousedown",this._mouseDownCallback)}_addVOIEventListeners(e){const{_eventListenersManager:r}=this,n=this._getPointsFromMouseEvent(e),i={...this._canvas.voiRange},o={points:n,voiRange:i};this._removeVOIEventListeners(),r.addEventListener(document,"voi.mouseup",this._mouseUpCallback),r.addEventListener(document,"voi.mousemove",a=>this._mouseDragCallback(a,o))}_removeVOIEventListeners(){const{_eventListenersManager:e}=this;e.removeEventListener(document,"voi.mouseup"),e.removeEventListener(document,"voi.mousemove")}}const gy=4;function Y1e(t,e,r){if(SR(t,e)==="PT"){const{clientWidth:i,clientHeight:o}=t.element,a=5/Math.max(i,o),s=os(t,e),{fixedPTWindowWidth:c=!0}={},l=c?0:a;return s?[l,a]:[l,gy]}return[gy,gy]}const{Events:Qg}=Ao,ep={lower:-1e3,upper:1e3};class fu extends Zd{constructor(e){const{element:r,volumeId:n}=e,i=fu._getImageRange(r,n),o=fu._getVOIRange(r,n);super({...e,imageRange:i,voiRange:o}),this.autoHideTicks=()=>{if(this._hideTicksTimeoutId)return;const a=this._hideTicksTime-Date.now();a<=0?this.hideTicks():this._hideTicksTimeoutId=window.setTimeout(()=>{this._hideTicksTimeoutId=0,this.autoHideTicks()},a)},this._stackNewImageCallback=()=>{this.imageRange=fu._getImageRange(this._element)},this._imageVolumeModifiedCallback=a=>{const{volumeId:s}=a.detail;if(s!==this._volumeId)return;const{_element:c}=this;this.imageRange=fu._getImageRange(c,s)},this._viewportVOIModifiedCallback=a=>{const{viewportId:s,volumeId:c,range:l,colormap:f}=a.detail,{viewport:u}=this.enabledElement;s!==u.id||c!==this._volumeId||(this.voiRange=l,f&&(this.activeColormapName=f.name),this.showAndAutoHideTicks())},this._viewportColormapModifiedCallback=a=>{const{viewportId:s,colormap:c,volumeId:l}=a.detail,{viewport:f}=this.enabledElement;s!==f.id||l!==this._volumeId||(this.activeColormapName=c.name)},this._element=r,this._volumeId=n,this._addCornerstoneEventListener()}get element(){return this._element}get enabledElement(){return re(this._element)}getVOIMultipliers(){const{viewport:e}=this.enabledElement;return Y1e(e,this._volumeId)}onVoiChange(e){super.onVoiChange(e);const{viewport:r}=this.enabledElement;if(r instanceof ln)r.setProperties({voiRange:e}),r.render();else if(r instanceof an){const{_volumeId:n}=this,i=Th(n);r.setProperties({voiRange:e},n),i.forEach(o=>o.render())}}static _getImageRange(e,r){const n=re(e),{viewport:i}=n,o=i.getImageActor(r);if(!o)return ep;const s=o.getMapper().getInputData().getPointData().getScalars();let c;if(s)c=s.getRange();else{if(!r)throw new Error("volumeId is required when scalarData is not available");const l=_e.getVolume(r),[f,u]=l.voxelManager.getRange();c=[f,u]}return c[0]===0&&c[1]===0?ep:{lower:c[0],upper:c[1]}}static _getVOIRange(e,r){const n=re(e),{viewport:i}=n,o=i.getImageActor(r);if(!o)return ep;const a=o.getProperty().getRGBTransferFunction(0).getRange();return a[0]===0&&a[1]===0?ep:{lower:a[0],upper:a[1]}}showAndAutoHideTicks(e=1e3){this._hideTicksTime=Date.now()+e,this.showTicks(),this.autoHideTicks()}_addCornerstoneEventListener(){const{_element:e}=this;Ce.addEventListener(Qg.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedCallback),e.addEventListener(Qg.STACK_NEW_IMAGE,this._stackNewImageCallback),e.addEventListener(Qg.VOI_MODIFIED,this._viewportVOIModifiedCallback),e.addEventListener(Qg.COLORMAP_MODIFIED,this._viewportColormapModifiedCallback)}}const J1e=Object.freeze(Object.defineProperty({__proto__:null,Colorbar:Zd,Enums:j1e,ViewportColorbar:fu},Symbol.toStringTag,{value:"Module"}));function ik(t,e,r,n,i){const o=[];let a=0;const s=t.scalarData;let c,l,f;if(t.color)for(l=0;lEA(s,f),imageData:t})}function rme(t,e,r){const[n,i]=t,o=Ye((n[0]+i[0])/2,(n[1]+i[1])/2,(n[2]+i[2])/2),a=Cr(n,i)/2;let s;if(!r){const c=z3(e,o),l=e.getSpacing(),f=Math.min(...l),u=Math.ceil(a/f);return s=[[c[0]-u,c[0]+u],[c[1]-u,c[1]+u],[c[2]-u,c[2]+u]],{boundsIJK:s,centerWorld:o,radiusWorld:a}}return s=ime(e,r,t,o,a),{boundsIJK:s,centerWorld:o,radiusWorld:a}}function ime(t,e,r,n,i){const[o,a]=r,s=t.getDimensions(),c=e.getCamera(),l=Ye(c.viewUp[0],c.viewUp[1],c.viewUp[2]),f=Ye(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),u=we();Kt(u,l,f);const d=we(),h=we();Vt(d,a,f,i),Vt(h,o,f,-i),Vt(d,d,u,-i),Vt(h,h,u,i);const g=[z3(t,d),z3(t,h)];return Qs(g,s)}const ome=yt,ame=Object.freeze(Object.defineProperty({__proto__:null,annotationFrameRange:P3,annotationHydration:$le,boundingBox:Age,calibrateImageSpacing:Pge,cine:f1e,contourSegmentation:Xle,contours:cpe,debounce:S2,drawing:vfe,dynamicVolume:z1e,getAnnotationNearPoint:Rge,getAnnotationNearPointOnEnabledElement:hA,getCalibratedAspect:qC,getCalibratedLengthUnitsAndScale:Bi,getCalibratedProbeUnitsAndValue:fm,getClosestImageIdForStackViewport:HC,getSphereBoundsInfo:pA,getViewportForAnnotation:jp,isObject:BC,math:Due,orientation:n1e,planar:Nue,planarFreehandROITool:p1e,pointInSurroundingSphereCallback:nme,pointToString:KC,polyDataUtils:$1e,rectangleROITool:x1e,roundNumber:ome,segmentation:Qpe,stackContextPrefetch:A1e,stackPrefetch:I1e,throttle:Qr,touch:$ce,triggerAnnotationRender:L0,triggerAnnotationRenderForToolGroupIds:eP,triggerAnnotationRenderForViewportIds:pe,triggerEvent:De,viewport:k1e,viewportFilters:Fue,voi:tme},Symbol.toStringTag,{value:"Module"})),sme=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));function sk(t,e){const r=Xt;t.forEach(n=>{r.updateSegmentation(n.segmentationId,n.payload),e||Di(n.segmentationId)})}function cme(t,e,r){Xt.setSegmentationRepresentationVisibility(t,e,r)}function lme(t,e,r){const n=Ti(t,e);n&&n.forEach(i=>{cme(t,{segmentationId:i.segmentationId,type:i.type},r)})}function ume(t,e){return tP(t,e)}function fme(t,e,r,n){const i=Ti(t,e);i&&(i.forEach(o=>{o.segments[r].visible=n}),L2(e.segmentationId),Jo(t,e.segmentationId))}function dme(t,e,r){return!ck(t,e).has(r)}function ck(t,e){const r=w2(t,e);return r?Object.entries(r.segments).reduce((i,[o,a])=>(a.visible||i.add(Number(o)),i),new Set):new Set}const hme=Object.freeze(Object.defineProperty({__proto__:null,getHiddenSegmentIndices:ck,getSegmentIndexVisibility:dme,getSegmentationRepresentationVisibility:ume,setSegmentIndexVisibility:fme,setSegmentationRepresentationVisibility:lme},Symbol.toStringTag,{value:"Module"}));function gme(t){return Fi.getStyle(t)}function pme(t,e){Fi.setStyle(t,e),!t.viewportId&&!t.segmentationId&&N2().forEach(n=>{A0(n.segmentationId)}),Jo(t.viewportId,t.segmentationId,t.type)}function mme(t,e){Fi.setRenderInactiveSegmentations(t,e),A0(t),SP(t).forEach(n=>{Jo(t,n.segmentationId)})}function vme(t){return Fi.getRenderInactiveSegmentations(t)}function yme(){Fi.resetToGlobalStyle(),A0()}function xme(t){return Fi.hasCustomStyle(t)}const wme=Object.freeze(Object.defineProperty({__proto__:null,getRenderInactiveSegmentations:vme,getStyle:gme,hasCustomStyle:xme,resetToGlobalStyle:yme,setRenderInactiveSegmentations:mme,setStyle:pme},Symbol.toStringTag,{value:"Module"})),Cme=Object.freeze(Object.defineProperty({__proto__:null,color:kle,style:wme,visibility:hme},Symbol.toStringTag,{value:"Module"}));function Cm(t,e){const r=Ct(t);typeof e=="string"&&(console.warn("segmentIndex is a string, converting to number"),e=Number(e)),Object.values(r.segments).forEach(i=>{i.active=!1}),r.segments[e]||(r.segments[e]={segmentIndex:e,label:"",locked:!1,cachedStats:{},active:!1}),r.segments[e].active!==!0&&(r.segments[e].active=!0,Di(t));const n=R0(t);n.forEach(i=>{Ti(i,{segmentationId:t}).forEach(a=>{a.segments[e]||(a.segments[e]={visible:!0})})}),n.forEach(i=>{const o=Cn(i);AA(o.id)})}const Sme=Object.freeze(Object.defineProperty({__proto__:null,getActiveSegmentIndex:No,setActiveSegmentIndex:Cm},Symbol.toStringTag,{value:"Module"}));async function Tme(t){const e=gle(t);return Di(t.segmentationId),e}const _me=Object.freeze(Object.defineProperty({__proto__:null,canComputeRequestedRepresentation:C2,computeAndAddContourRepresentation:rP,computeAndAddLabelmapRepresentation:fP,computeAndAddSurfaceRepresentation:pN},Symbol.toStringTag,{value:"Module"}));function lk(t,e){const r=Ct(t);if(r.representationData.Labelmap){const{representationData:n}=r,i=n.Labelmap;("imageIds"in i||"volumeId"in i)&&("imageIds"in i?i.imageIds.map(a=>_e.getImage(a)):[_e.getVolume(i.volumeId)]).forEach(a=>{if(!a)return;const{voxelManager:s}=a;s.forEach(({value:c,index:l})=>{c===e&&s.setAtIndex(l,0)})}),Ei(t)}else throw new Error("Invalid segmentation type, only labelmap is supported right now")}function Eme(t,e,r={setNextSegmentAsActive:!0}){lk(t,e);const n=No(t)===e,i=Ct(t),{segments:o}=i;delete o[e];const a={...o};if(sk([{segmentationId:t,payload:{segments:a}}]),n&&r.setNextSegmentAsActive){const c=Object.keys(o).map(Number).sort((d,h)=>d-h),l=c.indexOf(e),f=c[l+1],u=c[l-1];f!==void 0?Cm(t,f):u!==void 0&&Cm(t,u)}R0(t).forEach(c=>{Ti(c,{segmentationId:t}).forEach(f=>{delete f.segments[e]})})}function Dme(t){const e=Xt,r=Ct(t);return e.getLabelmapImageIds(r.representationData)}const bme={clearSegmentValue:lk,convertStackToVolumeLabelmap:Tme,computeVolumeLabelmapFromStack:gN,convertVolumeToStackLabelmap:Lde},Ime=Object.freeze(Object.defineProperty({__proto__:null,activeSegmentation:wde,addContourRepresentationToViewport:cP,addContourRepresentationToViewportMap:bde,addLabelmapRepresentationToViewport:lP,addLabelmapRepresentationToViewportMap:Ide,addSegmentationRepresentations:P0,addSegmentations:gP,addSurfaceRepresentationToViewport:uP,addSurfaceRepresentationToViewportMap:Ode,config:Cme,getLabelmapImageIds:Dme,helpers:bme,polySeg:_me,removeAllSegmentationRepresentations:vP,removeAllSegmentations:CP,removeContourRepresentation:xP,removeLabelmapRepresentation:yP,removeSegment:Eme,removeSegmentation:uS,removeSegmentationRepresentation:k0,removeSegmentationRepresentations:pP,removeSurfaceRepresentation:wP,segmentIndex:Sme,segmentLocking:tde,state:Yde,triggerSegmentationEvents:ale,updateSegmentations:sk},Symbol.toStringTag,{value:"Module"}));class o0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r)}touchDragCallback(e){this._dragCallback(e)}mouseDragCallback(e){this._dragCallback(e)}_dragCallback(e){const{element:r,deltaPoints:n}=e.detail,i=re(r),o=n.world;if(o[0]===0&&o[1]===0&&o[2]===0)return;const a=i.viewport.getCamera(),{focalPoint:s,position:c}=a,l=[c[0]-o[0],c[1]-o[1],c[2]-o[2]],f=[s[0]-o[0],s[1]-o[1],s[2]-o[2]];i.viewport.setCamera({focalPoint:f,position:l}),i.viewport.render()}}o0.toolName="Pan";class uk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{rotateIncrementDegrees:2}}){super(e,r),this._resizeObservers=new Map,this._hasResolutionChanged=!1,this.preMouseDownCallback=n=>{const i=n.detail,{element:o}=i,a=re(o),{viewport:s}=a,f=s.getDefaultActor().actor.getMapper();if(!("getSampleDistance"in f||"getCurrentSampleDistance"in f))return!0;const d=f.getSampleDistance();return this._hasResolutionChanged||(f.setSampleDistance(d*2),this._hasResolutionChanged=!0,this.cleanUp!==null&&document.removeEventListener("mouseup",this.cleanUp),this.cleanUp=()=>{f.setSampleDistance(d),s.render(),this._hasResolutionChanged=!1},document.addEventListener("mouseup",this.cleanUp,{once:!0})),!0},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.onSetToolActive=()=>{const n=()=>{this._getViewportsInfo().forEach(({viewportId:o,renderingEngineId:a})=>{if(!this._resizeObservers.has(o)){const{viewport:s}=dr(o,a)||{viewport:null};if(!s)return;const{element:c}=s,l=new ResizeObserver(()=>{const f=dr(o,a);if(!f)return;const{viewport:u}=f;u.resetCamera(),u.render()});l.observe(c),this._resizeObservers.set(o,l)}})};n(),this._viewportAddedListener=i=>{i.detail.toolGroupId===this.toolGroupId&&n()},Ce.addEventListener(F.TOOLGROUP_VIEWPORT_ADDED,this._viewportAddedListener)},this.onSetToolDisabled=()=>{this._resizeObservers.forEach((n,i)=>{n.disconnect(),this._resizeObservers.delete(i)}),this._viewportAddedListener&&(Ce.removeEventListener(F.TOOLGROUP_VIEWPORT_ADDED,this._viewportAddedListener),this._viewportAddedListener=null)},this.rotateCamera=(n,i,o,a)=>{const s=n.getVtkActiveCamera(),c=s.getViewUp(),l=s.getFocalPoint(),f=s.getPosition(),u=[0,0,0],d=[0,0,0],h=[0,0,0],g=qe(new Float32Array(16));nn(g,g,i),Hr(g,g,a,o),nn(g,g,[-i[0],-i[1],-i[2]]),et(u,f,g),et(d,l,g),qe(g),Hr(g,g,a,o),et(h,c,g),n.setCamera({position:u,viewUp:h,focalPoint:d})},this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_dragCallback(e){const{element:r,currentPoints:n,lastPoints:i}=e.detail,o=n.canvas,a=i.canvas,{rotateIncrementDegrees:s}=this.configuration,c=re(r),{viewport:l}=c,f=l.getCamera(),u=r.clientWidth,d=r.clientHeight,h=[o[0]/u,o[1]/d],g=[a[0]/u,a[1]/d],p=[u*.5,d*.5],v=l.canvasToWorld(p),m=(1+Math.abs([.5,.5][0]))**2,y=[g[0],0,0],w=[h[0],0,0],C=y[0]**2,S=w[0]**2,T=C>m?0:Math.sqrt(m-C),_=S>m?0:Math.sqrt(m-S),E=[y[0],0,T];nt.normalize(E);const D=[w[0],0,_];nt.normalize(D);const b=nt.dot(E,D);if(Math.abs(b)>1e-4){const I=-2*Math.acos(nt.clampValue(b,-1,1))*Math.sign(h[0]-g[0])*s,R=f.viewUp,M=f.viewPlaneNormal,L=[0,0,0],A=[0,0,0];nt.cross(R,M,L),nt.normalize(L),nt.cross(M,L,A),nt.normalize(A),nt.normalize(R),this.rotateCamera(l,v,A,I);const G=(g[1]-h[1])*s;this.rotateCamera(l,v,L,G),l.render()}}}uk.toolName="TrackballRotate";const py=4,Ome=1024,Mme="PT";class a0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this._getImageDynamicRangeFromMiddleSlice=(n,i)=>{const o=Math.floor(i[2]/2),a=i[0]*i[1];let s,c;n instanceof Float32Array?(s=4,c=Float32Array):n instanceof Uint8Array?(s=1,c=Uint8Array):n instanceof Uint16Array?(s=2,c=Uint16Array):n instanceof Int16Array&&(s=2,c=Int16Array);const l=n.buffer,f=o*a*s,u=new c(l,f,a),{max:d,min:h}=this._getMinMax(u,a);return d-h}}touchDragCallback(e){this.mouseDragCallback(e)}mouseDragCallback(e){var g,p;const{element:r,deltaPoints:n}=e.detail,i=re(r),{viewport:o}=i;let a,s,c,l,f,u,d=!1;const h=o.getProperties();if(o instanceof an){a=o.getVolumeId(),u=Th(a),{lower:s,upper:c}=h.voiRange;const v=_e.getVolume(a);if(!v)throw new Error("Volume not found "+a);l=v.metadata.Modality,d=v.scaling&&Object.keys(v.scaling).length>0}else if(h.voiRange){l=o.modality,{lower:s,upper:c}=h.voiRange;const{preScale:v={scaled:!1}}=((g=o.getImageData)==null?void 0:g.call(o))||{};d=v.scaled&&((p=v.scalingParameters)==null?void 0:p.suvbw)!==void 0}else throw new Error("Viewport is not a valid type");if(l===Mme&&d?f=this.getPTScaledNewRange({deltaPointsCanvas:n.canvas,lower:s,upper:c,clientHeight:r.clientHeight,isPreScaled:d,viewport:o,volumeId:a}):f=this.getNewRange({viewport:o,deltaPointsCanvas:n.canvas,volumeId:a,lower:s,upper:c}),!(f.lower>=f.upper)&&(o.setProperties({voiRange:f}),o.render(),o instanceof an)){u.forEach(v=>{o!==v&&v.render()});return}}getPTScaledNewRange({deltaPointsCanvas:e,lower:r,upper:n,clientHeight:i,viewport:o,volumeId:a,isPreScaled:s}){let c=py;s?c=5/i:c=this._getMultiplierFromDynamicRange(o,a)||py;const f=e[1]*c;return n-=f,n=s?Math.max(n,.1):n,{lower:r,upper:n}}getNewRange({viewport:e,deltaPointsCanvas:r,volumeId:n,lower:i,upper:o}){const a=this._getMultiplierFromDynamicRange(e,n)||py,s=r[0]*a,c=r[1]*a;let{windowWidth:l,windowCenter:f}=T0(i,o);return l+=s,f+=c,l=Math.max(l,1),Gs(l,f)}_getMultiplierFromDynamicRange(e,r){var o;let n;if(r){const a=_e.getVolume(r),{voxelManager:s}=e.getImageData(),l=s.getMiddleSliceData().reduce((d,h)=>[Math.min(d[0],h),Math.max(d[1],h)],[1/0,-1/0]),f=(o=a==null?void 0:a.metadata)==null?void 0:o.BitsStored,u=f?2**f:1/0;n=Math.min(l,u)}else n=this._getImageDynamicRangeFromViewport(e);const i=n/Ome;return i>1?Math.round(i):i}_getImageDynamicRangeFromViewport(e){const{imageData:r,voxelManager:n}=e.getImageData();if(n!=null&&n.getRange){const s=n.getRange();return s[1]-s[0]}const i=r.getDimensions();if(r.getRange){const s=r.getRange();return s[1]-s[0]}let o;if(r.getScalarData?o=r.getScalarData():o=r.getPointData().getScalars().getData(),i[2]!==1)return this._getImageDynamicRangeFromMiddleSlice(o,i);let a;if(o.getRange)a=o.getRange();else{const{min:s,max:c}=this._getMinMax(o,o.length);a=[s,c]}return a[1]-a[0]}_getMinMax(e,r){let n=1/0,i=-1/0;for(let o=0;oi&&(i=a)}return{max:i,min:n}}}a0.toolName="WindowLevel";class fk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{minWindowWidth:10}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(l,s,u,d),g=l.getFrameOfReferenceUID(),p={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:g,referencedImageId:h},data:{handles:{points:[[...s],[...s],[...s],[...s]]},cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v},this._activateDraw(a),Qe(a),n.preventDefault(),pe(v),p},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData;this._deactivateDraw(o),ct(o),this.editData=null,this.isDrawing=!1,Ot(a.annotationUID),pe(s),en(a),this.applyWindowLevelRegion(a,o)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData,{data:c}=a,{currentPoints:l}=i,f=re(o),{worldToCanvas:u,canvasToWorld:d}=f.viewport,h=l.world,{points:g}=c.handles,p=3;g[p]=[...h];const v=u(g[0]),x=u(g[3]),m=[x[0],v[1]],y=[v[0],x[1]],w=d(m),C=d(y);g[1]=w,g[2]=C,a.invalidated=!0,pe(s)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(C));l.annotationUID=d;const{color:v,lineWidth:x,lineDash:m}=this.getAnnotationStyle({annotation:u,styleSpecifier:l});if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const y=`${d}-rect`;Nh(i,d,"0",p[0],p[3],{color:v,lineDash:m,lineWidth:x},y),o=!0}return o},this.applyWindowLevelRegion=(n,i)=>{const o=re(i),{viewport:a}=o,s=ak(a),{data:c}=n,{points:l}=c.handles,f=l.map(S=>a.worldToCanvas(S)),u=f[0],d=f[3];let h=Math.min(u[0],d[0]),g=Math.min(u[1],d[1]),p=Math.abs(u[0]-d[0]),v=Math.abs(u[1]-d[1]);h=Q1(h,0,s.width),g=Q1(g,0,s.height),p=Math.floor(Math.min(p,Math.abs(s.width-h))),v=Math.floor(Math.min(v,Math.abs(s.height-g)));const x=ik(s,Math.round(h),Math.round(g),p,v),m=ok(x,s.minPixelValue,s.maxPixelValue);this.configuration.minWindowWidth===void 0&&(this.configuration.minWindowWidth=10);const y=Math.max(Math.abs(m.max-m.min),this.configuration.minWindowWidth),w=m.mean,C=Gs(y,w);a.setProperties({voiRange:C}),a.render()},this.cancel=()=>null,this.isPointNearTool=()=>null,this.toolSelectedCallback=()=>null,this.handleSelectedCallback=()=>null,this._activateModify=()=>null,this._deactivateModify=()=>null}}fk.toolName="WindowLevelRegion";class yl extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0,loop:!1}}){super(e,r),this.deltaY=1}mouseWheelCallback(e){this._scroll(e)}mouseDragCallback(e){this._dragCallback(e)}touchDragCallback(e){this._dragCallback(e)}_dragCallback(e){this._scrollDrag(e)}_scrollDrag(e){const{deltaPoints:r,viewportId:n,renderingEngineId:i}=e.detail,{viewport:o}=dr(n,i),{debounceIfNotLoaded:a,invert:s,loop:c}=this.configuration,l=r.canvas[1];let f;o instanceof an&&(f=o.getVolumeId());const u=this._getPixelPerImage(o),d=l+this.deltaY;if(u)if(Math.abs(d)>=u){const h=Math.round(d/u);fl(o,{delta:s?-h:h,volumeId:f,debounceLoading:a,loop:c}),this.deltaY=d%u}else this.deltaY=d}_scroll(e){const{wheel:r,element:n}=e.detail,{direction:i}=r,{invert:o}=this.configuration,{viewport:a}=re(n),s=i*(o?-1:1);fl(a,{delta:s,debounceLoading:this.configuration.debounceIfNotLoaded,loop:this.configuration.loop,volumeId:a instanceof Mn?a.getVolumeId():void 0,scrollSlabs:this.configuration.scrollSlabs})}_getPixelPerImage(e){const{element:r}=e,n=e.getNumberOfSlices();return Math.max(2,r.offsetHeight/Math.max(n,8))}}yl.toolName="StackScroll";function Rme(t,e){const[r,n]=t,[i,o]=e,a=Qt(we(),n,r),s=Qt(we(),i,o),c=je(a,s),l=ui(a),f=ui(s),u=c/(l*f);return Math.acos(u)*180/Math.PI}function Lme(t,e){const[r,n]=t,[i,o]=e,a=Oo(ot(),n,r),s=Oo(ot(),i,o),c=Ew(a,s),l=z5(a),f=z5(s),u=c/(l*f);return Math.acos(u)*(180/Math.PI)}function ed(t,e){return t[0].length===3?Rme(t,e):Lme(t,e)}class s0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.mouseWheelCallback=n=>{const{element:i,wheel:o}=n.detail,a=re(i),{viewport:s}=a,{invert:c}=this.configuration,l=o.direction*10*(c?-1:1);this.setAngle(s,l)},this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_dragCallback(e){const{element:r,currentPoints:n,startPoints:i}=e.detail,o=n.world,a=i.world,s=re(r),{viewport:c}=s,l=c.getCamera(),f=r.clientWidth,u=r.clientHeight,d=[f*.5,u*.5],h=c.canvasToWorld(d);let g=ed([a,h],[h,o]);const{viewPlaneNormal:p}=l,v=Qt(we(),h,a),x=Qt(we(),h,o),m=Kt(we(),v,x);je(p,m)>0&&(g=-g),!Number.isNaN(g)&&this.setAngle(c,g)}setAngle(e,r){const{viewPlaneNormal:n,viewUp:i}=e.getCamera();if(e instanceof Mn){const o=(r+360)%360*Math.PI/180,a=qe(new Float32Array(16));Hr(a,a,o,n);const s=et(we(),i,a);e.setCamera({viewUp:s})}else{const{rotation:o}=e.getViewPresentation();e.setViewPresentation({rotation:(o+r+360)%360})}e.render()}}s0.toolName="PlanarRotate";class c0 extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{zoomToCenter:!1,minZoomScale:.001,maxZoomScale:3e3,pinchToZoom:!0,pan:!0,invert:!1}}){super(e,r),this.preMouseDownCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=a.world,l=re(o).viewport.getCamera(),{focalPoint:f}=l;this.initialMousePosWorld=s;let u=Ye(f[0]-s[0],f[1]-s[1],f[2]-s[2]);return u=on(we(),u),this.dirVec=u,!1},this.preTouchStartCallback=n=>{if(!this.configuration.pinchToZoom)return this.preMouseDownCallback(n)},this._dragParallelProjection=(n,i,o,a=!1)=>{const{element:s,deltaPoints:c}=n.detail,l=a?n.detail.deltaDistance.canvas:c.canvas[1],f=[s.clientWidth,s.clientHeight],{parallelScale:u,focalPoint:d,position:h}=o,g=5/f[1],p=l*g*(this.configuration.invert?-1:1),v=(1-p)*u;let x=d,m=h;if(!this.configuration.zoomToCenter){const b=Cr(d,this.initialMousePosWorld);m=Vt(we(),h,this.dirVec,-b*p),x=Vt(we(),d,this.dirVec,-b*p)}const y=i.getImageData();let w=[1,1,1];y&&(w=y.spacing);const{minZoomScale:C,maxZoomScale:S}=this.configuration,T=s.clientHeight*w[1]*.5,_=T/v;let E=v,D=!1;y&&(_=S&&(E=T/S,D=!0)),i.setCamera({parallelScale:E,focalPoint:D?d:x,position:D?h:m})},this._dragPerspectiveProjection=(n,i,o,a=!1)=>{const{element:s,deltaPoints:c}=n.detail,l=a?n.detail.deltaDistance.canvas:c.canvas[1],f=[s.clientWidth,s.clientHeight],{position:u,focalPoint:d,viewPlaneNormal:h}=o,g=nt.distance2BetweenPoints(u,d),p=Math.sqrt(g)/f[1],v=[-h[0],-h[1],-h[2]],x=this.configuration.invert?l/p:l*p;let m=x*v[0];u[0]+=m,d[0]+=m,m=x*v[1],u[1]+=m,d[1]+=m,m=x*v[2],u[2]+=m,d[2]+=m,i.setCamera({position:u,focalPoint:d})},this.initialMousePosWorld=[0,0,0],this.dirVec=[0,0,0],this.configuration.pinchToZoom?this.touchDragCallback=this._pinchCallback.bind(this):this.touchDragCallback=this._dragCallback.bind(this),this.mouseDragCallback=this._dragCallback.bind(this)}_pinchCallback(e){if(e.detail.currentPointsList.length>1){const{element:n,currentPoints:i}=e.detail,o=re(n),{viewport:a}=o,s=a.getCamera(),c=i.world,{focalPoint:l}=s;this.initialMousePosWorld=c;let f=Ye(l[0]-c[0],l[1]-c[1],l[2]-c[2]);f=on(we(),f),this.dirVec=f,s.parallelProjection?this._dragParallelProjection(e,a,s,!0):this._dragPerspectiveProjection(e,a,s,!0),a.render()}this.configuration.pan&&this._panCallback(e)}_dragCallback(e){const{element:r}=e.detail,n=re(r),{viewport:i}=n,o=i.getCamera();o.parallelProjection?this._dragParallelProjection(e,i,o):this._dragPerspectiveProjection(e,i,o),i.render()}_panCallback(e){const{element:r,deltaPoints:n}=e.detail,i=re(r),o=n.world,a=i.viewport.getCamera(),{focalPoint:s,position:c}=a,l=[c[0]-o[0],c[1]-o[1],c[2]-o[2]],f=[s[0]-o[0],s[1]-o[1],s[2]-o[2]];i.viewport.setCamera({focalPoint:f,position:l}),i.viewport.render()}}c0.toolName="Zoom";class dk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}}){super(e,r)}mouseClickCallback(e){const{element:r,currentPoints:n}=e.detail,i=re(r),{viewport:o,renderingEngine:a}=i,s=o.getVolumeId();if(!s)throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");let c=-1/0;const l=(g,p)=>{if(g>c)return c=g,p},f=nS(o,n.world,s,l);if(!f||!f.length)return;const{targetViewportIds:u,toolGroupId:d}=this.configuration;a.getViewports().filter(g=>{if((u==null?void 0:u.indexOf(g.id))>=0)return!0;const p=Cn(g.id,a.id);return!!(d&&d===(p==null?void 0:p.id))}).forEach(g=>{g instanceof an?g.jumpToWorld(f):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")})}}dk.toolName="MIPJumpToClickTool";const{RENDERING_DEFAULTS:my}=Sl;function Nme(){return"rgb(0, 200, 0)"}function Pme(){return!0}function Ame(){return!0}function kme(){return!0}const go={DRAG:1,ROTATE:2,SLAB:3};class Ko extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!1,viewportIndicatorsConfig:{radius:5,x:null,y:null},autoPan:{enabled:!1,panSize:10},referenceLinesCenterGapRadius:20,filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:$u.MAXIMUM_INTENSITY_BLEND,mobile:{enabled:!1,opacity:.8,handleRadius:9}}}){var n,i,o,a;super(e,r),this.toolCenter=[0,0,0],this.initializeViewport=({renderingEngineId:s,viewportId:c})=>{const l=dr(c,s),{FrameOfReferenceUID:f,viewport:u}=l,{element:d}=u,{position:h,focalPoint:g,viewPlaneNormal:p}=u.getCamera();let v=this._getAnnotations(l);v=this.filterInteractableAnnotationsForElement(d,v),v.length&&Ot(v[0].annotationUID);const x={highlighted:!1,metadata:{cameraPosition:[...h],cameraFocalPoint:[...g],FrameOfReferenceUID:f,toolName:this.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:this.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:c}};return Ut(x,d),{normal:p,point:u.canvasToWorld([u.canvas.clientWidth/2,u.canvas.clientHeight/2])}},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.resetCrosshairs=()=>{const s=this._getViewportsInfo();for(const c of s){const{viewportId:l,renderingEngineId:f}=c,u=dr(l,f),d=u.viewport;d.resetCamera({resetPan:!0,resetZoom:!0,resetToCenter:!0,resetRotation:!0,suppressEvents:!0}),d.resetSlabThickness();const{element:m}=d;let y=this._getAnnotations(u);y=this.filterInteractableAnnotationsForElement(m,y),y.length&&Ot(y[0].annotationUID),d.render()}this.computeToolCenter(s)},this.computeToolCenter=s=>{if(!s.length||s.length===1){console.warn("For crosshairs to operate, at least two viewports must be given.");return}const[c,l,f]=s,{normal:u,point:d}=this.initializeViewport(c),{normal:h,point:g}=this.initializeViewport(l);let p=[0,0,0],v=we();f?{normal:p,point:v}=this.initializeViewport(f):(xn(v,d,g),lr(v,v,.5),Kt(p,u,h));const x=Ba(u,d),m=Ba(h,g),y=Ba(p,v);this.toolCenter=GM(x,m,y),pe(s.map(({viewportId:w})=>w))},this.addNewAnnotation=s=>{const c=s.detail,{element:l}=c,{currentPoints:f}=c,u=f.world,d=re(l),{viewport:h}=d;this._jump(d,u);const g=this._getAnnotations(d),p=this.filterInteractableAnnotationsForElement(h.element,g),{data:v}=p[0],{rotationPoints:x}=v.handles,m=[];for(let y=0;y{console.log("Not implemented yet")},this.handleSelectedCallback=(s,c)=>{const l=s.detail,{element:f}=l;c.highlighted=!0,this._activateModify(f),Qe(f),s.preventDefault()},this.isPointNearTool=(s,c,l,f)=>!!this._pointNearTool(s,c,l,6),this.toolSelectedCallback=(s,c,l)=>{const f=s.detail,{element:u}=f;c.highlighted=!0,this._activateModify(u),Qe(u),s.preventDefault()},this.onCameraModified=s=>{var E;const c=s.detail,{element:l}=c,f=re(l),{renderingEngine:u}=f,d=f.viewport,h=this._getAnnotations(f),p=this.filterInteractableAnnotationsForElement(l,h)[0];if(!p)return;const v=d.getCamera(),x=p.metadata.cameraPosition,m=[0,0,0];nt.subtract(v.position,x,m);const y=p.metadata.cameraFocalPoint,w=[0,0,0];nt.subtract(v.focalPoint,y,w),p.metadata.cameraPosition=[...v.position],p.metadata.cameraFocalPoint=[...v.focalPoint];const C=this._getReferenceLineControllable(d.id),S=this._getReferenceLineDraggableRotatable(d.id);if(!pt(v.position,x,.001)&&C&&S){let D=!1;pt(m,w,.001)||(D=!0);const I=Math.abs(nt.dot(m,v.viewPlaneNormal))<.01;!D&&!I&&(this.toolCenter[0]+=m[0],this.toolCenter[1]+=m[1],this.toolCenter[2]+=m[2])}(E=this.configuration.autoPan)!=null&&E.enabled&&Cn(d.id,u.id).getViewportIds().filter(I=>I!==d.id).forEach(I=>{this._autoPanViewportIfNecessary(I,u)});const _=He(l,this.getToolName(),!1);pe(_)},this.onResetCamera=s=>{this.resetCrosshairs()},this.mouseMoveCallback=(s,c)=>{const{element:l,currentPoints:f}=s.detail,u=f.canvas;let d=!1;for(let h=0;h0?[...p.activeViewportIds]:[];p.activeViewportIds=[],p.handles.activeOperation=null;const y=this.getHandleNearImagePoint(l,g,u,6);let w=!1;y?w=!0:w=this._pointNearTool(l,g,u,6),w&&!v||!w&&v?(g.highlighted=!v,d=!0):(p.handles.activeOperation!==x||!this._areViewportIdArraysEqual(p.activeViewportIds,m))&&(d=!0)}return d},this.filterInteractableAnnotationsForElement=(s,c)=>{if(!c||!c.length)return[];const l=re(s),{viewportId:f}=l;return c.filter(d=>d.data.viewportId===f)},this.renderAnnotation=(s,c)=>{let l=!1;const{viewport:f,renderingEngine:u}=s,{element:d}=f,h=this._getAnnotations(s),g=f.getCamera(),v=this.filterInteractableAnnotationsForElement(d,h)[0];if(!(h!=null&&h.length)||!(v!=null&&v.data))return l;const x=v.annotationUID,{clientWidth:m,clientHeight:y}=f.canvas,w=Math.sqrt(m*m+y*y),C=Math.min(m,y),S=v.data,T=f.worldToCanvas(this.toolCenter),_=this._filterAnnotationsByUniqueViewportOrientations(s,h),E=[],D=[0,0,m,y];_.forEach(L=>{const{data:A}=L;A.handles.toolCenter=this.toolCenter;const G=u.getViewport(A.viewportId),P=G.getCamera(),N=this._getReferenceLineControllable(G.id),V=this._getReferenceLineDraggableRotatable(G.id),$=this._getReferenceLineSlabThicknessControlsOn(G.id),{clientWidth:H,clientHeight:Y}=G.canvas,ne=Math.sqrt(H*H+Y*Y),Q=[H*.5,Y*.5],ee=G.canvasToWorld(Q),de=[0,0,0];nt.cross(g.viewPlaneNormal,P.viewPlaneNormal,de),nt.normalize(de),nt.multiplyScalar(de,ne);const fe=[0,0,0];nt.add(ee,de,fe);const le=[0,0,0];nt.subtract(ee,de,le);const k=f.worldToCanvas(fe),O=f.worldToCanvas(ee),B=ot();kn(B,k,O),Na(B,B);const U=ot();Da(U,B,w*100);const z=ot();Da(z,B,C*.4);const j=ot();Da(j,B,C*.2);const K=ot(),ae=this.configuration.referenceLinesCenterGapRadius;Da(K,B,_.length===2?ae:0);const he=ot(),ye=ot(),Te=ot(),q=ot();let J=sg(T);(!V||!N)&&(J=sg(O)),Lr(he,J,K),Lr(ye,J,U),kn(Te,J,K),kn(q,J,U),Nf(he,ye,D),Nf(Te,q,D);const ie=ot();kn(ie,T,z);const Z=ot();Lr(Z,T,z);let te=sg(T);!V&&$&&(te=sg(O));let me=[...this.toolCenter];!V&&$&&(me=[...ee]);const X=[0,0,0];nt.subtract(fe,le,X),nt.normalize(X);const{viewPlaneNormal:Ae}=g,{matrix:Be}=br.buildFromDegree().rotate(90,Ae),Ve=[0,0,0];et(Ve,X,Be);const ue=G.getSlabThickness(),Ee=[...Ve];nt.multiplyScalar(Ee,ue);const Me=[0,0,0];nt.add(me,Ee,Me);const Re=f.worldToCanvas(Me),We=ot();kn(We,te,Re);const ut=ot();kn(ut,te,U),Lr(ut,ut,We);const ze=ot();Lr(ze,te,U),Lr(ze,ze,We),Nf(ut,ze,D);const ft=ot();Lr(ft,te,U),kn(ft,ft,We);const dt=ot();kn(dt,te,U),kn(dt,dt,We),Nf(ft,dt,D);const dn=ot(),Pn=ot(),Gt=ot(),sr=ot();kn(dn,te,j),Lr(dn,dn,We),Lr(Pn,te,j),Lr(Pn,Pn,We),kn(Gt,te,j),kn(Gt,Gt,We),Lr(sr,te,j),kn(sr,sr,We),E.push([G,he,ye,Te,q,ut,ze,ft,dt,ie,Z,dn,Pn,Gt,sr])});const b=[],I=[],R=this._getReferenceLineColor(f.id),M=R!==void 0?R:"rgb(200, 200, 200)";if(E.forEach((L,A)=>{var de,fe,le,k,O,B,U,z,j,K,ae,he,ye,Te,q,J,ie,Z,te;const G=L[0],P=this._getReferenceLineColor(G.id),N=this._getReferenceLineControllable(G.id),V=this._getReferenceLineDraggableRotatable(G.id)||((de=this.configuration.mobile)==null?void 0:de.enabled),$=this._getReferenceLineSlabThicknessControlsOn(G.id)||((fe=this.configuration.mobile)==null?void 0:fe.enabled),H=S.activeViewportIds.find(me=>me===G.id);let Y=P!==void 0?P:"rgb(200, 200, 200)",ne=1;const Q=S.handles.activeOperation!==null&&S.handles.activeOperation===go.DRAG&&H;Q&&(ne=2.5);let ee=`${A}`;if(N&&V?(ee=`${A}One`,It(c,x,ee,L[1],L[2],{color:Y,lineWidth:ne}),ee=`${A}Two`,It(c,x,ee,L[3],L[4],{color:Y,lineWidth:ne})):It(c,x,ee,L[2],L[4],{color:Y,lineWidth:ne}),N){Y=P!==void 0?P:"rgb(200, 200, 200)";const me=S.handles.activeOperation===go.ROTATE,X=[L[9],L[10]],Ae=[f.canvasToWorld(L[9]),G,L[1],L[2]],Be=[f.canvasToWorld(L[10]),G,L[3],L[4]];b.push(Ae,Be);const Ve=S.handles.activeOperation===go.SLAB,ue=[L[11],L[12],L[13],L[14]],Ee=[f.canvasToWorld(L[11]),G,L[5],L[6]],Me=[f.canvasToWorld(L[12]),G,L[5],L[6]],Re=[f.canvasToWorld(L[13]),G,L[7],L[8]],We=[f.canvasToWorld(L[14]),G,L[7],L[8]];if(I.push(Ee,Me,Re,We),(Q||(le=this.configuration.mobile)!=null&&le.enabled)&&!me&&!Ve&&V&&$){let ze=`${A}One`;sn(c,x,ze,X,{color:Y,handleRadius:(k=this.configuration.mobile)!=null&&k.enabled?(O=this.configuration.mobile)==null?void 0:O.handleRadius:3,opacity:(B=this.configuration.mobile)!=null&&B.enabled?(U=this.configuration.mobile)==null?void 0:U.opacity:1,type:"circle"}),ze=`${A}Two`,sn(c,x,ze,ue,{color:Y,handleRadius:(z=this.configuration.mobile)!=null&&z.enabled?(j=this.configuration.mobile)==null?void 0:j.handleRadius:3,opacity:(K=this.configuration.mobile)!=null&&K.enabled?(ae=this.configuration.mobile)==null?void 0:ae.opacity:1,type:"rect"})}else if(Q&&!me&&!Ve&&V){const ze=`${A}`;sn(c,x,ze,X,{color:Y,handleRadius:(he=this.configuration.mobile)!=null&&he.enabled?(ye=this.configuration.mobile)==null?void 0:ye.handleRadius:3,opacity:(Te=this.configuration.mobile)!=null&&Te.enabled?(q=this.configuration.mobile)==null?void 0:q.opacity:1,type:"circle"})}else if(H&&!me&&!Ve&&$){const ze=`${A}`;sn(c,x,ze,ue,{color:Y,handleRadius:(J=this.configuration.mobile)!=null&&J.enabled?(ie=this.configuration.mobile)==null?void 0:ie.handleRadius:3,opacity:(Z=this.configuration.mobile)!=null&&Z.enabled?(te=this.configuration.mobile)==null?void 0:te.opacity:1,type:"rect"})}else if(me&&V){const ze=`${A}`;sn(c,x,ze,X,{color:Y,handleRadius:2,fill:Y,type:"circle"})}else Ve&&H&&$&&sn(c,x,ee,ue,{color:Y,handleRadius:2,fill:Y,type:"rect"});G.getSlabThickness()>.5&&$&&(ee=`${A}STOne`,It(c,x,ee,L[5],L[6],{color:Y,width:1,lineDash:[2,3]}),ee=`${A}STTwo`,It(c,x,ee,L[7],L[8],{color:Y,width:L,lineDash:[2,3]}))}}),l=!0,S.handles.rotationPoints=b,S.handles.slabThicknessPoints=I,this.configuration.viewportIndicators){const{viewportIndicatorsConfig:L}=this.configuration,A=(L==null?void 0:L.xOffset)||.95,G=(L==null?void 0:L.yOffset)||.05,P=[m*A,y*G],N=(L==null?void 0:L.circleRadius)||w*.01;bi(c,x,"0",P,N,{color:M,fill:M})}return l},this._getAnnotations=s=>{const{viewport:c}=s,l=_t(this.getToolName(),c.element)||[],f=this._getViewportsInfo().map(({viewportId:d})=>d);return l.filter(d=>{const{data:h}=d;return f.includes(h.viewportId)})},this._onNewVolume=()=>{const s=this._getViewportsInfo();this.computeToolCenter(s)},this._areViewportIdArraysEqual=(s,c)=>s.length!==c.length?!1:(s.forEach(l=>{let f=!1;for(let u=0;u{const{viewportId:l,renderingEngine:f,viewport:u}=s,d=c.filter(x=>x.data.viewportId!==l);if(!d||!d.length)return[];const h=u.getCamera(),{viewPlaneNormal:g,position:p}=h;return d.filter(x=>{const{viewportId:m}=x.data,w=f.getViewport(m).getCamera();return!(pt(w.viewPlaneNormal,g,.01)&&pt(w.position,p,1))})},this._filterViewportWithSameOrientation=(s,c,l)=>{const{renderingEngine:f}=s,{data:u}=c,d=f.getViewport(u.viewportId),h=l.filter(x=>{const{data:m}=x,y=f.getViewport(m.viewportId);return this._getReferenceLineControllable(y.id)===!0});if(!h||!h.length)return[];const g=d.getCamera(),p=g.viewPlaneNormal;return nt.normalize(p),h.filter(x=>{const{viewportId:m}=x.data,w=f.getViewport(m).getCamera(),C=w.viewPlaneNormal;return nt.normalize(C),pt(p,C,.01)&&pt(g.viewUp,w.viewUp,.01)})},this._filterAnnotationsByUniqueViewportOrientations=(s,c)=>{const{renderingEngine:l,viewport:f}=s,d=f.getCamera().viewPlaneNormal;nt.normalize(d);const h=c.filter(x=>{const{data:m}=x,y=l.getViewport(m.viewportId),w=this._getReferenceLineControllable(y.id);return f!==y&&w===!0}),g=[];for(let x=0;x{const{data:m}=x,y=l.getViewport(m.viewportId),w=this._getReferenceLineControllable(y.id);return f!==y&&w!==!0});for(let x=0;x_===m))continue;const{viewportId:y}=m.data,C=l.getViewport(y).getCamera(),S=C.viewPlaneNormal;if(nt.normalize(S),pt(d,S,.01)||Mf(d,S,.01))continue;let T=!1;for(let _=0;_{const l=s.getActors(),f=c.getActors();let u=!0;return l.forEach(d=>{(l.length!==f.length||f.find(({uid:h})=>h===d.uid)===void 0)&&(u=!1)}),u},this._jump=(s,c)=>{ve.isInteractingWithTool=!0;const{viewport:l,renderingEngine:f}=s,u=this._getAnnotations(s),d=[0,0,0];nt.subtract(c,this.toolCenter,d);const g=this._getAnnotationsForViewportsWithDifferentCameras(s,u).filter(p=>{const{data:v}=p,x=f.getViewport(v.viewportId),m=this._checkIfViewportsRenderingSameScene(l,x);return this._getReferenceLineControllable(x.id)&&this._getReferenceLineDraggableRotatable(x.id)&&m});return g.length===0?(ve.isInteractingWithTool=!1,!1):(this._applyDeltaShiftToSelectedViewportCameras(f,g,d),ve.isInteractingWithTool=!1,!0)},this._activateModify=s=>{var c;ve.isInteractingWithTool=!((c=this.configuration.mobile)!=null&&c.enabled),s.addEventListener(F.MOUSE_UP,this._endCallback),s.addEventListener(F.MOUSE_DRAG,this._dragCallback),s.addEventListener(F.MOUSE_CLICK,this._endCallback),s.addEventListener(F.TOUCH_END,this._endCallback),s.addEventListener(F.TOUCH_DRAG,this._dragCallback),s.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=s=>{ve.isInteractingWithTool=!1,s.removeEventListener(F.MOUSE_UP,this._endCallback),s.removeEventListener(F.MOUSE_DRAG,this._dragCallback),s.removeEventListener(F.MOUSE_CLICK,this._endCallback),s.removeEventListener(F.TOUCH_END,this._endCallback),s.removeEventListener(F.TOUCH_DRAG,this._dragCallback),s.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._endCallback=s=>{const c=s.detail,{element:l}=c;this.editData.annotation.data.handles.activeOperation=null,this.editData.annotation.data.activeViewportIds=[],this._deactivateModify(l),ct(l),this.editData=null;const u=He(l,this.getToolName(),!1);pe(u)},this._dragCallback=s=>{const c=s.detail,l=c.deltaPoints.world;if(Math.abs(l[0])<.001&&Math.abs(l[1])<.001&&Math.abs(l[2])<.001)return;const{element:f}=c,u=re(f),{renderingEngine:d,viewport:h}=u,g=this._getAnnotations(u),v=this.filterInteractableAnnotationsForElement(f,g)[0];if(!v)return;const{handles:x}=v.data,{currentPoints:m}=s.detail,y=m.canvas;if(x.activeOperation===go.DRAG){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(S=>{const{data:T}=S,_=d.getViewport(T.viewportId),E=this._getReferenceLineControllable(_.id),D=this._getReferenceLineDraggableRotatable(_.id);return E===!0&&D===!0&&v.data.activeViewportIds.find(b=>b===_.id)});this._applyDeltaShiftToSelectedViewportCameras(d,C,l)}else if(x.activeOperation===go.ROTATE){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(A=>{const{data:G}=A,P=d.getViewport(G.viewportId),N=this._getReferenceLineControllable(P.id),V=this._getReferenceLineDraggableRotatable(P.id);return N===!0&&V===!0}),S=ot(),T=ot(),_=[this.toolCenter[0],this.toolCenter[1],this.toolCenter[2]],E=h.worldToCanvas(_),D=c.currentPoints.canvas,b=ot();Oo(b,D,c.deltaPoints.canvas),Oo(S,b,E),Oo(T,D,E);let I=sj(S,T);this._isClockWise(E,b,D)&&(I*=-1),I=Math.round(I*100)/100;const R=h.getCamera().viewPlaneNormal,{matrix:M}=br.buildFromRadian().translate(_[0],_[1],_[2]).rotate(I,R).translate(-_[0],-_[1],-_[2]),L=[];C.forEach(A=>{const{data:G}=A;G.handles.toolCenter=_;const P=d.getViewport(G.viewportId),N=P.getCamera(),{viewUp:V,position:$,focalPoint:H}=N;V[0]+=$[0],V[1]+=$[1],V[2]+=$[2],et(H,H,M),et($,$,M),et(V,V,M),V[0]-=$[0],V[1]-=$[1],V[2]-=$[2],P.setCamera({position:$,viewUp:V,focalPoint:H}),L.push(P.id)}),d.renderViewports(L)}else if(x.activeOperation===go.SLAB){const C=this._getAnnotationsForViewportsWithDifferentCameras(u,g).filter(_=>{const{data:E}=_,D=d.getViewport(E.viewportId),b=this._getReferenceLineControllable(D.id),I=this._getReferenceLineSlabThicknessControlsOn(D.id);return b===!0&&I===!0&&v.data.activeViewportIds.find(R=>R===D.id)});if(C.length===0)return;const S=this._filterViewportWithSameOrientation(u,C[0],g),T=[];T.push(h.id),S.forEach(_=>{const{data:E}=_,D=d.getViewport(E.viewportId),I=D.getCamera().viewPlaneNormal,R=nt.dot(l,I),M=[...I];if(nt.multiplyScalar(M,R),Math.abs(M[0])>.001||Math.abs(M[1])>.001||Math.abs(M[2])>.001){const L=Math.sqrt(M[0]*M[0]+M[1]*M[1]+M[2]*M[2]),A=c.lastPoints.world,G=[0,0,0],P=[this.toolCenter[0],this.toolCenter[1],this.toolCenter[2]];if(!this._getReferenceLineDraggableRotatable(D.id)){const{rotationPoints:fe}=this.editData.annotation.data.handles,le=fe.filter(k=>k[1].uid===D.id);if(le.length===2){const k=h.canvasToWorld(le[0][3]),O=h.canvasToWorld(le[1][3]);nt.add(k,O,P),nt.multiplyScalar(P,.5)}}nt.subtract(A,P,G);const V=nt.dot(G,I),$=[...I];nt.multiplyScalar($,V);const H=[$[0],$[1],$[2]];on(H,H);const Y=[M[0],M[1],M[2]];on(Y,Y);let ne=D.getSlabThickness();Mf(H,Y,.001)?ne-=L:ne+=L,ne=Math.abs(ne),ne=Math.max(my.MINIMUM_SLAB_THICKNESS,ne),this._pointNearReferenceLine(v,y,6,D)&&(ne=my.MINIMUM_SLAB_THICKNESS),Cn(D.id,d.id).getToolInstance(this.getToolName()).setSlabThickness(D,ne),T.push(D.id)}}),d.renderViewports(T)}},this._pointNearReferenceLine=(s,c,l,f)=>{const{data:u}=s,{rotationPoints:d}=u.handles;for(let h=0;h{const i=dr(n,r);if(!i)return;const o=this._getAnnotations(i);o!=null&&o.length&&o.forEach(a=>{Ot(a.annotationUID)})})}getHandleNearImagePoint(e,r,n,i){const o=re(e),{viewport:a}=o;let s=this._getRotationHandleNearImagePoint(a,r,n,i);if(s!==null||(s=this._getSlabThicknessHandleNearImagePoint(a,r,n,i),s!==null))return s}_unsubscribeToViewportNewVolumeSet(e){e.forEach(({viewportId:r,renderingEngineId:n})=>{const{viewport:i}=dr(r,n),{element:o}=i;o.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this._onNewVolume)})}_subscribeToViewportNewVolumeSet(e){e.forEach(({viewportId:r,renderingEngineId:n})=>{const{viewport:i}=dr(r,n),{element:o}=i;o.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this._onNewVolume)})}_autoPanViewportIfNecessary(e,r){const n=r.getViewport(e),{clientWidth:i,clientHeight:o}=n.canvas,a=n.worldToCanvas(this.toolCenter),s=this.configuration.autoPan.panSize,c=[a[0],a[1]];if(a[0]<0?c[0]=s:a[0]>i&&(c[0]=i-s),a[1]<0?c[1]=s:a[1]>o&&(c[1]=o-s),c[0]===a[0]&&c[1]===a[1])return;const l=n.canvasToWorld(c),f=[l[0]-this.toolCenter[0],l[1]-this.toolCenter[1],l[2]-this.toolCenter[2]],u=n.getCamera(),{focalPoint:d,position:h}=u,g=[h[0]-f[0],h[1]-f[1],h[2]-f[2]],p=[d[0]-f[0],d[1]-f[1],d[2]-f[2]];n.setCamera({focalPoint:p,position:g}),n.render()}setSlabThickness(e,r){let n;const{filterActorUIDsToSetSlabThickness:i}=this.configuration;i&&i.length>0&&(n=i);let o=this.configuration.slabThicknessBlendMode;r===my.MINIMUM_SLAB_THICKNESS&&(o=$u.COMPOSITE),e.setBlendMode(o,n,!1),e.setSlabThickness(r,n)}_isClockWise(e,r,n){return(r[0]-e[0])*(n[1]-e[1])-(r[1]-e[1])*(n[0]-e[0])>0}_applyDeltaShiftToSelectedViewportCameras(e,r,n){r.forEach(i=>{this._applyDeltaShiftToViewportCamera(e,i,n)})}_applyDeltaShiftToViewportCamera(e,r,n){const{data:i}=r,o=e.getViewport(i.viewportId),a=o.getCamera(),s=a.viewPlaneNormal,c=nt.dot(n,s),l=[...s];if(nt.multiplyScalar(l,c),Math.abs(l[0])>.001||Math.abs(l[1])>.001||Math.abs(l[2])>.001){const f=[0,0,0],u=[0,0,0];nt.add(a.focalPoint,l,f),nt.add(a.position,l,u),o.setCamera({focalPoint:f,position:u}),o.render()}}_getRotationHandleNearImagePoint(e,r,n,i){const{data:o}=r,{rotationPoints:a}=o.handles;for(let s=0;sR===p.id))continue;const v=this._getReferenceLineControllable(p.id),x=this._getReferenceLineSlabThicknessControlsOn(p.id);if(!v||!x)continue;const m=d[g][2],y=d[g][3],w=ot();Lr(w,m,y),Da(w,w,.5);const C=ot();kn(C,m,w),Na(C,C);const S=ot();Da(S,C,l*.05);const T=ot(),_=ot();Lr(T,w,S),kn(_,w,S);const E={start:{x:T[0],y:T[1]},end:{x:m[0],y:m[1]}},D=Pr([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]),b={start:{x:_[0],y:_[1]},end:{x:y[0],y:y[1]}},I=Pr([b.start.x,b.start.y],[b.end.x,b.end.y],[n[0],n[1]]);(D<=i||I<=i)&&(h.push(p.id),f.handles.activeOperation=null),g++}return f.activeViewportIds=[...h],this.editData={annotation:r},f.handles.activeOperation===go.DRAG}}Ko.toolName="Crosshairs";const tp="magnify-viewport";class hk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{magnifySize:10,magnifyWidth:250,magnifyHeight:250}}){super(e,r),this._hasBeenRemoved=!1,this.preMouseDownCallback=n=>{const i=n.detail,{element:o,currentPoints:a}=i,s=re(o),{viewport:c,renderingEngine:l}=s;if(!(c instanceof ln))throw new Error("MagnifyTool only works on StackViewports");const f=this._getReferencedImageId(c);if(!f)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");const u=He(o,this.getToolName());return this.editData={referencedImageId:f,viewportIdsToRender:u,enabledElement:s,renderingEngine:l,currentPoints:a},this._createMagnificationViewport(),this._activateDraw(o),Qe(o),n.preventDefault(),pe(u),!0},this.preTouchStartCallback=n=>{this.preMouseDownCallback(n)},this._createMagnificationViewport=()=>{const{enabledElement:n,referencedImageId:i,viewportIdsToRender:o,renderingEngine:a,currentPoints:s}=this.editData,{viewport:c}=n,{element:l}=c,f=c.getProperties(),{canvas:u,world:d}=s;let h;if(h=l.querySelector(".magnifyTool"),h===null){const p=document.createElement("div");p.classList.add("magnifyTool"),p.style.display="block",p.style.width=`${this.configuration.magnifyWidth}px`,p.style.height=`${this.configuration.magnifyHeight}px`,p.style.position="absolute",h=p,l.querySelector(".viewport-element").appendChild(p);const x={viewportId:tp,type:mn.STACK,element:h};a.enableElement(x)}h.style.top=`${u[1]-this.configuration.magnifyHeight/2}px`,h.style.left=`${u[0]-this.configuration.magnifyWidth/2}px`;const g=a.getViewport(tp);g.setStack([i]).then(()=>{if(this._hasBeenRemoved)return;g.setProperties(f);const{parallelScale:p}=c.getCamera(),{focalPoint:v,position:x,viewPlaneNormal:m}=g.getCamera(),y=Math.sqrt(Math.pow(v[0]-x[0],2)+Math.pow(v[1]-x[1],2)+Math.pow(v[2]-x[2],2)),w=[d[0],d[1],d[2]],C=[w[0]+y*m[0],w[1]+y*m[1],w[2]+y*m[2]];g.setCamera({parallelScale:p*(1/this.configuration.magnifySize),focalPoint:w,position:C}),g.render()}),h.style.display="block",pe(o)},this._dragCallback=n=>{const i=n.detail,{deltaPoints:o,element:a,currentPoints:s}=i,c=o.world,l=s.canvas,f=re(a),{renderingEngine:u}=f,d=u.getViewport(tp),h=a.querySelector(".magnifyTool");if(!h)return;h.style.top=`${l[1]-this.configuration.magnifyHeight/2}px`,h.style.left=`${l[0]-this.configuration.magnifyWidth/2}px`;const{focalPoint:g,position:p}=d.getCamera(),v=[p[0]+c[0],p[1]+c[1],p[2]+c[2]],x=[g[0]+c[0],g[1]+c[1],g[2]+c[2]];d.setCamera({focalPoint:x,position:v}),d.render()},this._dragEndCallback=n=>{const{element:i}=n.detail,o=re(i),{renderingEngine:a}=o;a.disableElement(tp);const s=i.querySelector(".viewport-element"),c=s.querySelector(".magnifyTool");s.removeChild(c),this._deactivateDraw(i),ct(i),this._hasBeenRemoved=!0},this._activateDraw=n=>{ve.isInteractingWithTool=!0,this._hasBeenRemoved=!1,n.addEventListener(F.MOUSE_UP,this._dragEndCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._dragEndCallback),n.addEventListener(F.TOUCH_END,this._dragEndCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._dragEndCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._dragEndCallback),n.removeEventListener(F.TOUCH_END,this._dragEndCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)}}_getReferencedImageId(e){const r=this.getTargetId(e);let n;return e instanceof ln&&(n=r.split("imageId:")[1]),n}}hk.toolName="Magnify";function Qc(t){const[e,r]=t;return so(e,r)}function td(t){const[e,r]=t,n=so(e,r),i=[e[0]-n,e[1]-n],o=[e[0]+n,e[1]+n];return[i,o]}const Vme="advancedMagnifyTool",Fme=125,{Events:ds}=Ao,bE=t=>t.uid!==t.referencedId;var $3;(function(t){t.ShowZoomFactorsList="showZoomFactorsList"})($3||($3={}));const Ume="AdvancedMagnify",Bme=1-Lo,HS=class HS extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,magnifyingGlass:{radius:125,zoomFactor:3,zoomFactorList:[1.5,2,2.5,3,3.5,4,4.5,5],autoPan:{enabled:!0,padding:10}},actions:{showZoomFactorsList:{method:"showZoomFactorsList",bindings:[{mouseButton:la.Secondary,modifierKey:vr.Shift}]}}}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=re(a),{viewport:c,renderingEngine:l}=s,f=o.world,u=o.canvas,{magnifyingGlass:d}=this.configuration,{radius:h,zoomFactor:g,autoPan:p}=d,v=this._getCanvasHandlePoints(u,h),x=c.getCamera(),{viewPlaneNormal:m,viewUp:y}=x,w=this.getReferencedImageId(c,f,m,y),C=wn(),S=wn(),T=c.getFrameOfReferenceUID(),_={annotationUID:C,highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...m],viewUp:[...y],FrameOfReferenceUID:T,referencedImageId:w},data:{sourceViewportId:c.id,magnifyViewportId:S,zoomFactor:g,isCanvasAnnotation:!0,handles:{points:v,activeHandleIndex:null}}};this.magnifyViewportManager.createViewport(_,{magnifyViewportId:S,sourceEnabledElement:s,position:u,radius:h,zoomFactor:g,autoPan:{enabled:p.enabled,padding:p.padding,callback:D=>{const b=_.data.handles.points,{canvas:I}=D.delta;for(let R=0,M=b.length;R{this.magnifyViewportManager.dispose(),Ru().forEach(i=>{i.metadata.toolName===this.getToolName()&&Ot(i.annotationUID)})},this.isPointNearTool=(n,i,o,a)=>{const{data:s}=i,{points:c}=s.handles,l=c,f=l[0],u=l[2],d=l[3],h=Math.abs(u[1]-f[1])*.5,g=[d[0]+h,f[1]+h],p=Qc([g,o]);return Math.abs(p-h){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},Qe(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;const{points:l}=c.handles,f=l.findIndex(d=>d===o),u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f},this._activateModify(s),Qe(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c}=this.editData,{data:l}=a;l.handles.activeHandleIndex=null,this._deactivateModify(o),ct(o),this.editData=null,this.isDrawing=!1,pe(s),c&&en(a)},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{deltaPoints:o}=i,a=(o==null?void 0:o.canvas)??[0,0,0],{annotation:s,viewportIdsToRender:c}=this.editData,{points:l}=s.data.handles;l.forEach(f=>{f[0]+=a[0],f[1]+=a[1]}),s.invalidated=!0,this.editData.hasMoved=!0,pe(c)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{annotation:o,viewportIdsToRender:a,handleIndex:s}=this.editData,{data:c}=o;if(s===void 0){const{deltaPoints:l}=i,f=l.canvas;c.handles.points.forEach(d=>{d[0]+=f[0],d[1]+=f[1]}),o.invalidated=!0}else this._dragHandle(n),o.invalidated=!0;pe(a)},this._dragHandle=n=>{const i=n.detail,{annotation:o}=this.editData,{data:a}=o,{points:s}=a.handles,c=s,l=c[0],f=c[2],u=c[3],d=Math.abs(f[1]-l[1])*.5,h=[u[0]+d,l[1]+d],{currentPoints:g}=i,p=g.canvas,v=Qc([h,p]),x=this._getCanvasHandlePoints(h,v);s[0]=x[0],s[1]=x[1],s[2]=x[2],s[3]=x[3]},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length))return o;c=c==null?void 0:c.filter(u=>u.data.sourceViewportId===a.id);const l=this.filterInteractableAnnotationsForElement(s,c);if(!(l!=null&&l.length))return o;const f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let u=0;u[[n[0],n[1]-i,0],[n[0]+i,n[1],0],[n[0],n[1]+i,0],[n[0]-i,n[1],0]],this.magnifyViewportManager=du.getInstance()}showZoomFactorsList(e,r){const{element:n,currentPoints:i}=e.detail,o=re(n),{viewport:a}=o,{canvas:s}=i,c=n.querySelector(":scope .viewport-element"),l=r.data.zoomFactor,f=()=>u.parentElement.removeChild(u),u=this._getZoomFactorsListDropdown(l,d=>{d!==void 0&&(r.data.zoomFactor=Number.parseFloat(d),r.invalidated=!0),f(),a.render()});Object.assign(u.style,{left:`${s[0]}px`,top:`${s[1]}px`}),c.appendChild(u),u.focus()}_getZoomFactorsListDropdown(e,r){const{zoomFactorList:n}=this.configuration.magnifyingGlass,i=document.createElement("select");return i.size=5,Object.assign(i.style,{width:"50px",position:"absolute"}),["mousedown","mouseup","mousemove","click"].forEach(o=>{i.addEventListener(o,a=>a.stopPropagation())}),i.addEventListener("change",o=>{o.stopPropagation(),r(i.value)}),i.addEventListener("keydown",o=>{var s;((o.keyCode??o.which===27)||((s=o.key)==null?void 0:s.toLowerCase())==="escape")&&(o.stopPropagation(),r())}),n.forEach(o=>{const a=document.createElement("option");a.label=o,a.title=`Zoom factor ${o.toFixed(1)}`,a.value=o,a.defaultSelected=o===e,i.add(a)}),i}};HS.Actions=$3;let Qd=HS;class du{constructor(){this.createViewport=(e,r)=>{const{magnifyViewportId:n,sourceEnabledElement:i,position:o,radius:a,zoomFactor:s,autoPan:c}=r,{viewport:l}=i,{element:f}=l,u=new Gme({magnifyViewportId:n,sourceEnabledElement:i,radius:a,position:o,zoomFactor:s,autoPan:c});return this._addSourceElementEventListener(f),this._magnifyViewportsMap.set(u.viewportId,{annotation:e,magnifyViewport:u,magnifyViewportInfo:r}),u},this._annotationRemovedCallback=e=>{const{annotation:r}=e.detail;r.metadata.toolName===Ume&&this.destroyViewport(r.data.magnifyViewportId)},this._newStackImageCallback=e=>{const{viewportId:r,imageId:n}=e.detail,i=this._getMagnifyViewportsMapEntriesBySourceViewportId(r),{viewport:o}=Xn(r);o.stackActorReInitialized&&this._reset(r),i.forEach(({annotation:a})=>{a.metadata.referencedImageId=n,a.invalidated=!0})},this._newVolumeImageCallback=e=>{const{renderingEngineId:r,viewportId:n}=e.detail,o=gr(r).getViewport(n),{viewPlaneNormal:a}=o.getCamera();this._getMagnifyViewportsMapEntriesBySourceViewportId(n).forEach(({annotation:c})=>{const{viewPlaneNormal:l}=c.metadata;if(!(Math.abs(je(l,a))>Bme))return;const{handles:u}=c.data,d=o.canvasToWorld([0,0]),h=Qt(we(),d,u.points[0]),g=je(h,a),p=lr(we(),a,g);for(let v=0,x=u.points.length;vthis.destroyViewport(r))}_getMagnifyViewportsMapEntriesBySourceViewportId(e){return Array.from(this._magnifyViewportsMap.values()).filter(({magnifyViewport:n})=>{const{viewport:i}=n.sourceEnabledElement;return i.id===e})}_reset(e){this._getMagnifyViewportsMapEntriesBySourceViewportId(e).forEach(({magnifyViewport:n,annotation:i,magnifyViewportInfo:o})=>{this.destroyViewport(n.viewportId);const a=Xn(e);this.createViewport(i,{...o,sourceEnabledElement:{...a}})})}_addEventListeners(){Ce.addEventListener(F.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_removeEventListeners(){Ce.removeEventListener(F.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_addSourceElementEventListener(e){e.addEventListener(ds.STACK_NEW_IMAGE,this._newStackImageCallback);const r=i=>{const{viewportId:o}=i.detail;this._reset(o)};e.addEventListener(ds.VIEWPORT_NEW_IMAGE_SET,r);const n=i=>{const{viewportId:o}=i.detail;this._reset(o)};e.addEventListener(ds.VOLUME_VIEWPORT_NEW_VOLUME,n),e.addEventListener(ds.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.newStackHandler=r,e.newVolumeHandler=n}_removeSourceElementEventListener(e){e.removeEventListener(ds.STACK_NEW_IMAGE,this._newStackImageCallback),e.removeEventListener(ds.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.removeEventListener(ds.VIEWPORT_NEW_IMAGE_SET,e.newStackHandler),e.removeEventListener(ds.VOLUME_VIEWPORT_NEW_VOLUME,e.newVolumeHandler),delete e.newStackHandler,delete e.newVolumeHandler}_initialize(){this._addEventListeners()}}class Gme{constructor({magnifyViewportId:e,sourceEnabledElement:r,radius:n=Fme,position:i=[0,0],zoomFactor:o,autoPan:a}){this._enabledElement=null,this._sourceToolGroup=null,this._magnifyToolGroup=null,this._isViewportReady=!1,this._radius=0,this._resized=!1,this._canAutoPan=!1,this._viewportId=e??wn(),this._sourceEnabledElement=r,this._autoPan=a,this.radius=n,this.position=i,this.zoomFactor=o,this.visible=!0,this._browserMouseDownCallback=this._browserMouseDownCallback.bind(this),this._browserMouseUpCallback=this._browserMouseUpCallback.bind(this),this._handleToolModeChanged=this._handleToolModeChanged.bind(this),this._mouseDragCallback=this._mouseDragCallback.bind(this),this._resizeViewportAsync=S2(this._resizeViewport.bind(this),1),this._initialize()}get sourceEnabledElement(){return this._sourceEnabledElement}get viewportId(){return this._viewportId}get radius(){return this._radius}set radius(e){Math.abs(this._radius-e)>1e-5&&(this._radius=e,this._resized=!0)}update(){const{radius:e,position:r,visible:n}=this,{viewport:i}=this._enabledElement,{element:o}=i,a=2*e,[s,c]=r;this._resized&&(this._resizeViewportAsync(),this._resized=!1),Object.assign(o.style,{display:n?"block":"hidden",width:`${a}px`,height:`${a}px`,left:`${-e}px`,top:`${-e}px`,transform:`translate(${s}px, ${c}px)`}),this._isViewportReady&&(this._syncViewports(),i.render())}dispose(){const{viewport:e}=this._enabledElement,{element:r}=e,n=e.getRenderingEngine();this._removeEventListeners(r),n.disableElement(e.id),r.parentNode&&r.parentNode.removeChild(r)}_handleToolModeChanged(e){var s;const{_magnifyToolGroup:r}=this,{toolGroupId:n,toolName:i,mode:o,toolBindingsOptions:a}=e.detail;if(((s=this._sourceToolGroup)==null?void 0:s.id)===n)switch(o){case Ft.Active:r.setToolActive(i,a);break;case Ft.Passive:r.setToolPassive(i);break;case Ft.Enabled:r.setToolEnabled(i);break;case Ft.Disabled:r.setToolDisabled(i);break;default:throw new Error(`Unknow tool mode (${o})`)}}_inheritBorderRadius(e){const r=e.querySelector(".viewport-element"),n=e.querySelector(".cornerstone-canvas");r.style.borderRadius="inherit",n.style.borderRadius="inherit"}_createViewportNode(){const e=document.createElement("div"),{radius:r}=this,n=r*2;return e.classList.add(Vme),Object.assign(e.style,{display:"block",width:`${n}px`,height:`${n}px`,position:"absolute",overflow:"hidden",borderRadius:"50%",boxSizing:"border-box",left:`${-r}px`,top:`${-r}px`,transform:"translate(-1000px, -1000px)"}),e}_convertZoomFactorToParallelScale(e,r,n){const{parallelScale:i}=e.getCamera(),o=r.canvas.offsetWidth/e.canvas.offsetWidth;return i*(1/n)*o}_isStackViewport(e){return"setStack"in e}_isVolumeViewport(e){return"addVolumes"in e}_cloneToolGroups(e,r){const n=e.getActors(),i=`${r.id}-toolGroup`,o=Cn(e.id,e.renderingEngineId),a=o.clone(i,s=>{const c=o.getToolInstance(s);return c instanceof ar&&!(c instanceof Qd)});return a.addViewport(r.id,r.renderingEngineId),n.filter(bE).forEach(s=>{P0(this.viewportId,[{segmentationId:s.referencedId,type:Ge.Labelmap}])}),{sourceToolGroup:o,magnifyToolGroup:a}}_cloneStack(e,r){const n=e.getImageIds();r.setStack(n).then(()=>{this._isViewportReady=!0,this.update()})}_cloneVolumes(e,r){const i=e.getActors().filter(o=>!bE(o)).map(o=>({volumeId:o.uid}));return r.setVolumes(i).then(()=>{this._isViewportReady=!0,this.update()}),r}_cloneViewport(e,r){const{viewportId:n}=this,i=e.getRenderingEngine(),{options:o}=e,a={element:r,viewportId:n,type:e.type,defaultOptions:{...o}};i.enableElement(a);const s=i.getViewport(n);this._isStackViewport(e)?this._cloneStack(e,s):this._isVolumeViewport(e)&&this._cloneVolumes(e,s),this._inheritBorderRadius(r);const c=this._cloneToolGroups(e,s);this._sourceToolGroup=c.sourceToolGroup,this._magnifyToolGroup=c.magnifyToolGroup}_cancelMouseEventCallback(e){e.stopPropagation(),e.preventDefault()}_browserMouseUpCallback(e){const{element:r}=this._enabledElement.viewport;document.removeEventListener("mouseup",this._browserMouseUpCallback),r.addEventListener("mouseup",this._cancelMouseEventCallback),r.addEventListener("mousemove",this._cancelMouseEventCallback)}_browserMouseDownCallback(e){var n;const{element:r}=this._enabledElement.viewport;this._canAutoPan=!!((n=e.target)!=null&&n.closest(".advancedMagnifyTool")),document.addEventListener("mouseup",this._browserMouseUpCallback),r.removeEventListener("mouseup",this._cancelMouseEventCallback),r.removeEventListener("mousemove",this._cancelMouseEventCallback)}_mouseDragCallback(e){if(!ve.isInteractingWithTool)return;const{_autoPan:r}=this;if(!r.enabled||!this._canAutoPan)return;const{currentPoints:n}=e.detail,{viewport:i}=this._enabledElement,{canvasToWorld:o}=i,{canvas:a}=n,{radius:s}=this,c=[s,s],l=so(c,a),f=s-r.padding;if(l<=f)return;const u=l-f,d=Oo(ot(),a,c);Na(d,d),Da(d,d,u);const h=Lr(ot(),this.position,d),g=o(this.position),p=o(h),v=Qt(we(),p,g),x={points:{currentPosition:{canvas:this.position,world:g},newPosition:{canvas:h,world:p}},delta:{canvas:d,world:v}};r.callback(x)}_addBrowserEventListeners(e){document.addEventListener("mousedown",this._browserMouseDownCallback,!0),e.addEventListener("mousedown",this._cancelMouseEventCallback),e.addEventListener("mouseup",this._cancelMouseEventCallback),e.addEventListener("mousemove",this._cancelMouseEventCallback),e.addEventListener("dblclick",this._cancelMouseEventCallback)}_removeBrowserEventListeners(e){document.removeEventListener("mousedown",this._browserMouseDownCallback,!0),document.removeEventListener("mouseup",this._browserMouseUpCallback),e.removeEventListener("mousedown",this._cancelMouseEventCallback),e.removeEventListener("mouseup",this._cancelMouseEventCallback),e.removeEventListener("mousemove",this._cancelMouseEventCallback),e.removeEventListener("dblclick",this._cancelMouseEventCallback)}_addEventListeners(e){Ce.addEventListener(F.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),this._addBrowserEventListeners(e)}_removeEventListeners(e){Ce.removeEventListener(F.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),this._removeBrowserEventListeners(e)}_initialize(){const{_sourceEnabledElement:e}=this,{viewport:r}=e,{canvas:n}=r,i=this._createViewportNode();n.parentNode.appendChild(i),this._addEventListeners(i),this._cloneViewport(r,i),this._enabledElement=re(i)}_syncViewportsCameras(e,r){const n=e.canvasToWorld(this.position),i=this._convertZoomFactorToParallelScale(e,r,this.zoomFactor),{focalPoint:o,position:a,viewPlaneNormal:s}=r.getCamera(),c=Math.sqrt(Math.pow(o[0]-a[0],2)+Math.pow(o[1]-a[1],2)+Math.pow(o[2]-a[2],2)),l=[n[0],n[1],n[2]],f=[l[0]+c*s[0],l[1]+c*s[1],l[2]+c*s[2]];r.setCamera({parallelScale:i,focalPoint:l,position:f})}_syncStackViewports(e,r){r.setImageIdIndex(e.getCurrentImageIdIndex())}_syncViewports(){const{viewport:e}=this._sourceEnabledElement,{viewport:r}=this._enabledElement,n=e.getProperties();r.getImageData()&&(r.setProperties(n),this._syncViewportsCameras(e,r),this._isStackViewport(e)&&this._syncStackViewports(e,r),this._syncViewportsCameras(e,r),r.render())}_resizeViewport(){const{viewport:e}=this._enabledElement;e.getRenderingEngine().resize()}}Qd.toolName="AdvancedMagnify";const{EPSILON:vy}=Sl;class el extends uc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:"",enforceSameFrameOfReference:!0,showFullDimension:!1}}){super(e,r),this.editData=null,this._init=()=>{var h;const i=_i()[0];if(!i)return;let o=i.getViewports();o=I2(o,this.getToolName());const a=i.getViewport(this.configuration.sourceViewportId);if(!(a!=null&&a.getImageData()))return;const{element:s}=a,{viewUp:c,viewPlaneNormal:l}=a.getCamera(),f=Z1(a);let u=(h=this.editData)==null?void 0:h.annotation;const d=a.getFrameOfReferenceUID();if(u)this.editData.annotation.data.handles.points=f;else{const g={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...l],viewUp:[...c],FrameOfReferenceUID:d,referencedImageId:null},data:{handles:{points:f}}};Ut(g,s),u=g}this.editData={sourceViewportId:a.id,renderingEngine:i,annotation:u},pe(o.filter(g=>g.id!==a.id).map(g=>g.id))},this.onSetToolEnabled=()=>{this._init()},this.onSetToolConfiguration=()=>{this._init()},this.onCameraModified=n=>{this._init()},this.renderAnnotation=(n,i)=>{var V,$;const{viewport:o}=n;if(!this.editData)return!1;const{annotation:a,sourceViewportId:s}=this.editData;let c=!1;const{viewport:l}=Xn(s)||{};if(!l||l.id===o.id||!a||!(($=(V=a==null?void 0:a.data)==null?void 0:V.handles)!=null&&$.points)||this.configuration.enforceSameFrameOfReference&&l.getFrameOfReferenceUID()!==o.getFrameOfReferenceUID())return c;const f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},u=a.data.handles.points[0],d=a.data.handles.points[1],h=a.data.handles.points[2],g=a.data.handles.points[3],{focalPoint:p,viewPlaneNormal:v,viewUp:x}=o.getCamera(),{viewPlaneNormal:m}=l.getCamera();if(this.isParallel(v,m))return c;const y=Ba(v,p),w=[u,h,d,g],C=[u,d,h,g];let S=w,T=kt(we(),w[0],w[1]);T=on(we(),T);let _=kt(we(),w[2],w[0]);_=on(we(),_);const E=Kt(we(),T,_);if(this.isParallel(E,v))return c;this.isPerpendicular(T,v)&&(S=C);const D=Ju(S[0],S[1],y),b=Ju(S[2],S[3],y),{annotationUID:I}=a;f.annotationUID=I;const R=this.getStyle("lineWidth",f,a),M=this.getStyle("lineDash",f,a),L=this.getStyle("color",f,a),A=this.getStyle("shadow",f,a);let G=[D,b].map(H=>o.worldToCanvas(H));if(this.configuration.showFullDimension&&(G=this.handleFullDimension(o,D,v,x,b,G)),G.length<2)return c;const P=`${I}-line`;return It(i,I,"1",G[0],G[1],{color:L,width:R,lineDash:M,shadow:A},P),c=!0,c},this.isPerpendicular=(n,i)=>{const o=je(n,i);return Math.abs(o)u3(l,m)),[v,x]=[r,o].map(m=>u3(l,m));a=[[d,h],[h,g],[p,g],[d,p]].map(([m,y])=>this.intersectInfiniteLines(m,y,v,x)).filter(m=>m&&this.isInBound(m,u)).map(m=>{const y=dR(l,m);return e.worldToCanvas(y)})}catch(f){console.log(f)}return a}intersectInfiniteLines(e,r,n,i){const[o,a]=e,[s,c]=r,[l,f]=n,[u,d]=i,h=c-a,g=o-s,p=s*a-o*c,v=d-f,x=l-u,m=u*f-l*d;if(Math.abs(h*x-v*g)1-vy}isInBound(e,r){return e[0]>=0&&e[0]<=r[0]&&e[1]>=0&&e[1]<=r[1]}}el.toolName="ReferenceLines";const{EPSILON:IE}=Sl;class gk extends uc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceImageIds:[]}}){super(e,r),this.onSetToolEnabled=()=>{this._init()},this.onSetToolActive=()=>{this._init()},this._init=()=>{const n=this.configuration.sourceImageIds;if(!(n!=null&&n.length)){console.warn("OverlayGridTool: No sourceImageIds provided in configuration");return}const i=Pe("imagePlaneModule",n[0]);if(!i){console.warn("OverlayGridTool: No imagePlaneModule found for sourceImageIds");return}const{frameOfReferenceUID:o}=i,a=Wn(this.toolGroupId).viewportsInfo;if(!(a!=null&&a.length)){console.warn("OverlayGridTool: No viewports found");return}const s=_t(this.getToolName(),o);if(!(s!=null&&s.length)){const c=n.map(f=>this.calculateImageIdPointSets(f)),l={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),FrameOfReferenceUID:o,referencedImageId:null},data:{viewportData:new Map,pointSets:c}};Ut(l,o)}pe(a.map(({viewportId:c})=>c))},this.calculateImageIdPointSets=n=>{const{imagePositionPatient:i,rows:o,columns:a,rowCosines:s,columnCosines:c,rowPixelSpacing:l,columnPixelSpacing:f}=Pe("imagePlaneModule",n),u=[...i],d=[...i],h=[...i],g=[...i];return Vt(d,i,c,a*f),Vt(h,i,s,o*l),Vt(g,h,c,a*f),{pointSet1:[u,h,d,g],pointSet2:[u,d,h,g]}},this.renderAnnotation=(n,i)=>{const o=this.configuration.sourceImageIds;let a=!1;if(!(o!=null&&o.length))return a;const{viewport:s,FrameOfReferenceUID:c}=n;if(s.getImageIds().length<2)return a;const f=_t(this.getToolName(),c);if(!(f!=null&&f.length))return a;const u=f[0],{annotationUID:d}=u,{focalPoint:h,viewPlaneNormal:g}=s.getCamera(),p={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},v=this.getImageIdNormal(o[0]);if(this.isParallel(g,v))return a;const x=Ba(g,h),m=u.data.pointSets,y=u.data.viewportData;for(let w=0;ws.worldToCanvas(G)),L=`${d}-line`,A=`${w}`;It(i,d,A,M[0],M[1],{color:I,width:D,lineDash:b,shadow:R},L)}return a=!0,a},this.initializeViewportData=(n,i)=>(n.set(i,{pointSetsToUse:[],lineStartsWorld:[],lineEndsWorld:[]}),n.get(i)),this.isPerpendicular=(n,i)=>{const o=je(n,i);return Math.abs(o)1-IE}getImageIdNormal(e){const{imageOrientationPatient:r}=Pe("imagePlaneModule",e),n=Ye(r[0],r[1],r[2]),i=Ye(r[3],r[4],r[5]);return Kt(we(),n,i)}}gk.toolName="OverlayGrid";class pk extends uc{constructor(e={},r={configuration:{opacity:.5}}){super(e,r),this._init=()=>{var s;const n=Wn(this.toolGroupId).viewportsInfo;if(!(n!=null&&n.length)){console.warn(this.getToolName()+"Tool: No viewports found");return}const i=(s=gr(n[0].renderingEngineId))==null?void 0:s.getViewport(n[0].viewportId);if(!i)return;const o=i.getFrameOfReferenceUID(),a=_t(this.getToolName(),o);if(!(a!=null&&a.length)){const c=new Map;Wme(c,n);const l={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),FrameOfReferenceUID:o,referencedImageId:null},data:{actorsWorldPointsMap:c}};Ut(l,o)}pe(n.map(({viewportId:c})=>c))},this.onSetToolEnabled=()=>{this._init()},this.onCameraModified=n=>{this._init()},this.renderAnnotation=(n,i)=>{const{viewport:o,FrameOfReferenceUID:a}=n;let s=!1;const c=_t(this.getToolName(),a);if(!(c!=null&&c.length))return s;const l=c[0],{annotationUID:f}=l,u=l.data.actorsWorldPointsMap;mk(u,o);const d=o.getActors(),h=vk(o);return d.forEach(g=>{if(!(g!=null&&g.clippingFilter))return;const p=u.get(g.uid);if(!p||!p.get(h))return;let v=1;const{worldPointsSet:x,color:m}=p.get(h);for(let y=0;yo.worldToCanvas(_)),S={color:m,fillColor:m,fillOpacity:this.configuration.opacity,closePath:!0,lineWidth:2},T=g.uid+"#"+v;$s(i,f,T,C,S),v++}}),s=!0,s}}}function Wme(t,e){e.forEach(({viewportId:r,renderingEngineId:n})=>{var o;const i=(o=gr(n))==null?void 0:o.getViewport(r);mk(t,i)})}function mk(t,e){const r=e.getActors(),n=vk(e);r.forEach(i=>{if(!(i!=null&&i.clippingFilter))return;let o=t.get(i.uid);if(o||(o=new Map,t.set(i.uid,o)),!o.get(n)){const a=i.clippingFilter.getOutputData(),s=nk(a);if(!s)return;const c=i.actor.getProperty().getColor(),l=zme(c);o.set(n,{worldPointsSet:s,color:l})}})}function vk(t){const{viewPlaneNormal:e}=t.getCamera(),r=t.getCurrentImageIdIndex();return`${t.id}-${KC(e)}-${r}`}function zme(t){function e(r){let n=Math.floor(r*255).toString(16);return n.length===1&&(n="0"+n),n}return"#"+e(t[0])+e(t[1])+e(t[2])}pk.toolName="SegmentationIntersection";class Ri extends uc{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}}){super(e,r),this.isDrawing=!1,this.isHandleOutsideImage=!1,this._elementWithCursor=null,this._currentCursorWorldPosition=null,this._currentCanvasPosition=null,this._disableCursorEnabled=!1,this.mouseMoveCallback=n=>{const{detail:i}=n,{element:o,currentPoints:a}=i;this._currentCursorWorldPosition=a.world,this._currentCanvasPosition=a.canvas,this._elementWithCursor=o;const s=this.getActiveAnnotation(o);return s===null?(this.createInitialAnnotation(a.world,o),!1):(this.updateAnnotationPosition(o,s),!1)},this.createInitialAnnotation=(n,i)=>{const o=re(i);if(!o)throw new Error("No enabled element found");const{viewport:a,renderingEngine:s}=o;this.isDrawing=!0;const c=a.getCamera(),{viewPlaneNormal:l,viewUp:f}=c;if(!l||!f)throw new Error("Camera not found");const u=this.getReferencedImageId(a,n,l,f),d=a.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...l],viewUp:[...f],FrameOfReferenceUID:d,referencedImageId:u},data:{label:"",handles:{points:[[...n]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(_t(this.getToolName(),i).length>0)return null;if(Ut(h,i)===null)return;const v=He(i,this.getToolName(),!1);pe(v)},this.onCameraModified=n=>{const i=n.detail,{element:o,previousCamera:a,camera:s}=i,l=re(o).viewport;if(o!==this._elementWithCursor)return;const f=a.focalPoint,u=s.viewPlaneNormal,d=s.focalPoint,h=[0,0,0];if(nt.subtract(d,f,h),h.reduce((v,x)=>v+x,0)===0)return;const g=nt.dot(h,u);if(Math.abs(g)<.01||!this._currentCanvasPosition)return;const p=l.canvasToWorld(this._currentCanvasPosition);this._currentCursorWorldPosition=p,this.updateAnnotationPosition(o,this.getActiveAnnotation(o))},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a,FrameOfReferenceUID:s}=n,c=this._elementWithCursor===a.element;this.configuration.positionSync&&!c&&this.updateViewportImage(a);const{element:l}=a;let f=_t(this.getToolName(),l);if(!(f!=null&&f.length)||(f=this.filterInteractableAnnotationsForElement(l,f),!(f!=null&&f.length)))return o;const u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;disNaN(I)))return o;const S=x.map(I=>a.worldToCanvas(I));if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!Ur(g))continue;const T={upper:"upper",right:"right",lower:"lower",left:"left"},[_,E]=S[0],D=c?20:7,b=c?5:7;It(i,g,T.upper,[_,E-(D/2+b)],[_,E-D/2],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.lower,[_,E+(D/2+b)],[_,E+D/2],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.right,[_+(D/2+b),E],[_+D/2,E],{color:C,lineDash:w,lineWidth:y}),It(i,g,T.left,[_-(D/2+b),E],[_-D/2,E],{color:C,lineDash:w,lineWidth:y}),o=!0}return o},this._disableCursorEnabled=this.configuration.disableCursor}onSetToolActive(){if(this._disableCursorEnabled=this.configuration.disableCursor,!this._disableCursorEnabled)return;const e=Wn(this.toolGroupId).viewportsInfo;if(!e)return;e.map(n=>dr(n.viewportId,n.renderingEngineId)).forEach(n=>{n&&Qe(n.viewport.element)})}onSetToolDisabled(){if(!this._disableCursorEnabled)return;const e=Wn(this.toolGroupId).viewportsInfo;if(!e)return;e.map(n=>dr(n.viewportId,n.renderingEngineId)).forEach(n=>{n&&ct(n.viewport.element)})}getActiveAnnotation(e){const r=_t(this.getToolName(),e);return r.length?r[0]:null}updateAnnotationPosition(e,r){var a,s;const n=this._currentCursorWorldPosition;if(!n||!((s=(a=r.data)==null?void 0:a.handles)!=null&&s.points))return;r.data.handles.points=[[...n]],r.invalidated=!0;const i=He(e,this.getToolName(),!1);re(e)&&pe(i)}filterInteractableAnnotationsForElement(e,r){var d,h,g;if(!(r instanceof Array)||r.length===0)return[];const n=r[0],i=(d=re(e))==null?void 0:d.viewport;if(!i)return[];const o=i.getCamera(),{viewPlaneNormal:a,focalPoint:s}=o;if(!a||!s)return[];const c=(g=(h=n.data)==null?void 0:h.handles)==null?void 0:g.points;if(!(c instanceof Array)||c.length!==1)return[];const l=c[0],f=Ba(a,s);return q1(f,l)isNaN(n)))){if(e instanceof ln){const n=hR(r,e);if(n===null)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof an){const{focalPoint:n,viewPlaneNormal:i}=e.getCamera();if(!n||!i)return;const o=Ba(i,n),a=q1(o,r,!0);if(Math.abs(a)<.5)return;const s=on(we(),Ye(...i)),c=lr(we(),s,a),l=xn(we(),Ye(...n),c);{e.setCamera({focalPoint:l});const f=e.getRenderingEngine();f&&f.renderViewport(e.id)}}}}}Ri.toolName="ReferenceCursors";const OE=[];class yk extends uc{constructor(e={},r={configuration:{viewportId:"",scaleLocation:"bottom"}}){super(e,r),this.editData=null,this._init=()=>{const i=_i()[0];if(!i)return;const o=Wn(this.toolGroupId).viewportsInfo;if(!o)return;const a=o.map(g=>dr(g.viewportId,g.renderingEngineId));let{viewport:s}=a[0];const{FrameOfReferenceUID:c}=a[0];if(this.configuration.viewportId&&a.forEach(g=>{g.viewport.id==this.configuration.viewportId&&(s=g.viewport)}),!s)return;const{viewUp:l,viewPlaneNormal:f}=s.getCamera(),u=Z1(s);let d=this.editData.annotation;const h=_t(this.getToolName(),s.element);h.length&&(d=h.filter(g=>g.data.viewportId==s.id)[0]),a.forEach(g=>{const{viewport:p}=g;if(!OE.includes(p.id)){const v={metadata:{toolName:this.getToolName(),viewPlaneNormal:[...f],viewUp:[...l],FrameOfReferenceUID:c,referencedImageId:null},data:{handles:{points:Z1(p)},viewportId:p.id}};OE.push(p.id),Ut(v,p.element),d=v}}),this.editData.annotation&&this.editData.annotation.data.viewportId==s.id&&(this.editData.annotation.data.handles.points=u,this.editData.annotation.data.viewportId=s.id),this.editData={viewport:s,renderingEngine:i,annotation:d}},this.onSetToolEnabled=()=>{this._init()},this.onCameraModified=n=>{this.configuration.viewportId=n.detail.viewportId,this._init()},this.computeScaleSize=(n,i,o)=>{const a=[16e3,8e3,4e3,2e3,1e3,500,250,100,50,25,10,5,2];let s;return o=="top"||o=="bottom"?s=a.filter(c=>cn*.2):s=a.filter(c=>ci*.2),s[0]},this.computeEndScaleTicks=(n,i)=>{const o={bottom:[[0,-10],[0,-10]],top:[[0,10],[0,10]],left:[[0,0],[10,0]],right:[[0,0],[-10,0]]},a=[[n[1][0]+o[i][0][0],n[1][1]+o[i][0][0]],[n[1][0]+o[i][1][0],n[1][1]+o[i][1][1]]],s=[[n[0][0]+o[i][0][0],n[0][1]+o[i][0][0]],[n[0][0]+o[i][1][0],n[0][1]+o[i][1][1]]];return{endTick1:a,endTick2:s}},this.computeInnerScaleTicks=(n,i,o,a,s)=>{let c;i=="bottom"||i=="top"?c=s[0][0]-a[0][0]:(i=="left"||i=="right")&&(c=s[0][1]-a[0][1]);const l=[],f=[],u=[];let d=n;n>=50&&(d=n/10);const h=c/d;for(let g=0;g{let a,s=kt(we(),o[0],o[1]);s=on(we(),s);let c=kt(we(),o[2],o[0]);c=on(we(),c);const l={bottom:[o[1],o[2]],top:[o[0],o[3]],right:[o[2],o[3]],left:[o[0],o[1]]},f=xn(we(),l[i][0],l[i][0]).map(d=>d/2),u=n/2/Math.sqrt(Math.pow(s[0],2)+Math.pow(s[1],2)+Math.pow(s[2],2));return i=="top"||i=="bottom"?a=[kt(we(),f,c.map(d=>d*u)),xn(we(),f,c.map(d=>d*u))]:(i=="left"||i=="right")&&(a=[xn(we(),f,s.map(d=>d*u)),kt(we(),f,s.map(d=>d*u))]),a},this.computeCanvasScaleCoordinates=(n,i,o,a,s)=>{let c;if(s=="top"||s=="bottom"){const l=i[0][0]-i[1][0];c=[[n.width/2-l/2,o.height],[n.width/2+l/2,o.height]]}else if(s=="left"||s=="right"){const l=i[0][1]-i[1][1];c=[[a.width,n.height/2-l/2],[a.width,n.height/2+l/2]]}return c},this.computeScaleBounds=(n,i,o,a)=>{const s=i*Math.min(1e3,n.width),c=o*Math.min(1e3,n.height),l={bottom:[-c,-s],top:[c,s],left:[c,s],right:[-c,-s]},f={bottom:[n.height,n.width],top:[0,n.width],left:[n.height,0],right:[n.height,n.width]};return{height:f[a][0]+l[a][0],width:f[a][1]+l[a][1]}}}renderAnnotation(e,r){if(!this.editData.viewport)return;const n=this.configuration.scaleLocation,{viewport:i}=e,a=_t(this.getToolName(),i.element).filter(ee=>ee.data.viewportId==i.id)[0],s=e.viewport.canvas,c=!1;if(!i)return c;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id},f={width:s.width/window.devicePixelRatio||1,height:s.height/window.devicePixelRatio||1},u=a.data.handles.points[0],d=a.data.handles.points[1],h=a.data.handles.points[2],g=a.data.handles.points[3],p=[u,h,d,g],v=Cr(h,g),x=Cr(u,h),m=this.computeScaleBounds(f,.05,.05,n),y=this.computeScaleBounds(f,.05,.05,n),w=this.computeScaleSize(v,x,n),C=this.computeWorldScaleCoordinates(w,n,p).map(ee=>i.worldToCanvas(ee)),S=this.computeCanvasScaleCoordinates(f,C,y,m,n),T=this.computeEndScaleTicks(S,n),{annotationUID:_}=a;l.annotationUID=_;const E=this.getStyle("lineWidth",l,a),D=this.getStyle("lineDash",l,a),b=this.getStyle("color",l,a),I=this.getStyle("shadow",l,a),R=`${_}-scaleline`;It(r,_,"1",S[0],S[1],{color:b,width:E,lineDash:D,shadow:I},R);const L=`${_}-left`;It(r,_,"2",T.endTick1[0],T.endTick1[1],{color:b,width:E,lineDash:D,shadow:I},L);const G=`${_}-right`;It(r,_,"3",T.endTick2[0],T.endTick2[1],{color:b,width:E,lineDash:D,shadow:I},G);const N={bottom:[-10,-42],top:[-12,-35],left:[-40,-20],right:[-50,-20]},V=[S[0][0]+N[n][0],S[0][1]+N[n][1]],$=this._getTextLines(w),{tickIds:H,tickUIDs:Y,tickCoordinates:ne}=this.computeInnerScaleTicks(w,n,_,T.endTick1,T.endTick2);for(let ee=0;ee=50?(r=e/10,n=" cm"):(r=e,n=" mm"),[r.toString().concat(n)]}}yk.toolName="ScaleOverlay";const xk=(t,e,r)=>{var a,s,c;if(!((c=(s=(a=e==null?void 0:e.data)==null?void 0:a.contour)==null?void 0:s.polyline)!=null&&c.length))return;const{polyline:n}=e.data.contour,{length:i}=n;let o=1/0;for(let l=0;lthis.toolInfo.toolSize||(this.pushOneHandle(a,c,r),o.first===void 0&&(o.first=a),o.last=a)}return o}configureToolSize(e){const r=this.toolInfo;if(r.toolSize&&r.maxToolSize)return;const i=e.detail.element,a=Math.min(i.clientWidth,i.clientHeight)/12;r.toolSize=a,r.maxToolSize=a}updateToolSize(e,r,n){const i=this.toolInfo,o=xk(r,n,e);o>0&&(i.toolSize=Math.min(i.maxToolSize,o))}getMaxSpacing(e){return Math.max(this.toolInfo.toolSize/4,e)}getInsertPosition(e,r,n){let i;const{points:o,element:a,mouseCanvasPoint:s}=n,c=this.toolInfo.toolSize,l=re(a),{viewport:f}=l,u=f.worldToCanvas(o[e]),d=f.worldToCanvas(o[r]),h=[(u[0]+d[0])/2,(u[1]+d[1])/2],g=so(s,h);if(g{const i=n.detail,o=i.element;if(this.configureToolSize(n),this.selectFreehandTool(i),this.commonData.activeAnnotationUID!==null)return this.isActive=!0,Qe(o),this.activateModify(o),!0},this.mouseMoveCallback=n=>{this.mode===Ft.Active?(this.configureToolSize(n),this.updateCursor(n)):this.commonData.canvasLocation=void 0},this.endCallback=n=>{const i=n.detail,{element:o}=i,a=this.configuration,s=re(o);this.isActive=!1,this.deactivateModify(o),ct(o);const{renderingEngineId:c,viewportId:l}=s,u=Cn(l,c).getToolInstance(a.referencedToolName),h=this.filterSculptableAnnotationsForElement(o).find(g=>g.annotationUID===this.commonData.activeAnnotationUID);u.configuration.calculateStats&&(h.invalidated=!0),fn(h,o)},this.dragCallback=n=>{const i=n.detail,o=i.element;this.updateCursor(n);const a=this.filterSculptableAnnotationsForElement(o),s=a.find(l=>l.annotationUID===this.commonData.activeAnnotationUID);if(!(a!=null&&a.length)||!this.isActive)return;const c=s.data.contour.polyline;this.sculpt(i,c)},this.registerShapes(nd.shapeName,nd),this.setToolShape(this.configuration.toolShape)}registerShapes(e,r){const n=new r;this.registeredShapes.set(e,n)}sculpt(e,r){const n=this.configuration,i=e.element,o=re(i),{viewport:a}=o,s=this.registeredShapes.get(this.selectedShape);this.sculptData={mousePoint:e.currentPoints.world,mouseCanvasPoint:e.currentPoints.canvas,points:r,maxSpacing:s.getMaxSpacing(n.minSpacing),element:i};const c=s.pushHandles(a,this.sculptData);c.first!==void 0&&this.insertNewHandles(c)}interpolatePointsWithinMaxSpacing(e,r,n,i){const{element:o}=this.sculptData,a=re(o),{viewport:s}=a,c=ME(e+1,r.length),l=s.worldToCanvas(r[e]),f=s.worldToCanvas(r[c]);so(l,f)>i&&n.push(e)}updateCursor(e){const r=e.detail,n=r.element,i=re(n),{renderingEngine:o,viewport:a}=i;this.commonData.viewportIdsToRender=[a.id];const s=this.filterSculptableAnnotationsForElement(n);if(!(s!=null&&s.length))return;const c=s.find(l=>l.annotationUID===this.commonData.activeAnnotationUID);if(this.commonData.canvasLocation=r.currentPoints.canvas,this.isActive)c.highlighted=!0;else{const l=this.registeredShapes.get(this.selectedShape),f=r.currentPoints.canvas;l.updateToolSize(f,a,c)}pe(this.commonData.viewportIdsToRender)}filterSculptableAnnotationsForElement(e){const r=this.configuration,n=re(e),{renderingEngineId:i,viewportId:o}=n,a=[],c=Cn(o,i).getToolInstance(r.referencedToolName);return r.referencedToolNames.forEach(l=>{const f=_t(l,e);f&&a.push(...f)}),c.filterInteractableAnnotationsForElement(e,a)}configureToolSize(e){this.registeredShapes.get(this.selectedShape).configureToolSize(e)}insertNewHandles(e){const r=this.findNewHandleIndices(e);let n=0;for(let i=0;i<(r==null?void 0:r.length);i++){const o=r[i]+1+n;this.insertHandleRadially(o),n++}}findNewHandleIndices(e){const{points:r,maxSpacing:n}=this.sculptData,i=[];for(let o=e.first;o<=e.last;o++)this.interpolatePointsWithinMaxSpacing(o,r,i,n);return i}insertHandleRadially(e){const{points:r}=this.sculptData;if(e>r.length-1&&this.commonData.isEditingOpenContour)return;const n=this.registeredShapes.get(this.selectedShape),i=e-1,o=ME(e,r.length),s=n.getInsertPosition(i,o,this.sculptData);r.splice(e,0,s)}selectFreehandTool(e){const r=this.getClosestFreehandToolOnElement(e);r!==void 0&&(this.commonData.activeAnnotationUID=r)}getClosestFreehandToolOnElement(e){const{element:r}=e,n=re(r),{viewport:i}=n,o=this.configuration,a=this.filterSculptableAnnotationsForElement(r);if(!(a!=null&&a.length))return;const s=e.currentPoints.canvas,c={distance:1/0,toolIndex:void 0,annotationUID:void 0};for(let l=0;l<(a==null?void 0:a.length);l++){if(a[l].isLocked||!a[l].isVisible)continue;const f=xk(i,a[l],s);f!==-1&&f(t+e)%e;l0.toolName="SculptorTool";const $me={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]};class wk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:$me.Z,rotateIncrementDegrees:30}}){super(e,r)}mouseWheelCallback(e){const{element:r,wheel:n}=e.detail,i=re(r),{viewport:o}=i,{direction:a,rotateIncrementDegrees:s}=this.configuration,c=o.getCamera(),{viewUp:l,position:f,focalPoint:u}=c,{direction:d}=n,[h,g,p]=u,[v,x,m]=a,y=d*(s*Math.PI)/180,w=[0,0,0],C=[0,0,0],S=[0,0,0],T=qe(new Float32Array(16));nn(T,T,[h,g,p]),Hr(T,T,y,[v,x,m]),nn(T,T,[-h,-g,-p]),et(w,f,T),et(C,u,T),qe(T),Hr(T,T,y,[v,x,m]),et(S,l,T),o.setCamera({position:w,viewUp:S,focalPoint:C}),o.render()}}wk.toolName="VolumeRotateMouseWheel";const{transformWorldToIndex:RE}=Yt;class xl extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,getTextLines:jme}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;Qe(a),this.isDrawing=!0;const{viewPlaneNormal:u,viewUp:d,position:h}=l.getCamera(),g=this.getReferencedImageId(l,s,u,d),p={highlighted:!0,invalidated:!0,metadata:{...l.getViewReference({points:[s]}),toolName:this.getToolName(),referencedImageId:g,viewUp:d,cameraPosition:h},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(v),p},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Pr([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{annotation:o,viewportIdsToRender:a,handleIndex:s,movingTextBox:c}=this.editData,{data:l}=o;if(c){const{deltaPoints:f}=i,u=f.world,{textBox:d}=l.handles,{worldPosition:h}=d;h[0]+=u[0],h[1]+=u[1],h[2]+=u[2],d.hasMoved=!0}else if(s===void 0){const{deltaPoints:f}=i,u=f.world;l.handles.points.forEach(h=>{h[0]+=u[0],h[1]+=u[1],h[2]+=u[2]}),o.invalidated=!0}else{const{currentPoints:f}=i,u=f.world;l.handles.points[s]=[...u],o.invalidated=!0}this.editData.hasMoved=!0,pe(a)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(N));if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let T;if(!Ur(g))continue;!rr(g)&&!this.editData&&x!==null&&(T=[S[x]]),T&&sn(i,g,"0",S,{color:m,lineDash:w,lineWidth:y});const _=`${g}-line`;if(It(i,g,"1",S[0],S[1],{color:m,width:y,lineDash:w,shadow:C},_),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const D=this.getLinkedTextBoxStyle(u,h);if(!D.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const b=this.configuration.getTextLines(p,l);if(!p.handles.textBox.hasMoved){const N=$i(S);p.handles.textBox.worldPosition=a.canvasToWorld(N)}const I=a.worldToCanvas(p.handles.textBox.worldPosition),M=ei(i,g,"1",b,I,S,{},D),{x:L,y:A,width:G,height:P}=M;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([L,A]),topRight:a.canvasToWorld([L+G,A]),bottomLeft:a.canvasToWorld([L,A+P]),bottomRight:a.canvasToWorld([L+G,A+P])}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Qe(o),re(o),pe(l),e.preventDefault()}_calculateLength(e,r){const n=e[0]-r[0],i=e[1]-r[1],o=e[2]-r[2];return Math.sqrt(n*n+i*i+o*o)}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport,a=i.handles.points[0],s=i.handles.points[1],{cachedStats:c}=i,l=Object.keys(c);for(let f=0;f{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;Qe(a),this.isDrawing=!0;const{viewPlaneNormal:u,viewUp:d,position:h}=l.getCamera(),g=this.getReferencedImageId(l,s,u,d),p={highlighted:!0,invalidated:!0,metadata:{...l.getViewReference({points:[s]}),toolName:this.getToolName(),referencedImageId:g,viewUp:d,cameraPosition:h},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,viewportIdsToRender:v,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(v),p},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Pr([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,re(n),pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(P));let T;if(!p.cachedStats[l]||p.cachedStats[l].unit==null?(p.cachedStats[l]={length:null,unit:null},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!Ur(g))continue;if(!rr(g)&&!this.editData&&x!==null&&(T=[S[x]]),T&&sn(i,g,"0",S,{color:m,lineDash:w,lineWidth:y}),BN(i,g,"0",S[0],S[1],{color:m,width:y,lineDash:w}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;const E=this.getLinkedTextBoxStyle(u,h);if(!E.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const D=this.configuration.getTextLines(p,l);if(!p.handles.textBox.hasMoved){const P=$i(S);p.handles.textBox.worldPosition=a.canvasToWorld(P)}const b=a.worldToCanvas(p.handles.textBox.worldPosition),R=ei(i,g,"1",D,b,S,{},E),{x:M,y:L,width:A,height:G}=R;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,L]),topRight:a.canvasToWorld([M+A,L]),bottomLeft:a.canvasToWorld([M,L+G]),bottomRight:a.canvasToWorld([M+A,L+G])}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Qe(o),re(o),pe(l),e.preventDefault()}_calculateHeight(e,r){const n=r[0]-e[0],i=r[1]-e[1],o=r[2]-e[2];if(n==0)return i!=0?Math.abs(o):0;if(i==0)return Math.abs(o);if(o==0)return Math.abs(i)}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport,a=i.handles.points[0],s=i.handles.points[1],{cachedStats:c}=i,l=Object.keys(c);for(let f=0;f{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(l,s,u),g=l.getFrameOfReferenceUID(),p={invalidated:!0,highlighted:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:g,referencedImageId:h},data:{label:"",handles:{points:[[...s]]},cachedStats:{}}};Ut(p,a);const v=He(a,this.getToolName());return this.editData={annotation:p,newAnnotation:!0,viewportIdsToRender:v},this._activateModify(a),Qe(a),n.preventDefault(),pe(v),p},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c}=this.editData,{viewportId:l,renderingEngine:f}=re(o);this.eventDispatchDetail={viewportId:l,renderingEngineId:f.id},this._deactivateModify(o),ct(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,{annotation:c,viewportIdsToRender:l}=this.editData,{data:f}=c;f.handles.points[0]=[...s],c.invalidated=!0,re(a),pe(l)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;d{const b=Nn(S),I=D.hasImageURI(b),R=Nn(D.getCurrentImageId());return I&&R!==b})&&delete p.cachedStats[T]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;sn(i,g,"0",[x],{color:m}),o=!0;const w=this.getLinkedTextBoxStyle(u,h);if(!w.visibility)continue;const C=this.configuration.getTextLines(p,l);if(C){const S=[x[0]+6,x[1]-6];pl(i,g,"0",C,[S[0],S[1]],w)}}return o}}isPointNearTool(){return!1}toolSelectedCallback(){}getHandleNearImagePoint(e,r,n,i){const o=re(e),{viewport:a}=o,{data:s}=r,c=s.handles.points[0],l=a.worldToCanvas(c);if(bn(n,l)E!==null);C=_?T.values:C,S=_?T.units:"raw"}else S=bl(y,e.metadata.referencedImageId,h);l[d]={index:w,value:C,Modality:y,modalityUnit:S}}else this.isHandleOutsideImage=!0,l[d]={index:w,Modality:y};e.invalidated=!1,fn(e,s)}return l}}function qme(t,e){const r=t.cachedStats[e],{index:n,value:i,modalityUnit:o}=r;if(i===void 0)return;const a=[];if(a.push(`(${n[0]}, ${n[1]}, ${n[2]})`),i instanceof Array&&o instanceof Array)for(let s=0;s{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:g},data:{label:"",handles:{points:[[...s]]},cachedStats:{}}},v=He(a,this.getToolName());return this.editData={annotation:p,newAnnotation:!0,viewportIdsToRender:v},this._activateModify(a),Qe(a),n.preventDefault(),pe(v),p},this.postTouchStartCallback=n=>this.postMouseDownCallback(n),this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;if(!this.editData)return o;const s=this.filterInteractableAnnotationsForElement(a.element,[this.editData.annotation]);if(!(s!=null&&s.length))return o;const c=this.getTargetId(a),l=a.getRenderingEngine(),f={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id},u=this.editData.annotation,d=u.annotationUID,h=u.data,g=h.handles.points[0],p=a.worldToCanvas(g);f.annotationUID=d;const{color:v}=this.getAnnotationStyle({annotation:u,styleSpecifier:f});if(!h.cachedStats[c]||h.cachedStats[c].value==null?(h.cachedStats[c]={Modality:null,index:null,value:null},this._calculateCachedStats(u,l,n)):u.invalidated&&this._calculateCachedStats(u,l,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;sn(i,d,"0",[p],{color:v}),o=!0;const m=this.configuration.getTextLines(h,c);if(m){const y=[p[0]+6,p[1]-6];pl(i,d,"0",m,[y[0],y[1]],this.getLinkedTextBoxStyle(f,u))}return o}}}function Xme(t,e){const r=t.cachedStats[e],{index:n,value:i,modalityUnit:o}=r;if(i===void 0)return;const a=[];return a.push(`(${n[0]}, ${n[1]}, ${n[2]})`),a.push(`${i.toFixed(2)} ${o}`),a}Sk.toolName="DragProbe";function k2(t,e,r,n){const i=we();Kt(i,e,t);const o=Ye(...r),a=Ye(...n),s=we();kt(s,o,a);const c=ui(s);if(c<1e-4)return{worldWidth:0,worldHeight:0};const l=je(s,i)/(c*ui(i)),u=Math.sqrt(1-l*l)*c,d=l*c;return{worldWidth:u,worldHeight:d}}const{transformWorldToIndex:NE}=Yt;class u0 extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,storePointData:!1,centerPointRadius:0,getTextLines:Yme,statsCalculator:Ya}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world;o.canvas;const c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},cachedStats:{},initialRotation:l.getRotation()}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,centerWorld:s,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=f.map(y=>c.worldToCanvas(y)),d=Yf(u),[h,g]=d,p={left:Math.min(h[0],g[0])+a/2,top:Math.min(h[1],g[1])+a/2,width:Math.abs(h[0]-g[0])-a,height:Math.abs(h[1]-g[1])-a},v={left:Math.min(h[0],g[0])-a/2,top:Math.min(h[1],g[1])-a/2,width:Math.abs(h[0]-g[0])+a,height:Math.abs(h[1]-g[1])+a},x=this._pointInEllipseCanvas(p,o);return!!(this._pointInEllipseCanvas(v,o)&&!x)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},Qe(a),this._activateModify(a),re(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f,u,d,h,g,p;if(o.worldPosition)l=!0;else{const{points:x}=c.handles,{viewport:m}=re(s),{worldToCanvas:y,canvasToWorld:w}=m;f=x.findIndex(S=>S===o);const C=x.map(y);p=C[f],h=Math.abs(C[2][0]-C[3][0]),g=Math.abs(C[0][1]-C[1][1]),u=[(C[2][0]+C[3][0])/2,(C[0][1]+C[1][1])/2],d=w(u)}const v=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:v,handleIndex:f,canvasWidth:h,canvasHeight:g,centerWorld:d,originalHandleCanvas:p,movingTextBox:l},this._activateModify(s),Qe(s),re(s),pe(v),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=re(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerWorld:g}=this.editData,p=f.worldToCanvas(g),{data:v}=d,x=Math.abs(s[0]-p[0]),m=Math.abs(s[1]-p[1]),y=[p[0],p[1]-m],w=[p[0],p[1]+m],C=[p[0]-x,p[1]],S=[p[0]+x,p[1]];v.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragHandle(n),a.invalidated=!0;re(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,{viewport:a}=re(o),{canvasToWorld:s,worldToCanvas:c}=a,{annotation:l,canvasWidth:f,canvasHeight:u,handleIndex:d,centerWorld:h,originalHandleCanvas:g}=this.editData,p=a.worldToCanvas(h),{data:v}=l,{points:x}=v.handles,{currentPoints:m}=i,y=m.canvas;if(d===0||d===1){const w=Math.abs(y[1]-p[1]),C=[p[0],p[1]-w],S=[p[0],p[1]+w];x[0]=s(C),x[1]=s(S);const T=y[0]-g[0],_=f/2+T,E=[p[0]-_,p[1]],D=[p[0]+_,p[1]];x[2]=s(E),x[3]=s(D)}else{const w=Math.abs(y[0]-p[0]),C=[p[0]-w,p[1]],S=[p[0]+w,p[1]];x[2]=s(C),x[3]=s(S);const T=y[1]-g[1],_=u/2+T,E=[p[0],p[1]-_],D=[p[0],p[1]+_];x[0]=s(E),x[1]=s(D)}},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(H)),T=Yf(S),{centerPointRadius:_}=this.configuration;if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},this._calculateCachedStats(h,a,f);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,a,f,n),a instanceof an)){const{referencedImageId:H}=h.metadata;for(const Y in p.cachedStats)Y.startsWith("imageId")&&f.getStackViewports().find(ee=>{const de=Nn(H),fe=ee.hasImageURI(de),le=Nn(ee.getCurrentImageId());return fe&&le!==de})&&delete p.cachedStats[Y]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let E;if(!Ur(g))continue;!rr(g)&&!this.editData&&m!==null&&(E=[S[m]]),E&&sn(i,g,"0",E,{color:y});const D=`${g}-ellipse`,b="0";if(rS(i,g,b,S,{color:y,lineDash:C,lineWidth:w},D),_>0&&Math.min(Math.abs(T[0][0]-T[1][0])/2,Math.abs(T[0][1]-T[1][1])/2)>3*_){const Y=this._getCanvasEllipseCenter(S);bi(i,g,`${b}-center`,Y,_,{color:y,lineDash:C,lineWidth:w})}o=!0;const I=this.getLinkedTextBoxStyle(u,h);if(!I.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const R=this.configuration.getTextLines(p,l);if(!R||R.length===0)continue;let M;p.handles.textBox.hasMoved||(M=$i(T),p.handles.textBox.worldPosition=a.canvasToWorld(M));const L=a.worldToCanvas(p.handles.textBox.worldPosition),G=ei(i,g,"1",R,L,S,{},I),{x:P,y:N,width:V,height:$}=G;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,N]),topRight:a.canvasToWorld([P+V,N]),bottomLeft:a.canvasToWorld([P,N+$]),bottomRight:a.canvasToWorld([P+V,N+$])}}return o},this._calculateCachedStats=(n,i,o)=>{var w,C,S;const a=n.data,{element:s}=i,{points:c}=a.handles,l=c.map(T=>i.worldToCanvas(T)),{viewPlaneNormal:f,viewUp:u}=i.getCamera(),[d,h]=Yf(l),g=i.canvasToWorld(d),p=i.canvasToWorld(h),{cachedStats:v}=a,x=Object.keys(v),m=g,y=p;for(let T=0;T_2(ne,K,{fast:!0}),returnPoints:this.configuration.storePointData}),j=this.configuration.statsCalculator.getStatistics();v[_]={Modality:I.Modality,area:O,mean:(w=j.mean)==null?void 0:w.value,max:(C=j.max)==null?void 0:C.value,stdDev:(S=j.stdDev)==null?void 0:S.value,statsArray:j.array,pointsInShape:z,isEmptyArea:de,areaUnit:k,modalityUnit:U}}return n.invalidated=!1,fn(n,s),v},this._isInsideVolume=(n,i,o)=>In(n,o)&&In(i,o),this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}_pointInEllipseCanvas(e,r){const n=e.width/2,i=e.height/2;if(n<=0||i<=0)return!1;const o=[e.left+n,e.top+i],a=[r[0]-o[0],r[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(i*i)<=1}_getCanvasEllipseCenter(e){const[r,n,i,o]=e,a=[i[0],n[1]],s=[o[0],r[1]];return[(a[0]+s[0])/2,(a[1]+s[1])/2]}}function Yme(t,e){const r=t.cachedStats[e],{area:n,mean:i,stdDev:o,max:a,isEmptyArea:s,areaUnit:c,modalityUnit:l}=r,f=[];if(n){const u=s?"Area: Oblique not supported":`Area: ${yt(n)} ${c}`;f.push(u)}return i&&f.push(`Mean: ${yt(i)} ${l}`),a&&f.push(`Max: ${yt(a)} ${l}`),o&&f.push(`Std Dev: ${yt(o)} ${l}`),f}u0.toolName="EllipticalROI";const{transformWorldToIndex:PE}=Yt;class DS extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,storePointData:!1,centerPointRadius:0,getTextLines:Jme,statsCalculator:Ya}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s]],activeHandleIndex:null},cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=f.map(g=>c.worldToCanvas(g)),d=Qc(u),h=Qc([u[0],o]);return Math.abs(h-d){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},Qe(a),this._activateModify(a),re(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),Qe(s),re(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=re(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h}=this.editData,{data:g}=d;g.handles.points=[g.handles.points[0],u(s)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else this._dragHandle(n),a.invalidated=!0;re(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,a=re(o),{canvasToWorld:s,worldToCanvas:c}=a.viewport,{annotation:l,handleIndex:f}=this.editData,{data:u}=l,{points:d}=u.handles,h=d.map(v=>c(v)),{currentPoints:g}=i,p=g.canvas;if(f===0){const v=p[0]-h[0][0],x=p[1]-h[0][1],m=p,y=[h[1][0]+v,h[1][1]+x];d[0]=s(m),d[1]=s(y)}else d[1]=s(p)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(ne)),T=S[0],_=Qc(S),E=td(S),{centerPointRadius:D}=this.configuration;if(!p.cachedStats[l]||p.cachedStats[l].areaUnit==null)p.cachedStats[l]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null,radius:null,radiusUnit:null,perimeter:null},this._calculateCachedStats(h,a,f,n);else if(h.invalidated&&(this._throttledCalculateCachedStats(h,a,f,n),a instanceof an)){const{referencedImageId:ne}=h.metadata;for(const Q in p.cachedStats)Q.startsWith("imageId")&&f.getStackViewports().find(fe=>{const le=Nn(ne),k=fe.hasImageURI(le),O=Nn(fe.getCurrentImageId());return k&&O!==le})&&delete p.cachedStats[Q]}if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let b;if(!Ur(g))continue;!rr(g)&&!this.editData&&m!==null&&(b=[S[m]]),b&&sn(i,g,"0",b,{color:y});const I=`${g}-circle`,R="0";bi(i,g,R,T,_,{color:y,lineDash:C,lineWidth:w},I),D>0&&_>3*D&&bi(i,g,`${R}-center`,T,D,{color:y,lineDash:C,lineWidth:w}),o=!0;const M=this.getLinkedTextBoxStyle(u,h);if(!M.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const L=this.configuration.getTextLines(p,l);if(!L||L.length===0)continue;let A;p.handles.textBox.hasMoved||(A=$i(E),p.handles.textBox.worldPosition=a.canvasToWorld(A));const G=a.worldToCanvas(p.handles.textBox.worldPosition),N=ei(i,g,"1",L,G,S,{},M),{x:V,y:$,width:H,height:Y}=N;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([V,$]),topRight:a.canvasToWorld([V+H,$]),bottomLeft:a.canvasToWorld([V,$+Y]),bottomRight:a.canvasToWorld([V+H,$+Y])}}return o},this._calculateCachedStats=(n,i,o,a)=>{var C,S,T;const s=n.data,{element:c}=i,{points:l}=s.handles,f=l.map(_=>i.worldToCanvas(_)),{viewPlaneNormal:u,viewUp:d}=i.getCamera(),[h,g]=td(f),p=i.canvasToWorld(h),v=i.canvasToWorld(g),{cachedStats:x}=s,m=Object.keys(x),y=p,w=v;for(let _=0;__2(Q,ye,{fast:!0}),boundsIJK:Y,imageData:I,returnPoints:this.configuration.storePointData}),he=this.configuration.statsCalculator.getStatistics();x[E]={Modality:R.Modality,area:z,mean:(C=he.mean)==null?void 0:C.value,max:(S=he.max)==null?void 0:S.value,stdDev:(T=he.stdDev)==null?void 0:T.value,statsArray:he.array,pointsInShape:ae,isEmptyArea:fe,areaUnit:B,radius:ee/2/k,radiusUnit:O,perimeter:2*Math.PI*(ee/2)/k,modalityUnit:K}}else this.isHandleOutsideImage=!0,x[E]={Modality:R.Modality}}return n.invalidated=!1,fn(n,c),x},this._isInsideVolume=(n,i,o)=>In(n,o)&&In(i,o),this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}}function Jme(t,e){const r=t.cachedStats[e],{radius:n,radiusUnit:i,area:o,mean:a,stdDev:s,max:c,isEmptyArea:l,areaUnit:f,modalityUnit:u}=r,d=[];if(n){const h=l?"Radius: Oblique not supported":`Radius: ${yt(n)} ${i}`;d.push(h)}if(o){const h=l?"Area: Oblique not supported":`Area: ${yt(o)} ${f}`;d.push(h)}return a&&d.push(`Mean: ${yt(a)} ${u}`),c&&d.push(`Max: ${yt(c)} ${u}`),s&&d.push(`Std Dev: ${yt(s)} ${u}`),d}DS.toolName="CircleROI";const np=5;class Tk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,degrees:[45,135,225,315],diameters:[10,30,60]}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{label:"",handles:{points:[[...s]]}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,newAnnotation:!0},this._activateDraw(a),Qe(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{points:f}=l.handles,u=c.worldToCanvas(f[0]),d=Qc([u,o]);return Math.abs(d){const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},Qe(a),this._activateModify(a),re(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a))},this._dragDrawCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=re(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h}=this.editData,{data:g}=d;g.handles.points=[u(s),u(s)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._dragModifyCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s}=this.editData,{data:c}=a,{deltaPoints:l}=i,f=l.world;c.handles.points.forEach(d=>{d[0]+=f[0],d[1]+=f[1],d[2]+=f[2]}),a.invalidated=!0,re(o),pe(s)},this._dragHandle=n=>{const i=n.detail,{element:o}=i,a=re(o),{canvasToWorld:s,worldToCanvas:c}=a.viewport,{annotation:l}=this.editData,{data:f}=l,{points:u}=f.handles,d=u.map(y=>c(y)),{currentPoints:h}=i,g=h.canvas,p=g[0]-d[0][0],v=g[1]-d[0][1],x=g,m=[d[1][0]+p,d[1][1]+v];u[0]=s(x),u[1]=s(m)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,re(n),pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragModifyCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragModifyCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.addEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragDrawCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragDrawCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragDrawCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(b))[0];if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!Ur(d))continue;let C=`${d}-crosshair-vertical`,S=[w[0],w[1]+np],T=[w[0],w[1]-np];It(i,d,C,S,T,{color:v,lineDash:m,lineWidth:x}),C=`${d}-crosshair-horizontal`,S=[w[0]+np,w[1]],T=[w[0]-np,w[1]],It(i,d,C,S,T,{color:v,lineDash:m,lineWidth:x});const _=this.configuration.diameters.map(b=>this.worldMeasureToCanvas(b,a));for(let b=0;b<_.length;b++){const I=`${d}-circle-${b}`,R=`${d}-circle-${b}`;bi(i,d,R,w,_[b]/2,{color:v,lineDash:m,lineWidth:x},I)}const E=b=>b*Math.PI/180,D=this.configuration.degrees.map(b=>E(b));for(let b=0;bthis.addControlPoint(r))}addControlPointAtU(e){const r=this._getLineSegmentAt(e),{start:n,end:i}=r.points,o=Math.floor(e),a=this._curveSegments[o],s=e-Math.floor(o),c=[n[0]+s*(i[0]-n[0]),n[1]+s*(i[1]-n[1])],l=this._controlPoints.indexOf(a.controlPoints.p1)+1;return this._controlPoints.splice(l,0,c),this.invalidated=!0,{index:l,point:c}}deleteControlPointByIndex(e){const r=this._closed?3:1;return e>=0&&er?(this._controlPoints.splice(e,1),this.invalidated=!0,!0):!1}clearControlPoints(){this._controlPoints=[],this.invalidated=!0}setControlPoints(e){this.clearControlPoints(),this.addControlPoints(e)}updateControlPoint(e,r){if(e<0||e>=this._controlPoints.length)throw new Error("Index out of bounds");this._controlPoints[e]=[...r],this.invalidated=!0}getControlPoints(){return this._controlPoints.map(e=>[e[0],e[1]])}getClosestControlPoint(e){const r=this._controlPoints;let n=1/0,i=-1;for(let o=0,a=r.length;ou.distanceSquared-d.distanceSquared);let n,i=-1,o=1/0,a,s;for(let u=0;uo)continue;const{curveSegmentIndex:h,curveSegment:g}=d,{lineSegments:p}=g;for(let v=0;v=c.minY&&e[1]=h.minY&&e[1]=l.maxX?o:l.maxX,a=a>=l.maxY?a:l.maxY,r+=f}this._curveSegments=e,this._aabb={minX:n,minY:i,maxX:o,maxY:a},this._length=r,this._invalidated=!1}_convertCurveSegmentsToPolyline(e){this._update();const r=[];return e.forEach(({lineSegments:n},i)=>{n.forEach((o,a)=>{i===0&&a===0&&r.push([...o.points.start]),r.push([...o.points.end])})}),r}_getCurveSegmmentsDistanceSquaredInfo(e){this._update();const r=[],{_curveSegments:n}=this;for(let i=0;in)return[];const i=this._getCurveSegmmentsDistanceSquaredInfo(e),o=[];for(let a=0,s=i.length;a=c.previousLineSegmentsLength&&a<=l)return c}}_getClosingCurveSegmentWithStraightLineSegment(){if(this.closed)return;const e=this._controlPoints,r=e[0],n=e[e.length-1],i={points:{start:[...r],end:[...n]},aabb:{minX:Math.min(r[0],n[0]),minY:Math.min(r[1],n[1]),maxX:Math.max(r[0],n[0]),maxY:Math.max(r[1],n[1])}};return{aabb:{minX:i.aabb.minX,minY:i.aabb.minY,maxX:i.aabb.maxX,maxY:i.aabb.maxY},lineSegments:[i]}}}const Qme=1e-8;class _k extends Zme{getPreviewCurveSegments(e,r){const n=this._getNumCurveSegments()+1,i=Math.max(0,n-2),o=r?n:n-1,a=this.getTransformMatrix(),s=[...this.controlPoints],c=[];r||s.push(e);for(let l=i;l<=o;l++){const f=this._getCurveSegment(l,a,s,r);c.push(f)}return c}getSplineCurves(){const e=this._getNumCurveSegments(),r=new Array(e);if(e<=0)return[];const n=this.getTransformMatrix();let i=0;for(let o=0;o=o)if(this.closed)s=(o+s)%o;else return;const{p0:f,p1:u,p2:d,p3:h}=this._getCurveSegmentPoints(s,n,i),g=c*c,p=g*c,v=bp(1,c,g,p),x=Os(ab(),v,r);return[PT(x,bp(f[0],u[0],d[0],h[0])),PT(x,bp(f[1],u[1],d[1],h[1]))]}_getCurveSegmentPoints(e,r=this.controlPoints,n=this.closed){const i=this._getNumCurveSegments(r,n),o=e,a=o-1,s=n?(o+1)%i:o+1,c=s+1,l=r[o],f=r[s];let u,d;return a>=0?u=r[a]:u=n?r[r.length-1]:D3(f,l),cl?l:p;const v=this._getPoint(p,r,n,i);if(!g){u=v;continue}d=v;const x=d[0]-u[0],m=d[1]-u[1],y=Math.sqrt(x**2+m**2),w={minX:u[0]<=d[0]?u[0]:d[0],maxX:u[0]>=d[0]?u[0]:d[0],minY:u[1]<=d[1]?u[1]:d[1],maxY:u[1]>=d[1]?u[1]:d[1]};f.push({points:{start:u,end:d},aabb:w,length:y,previousLineSegmentsLength:h}),u=d,h+=y}return f}_getCurveSegment(e,r=this.getTransformMatrix(),n=this.controlPoints,i=this.closed){const{p0:o,p1:a,p2:s,p3:c}=this._getCurveSegmentPoints(e,n,i),l=this._getLineSegments(e,r,n,i);let f=0,u=1/0,d=1/0,h=-1/0,g=-1/0;return l.forEach(({aabb:p,length:v})=>{u=Math.min(u,p.minX),d=Math.min(d,p.minY),h=Math.max(h,p.maxX),g=Math.max(g,p.maxY),f+=v}),{controlPoints:{p0:o,p1:a,p2:s,p3:c},aabb:{minX:u,minY:d,maxX:h,maxY:g},length:f,previousCurveSegmentsLength:0,lineSegments:l}}}class Sm extends _k{constructor(e){super(e),this._scale=(e==null?void 0:e.scale)??.5,this._fixedScale=(e==null?void 0:e.fixedScale)??!1}get scale(){return this._scale}set scale(e){this._fixedScale||this._scale===e||(this._scale=e,this.invalidated=!0)}get fixedScale(){return this._fixedScale}getTransformMatrix(){const{scale:e}=this,r=2*e;return[0,1,0,0,-e,0,e,0,r,e-3,3-r,-e,-e,2-e,e-2,e]}}class e2e extends Sm{constructor(){super({resolution:0,fixedResolution:!0,scale:0,fixedScale:!0})}}class t2e extends Sm{constructor(){super({scale:.5,fixedScale:!0})}}const n2e=rb(lo(),pw(1,4,1,0,-3,0,3,0,3,-6,3,0,-1,3,-3,1),1/6);class r2e extends _k{getTransformMatrix(){return n2e}}const i2e=3,AE=10,o2e={resolution:20,controlPointAdditionDistance:6,controlPointDeletionDistance:6,showControlPointsConnectors:!1,controlPointAdditionEnabled:!0,controlPointDeletionEnabled:!0};var ws;(function(t){t.Cardinal="CARDINAL",t.Linear="LINEAR",t.CatmullRom="CATMULLROM",t.BSpline="BSPLINE"})(ws||(ws={}));var rd;(function(t){t.AddControlPoint="addControlPoint",t.DeleteControlPoint="deleteControlPoint"})(rd||(rd={}));const Im=class Im extends lS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1,calculateStats:!0,getTextLines:a2e,contourHoleAdditionModifierKey:vr.Shift,decimate:{enabled:!1,epsilon:.1},spline:{configuration:{[ws.Cardinal]:{Class:Sm,scale:.5},[ws.CatmullRom]:{Class:t2e},[ws.Linear]:{Class:e2e},[ws.BSpline]:{Class:r2e,controlPointAdditionEnabled:!1,controlPointDeletionEnabled:!1,showControlPointsConnectors:!0}},type:ws.CatmullRom,drawPreviewEnabled:!0,lastControlPointDeletionKeys:["Backspace","Delete"]},actions:{[rd.AddControlPoint]:{method:"addControlPointCallback",bindings:[{mouseButton:la.Primary,modifierKey:vr.Shift}]},[rd.DeleteControlPoint]:{method:"deleteControlPointCallback",bindings:[{mouseButton:la.Primary,modifierKey:vr.Ctrl}]}}}}){super(e,r),this.isHandleOutsideImage=!1,this.fireChangeOnUpdate=null,this.isPointNearTool=(n,i,o,a)=>{const{instance:s}=i.data.spline;return s.isPointNearCurve(o,a)},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},re(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),re(s),pe(u),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,contourHoleProcessingEnabled:l}=this.editData,{data:f}=a;a.autoGenerated=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o);const u=re(o),d=this.getTargetImageData(this.getTargetId(u.viewport)),{imageData:h,dimensions:g}=d;this.isHandleOutsideImage=f.handles.points.map(v=>Gn(h,v)).some(v=>!In(v,g)),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const p=c?Bn.Completed:Bn.HandlesUpdated;this.fireChangeOnUpdate?(this.fireChangeOnUpdate.annotationUID=a.annotationUID,this.fireChangeOnUpdate.changeType=p):this.fireChangeOnUpdate={annotationUID:a.annotationUID,changeType:p,contourHoleProcessingEnabled:l},pe(s),this.editData=null,this.isDrawing=!1},this._keyDownCallback=n=>{const i=n.detail,{element:o}=i,a=i.key??"",{lastControlPointDeletionKeys:s}=this.configuration.spline;if(!s.includes(a))return;const{annotation:l}=this.editData,{data:f}=l;if(f.handles.points.length===i2e){this.cancel(o);return}else{const u=f.handles.points.length-1;this._deleteControlPointByIndex(o,l,u)}n.preventDefault()},this._mouseMoveCallback=n=>{const{drawPreviewEnabled:i}=this.configuration.spline;if(!i)return;const{element:o}=n.detail;re(o);const a=He(o,this.getToolName());this.editData.lastCanvasPoint=n.detail.currentPoints.canvas,pe(a),n.preventDefault()},this._mouseDownCallback=n=>{const i=n.type===F.MOUSE_DOUBLE_CLICK,{annotation:o,viewportIdsToRender:a}=this.editData,{data:s}=o;if(s.contour.closed)return;const c=n.detail,{element:l}=c,{currentPoints:f}=c,{canvas:u,world:d}=f;re(l);let h=s.handles.points.length>=2&&i,g=!0;if(s.handles.points.length>=3){const{instance:p}=s.spline,v=p.getClosestControlPointWithinDistance(u,AE);(v==null?void 0:v.index)===0&&(g=!1,h=!0)}g&&s.handles.points.push(d),s.contour.closed=s.contour.closed||h,o.invalidated=!0,pe(a),s.contour.closed&&this._endCallback(n),n.preventDefault()},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;this.moveAnnotation(a,d)}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.triggerAnnotationCompleted=(n,i)=>{const o=F.ANNOTATION_COMPLETED,a={annotation:n,changeType:Bn.Completed,contourHoleProcessingEnabled:i};De(Ce,o,a)},this.triggerAnnotationModified=(n,i,o=Bn.StatsUpdated)=>{const{viewportId:a,renderingEngineId:s}=i,c=F.ANNOTATION_MODIFIED;De(Ce,c,{annotation:n,viewportId:a,renderingEngineId:s,changeType:o})},this.triggerChangeEvent=(n,i,o=Bn.StatsUpdated,a)=>{o===Bn.Completed?this.triggerAnnotationCompleted(n,a):this.triggerAnnotationModified(n,i,o)},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.KEY_DOWN,this._keyDownCallback),n.addEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.addEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.addEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.KEY_DOWN,this._keyDownCallback),n.removeEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.removeEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.removeEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._renderStats=(n,i,o,a)=>{const s=n.data,c=this.getTargetId(i);if(!s.spline.instance.closed||!a.visibility)return;const l=this.configuration.getTextLines(s,c);if(!l||l.length===0)return;const f=s.handles.points.map(m=>i.worldToCanvas(m));if(!s.handles.textBox.hasMoved){const m=$i(f);s.handles.textBox.worldPosition=i.canvasToWorld(m)}const u=i.worldToCanvas(s.handles.textBox.worldPosition),h=ei(o,n.annotationUID??"","textBox",l,u,f,{},a),{x:g,y:p,width:v,height:x}=h;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([g,p]),topRight:i.canvasToWorld([g+v,p]),bottomLeft:i.canvasToWorld([g,p+x]),bottomRight:i.canvasToWorld([g+v,p+x])}},this.addControlPointCallback=(n,i)=>{const{data:o}=i,a=o.spline.type,s=this._getSplineConfig(a),c=s.controlPointAdditionDistance;if(s.controlPointAdditionEnabled===!1)return;const l=n.detail,{element:f}=l,u=re(f),{renderingEngine:d,viewport:h}=u,{canvasToWorld:g}=h,{instance:p}=o.spline,v=n.detail.currentPoints.canvas,x=p.getClosestPoint(v);if(x.distance>c)return;const{index:m,point:y}=p.addControlPointAtU(x.uValue);o.handles.points.splice(m,0,g(y)),i.invalidated=!0;const w=He(f,this.getToolName());pe(w)},this.deleteControlPointCallback=(n,i)=>{const o=i.data.spline.type,a=this._getSplineConfig(o),s=a.controlPointDeletionDistance;if(a.controlPointDeletionEnabled===!1)return;const c=n.detail,{element:l,currentPoints:f}=c,{canvas:u}=f,{instance:d}=i.data.spline,h=d.getClosestControlPointWithinDistance(u,s);h&&this._deleteControlPointByIndex(l,i,h.index)},this._calculateCachedStats=(n,i)=>{if(!this.configuration.calculateStats)return;const o=n.data;if(!o.contour.closed)return;const a=re(i),{viewport:s}=a,{cachedStats:c}=o,{polyline:l}=o.contour,f=Object.keys(c);for(let u=0;us.worldToCanvas(D)),v=p[0],x=s.canvasToWorld(v),m=s.canvasToWorld([v[0]+1,v[1]]),y=s.canvasToWorld([v[0],v[1]+1]),w=Cr(x,m),C=Cr(x,y),{imageData:S}=h,{scale:T,areaUnit:_}=Bi(h,()=>{const{maxX:D,maxY:b,minX:I,minY:R}=r0(p),M=s.canvasToWorld([I,R]),L=Gn(S,M),A=s.canvasToWorld([D,b]),G=Gn(S,A);return[L,G]});let E=Lh(p)/T/T;E*=w*C,c[d]={Modality:g.Modality,area:E,areaUnit:_}}return this.triggerAnnotationModified(n,a,Bn.StatsUpdated),c},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,{canvas:o}=n,a=N0(e.detail.event)===this.configuration.contourHoleAdditionModifierKey;re(i);const s=this.createAnnotation(e);this.isDrawing=!0,this.addAnnotation(s,i);const c=He(i,this.getToolName());return this.editData={annotation:s,viewportIdsToRender:c,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,lastCanvasPoint:o,contourHoleProcessingEnabled:a},this._activateDraw(i),e.preventDefault(),pe(c),s}cancel(e){if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(e),this._deactivateModify(e),ct(e);const{annotation:r,viewportIdsToRender:n,newAnnotation:i}=this.editData;return i&&Ot(r.annotationUID),super.cancelAnnotation(r),re(e),pe(n),this.editData=null,r.annotationUID}isContourSegmentationTool(){return!1}renderAnnotationInstance(e){var M,L,A;const{enabledElement:r,targetId:n,svgDrawingHelper:i,annotationStyle:o}=e,{viewport:a}=r,{worldToCanvas:s}=a,{element:c}=a,l=e.annotation,{annotationUID:f,data:u,highlighted:d}=l,{handles:h}=u,{points:g,activeHandleIndex:p}=h,v=(M=this.editData)==null?void 0:M.newAnnotation,{lineWidth:x,lineDash:m,color:y,locked:w}=o,C=g.map(G=>s(G)),{drawPreviewEnabled:S}=this.configuration.spline,T=l.data.spline.type,_=this._getSplineConfig(T),E=l.data.spline.instance,D=m2(l);if(D.findIndex(G=>!G)!==-1)throw new Error(`Can't find annotation for child ${l.childAnnotationUIDs.join()}`);[l,...D].filter(G=>this._isSplineROIAnnotation(G)).forEach(G=>{const N=this._updateSplineInstance(c,G).getPolylinePoints();this.updateContourPolyline(G,{points:N,closed:u.contour.closed,targetWindingDirection:ec.Clockwise},a,{updateWindingDirection:u.contour.closed})}),super.renderAnnotationInstance(e),!u.cachedStats[n]||u.cachedStats[n].areaUnit==null?(u.cachedStats[n]={Modality:null,area:null,areaUnit:null},this._calculateCachedStats(l,c)):l.invalidated&&this._throttledCalculateCachedStats(l,c);let R;if(!w&&!this.editData&&p!==null&&(R=[C[p]]),(R||v||d)&&sn(i,f,"0",C,{color:y,lineWidth:x,handleRadius:"3"}),S&&E.numControlPoints>1&&((L=this.editData)!=null&&L.lastCanvasPoint)&&!E.closed){const{lastCanvasPoint:G}=this.editData,P=E.getPreviewPolylinePoints(G,AE);ua(i,f,"previewSplineChange",P,{color:"#9EA0CA",lineDash:m,lineWidth:1})}if(_.showControlPointsConnectors){const G=[...C];E.closed&&G.push(C[0]),ua(i,f,"controlPointsConnectors",G,{color:"rgba(255, 255, 255, 0.5)",lineWidth:1})}return this._renderStats(l,a,i,o.textbox),((A=this.fireChangeOnUpdate)==null?void 0:A.annotationUID)===f&&(this.triggerChangeEvent(l,r,this.fireChangeOnUpdate.changeType,this.fireChangeOnUpdate.contourHoleProcessingEnabled),this.fireChangeOnUpdate=null),l.invalidated=!1,!0}createInterpolatedSplineControl(e){var o;if((o=e.data.handles.points)!=null&&o.length)return;const{polyline:r}=e.data.contour;if(!r||!r.length)return;e.data.handles.points=[];const{points:n}=e.data.handles,i=Math.max(10,Math.floor(r.length/20));for(let a=0;a({type:o.type,instance:a,resolution:o.resolution});let c;return(l=this.configuration.interpolation)!=null&&l.enabled&&(c=f=>{var u;(u=f.data).spline||(u.spline=s()),this.createInterpolatedSplineControl(f)}),Zr(r,{data:{handles:{points:[[...n]]},spline:s(),cachedStats:{}},onInterpolationComplete:c})}_deleteControlPointByIndex(e,r,n){re(e);const{points:i}=r.data.handles;i.length===3?Ot(r.annotationUID):i.splice(n,1);const o=He(e,this.getToolName());r.invalidated=!0,pe(o)}_isSplineROIAnnotation(e){var r;return!!((r=e.data)!=null&&r.spline)}_getSplineConfig(e){const{configuration:r}=this,n=r.spline.configuration;return Object.assign({type:e},o2e,n[e])}_updateSplineInstance(e,r){const n=re(e),{viewport:i}=n,{worldToCanvas:o}=i,{data:a}=r,{type:s,instance:c}=r.data.spline,l=this._getSplineConfig(s),u=a.handles.points.map(o),d=l.resolution!==void 0?parseInt(l.resolution):void 0,h=l.scale!==void 0?parseFloat(l.scale):void 0;return c.setControlPoints(u),c.closed=!!a.contour.closed,!c.fixedResolution&&d!==void 0&&c.resolution!==d&&(c.resolution=d,r.invalidated=!0),c instanceof Sm&&!c.fixedScale&&h!==void 0&&c.scale!==h&&(c.scale=h,r.invalidated=!0),c}};Im.SplineTypes=ws,Im.Actions=rd;let eh=Im;function a2e(t,e){const r=t.cachedStats[e],{area:n,isEmptyArea:i,areaUnit:o}=r,a=[];if(n){const s=i?"Area: Oblique not supported":`Area: ${yt(n)} ${o}`;a.push(s)}return a}eh.toolName="SplineROI";class Ek extends eh{constructor(e){const r=Zr({configuration:{calculateStats:!1}},e);super(r)}isContourSegmentationTool(){return!0}}Ek.toolName="SplineContourSegmentationTool";class s2e{constructor({numBits:e,getPriority:r,areEqual:n}){this._bucketCount=1<i,this._areEqual=typeof n=="function"?n:(i,o)=>i===o}push(e){const r=this._getBucketIndex(e),n=this._buckets[r],i={value:e,next:n};this._buckets[r]=i,this._size++}pop(){if(this._size===0)throw new Error("Cannot pop because the queue is empty.");for(;this._buckets[this._currentBucketIndex]===null;)this._currentBucketIndex=(this._currentBucketIndex+1)%this._bucketCount;const e=this._buckets[this._currentBucketIndex];return this._buckets[this._currentBucketIndex]=e.next,this._size--,e.value}remove(e){if(!e)return!1;const r=this._getBucketIndex(e),n=this._buckets[r];let i=n,o;for(;i!==null&&!this._areEqual(e,i.value);)o=i,i=i.next;return i===null?!1:(i===n?this._buckets[r]=i.next:o.next=i.next,this._size--,!0)}isEmpty(){return this._size===0}_getBucketIndex(e){return this._getPriority(e)&this._mask}_buildArray(e){const r=new Array(e);return r.fill(null),r}}const yy=4294967295,c2e=2/(3*Math.PI);class Tm{constructor(e,r,n){this._getPointIndex=(o,a)=>{const{width:s}=this;return o*s+a},this._getPointCoordinate=o=>{const a=o%this.width,s=Math.floor(o/this.width);return[a,s]},this._getPointCost=o=>Math.round(this.searchGranularity*this.costs[o]);const i=e.length;this.searchGranularityBits=8,this.searchGranularity=1<.33?0:1;i[n(o,e-2)]=1,i[n(o,e-1)]=1}return i.fill(1,n(r-2,0)),i}_computeGradientX(){const{width:e,height:r}=this,n=new Float32Array(e*r);let i=0;for(let o=0;o=i||l<0||l>=o)return 1;if(a<0||s<0||a>=i||s>=o)return 0;const f=n(l,c);let u=this.gradMagnitude[f];(a===c||s===l)&&(u*=Math.SQRT1_2);const d=this.laplace[f],h=this._getGradientDirection(a,s,c,l);return .43*u+.43*d+.11*h}_getNeighborPoints(e){const{width:r,height:n}=this,i=[],o=Math.max(e[0]-1,0),a=Math.max(e[1]-1,0),s=Math.min(e[0]+1,r-1),c=Math.min(e[1]+1,n-1);for(let l=a;l<=c;l++)for(let f=o;f<=s;f++)(f!==e[0]||l!==e[1])&&i.push([f,l]);return i}static createInstanceFromRawPixelData(e,r,n,i){const o=e.length,a=new Float32Array(o),{lower:s,upper:c}=i,l=c-s;for(let f=0,u=e.length;fthis.pointArray[e])}getNumControlPoints(){return this._controlPointIndexes.length}removeLastControlPoint(){this._controlPointIndexes.length&&this._controlPointIndexes.pop()}getLastControlPoint(){if(this._controlPointIndexes.length)return this.pointArray[this._controlPointIndexes[this._controlPointIndexes.length-1]]}removeLastPoints(e){this.pointArray.splice(this.pointArray.length-e,e)}addPoints(e){this.pointArray=this.pointArray.concat(e)}prependPath(e){const r=e.pointArray.length,n=[];this.pointArray=e.pointArray.concat(this.pointArray);for(let i=0;ithis._controlPointIndexes.push(r))}}const l2e=10**2;class bS extends lS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{getTextLines:u2e,calculateStats:!0,preventHandleOutsideImage:!1,contourHoleAdditionModifierKey:vr.Shift,snapHandleNearby:2,interpolation:{enabled:!1,nearestEdge:2,showInterpolationPolyline:!1},decimate:{enabled:!1,epsilon:.1},actions:{undo:{method:"undo",bindings:[{key:"Escape"}]}}}}){super(e,r),this.isHandleOutsideImage=!1,this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,l=a*a,f=i.data.contour.polyline.map(d=>c.worldToCanvas(d));let u=f[f.length-1];for(let d=0;d{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},re(a),this._activateModify(a),pe(s),n.preventDefault()},this.handleSelectedCallback=(n,i,o)=>{const a=n.detail,{element:s}=a,{data:c}=i;i.highlighted=!0;let l=!1,f;if(o.worldPosition)l=!0;else{const{points:d}=c.handles;f=d.findIndex(h=>h===o)}const u=He(s,this.getToolName());this.editData={annotation:i,viewportIdsToRender:u,handleIndex:f,movingTextBox:l},this._activateModify(s),re(s),pe(u),n.preventDefault()},this._endCallback=(n,i=!1)=>{const o=n.detail,{element:a}=o,{annotation:s,viewportIdsToRender:c,newAnnotation:l,contourHoleProcessingEnabled:f}=this.editData,{data:u}=s;u.handles.activeHandleIndex=null,this._deactivateModify(a),this._deactivateDraw(a),ct(a);const d=re(a);if(this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage||i){Ot(s.annotationUID),this.clearEditData(),pe(c);return}pe(c);const h=l?Bn.Completed:Bn.HandlesUpdated;this.triggerChangeEvent(s,d,h,f),this.clearEditData()},this.triggerChangeEvent=(n,i,o=Bn.StatsUpdated,a=!1)=>{o===Bn.Completed?MC(n,a):fn(n,i.viewport.element,o)},this._mouseDownCallback=n=>{const i=n.type===F.MOUSE_DOUBLE_CLICK,{annotation:o,viewportIdsToRender:a,worldToSlice:s,sliceToWorld:c}=this.editData;if(this.editData.closed)return;const l=n.detail,{element:f}=l,{currentPoints:u}=l,{canvas:d,world:h}=u;let g=h;const p=re(f),{viewport:v,renderingEngine:x}=p,m=this.editData.currentPath.getControlPoints();let y=m.length>=2&&i;if(m.length>=2){const S={index:-1,distSquared:1/0};for(let T=0,_=m.length;T<_;T++){const E=m[T],D=c(E),b=v.worldToCanvas(D),I=Ja(d,b);I<=l2e&&I{const{element:i,currentPoints:o}=n.detail,{world:a,canvas:s}=o;re(i);const c=He(i,this.getToolName());this.editData.lastCanvasPoint=s;const{width:l,height:f}=this.scissors,{worldToSlice:u}=this.editData,d=u(a);if(d[0]<0||d[1]<0||d[0]>=l||d[1]>=f)return;const h=this.scissors.findPathToPoint(d),g=new Ca;g.addPoints(h),g.prependPath(this.editData.confirmedPath),this.editData.currentPath=g,pe(c),n.preventDefault()},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0)console.warn("Drag annotation not implemented");else{const{currentPoints:u}=i,d=u.world;this.editHandle(d,o,a,c)}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData;return a&&Ot(i.annotationUID),re(n),pe(o),this.editData=null,this.scissors=null,i.annotationUID},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.addEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.addEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_MOVE,this._mouseMoveCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback),n.removeEventListener(F.MOUSE_DOUBLE_CLICK,this._mouseDownCallback),n.removeEventListener(F.TOUCH_TAP,this._mouseDownCallback)},this._calculateCachedStats=(n,i)=>{if(!this.configuration.calculateStats)return;const o=n.data;if(!o.contour.closed)return;const a=re(i),{viewport:s,renderingEngine:c}=a,{cachedStats:l}=o,{polyline:f}=o.contour,u=Object.keys(l);for(let d=0;ds.worldToCanvas(b)),x=v[0],m=s.canvasToWorld(x),y=s.canvasToWorld([x[0]+1,x[1]]),w=s.canvasToWorld([x[0],x[1]+1]),C=Cr(m,y),S=Cr(m,w),{imageData:T}=g,{scale:_,areaUnit:E}=Bi(g,()=>{const{maxX:b,maxY:I,minX:R,minY:M}=r0(v),L=s.canvasToWorld([R,M]),A=Gn(T,L),G=s.canvasToWorld([b,I]),P=Gn(T,G);return[A,P]});let D=Lh(v)/_/_;D*=C*S,l[h]={Modality:p.Modality,area:D,areaUnit:E}}return this.triggerAnnotationModified(n,a,Bn.StatsUpdated),l},this._renderStats=(n,i,o,a)=>{const s=n.data,c=this.getTargetId(i);if(!s.contour.closed||!a.visibility)return;const l=this.configuration.getTextLines(s,c);if(!l||l.length===0)return;const f=s.handles.points.map(m=>i.worldToCanvas(m));if(!s.handles.textBox.hasMoved){const m=$i(f);s.handles.textBox.worldPosition=i.canvasToWorld(m)}const u=i.worldToCanvas(s.handles.textBox.worldPosition),h=ei(o,n.annotationUID??"","textBox",l,u,f,{},a),{x:g,y:p,width:v,height:x}=h;s.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([g,p]),topRight:i.canvasToWorld([g+v,p]),bottomLeft:i.canvasToWorld([g,p+x]),bottomRight:i.canvasToWorld([g+v,p+x])}},this.triggerAnnotationModified=(n,i,o=Bn.StatsUpdated)=>{const{viewportId:a,renderingEngineId:s}=i,c=F.ANNOTATION_MODIFIED;De(Ce,c,{annotation:n,viewportId:a,renderingEngineId:s,changeType:o})},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}setupBaseEditData(e,r,n,i,o){var T,_;const a=re(r),{viewport:s}=a;this.isDrawing=!0;const c=s.getImageData(),{imageData:l}=c;let f,u,d,h,g;if(!(s instanceof an))d=c.dimensions[0],h=c.dimensions[1],f=E=>{const D=Gn(l,E);return[D[0],D[1]]},u=E=>X1(l,[E[0],E[1],0]),g=c.scalarData;else if(s instanceof an){const E=gC(s),{sliceToIndexMatrix:D,indexToSliceMatrix:b}=E;f=I=>{const R=Gn(l,I),M=et([0,0,0],R,b);return[M[0],M[1]]},u=I=>{const R=et([0,0,0],[I[0],I[1],0],D);return X1(l,R)},g=E.scalarData,d=E.width,h=E.height}else throw new Error("Viewport not supported");g=vR(g,d,h);const{voiRange:p}=s.getProperties(),v=f(e);this.scissors=Tm.createInstanceFromRawPixelData(g,d,h,p),i&&(this.scissorsNext=Tm.createInstanceFromRawPixelData(g,d,h,p),this.scissorsNext.startSearch(f(i))),this.scissors.startSearch(v);const x=!i,m=new Ca,y=new Ca,w=x?void 0:new Ca;m.addPoint(v),m.addControlPoint(v);const C=He(r,this.getToolName()),S=s.worldToCanvas(e);this.editData={annotation:n,viewportIdsToRender:C,newAnnotation:x,hasMoved:!1,lastCanvasPoint:S,confirmedPath:m,currentPath:y,confirmedPathNext:w,closed:!1,handleIndex:((T=this.editData)==null?void 0:T.handleIndex)??((_=n.handles)==null?void 0:_.activeHandleIndex),worldToSlice:f,sliceToWorld:u,contourHoleProcessingEnabled:o}}addNewAnnotation(e){const r=e.detail,{currentPoints:n,element:i}=r,{world:o}=n,a=this.createAnnotation(e),s=N0(e.detail.event)===this.configuration.contourHoleAdditionModifierKey;return this.setupBaseEditData(o,i,a,void 0,s),this.addAnnotation(a,i),this._activateDraw(i),e.preventDefault(),pe(this.editData.viewportIdsToRender),a}clearEditData(){this.editData=null,this.scissors=null,this.scissorsNext=null,this.isDrawing=!1}editHandle(e,r,n,i){var y;const{data:o}=n,{points:a}=o.handles,{length:s}=a,c=a[(i-1+s)%s],l=a[(i+1)%s];if(!((y=this.editData)!=null&&y.confirmedPathNext)){this.setupBaseEditData(c,r,n,l);const{polyline:w}=o.contour,C=new Ca,S=new Ca,{worldToSlice:T}=this.editData,_=A3(n,i-1),E=A3(n,i+1);if(E===-1||_===-1)throw new Error(`Can't find handle index ${E===-1&&l} ${_===-1&&c}`);i===0?S.addPoints(w.slice(E+1,_).map(T)):(C.addPoints(w.slice(0,_+1).map(T)),S.addPoints(w.slice(E,w.length).map(T))),this.editData.confirmedPath=C,this.editData.confirmedPathNext=S}const{editData:f,scissors:u}=this,{worldToSlice:d,sliceToWorld:h}=f,{activeHandleIndex:g}=o.handles;if(g==null)o.handles.activeHandleIndex=i;else if(g!==i)throw new Error(`Trying to edit a different handle than the one currently being edited ${i}!==${o.handles.activeHandleIndex}`);const p=d(e);if(p[0]<0||p[0]>=u.width||p[1]<0||p[1]>=u.height)return;a[i]=h(p);const v=u.findPathToPoint(p),x=this.scissorsNext.findPathToPoint(p),m=new Ca;m.prependPath(f.confirmedPath),i!==0&&m.addPoints(v),m.addPoints(x.reverse()),m.appendPath(f.confirmedPathNext),i===0&&m.addPoints(v),f.currentPath=m,n.invalidated=!0,f.hasMoved=!0,f.closed=!0}renderAnnotation(e,r){var n;return this.updateAnnotation((n=this.editData)==null?void 0:n.currentPath),super.renderAnnotation(e,r)}isContourSegmentationTool(){return!1}createAnnotation(e){const r=super.createAnnotation(e),{world:n}=e.detail.currentPoints;return Zr(r,{data:{handles:{points:[[...n]]}}})}undo(e,r,n){this.editData&&this._endCallback(n,!0)}renderAnnotationInstance(e){var m,y,w;const{annotation:r,enabledElement:n,svgDrawingHelper:i,annotationStyle:o,targetId:a}=e,{viewport:s}=n,{element:c}=s,{worldToCanvas:l}=s,{annotationUID:f,data:u,highlighted:d}=r,{handles:h}=u,g=(m=this.editData)==null?void 0:m.newAnnotation,{lineWidth:p,lineDash:v,color:x}=o;if(d||g&&r.annotationUID===((w=(y=this.editData)==null?void 0:y.annotation)==null?void 0:w.annotationUID)){const C="0",S=h.points.map(l);sn(i,f,C,S,{color:x,lineDash:v,lineWidth:p})}return super.renderAnnotationInstance(e),!u.cachedStats[a]||u.cachedStats[a].areaUnit==null?(u.cachedStats[a]={Modality:null,area:null,areaUnit:null},this._calculateCachedStats(r,c)):r.invalidated&&this._throttledCalculateCachedStats(r,c),this._renderStats(r,s,i,o.textbox),!0}updateAnnotation(e){if(!this.editData||!e)return;const{annotation:r,sliceToWorld:n,worldToSlice:i,closed:o,newAnnotation:a}=this.editData;let{pointArray:s}=e;s.length>1&&(s=[...s,s[0]]);const c=a&&o?ec.Clockwise:void 0;this.updateContourPolyline(r,{points:s,closed:o,targetWindingDirection:c},{canvasToWorld:n,worldToCanvas:i})}}bS.toolName="LivewireContour";function u2e(t,e){const r=t.cachedStats[e],{area:n,areaUnit:i}=r,o=[];if(n){const a=`Area: ${yt(n)} ${i}`;o.push(a)}return o}class Dk extends bS{updateInterpolatedAnnotation(e,r){this.editData||!e.invalidated||!e.data.handles.interpolationSources||(e.data.contour.originalPolyline=e.data.contour.polyline,queueMicrotask(()=>{if(!e.data.handles.interpolationSources)return;const{points:n}=e.data.handles,{element:i}=r.viewport;this.setupBaseEditData(n[0],i,e);const{length:o}=n,{scissors:a}=this,{nearestEdge:s,repeatInterpolation:c}=this.configuration.interpolation;e.data.handles.originalPoints=n;const{worldToSlice:l,sliceToWorld:f}=this.editData,u=[];if(s){let h=l(n[n.length-1]);n.forEach((g,p)=>{const v=l(g);h=v,u.push(v),a.startSearch(h),a.findPathToPoint(v),a.findPathToPoint(l(n[(p+3)%n.length]));const x=a.findMinNearby(v,s);pt(v,x)||(u[p]=x,h=x,n[p]=f(x))})}const d=new Ca;for(let h=0;h{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;Qe(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),{arrowFirst:p}=this.configuration,v=l.getFrameOfReferenceUID(),x={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:v,referencedImageId:g,...l.getViewReference({points:[s]})},data:{text:"",handles:{points:[[...s],[...s]],activeHandleIndex:null,arrowFirst:p,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};Ut(x,a);const m=He(a,this.getToolName());return this.editData={annotation:x,viewportIdsToRender:m,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(m),x},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,[f,u]=l.handles.points,d=c.worldToCanvas(f),h=c.worldToCanvas(u),g={start:{x:d[0],y:d[1]},end:{x:h[0],y:h[1]}};return Pr([g.start.x,g.start.y],[g.end.x,g.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;c&&!l||(f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),c?this.configuration.getTextCallback(u=>{if(!u){Ot(a.annotationUID),pe(s),this.editData=null,this.isDrawing=!1;return}a.data.text=u,en(a),pe(s)}):fn(a,o),this.editData=null,this.isDrawing=!1)},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.touchTapCallback=n=>{n.detail.taps==2&&this.doubleClickCallback(n)},this.doubleClickCallback=n=>{const i=n.detail,{element:o}=i;let a=_t(this.getToolName(),o);if(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length))return;const s=a.find(l=>this.isPointNearTool(o,l,i.currentPoints.canvas,6));if(!s)return;const c=s;this.configuration.changeTextCallback(s,n.detail,this._doneChangingTextCallback.bind(this,o,c)),this.editData=null,this.isDrawing=!1,n.stopImmediatePropagation(),n.preventDefault()},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fa.worldToCanvas(A));let S;!rr(d)&&!this.editData&&x!==null&&(S=[C[x]]),S&&sn(i,d,"0",C,{color:m,lineWidth:y});const T="1";if(this.configuration.arrowFirst?pm(i,d,T,C[1],C[0],{color:m,width:y,lineDash:w}):pm(i,d,T,C[0],C[1],{color:m,width:y,lineDash:w}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;if(!p)continue;const _=this.getLinkedTextBoxStyle(l,u);if(!_.visibility){h.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}if(!h.handles.textBox.hasMoved){const A=C[1];h.handles.textBox.worldPosition=a.canvasToWorld(A)}const E=a.worldToCanvas(h.handles.textBox.worldPosition),b=ei(i,d,"1",[p],E,C,{},_),{x:I,y:R,width:M,height:L}=b;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([I,R]),topRight:a.canvasToWorld([I+M,R]),bottomLeft:a.canvasToWorld([I,R+L]),bottomRight:a.canvasToWorld([I+M,R+L])}}return o}}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Qe(o),re(o),pe(l),e.preventDefault()}_doneChangingTextCallback(e,r,n){r.data.text=n,re(e);const i=He(e,this.getToolName());pe(i),fn(r,e)}_isInsideVolume(e,r,n){return In(e,n)&&In(r,n)}}function f2e(t){return t(prompt("Enter your annotation:"))}function d2e(t,e,r){return r(prompt("Enter your annotation:"))}ic.toolName="ArrowAnnotate";class bk extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,getTextLines:h2e}}){super(e,r),this.addNewAnnotation=n=>{if(this.angleStartedNotYetCompleted)return;this.angleStartedNotYetCompleted=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;Qe(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,[f,u,d]=l.handles.points,h=c.worldToCanvas(f),g=c.worldToCanvas(u),p={start:{x:h[0],y:h[1]},end:{x:g[0],y:g[1]}};if(Pr([p.start.x,p.start.y],[p.end.x,p.end.y],[o[0],o[1]])<=a)return!0;if(!d)return!1;const x=c.worldToCanvas(d),m={start:{x:g[0],y:g[1]},end:{x:x[0],y:x[1]}};return Pr([m.start.x,m.start.y],[m.end.x,m.end.y],[o[0],o[1]])<=a},this.toolSelectedCallback=(n,i)=>{const o=n.detail,{element:a}=o;i.highlighted=!0;const s=He(a,this.getToolName());this.editData={annotation:i,viewportIdsToRender:s,movingTextBox:!1},this._activateModify(a),Qe(a),re(a),pe(s),n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.angleStartedNotYetCompleted&&f.handles.points.length===2){this.editData.handleIndex=2;return}this.angleStartedNotYetCompleted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1}},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,this.angleStartedNotYetCompleted=!1,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{var d;let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let h=0;ha.worldToCanvas(P));!v.cachedStats[l]||v.cachedStats[l].angle==null?(v.cachedStats[l]={angle:null},this._calculateCachedStats(g,f,n)):g.invalidated&&this._throttledCalculateCachedStats(g,f,n);let T;if(!rr(g.annotationUID)&&!this.editData&&m!==null&&(T=[S[m]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;T&&sn(i,p,"0",S,{color:y,lineDash:C,lineWidth:w});let _="1";if(It(i,p,_,S[0],S[1],{color:y,width:w,lineDash:C}),o=!0,S.length!==3)return o;if(_="2",It(i,p,_,S[1],S[2],{color:y,width:w,lineDash:C}),!((d=v.cachedStats[l])!=null&&d.angle))continue;const E=this.getLinkedTextBoxStyle(u,g);if(!E.visibility){v.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const D=this.configuration.getTextLines(v,l);if(!v.handles.textBox.hasMoved){const P=S[1];v.handles.textBox.worldPosition=a.canvasToWorld(P)}const b=a.worldToCanvas(v.handles.textBox.worldPosition),R=ei(i,p,"1",D,b,S,{},E),{x:M,y:L,width:A,height:G}=R;v.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,L]),topRight:a.canvasToWorld([M+A,L]),bottomLeft:a.canvasToWorld([M,L+G]),bottomRight:a.canvasToWorld([M+A,L+G])}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;let s=!1,c;n.worldPosition?s=!0:c=a.handles.points.findIndex(f=>f===n);const l=He(o,this.getToolName());this.editData={annotation:r,viewportIdsToRender:l,handleIndex:c,movingTextBox:s},this._activateModify(o),Qe(o),re(o),pe(l),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport;if(i.handles.points.length!==3)return;const a=i.handles.points[0],s=i.handles.points[1],c=i.handles.points[2],{cachedStats:l}=i,f=Object.keys(l);for(let u=0;uGn(p,v)).some(v=>!In(v,g)),l[d]={angle:isNaN(h)?"Incomplete Angle":h}}return e.invalidated=!1,fn(e,o),l}}function h2e(t,e){const r=t.cachedStats[e],{angle:n}=r;return n===void 0?void 0:isNaN(n)?[`${n}`]:[`${yt(n)} °`]}bk.toolName="Angle";const g2e=(...t)=>{const e=t[0].length===2?[0,0]:[0,0,0],r=t.length;for(const n of t)e[0]+=n[0]/r,e[1]+=n[1]/r,e.length===3&&(e[2]+=n[2]/r);return e},wa=g2e;class Ik extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,getTextLines:p2e,showArcLines:!1}}){super(e,r),this.addNewAnnotation=n=>{if(this.angleStartedNotYetCompleted)return;this.angleStartedNotYetCompleted=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;Qe(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g,...l.getViewReference({points:[s]})},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>{const s=re(n),{viewport:c}=s,{data:l}=i,{distanceToPoint:f,distanceToPoint2:u}=this.distanceToLines({viewport:c,points:l.handles.points,canvasCoords:o,proximity:a});return f<=a||u<=a},this.toolSelectedCallback=(n,i,o,a,s=6)=>{const c=n.detail,{element:l}=c;i.highlighted=!0;const f=He(l,this.getToolName()),u=re(l),{renderingEngine:d,viewport:h}=u,{isNearFirstLine:g,isNearSecondLine:p}=this.distanceToLines({viewport:h,points:i.data.handles.points,canvasCoords:a,proximity:s});this.editData={annotation:i,viewportIdsToRender:f,movingTextBox:!1,isNearFirstLine:g,isNearSecondLine:p},this._activateModify(l),Qe(l),pe(f),n.preventDefault()},this._mouseUpCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.angleStartedNotYetCompleted&&f.handles.points.length<4){ct(o),this.editData.handleIndex=f.handles.points.length;return}this.angleStartedNotYetCompleted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1}},this._mouseDownCallback=n=>{const{annotation:i,handleIndex:o}=this.editData,a=n.detail,{element:s,currentPoints:c}=a,l=c.world,{data:f}=i;if(o===1){f.handles.points[1]=l,this.editData.hasMoved=f.handles.points[1][0]!==f.handles.points[0][0]||f.handles.points[1][1]!==f.handles.points[0][0];return}if(o===3){f.handles.points[3]=l,this.editData.hasMoved=f.handles.points[3][0]!==f.handles.points[2][0]||f.handles.points[3][1]!==f.handles.points[2][0],this.angleStartedNotYetCompleted=!1;return}this.editData.hasMoved=!1,Qe(s),f.handles.points[2]=f.handles.points[3]=l,this.editData.handleIndex=f.handles.points.length-1},this._mouseDragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l,isNearFirstLine:f,isNearSecondLine:u}=this.editData,{data:d}=a;if(l){const{deltaPoints:h}=i,g=h.world,{textBox:p}=d.handles,{worldPosition:v}=p;v[0]+=g[0],v[1]+=g[1],v[2]+=g[2],p.hasMoved=!0}else if(c===void 0&&(f||u)){const{deltaPoints:h}=i,g=h.world,p=d.handles.points;f?[p[0],p[1]].forEach(x=>{x[0]+=g[0],x[1]+=g[1],x[2]+=g[2]}):u&&[p[2],p[3]].forEach(x=>{x[0]+=g[0],x[1]+=g[1],x[2]+=g[2]}),a.invalidated=!0}else{const{currentPoints:h}=i,g=h.world;d.handles.points[c]=[...g],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return s.handles.points.length<4&&Ot(i.annotationUID),i.highlighted=!1,s.handles.activeHandleIndex=null,re(n),pe(o),a&&en(i),this.editData=null,this.angleStartedNotYetCompleted=!1,i.annotationUID},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._mouseUpCallback),n.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._mouseUpCallback),n.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),n.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),n.addEventListener(F.MOUSE_DOWN,this._mouseDownCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),n.removeEventListener(F.MOUSE_MOVE,this._mouseDragCallback),n.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),n.removeEventListener(F.MOUSE_DOWN,this._mouseDownCallback)},this.renderAnnotation=(n,i)=>{var d;let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let h=0;ha.worldToCanvas(fe));!v.cachedStats[l]||v.cachedStats[l].angle==null?(v.cachedStats[l]={angle:null,arc1Angle:null,arc2Angle:null,points:{world:{arc1Start:null,arc1End:null,arc2Start:null,arc2End:null,arc1Angle:null,arc2Angle:null},canvas:{arc1Start:null,arc1End:null,arc2Start:null,arc2End:null,arc1Angle:null,arc2Angle:null}}},this._calculateCachedStats(g,f,n)):g.invalidated&&this._throttledCalculateCachedStats(g,f,n);let T;if(!rr(p)&&!this.editData&&m!==null&&(T=[S[m]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;T&&sn(i,p,"0",S,{color:y,lineDash:C,lineWidth:w});const _=[S[0],S[1]],E=[S[2],S[3]];let D="line1";if(It(i,p,D,_[0],_[1],{color:y,width:w,lineDash:C}),o=!0,S.length<4)return o;D="line2",It(i,p,D,E[0],E[1],{color:y,width:w,lineDash:C}),D="linkLine";const b=wa(_[0],_[1]),I=wa(E[0],E[1]);It(i,p,D,b,I,{color:y,lineWidth:"1",lineDash:"1,4"});const{arc1Start:R,arc1End:M,arc2End:L,arc2Start:A}=v.cachedStats[l].points.canvas,{arc1Angle:G,arc2Angle:P}=v.cachedStats[l];if(this.configuration.showArcLines&&(D="arc1",It(i,p,D,R,M,{color:y,lineWidth:"1"}),D="arc2",It(i,p,D,A,L,{color:y,lineWidth:"1"})),!((d=v.cachedStats[l])!=null&&d.angle))continue;const N=this.getLinkedTextBoxStyle(u,g);if(!N.visibility){v.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const V=this.configuration.getTextLines(v,l);if(!v.handles.textBox.hasMoved){const fe=$i(S);v.handles.textBox.worldPosition=a.canvasToWorld(fe)}const $=a.worldToCanvas(v.handles.textBox.worldPosition),Y=ei(i,p,"cobbAngleText",V,$,S,{},N),{x:ne,y:Q,width:ee,height:de}=Y;if(v.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([ne,Q]),topRight:a.canvasToWorld([ne+ee,Q]),bottomLeft:a.canvasToWorld([ne,Q+de]),bottomRight:a.canvasToWorld([ne+ee,Q+de])},this.configuration.showArcLines){const fe="arcAngle1",le=[`${G.toFixed(2)} °`],k=wa(R,M);pl(i,p,fe,le,k,{...N,padding:3});const O="arcAngle2",B=[`${P.toFixed(2)} °`],U=wa(A,L);pl(i,p,O,B,U,{...N,padding:3})}}return o},this.distanceToLines=({viewport:n,points:i,canvasCoords:o,proximity:a})=>{const[s,c,l,f]=i,u=n.worldToCanvas(s),d=n.worldToCanvas(c),h=n.worldToCanvas(l),g=n.worldToCanvas(f),p={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},v={start:{x:h[0],y:h[1]},end:{x:g[0],y:g[1]}},x=Pr([p.start.x,p.start.y],[p.end.x,p.end.y],[o[0],o[1]]),m=Pr([v.start.x,v.start.y],[v.end.x,v.end.y],[o[0],o[1]]);let y=!1,w=!1;return x<=a?y=!0:m<=a&&(w=!0),{distanceToPoint:x,distanceToPoint2:m,isNearFirstLine:y,isNearSecondLine:w}},this.getArcsStartEndPoints=({firstLine:n,secondLine:i,mid1:o,mid2:a})=>{const s=[o,a],c=ed(n,s),l=ed(i,s),f=c>90?1:0,u=l>90?0:1,d=wa(s[0],s[1]),h=Math.sqrt((s[1][0]-s[0][0])**2+(s[1][1]-s[0][1])**2),g=.1,p=wa(n[0],n[1]),v=wa(i[0],i[1]),x=[n[f][0]-p[0],n[f][1]-p[1]],m=Math.sqrt(x[0]**2+x[1]**2),y=[x[0]/m,x[1]/m],w=[p[0]+y[0]*h*g,p[1]+y[1]*h*g],C=[d[0]-o[0],d[1]-o[1]],S=Math.sqrt(C[0]**2+C[1]**2),T=[C[0]/S,C[1]/S],_=[o[0]+T[0]*h*g,o[1]+T[1]*h*g],E=[i[u][0]-v[0],i[u][1]-v[1]],D=Math.sqrt(E[0]**2+E[1]**2),b=[E[0]/D,E[1]/D],I=[v[0]+b[0]*h*g,v[1]+b[1]*h*g],R=[d[0]-a[0],d[1]-a[1]],M=Math.sqrt(R[0]**2+R[1]**2),L=[R[0]/M,R[1]/M],A=[a[0]+L[0]*h*g,a[1]+L[1]*h*g];return{arc1Start:w,arc1End:_,arc2Start:I,arc2End:A,arc1Angle:c>90?180-c:c,arc2Angle:l>90?180-l:l}},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,25,{trailing:!0})}handleSelectedCallback(e,r,n,i="mouse"){const o=e.detail,{element:a}=o,{data:s}=r;r.highlighted=!0;let c=!1,l;n.worldPosition?c=!0:l=s.handles.points.findIndex(u=>u===n);const f=He(a,this.getToolName());this.editData={annotation:r,viewportIdsToRender:f,handleIndex:l,movingTextBox:c},this._activateModify(a),Qe(a),re(a),pe(f),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data;if(i.handles.points.length!==4)return;const o=[null,null],a=[null,null];let s=Number.MAX_VALUE;for(let T=0;T<2;T+=1)for(let _=2;_<4;_+=1){const E=Cr(i.handles.points[T],i.handles.points[_]);Ec.worldToCanvas(T)),u=[f[0],f[1]],d=[f[2],f[3]],h=wa(u[0],u[1]),g=wa(d[0],d[1]),{arc1Start:p,arc1End:v,arc2End:x,arc2Start:m,arc1Angle:y,arc2Angle:w}=this.getArcsStartEndPoints({firstLine:u,secondLine:d,mid1:h,mid2:g}),{cachedStats:C}=i,S=Object.keys(C);for(let T=0;T{if(this.startedDrawing)return;this.startedDrawing=!0;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;if(!(l instanceof ln))throw new Error("UltrasoundDirectionalTool can only be used on a StackViewport");Qe(a),this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=l.getFrameOfReferenceUID(),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:p,referencedImageId:g},data:{handles:{points:[[...s],[...s]],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ut(v,a);const x=He(a,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:x,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),n.preventDefault(),pe(x),v},this.isPointNearTool=(n,i,o,a)=>!1,this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(!(c&&!l)){if(this.startedDrawing&&f.handles.points.length===1){this.editData.handleIndex=1;return}this.startedDrawing=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o),re(o),this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID),pe(s),c&&en(a),this.editData=null,this.isDrawing=!1}},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c,movingTextBox:l}=this.editData,{data:f}=a;if(l){const{deltaPoints:u}=i,d=u.world,{textBox:h}=f.handles,{worldPosition:g}=h;g[0]+=d[0],g[1]+=d[1],g[2]+=d[2],h.hasMoved=!0}else if(c===void 0){const{deltaPoints:u}=i,d=u.world;f.handles.points.forEach(g=>{g[0]+=d[0],g[1]+=d[1],g[2]+=d[2]}),a.invalidated=!0}else{const{currentPoints:u}=i,d=u.world;f.handles.points[c]=[...d],a.invalidated=!0}this.editData.hasMoved=!0,re(o),pe(s)},this.cancel=n=>{if(this.isDrawing){this.isDrawing=!1,this._deactivateDraw(n),this._deactivateModify(n),ct(n);const{annotation:i,viewportIdsToRender:o,newAnnotation:a}=this.editData,{data:s}=i;return i.highlighted=!1,s.handles.activeHandleIndex=null,pe(o),a&&en(i),this.editData=null,this.startedDrawing=!1,i.annotationUID}},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this._activateDraw=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l=this.getTargetId(a),f=a.getRenderingEngine(),u={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let d=0;da.worldToCanvas(M));if(!p.cachedStats[l]||p.cachedStats[l].xValues==null?(p.cachedStats[l]={xValues:[0,0],yValues:[0,0],isHorizontal:!1,units:[""],isUnitless:!1},this._calculateCachedStats(h,f,n)):h.invalidated&&this._throttledCalculateCachedStats(h,f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let y="0";if(gm(i,g,y,m[0],{color:x},0),o=!0,m.length!==2)return o;if(y="1",gm(i,g,y,m[1],{color:x},1),p.cachedStats[l].isUnitless){const M=`${g}-line-1`;It(i,g,"1",m[0],m[1],{color:x,width:1,shadow:this.configuration.shadow},M)}else{const M=m[0],L=m[1],A=L[1]-M[1],G=L[0]-M[0],P=p.cachedStats[l].isHorizontal;let N=[0,0];P?N=[M[0]+G,M[1]]:N=[M[0],M[1]+A];let V=`${g}-line-1`,$="1";It(i,g,$,m[0],N,{color:x,width:1,shadow:this.configuration.shadow},V),V=`${g}-line-2`,$="2",It(i,g,$,m[1],N,{color:x,width:1,lineDash:[1,1],shadow:this.configuration.shadow},V)}const C=this.getLinkedTextBoxStyle(u,h);if(!C.visibility){p.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const S=this.configuration.getTextLines(p,l,this.configuration);if(!p.handles.textBox.hasMoved){const M=m[1];p.handles.textBox.worldPosition=a.canvasToWorld(M)}const T=a.worldToCanvas(p.handles.textBox.worldPosition),E=ei(i,g,"1",S,T,m,{},C),{x:D,y:b,width:I,height:R}=E;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([D,b]),topRight:a.canvasToWorld([D+I,b]),bottomLeft:a.canvasToWorld([D,b+R]),bottomRight:a.canvasToWorld([D+I,b+R])}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}toolSelectedCallback(e,r,n,i){}handleSelectedCallback(e,r,n){const i=e.detail,{element:o}=i,{data:a}=r;r.highlighted=!0;const s=He(o,this.getToolName());let c;n.worldPosition||(c=a.handles.points.findIndex(l=>l===n)),this.editData={handleIndex:c,annotation:r,viewportIdsToRender:s},this._activateModify(o),Qe(o),re(o),pe(s),e.preventDefault()}_calculateCachedStats(e,r,n){const i=e.data,{element:o}=n.viewport;if(i.handles.points.length!==2)return;const{cachedStats:a}=i,s=Object.keys(a);for(let c=0;cMath.abs(b),w=[v[0],m[0]],C=[v[1],m[1]],S=[x[0],x[1]]}a[l]={xValues:w,yValues:C,isHorizontal:T,units:S,isUnitless:_}}return e.invalidated=!1,fn(e,o),a}}function m2e(t,e,r){const n=t.cachedStats[e],{xValues:i,yValues:o,units:a,isUnitless:s,isHorizontal:c}=n;if(s)return[`${yt(i[0])} px`];if(r.displayBothAxesDistances){const l=Math.abs(i[1]-i[0]),f=Math.abs(o[1]-o[0]);return[`${yt(l)} ${a[0]}`,`${yt(f)} ${a[1]}`]}if(c){const l=Math.abs(i[1]-i[0]);return[`${yt(l)} ${a[0]}`]}else{const l=Math.abs(o[1]-o[0]);return[`${yt(l)} ${a[1]}`]}}Ok.toolName="UltrasoundDirectionalTool";class V2 extends ar{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{getTextCallback:v2e,changeTextCallback:y2e,canvasPosition:[10,10],canvasSize:10}}){super(e,r),this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c,u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=this.getReferencedImageId(l,s,d,h),p=V2.createAnnotation({metadata:{...l.getViewReference(),referencedImageId:g}});Ut(p,a);const v=He(a,this.getToolName());return n.preventDefault(),pe(v),this.configuration.getTextCallback(x=>{if(!x){Ot(p.annotationUID),pe(v),this.isDrawing=!1;return}p.data.text=x,en(p),pe(v)}),p},this.isPointNearTool=(n,i,o,a)=>{re(n);const{canvasPosition:s,canvasSize:c}=this.configuration;return s!=null&&s.length?Math.abs(o[0]-s[0]+c/2)<=c/2&&Math.abs(o[1]-s[1]+c/2)<=c/2:!1},this.toolSelectedCallback=(n,i)=>{i.highlighted=!0,n.preventDefault()},this._endCallback=n=>{const i=n.detail,{element:o}=i;this._deactivateModify(o),ct(o)},this.doubleClickCallback=n=>{const i=n.detail,{element:o}=i;let a=_t(this.getToolName(),o);if(a=this.filterInteractableAnnotationsForElement(o,a),!(a!=null&&a.length))return;const s=a.find(l=>this.isPointNearTool(o,l,i.currentPoints.canvas,6));if(!s)return;const c=s;this.configuration.changeTextCallback(s,n.detail,this._doneChangingTextCallback.bind(this,o,c)),this.isDrawing=!1,n.stopImmediatePropagation(),n.preventDefault()},this._activateModify=n=>{ve.isInteractingWithTool=!0,n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback)},this._deactivateModify=n=>{ve.isInteractingWithTool=!1,n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n,{element:s}=a;let c=_t(this.getToolName(),s);if(!(c!=null&&c.length)||(c=this.filterInteractableAnnotationsForElement(s,c),!(c!=null&&c.length)))return o;const l={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let f=0;fx+p),g,{color:h,width:1}),o=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o}return o}}cancel(){}handleSelectedCallback(e,r,n){}_doneChangingTextCallback(e,r,n){r.data.text=n,re(e);const i=He(e,this.getToolName());pe(i),fn(r,e)}_isInsideVolume(e,r,n){return In(e,n)&&In(r,n)}}function v2e(t){return t(prompt("Enter your annotation:"))}function y2e(t,e,r){return r(prompt("Enter your annotation:"))}V2.toolName="KeyImage";class Mk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.preMouseDownCallback=n=>this._deleteNearbyAnnotations(n,"mouse"),this.preTouchStartCallback=n=>this._deleteNearbyAnnotations(n,"touch")}_deleteNearbyAnnotations(e,r){const{renderingEngineId:n,viewportId:i,element:o,currentPoints:a}=e.detail,s=Cn(i,n);if(!s)return!1;const c=s._toolInstances,l=[];for(const f in c){const u=c[f];if(typeof u.isPointNearTool!="function"||typeof u.filterInteractableAnnotationsForElement!="function")continue;const d=_t(f,o);if(!d.length)continue;const h=u.filterInteractableAnnotationsForElement(o,d)||[];for(const g of h)u.isPointNearTool(o,g,a.canvas,10,r)&&l.push(g.annotationUID)}for(const f of l)Vi(f),Ot(f);return e.preventDefault(),!0}}Mk.toolName="Eraser";const{transformWorldToIndex:x2e}=Yt;function w2e(t,e){const{points:r,segmentsLocked:n,segmentIndex:i,segmentationId:o}=e,{viewport:a}=t,s=_A({operationData:e,viewport:t.viewport});if(!s){console.warn("No data found for fillRectangle");return}const{segmentationImageData:c,segmentationVoxelManager:l}=s;let f=r.map(b=>x2e(c,b));f=f.map(b=>b.map(I=>Math.round(I)));const u=Qs(f,c.getDimensions()),h=a instanceof ln||KA(f),g=c.getDirection(),p=c.getSpacing(),{viewPlaneNormal:v}=a.getCamera(),x=qa({direction:g,spacing:p},v),m=oN(r);let[[y,w],[C,S],[T,_]]=m;y-=x,w+=x,C-=x,S+=x,T-=x,_+=x;const E=h?()=>!0:b=>{const[I,R,M]=b,L=I>=y&&I<=w,A=R>=C&&R<=S,G=M>=T&&M<=_;return L&&A&&G},D=({value:b,index:I})=>{n.includes(b)||l.setAtIndex(I,i)};l.forEach(D,{isInObject:E,boundsIJK:u,imageData:c}),Ei(o)}function Rk(t,e){w2e(t,e)}function C2e(t,e,r=!0){const n=Object.assign({},e,{segmentIndex:0});Rk(t,n)}function S2e(t,e){C2e(t,e,!0)}class Lk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Rk,ERASE_INSIDE:S2e},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l}=c;this.isDrawing=!0;const f=l.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=Il(l.id);if(!h)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:g}=h,p=No(g),v=Dl(g),x=ts(l.id,g,p),{representationData:m}=Ct(g),y=m[Ge.Labelmap],w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:[...u],viewUp:[...d],FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:x},data:{handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null}}},C=He(a,this.getToolName());if(this.editData={annotation:w,segmentIndex:p,segmentationId:g,segmentsLocked:v,segmentColor:x,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null},l instanceof Mn){const{volumeId:S}=y,T=_e.getVolume(S);this.editData={...this.editData,volumeId:S,referencedVolumeId:T.referencedVolumeId}}else{const S=Gi(l.id,g);this.editData={...this.editData,imageId:S}}return this._activateDraw(a),Qe(a),n.preventDefault(),pe(C),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,handleIndex:c}=this.editData,{data:l}=a,{currentPoints:f}=i,u=re(o),{worldToCanvas:d,canvasToWorld:h}=u.viewport,g=f.world,{points:p}=l.handles;p[c]=[...g];let v,x,m,y,w,C,S,T;switch(c){case 0:case 3:v=d(p[0]),y=d(p[3]),x=[y[0],v[1]],m=[v[0],y[1]],C=h(x),S=h(m),p[1]=C,p[2]=S;break;case 1:case 2:x=d(p[1]),m=d(p[2]),v=[m[0],x[1]],y=[x[0],m[1]],w=h(v),T=h(y),p[0]=w,p[3]=T;break}a.invalidated=!0,this.editData.hasMoved=!0,pe(s)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=a;if(s&&!c)return;l.handles.activeHandleIndex=null,this._deactivateDraw(o),ct(o);const f=re(o),u={...this.editData,points:l.handles.points};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(f,u)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{annotation:s}=this.editData,c=s.metadata,l=s.annotationUID,f=s.data,{points:u}=f.handles,d=u.map(p=>a.worldToCanvas(p)),h=`rgb(${c.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(Nh(i,l,"0",d[0],d[3],{color:h}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}Lk.toolName="RectangleScissor";class Nk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:OA,ERASE_INSIDE:LA},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=o.canvas,l=re(a),{viewport:f}=l;this.isDrawing=!0;const u=f.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=Il(f.id);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:p}=g,v=No(p),x=Dl(p),m=ts(f.id,p,v),{representationData:y}=Ct(p),w=y.Labelmap;if(!w)throw new Error("No labelmap data found for the active segmentation, create one before using scissors tool");const C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:f.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},S=[f.id];if(this.editData={annotation:C,centerCanvas:c,segmentIndex:v,segmentationId:p,segmentsLocked:x,segmentColor:m,viewportIdsToRender:S,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null},f instanceof Mn){const{volumeId:T}=w,_=_e.getVolume(T);this.editData={...this.editData,volumeId:T,referencedVolumeId:_.referencedVolumeId}}else{const T=Gi(f.id,p);this.editData={...this.editData,imageId:T}}return this._activateDraw(a),Qe(a),n.preventDefault(),pe(S),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=re(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerCanvas:g}=this.editData,{data:p}=d,v=Math.abs(s[0]-g[0]),x=Math.abs(s[1]-g[1]),m=Math.sqrt(v*v+x*x),y=[g[0],g[1]+m],w=[g[0],g[1]-m],C=[g[0]-m,g[1]],S=[g[0]+m,g[1]];p.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=a,{viewPlaneNormal:f,viewUp:u}=a.metadata;if(s&&!c)return;l.handles.activeHandleIndex=null,this._deactivateDraw(o),ct(o);const d=re(o),h={...this.editData,points:l.handles.points,viewPlaneNormal:f,viewUp:u,strategySpecificConfiguration:{}};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(d,h)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback),n.addEventListener(F.TOUCH_END,this._endCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{viewportIdsToRender:s}=this.editData;if(!s.includes(a.id))return o;const{annotation:c}=this.editData,l=c.metadata,f=c.annotationUID,u=c.data,{points:d}=u.handles,h=d.map(w=>a.worldToCanvas(w)),g=h[0],p=h[1],v=[Math.floor((g[0]+p[0])/2),Math.floor((g[1]+p[1])/2)],x=Math.abs(g[1]-Math.floor((g[1]+p[1])/2)),m=`rgb(${l.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(bi(i,f,"0",v,x,{color:m}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}Nk.toolName="CircleScissor";class Pk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:MA,ERASE_INSIDE:RA},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}}){super(e,r),this.preMouseDownCallback=n=>{if(this.isDrawing===!0)return;const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=o.canvas,l=re(a),{viewport:f}=l;this.isDrawing=!0;const u=f.getCamera(),{viewPlaneNormal:d,viewUp:h}=u,g=Il(f.id);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:p}=g,v=No(p),x=Dl(p),m=ts(f.id,p,v);this.isDrawing=!0;const y={metadata:{viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:f.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{invalidated:!0,handles:{points:[[...s],[...s],[...s],[...s]],activeHandleIndex:null},cachedStats:{},highlighted:!0}},w=[f.id];this.editData={annotation:y,centerCanvas:c,segmentIndex:v,segmentationId:p,segmentsLocked:x,segmentColor:m,toolGroupId:this.toolGroupId,viewportIdsToRender:w,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1,volumeId:null,referencedVolumeId:null,imageId:null};const{representationData:C}=Ct(p),S=C[Ge.Labelmap];if(f instanceof Mn){const{volumeId:T}=S,_=_e.getVolume(T);this.editData={...this.editData,volumeId:T,referencedVolumeId:_.referencedVolumeId}}else this.editData={...this.editData};return this._activateDraw(a),Qe(a),n.preventDefault(),pe(w),!0},this._dragCallback=n=>{this.isDrawing=!0;const i=n.detail,{element:o}=i,{currentPoints:a}=i,s=a.canvas,c=re(o),{renderingEngine:l,viewport:f}=c,{canvasToWorld:u}=f,{annotation:d,viewportIdsToRender:h,centerCanvas:g}=this.editData,{data:p}=d,v=Math.abs(s[0]-g[0]),x=Math.abs(s[1]-g[1]),m=Math.sqrt(v*v+x*x),y=[g[0],g[1]+m],w=[g[0],g[1]-m],C=[g[0]-m,g[1]],S=[g[0]+m,g[1]];p.handles.points=[u(y),u(w),u(C),u(S)],d.invalidated=!0,this.editData.hasMoved=!0,pe(h)},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,newAnnotation:s,hasMoved:c,segmentIndex:l,segmentsLocked:f}=this.editData,{data:u}=a,{viewPlaneNormal:d,viewUp:h}=a.metadata;if(s&&!c)return;a.highlighted=!1,u.handles.activeHandleIndex=null,this._deactivateDraw(o),ct(o);const g=re(o),p={...this.editData,points:u.handles.points,segmentIndex:l,segmentsLocked:f,viewPlaneNormal:d,viewUp:h};this.editData=null,this.isDrawing=!1,this.applyActiveStrategy(g,p)},this._activateDraw=n=>{n.addEventListener(F.MOUSE_UP,this._endCallback),n.addEventListener(F.MOUSE_DRAG,this._dragCallback),n.addEventListener(F.MOUSE_CLICK,this._endCallback),n.addEventListener(F.MOUSE_MOVE,this._dragCallback),n.addEventListener(F.TOUCH_END,this._endCallback),n.addEventListener(F.TOUCH_TAP,this._endCallback),n.addEventListener(F.TOUCH_DRAG,this._dragCallback)},this._deactivateDraw=n=>{n.removeEventListener(F.MOUSE_UP,this._endCallback),n.removeEventListener(F.MOUSE_DRAG,this._dragCallback),n.removeEventListener(F.MOUSE_CLICK,this._endCallback),n.removeEventListener(F.MOUSE_MOVE,this._dragCallback),n.removeEventListener(F.TOUCH_END,this._endCallback),n.removeEventListener(F.TOUCH_DRAG,this._dragCallback),n.removeEventListener(F.TOUCH_TAP,this._endCallback)},this.renderAnnotation=(n,i)=>{let o=!1;if(!this.editData)return o;const{viewport:a}=n,{viewportIdsToRender:s}=this.editData;if(!s.includes(a.id))return o;const{annotation:c}=this.editData,l=c.metadata,f=c.annotationUID,u=c.data,{points:d}=u.handles,h=d.map(w=>a.worldToCanvas(w)),g=h[0],p=h[1],v=[Math.floor((g[0]+p[0])/2),Math.floor((g[1]+p[1])/2)],x=Math.abs(g[1]-Math.floor((g[1]+p[1])/2)),m=`rgb(${l.segmentColor.slice(0,3)})`;return a.getRenderingEngine()?(bi(i,f,"0",v,x,{color:m}),o=!0,o):(console.warn("Rendering Engine has been destroyed"),o)}}}Pk.toolName="SphereScissor";const{transformWorldToIndex:hf}=Yt;class Ak extends DS{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{storePointData:!1,numSlicesToPropagate:10,calculatePointsInsideVolume:!1,getTextLines:T2e,statsCalculator:Ya,showTextBox:!1}}){super(e,r),this.isHandleOutsideImage=!1,this.addNewAnnotation=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l,renderingEngine:f}=c;this.isDrawing=!0;const u=l.getCamera(),{viewPlaneNormal:d,viewUp:h}=u;let g,p,v;if(l instanceof ln)throw new Error("Stack Viewport Not implemented");{const T=this.getTargetId(l);v=da(T),p=_e.getVolume(v),g=Xa(p,s,d)}const x=qa(p,d),m=this._getStartCoordinate(s,x,d),y=this._getEndCoordinate(s,x,d),w=l.getFrameOfReferenceUID(),C={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:[...d],viewUp:[...h],FrameOfReferenceUID:w,referencedImageId:g,volumeId:v,spacingInNormal:x,enabledElement:c},data:{label:"",startCoordinate:m,endCoordinate:y,handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[[...s],[...s]],activeHandleIndex:null},cachedStats:{pointsInVolume:[],projectionPoints:[],statistics:[]},labelmapUID:null}};this._computeProjectionPoints(C,p),Ut(C,a);const S=He(a,this.getToolName());return this.editData={annotation:C,viewportIdsToRender:S,newAnnotation:!0,hasMoved:!1},this._activateDraw(a),Qe(a),n.preventDefault(),pe(S),C},this._endCallback=n=>{const i=n.detail,{element:o}=i,{annotation:a,viewportIdsToRender:s,newAnnotation:c,hasMoved:l}=this.editData,{data:f}=a;if(c&&!l)return;a.highlighted=!1,f.handles.activeHandleIndex=null,this._deactivateModify(o),this._deactivateDraw(o),ct(o);const u=re(o);this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(a.annotationUID);const d=this.getTargetId(u.viewport),h=_e.getVolume(d.split(/volumeId:|\?/)[1]);this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(a,h,d,u),pe(s),c&&en(a)},this.renderAnnotation=(n,i)=>{let o=!1;const{viewport:a}=n;let s=_t(this.getToolName(),a.element);if(!(s!=null&&s.length))return o;s=b2(s,a.getCamera());const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:n.viewport.id};for(let l=0;la.worldToCanvas(Y)),C=w[0],S=Qc(w),{centerPointRadius:T}=this.configuration,_=td(w),E=a.getCamera().focalPoint,D=a.getCamera().viewPlaneNormal;let b=h,I=g;Array.isArray(h)&&(b=this._getCoordinateForViewplaneNormal(b,D),d.startCoordinate=b),Array.isArray(g)&&(I=this._getCoordinateForViewplaneNormal(I,D),d.endCoordinate=I);const R=Rs(d.startCoordinate),M=Rs(d.endCoordinate),L=this._getCoordinateForViewplaneNormal(E,D),A=Rs(L);if(AMath.max(R,M))continue;const G=Rs((d.startCoordinate+d.endCoordinate)/2);let P=!1;if(A===G&&(P=!0),d.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(D)]=G,f.invalidated&&this._throttledCalculateCachedStats(f,n),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),o;let N;if(!Ur(u))continue;!rr(u)&&!this.editData&&v!==null&&P&&(N=[w[v]]),N&&sn(i,u,"0",N,{color:y});let V=x,$=m;P?(V=x,$=[]):$=[5,5];const H="0";if(bi(i,u,H,C,S,{color:y,lineDash:$,lineWidth:V}),T>0&&S>3*T&&bi(i,u,`${H}-center`,C,T,{color:y,lineDash:m,lineWidth:x}),o=!0,this.configuration.showTextBox==!0&&this.configuration.calculatePointsInsideVolume==!0){const Y=this.getLinkedTextBoxStyle(c,f);if(!Y.visibility){d.handles.textBox={hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}};continue}const ne=this.configuration.getTextLines(d);if(!ne||ne.length===0)continue;let Q;d.handles.textBox.hasMoved||(Q=$i(_),d.handles.textBox.worldPosition=a.canvasToWorld(Q));const ee=a.worldToCanvas(d.handles.textBox.worldPosition),fe=ei(i,u,"1",ne,ee,w,{},Y),{x:le,y:k,width:O,height:B}=fe;d.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([le,k]),topRight:a.canvasToWorld([le+O,k]),bottomLeft:a.canvasToWorld([le,k+B]),bottomRight:a.canvasToWorld([le+O,k+B])}}}return o},this._throttledCalculateCachedStats=Qr(this._calculateCachedStatsTool,100,{trailing:!0})}_computeProjectionPoints(e,r){const{data:n,metadata:i}=e,{viewPlaneNormal:o,spacingInNormal:a}=i,{imageData:s}=r,{startCoordinate:c,endCoordinate:l}=n,{points:f}=n.handles,u=hf(s,f[0]),d=hf(s,f[0]),h=to(f),g=we();s.indexToWorldVec3(u,g);const p=we();s.indexToWorldVec3(d,p),this._getIndexOfCoordinatesForViewplaneNormal(o)==2?(g[2]=c,p[2]=l,h[0][2]=c,h[1][2]=c):this._getIndexOfCoordinatesForViewplaneNormal(o)==0?(g[0]=c,p[0]=l,h[0][0]=c,h[1][0]=c):this._getIndexOfCoordinatesForViewplaneNormal(o)==1&&(g[1]=c,p[1]=l,h[0][1]=c,h[1][1]=c);const v=Cr(g,p),x=[];for(let m=0;m{const w=we();return Vt(w,y,o,m),Array.from(w)}));n.cachedStats.projectionPoints=x}_computePointsInsideVolume(e,r,n,i){var D,b,I;const{data:o,metadata:a}=e,{viewPlaneNormal:s,viewUp:c}=a,{viewport:l}=i,f=o.cachedStats.projectionPoints,u=[[]],d=this.getTargetImageData(n),h=o.handles.points.map(R=>l.worldToCanvas(R)),[g,p]=td(h),v=l.canvasToWorld(g),x=l.canvasToWorld(p),{worldWidth:m,worldHeight:y}=k2(s,c,v,x),w=Bi(d,o.handles),C=qC(d),S=Math.abs(Math.PI*(m/w.scale/2)*(y/C/w.scale/2)),T={isPreScaled:os(l,n),isSuvScaled:this.isSuvScaled(l,n,e.metadata.referencedImageId)},_=bl(a.Modality,e.metadata.referencedImageId,T);for(let R=0;Rl.worldToCanvas(le)),[A,G]=td(L),P=l.canvasToWorld(A),N=l.canvasToWorld(G),V=P,$=N,{dimensions:H,imageData:Y,voxelManager:ne}=r,Q=hf(Y,V),ee=hf(Y,M),de=this._getIndexOfCoordinatesForViewplaneNormal(s);Q[0]=Math.floor(Q[0]),Q[1]=Math.floor(Q[1]),Q[2]=Math.floor(Q[2]),Q[de]=ee[de];const fe=hf(Y,$);if(fe[0]=Math.floor(fe[0]),fe[1]=Math.floor(fe[1]),fe[2]=Math.floor(fe[2]),fe[de]=ee[de],this._isInsideVolume(Q,fe,H)){const le=Math.min(Q[0],fe[0]),k=Math.max(Q[0],fe[0]),O=Math.min(Q[1],fe[1]),B=Math.max(Q[1],fe[1]),U=Math.min(Q[2],fe[2]),z=Math.max(Q[2],fe[2]),j=[[le,k],[O,B],[U,z]],ae={center:M,xRadius:Math.abs(P[0]-N[0])/2,yRadius:Math.abs(P[1]-N[1])/2,zRadius:Math.abs(P[2]-N[2])/2},he=ne.forEach(this.configuration.statsCalculator.statsCallback,{isInObject:ye=>_2(ae,ye),boundsIJK:j,imageData:Y,returnPoints:this.configuration.storePointData});u.push(he)}}const E=this.configuration.statsCalculator.getStatistics();o.cachedStats.pointsInVolume=u,o.cachedStats.statistics={Modality:a.Modality,area:S,mean:(D=E.mean)==null?void 0:D.value,stdDev:(b=E.stdDev)==null?void 0:b.value,max:(I=E.max)==null?void 0:I.value,statsArray:E.array,areaUnit:w.areaUnit,modalityUnit:_}}_calculateCachedStatsTool(e,r){const n=e.data,{viewport:i}=r,{cachedStats:o}=n,a=this.getTargetId(i),s=_e.getVolume(a.split(/volumeId:|\?/)[1]);return this._computeProjectionPoints(e,s),this.configuration.calculatePointsInsideVolume&&this._computePointsInsideVolume(e,s,a,r),e.invalidated=!1,fn(e,i.element),o}_getStartCoordinate(e,r,n){const i=this.configuration.numSlicesToPropagate,o=Math.round(i/2),a=we();return Vt(a,e,n,o*-r),this._getCoordinateForViewplaneNormal(a,n)}_getEndCoordinate(e,r,n){const i=this.configuration.numSlicesToPropagate,o=i-Math.round(i/2),a=we();return Vt(a,e,n,o*r),this._getCoordinateForViewplaneNormal(a,n)}_getIndexOfCoordinatesForViewplaneNormal(e){const r=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])];return r.indexOf(Math.max(...r))}_getCoordinateForViewplaneNormal(e,r){const n=this._getIndexOfCoordinatesForViewplaneNormal(r);return e[n]}}function T2e(t){const e=t.cachedStats.statistics,{area:r,mean:n,max:i,stdDev:o,areaUnit:a,modalityUnit:s}=e;if(n===void 0)return;const c=[];return c.push(`Area: ${yt(r)} ${a}`),c.push(`Mean: ${yt(n)} ${s}`),c.push(`Max: ${yt(i)} ${s}`),c.push(`Std Dev: ${yt(o)} ${s}`),c}Ak.toolName="CircleROIStartEndThreshold";const{transformWorldToIndex:VE,isEqual:xy}=Yt;class kk extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"]}){super(e,r),this.preMouseDownCallback=n=>{const i=n.detail,{currentPoints:o,element:a}=i,s=o.world,c=re(a),{viewport:l}=c,f=l.getCamera(),{viewPlaneNormal:u}=f,d=Il(l.id);if(!d)throw new Error("No active segmentation detected, create one before using scissors tool");const{segmentationId:h}=d,g=No(h),p=Dl(h),{representationData:v}=Ct(h);let x,m,y,w;if(l instanceof Mn){const{volumeId:L}=v[Ge.Labelmap],A=_e.getVolume(L);({dimensions:x,direction:m}=A),w=A.voxelManager,y=VE(A.imageData,s)}else{const L=Gi(l.id,h);if(!L)throw new Error("No active segmentation imageId detected, create one before using scissors tool");const{imageData:A}=l.getImageData();x=A.getDimensions(),m=A.getDirection(),w=_e.getImage(L).voxelManager,y=VE(A,s)}const C=this.getFixedDimension(u,m);if(C===void 0){console.warn("Oblique paint fill not yet supported");return}const{floodFillGetter:S,getLabelValue:T,getScalarDataPositionFromPlane:_,inPlaneSeedPoint:E,fixedDimensionValue:D}=this.generateHelpers(w,x,y,C);if(y[0]<0||y[0]>=x[0]||y[1]<0||y[1]>=x[1]||y[2]<0||y[2]>=x[2])return;const b=T(y[0],y[1],y[2]);if(p.includes(b))return;const I=xm(S,E),{flooded:R}=I;R.forEach(L=>{const A=_(L[0],L[1]);w.setAtIndex(A,g)});const M=this.getFramesModified(C,D,I);return Ei(h,M),!0},this.getFramesModified=(n,i,o)=>{const{boundaries:a}=o;if(n===2)return[i];let s=1/0,c=-1/0;for(let f=0;fc&&(c=u)}const l=[];for(let f=s;f<=c;f++)l.push(f);return l},this.generateHelpers=(n,i,o,a=2)=>{let s,c;switch(a){case 0:s=o[0],c=[o[1],o[2]];break;case 1:s=o[1],c=[o[0],o[2]];break;case 2:s=o[2],c=[o[0],o[1]];break;default:throw new Error(`Invalid fixedDimension: ${a}`)}const l=(h,g,p)=>n.toIndex([h,g,p]),f=(h,g,p)=>n.getAtIJK(h,g,p),u=this.generateFloodFillGetter(i,a,s,f);return{getScalarDataPositionFromPlane:this.generateGetScalarDataPositionFromPlane(l,a,s),getLabelValue:f,floodFillGetter:u,inPlaneSeedPoint:c,fixedDimensionValue:s}},this.generateFloodFillGetter=(n,i,o,a)=>{let s;switch(i){case 0:s=(c,l)=>{if(!(c>=n[1]||c<0||l>=n[2]||l<0))return a(o,c,l)};break;case 1:s=(c,l)=>{if(!(c>=n[0]||c<0||l>=n[2]||l<0))return a(c,o,l)};break;case 2:s=(c,l)=>{if(!(c>=n[0]||c<0||l>=n[1]||l<0))return a(c,l,o)};break;default:throw new Error(`Invalid fixedDimension: ${i}`)}return s},this.generateGetScalarDataPositionFromPlane=(n,i,o)=>{let a;switch(i){case 0:a=(s,c)=>n(o,s,c);break;case 1:a=(s,c)=>n(s,o,c);break;case 2:a=(s,c)=>n(s,c,o);break;default:throw new Error(`Invalid fixedDimension: ${i}`)}return a}}getFixedDimension(e,r){const n=r.slice(0,3),i=r.slice(3,6),o=r.slice(6,9),a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],s=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(xy(a,s))return 0;const c=[Math.abs(i[0]),Math.abs(i[1]),Math.abs(i[2])];if(xy(a,c))return 1;const l=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];if(xy(a,l))return 2}}kk.toolName="PaintFill";const _2e={TOP_LEFT:"TOP_LEFT",TOP_RIGHT:"TOP_RIGHT",BOTTOM_LEFT:"BOTTOM_LEFT",BOTTOM_RIGHT:"BOTTOM_RIGHT"};var IS={Corners:_2e};const{vtkErrorMacro:wy}=W,{Corners:rp}=IS;function E2e(t,e){e.classHierarchy.push("vtkOrientationMarkerWidget");const r={...t},n=[],i=lO.newInstance(),o=new ResizeObserver(d=>{t.updateViewport()});let a=null,s=null,c=null,l=null,f=null;function u(){e._interactor.isAnimating()||t.updateMarkerOrientation()}e._onParentRendererChanged=()=>t.updateViewport(),t.computeViewport=()=>{const d=e.parentRenderer||e._interactor.getCurrentRenderer(),[h,g,p,v]=d.getViewport(),x=e._interactor.getView(),m=x.getSize(),[y,w]=x.getViewportSize(d),C=Math.min(y,w);let S=e.viewportSize*C;S=Math.max(Math.min(e.minPixelSize,C),Math.min(e.maxPixelSize,S));const T=S/m[0],_=S/m[1];switch(e.viewportCorner){case rp.TOP_LEFT:return[h,v-_,h+T,v];case rp.TOP_RIGHT:return[p-T,v-_,p,v];case rp.BOTTOM_LEFT:return[h,g,h+T,g+_];case rp.BOTTOM_RIGHT:return[p-T,g,p,g+_];default:return wy("Invalid widget corner"),null}},t.updateViewport=()=>{e.enabled&&(i.setViewport(...t.computeViewport()),e._interactor.render())},t.updateMarkerOrientation=()=>{const h=(e.parentRenderer||e._interactor.getCurrentRenderer()).getActiveCamera();if(!h)return;const g=h.getReferenceByName("position"),p=h.getReferenceByName("focalPoint"),v=h.getReferenceByName("viewUp");if(n[0]!==g[0]||n[1]!==g[1]||n[2]!==g[2]||n[3]!==p[0]||n[4]!==p[1]||n[5]!==p[2]||n[6]!==v[0]||n[7]!==v[1]||n[8]!==v[2]){n[0]=g[0],n[1]=g[1],n[2]=g[2],n[3]=p[0],n[4]=p[1],n[5]=p[2],n[6]=v[0],n[7]=v[1],n[8]=v[2];const x=i.getActiveCamera();x.setPosition(g[0],g[1],g[2]),x.setFocalPoint(p[0],p[1],p[2]),x.setViewUp(v[0],v[1],v[2]),i.resetCamera()}},t.setEnabled=d=>{var h,g;if(d){if(e.enabled)return;if(!e.actor){wy("Must set actor before enabling orientation marker.");return}if(!e._interactor){wy("Must set interactor before enabling orientation marker.");return}const p=e.parentRenderer||e._interactor.getCurrentRenderer(),v=p.getRenderWindow();v.addRenderer(i),v.getNumberOfLayers()<2&&v.setNumberOfLayers(2),i.setLayer(v.getNumberOfLayers()-1),i.setInteractive(e.interactiveRenderer),i.addViewProp(e.actor),e.actor.setVisibility(!0),a=p.onEvent(x=>{x.type==="ActiveCameraEvent"&&(s&&s.unsubscribe(),s=x.camera.onModified(u))}),s=p.getActiveCamera().onModified(u),c=e._interactor.onAnimation(t.updateMarkerOrientation),l=e._interactor.onEndAnimation(t.updateMarkerOrientation),o.observe(e._interactor.getView().getCanvas()),t.updateViewport(),t.updateMarkerOrientation(),e.enabled=!0}else{if(!e.enabled)return;e.enabled=!1,o.disconnect(),a.unsubscribe(),a=null,s.unsubscribe(),s=null,c.unsubscribe(),c=null,l.unsubscribe(),l=null,e.actor.setVisibility(!1),i.removeViewProp(e.actor);const p=(g=(h=e._interactor)==null?void 0:h.findPokedRenderer())==null?void 0:g.getRenderWindow();p&&p.removeRenderer(i)}t.modified()},t.setViewportCorner=d=>{d!==e.viewportCorner&&(e.viewportCorner=d,t.updateViewport())},t.setViewportSize=d=>{const h=Math.min(1,Math.max(0,d));h!==e.viewportSize&&(e.viewportSize=h,t.updateViewport())},t.setActor=d=>{const h=e.enabled;t.setEnabled(!1),e.actor=d,t.setEnabled(h)},t.getRenderer=()=>i,t.delete=()=>{r.delete(),f&&(f.unsubscribe(),f=null),a&&(a.unsubscribe(),a=null),s&&(s.unsubscribe(),s=null),c&&(c.unsubscribe(),c=null),l&&(l.unsubscribe(),l=null),o.disconnect()},f=t.onModified(t.updateViewport)}const D2e={viewportCorner:IS.Corners.BOTTOM_LEFT,viewportSize:.2,minPixelSize:50,maxPixelSize:200,parentRenderer:null,interactiveRenderer:!1};function Vk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,D2e,r),W.obj(t,e),W.get(t,e,["enabled","viewportCorner","viewportSize","interactiveRenderer"]),W.setGet(t,e,["_interactor","minPixelSize","maxPixelSize","parentRenderer"]),W.get(t,e,["actor"]),W.moveToProtected(t,e,["interactor"]),E2e(t,e)}const b2e=W.newInstance(Vk,"vtkOrientationMarkerWidget");var FE={newInstance:b2e,extend:Vk,...IS};function Fk(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];const[r,n,i,o]=e,s=t.getContext("2d").getImageData(r,n,i||t.width,o||t.height),c=C0.newInstance({type:"vtkImageData"});c.setOrigin(0,0,0),c.setSpacing(1,1,1),c.setExtent(0,(i||t.width)-1,0,(o||t.height)-1,0,0);const l=tt.newInstance({numberOfComponents:4,values:new Uint8Array(s.data.buffer)});return l.setName("scalars"),c.getPointData().setScalars(l),c}function I2e(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{flipX:!1,flipY:!1,rotate:0};const r=document.createElement("canvas");r.width=t.width,r.height=t.height;const n=r.getContext("2d"),{flipX:i,flipY:o,rotate:a}=e;return n.translate(r.width/2,r.height/2),n.scale(i?-1:1,o?-1:1),n.rotate(a*Math.PI/180),n.drawImage(t,-t.width/2,-t.height/2),Fk(r)}var O2e={canvasToImageData:Fk,imageToImageData:I2e};const Uk={default:{defaultStyle:{fontStyle:"bold",fontFamily:"Arial",fontColor:"black",fontSizeScale:t=>t/2,faceColor:"white",edgeThickness:.1,edgeColor:"black",resolution:400},xMinusFaceProperty:{text:"X-",faceColor:"yellow"},xPlusFaceProperty:{text:"X+",faceColor:"yellow"},yMinusFaceProperty:{text:"Y-",faceColor:"red"},yPlusFaceProperty:{text:"Y+",faceColor:"red"},zMinusFaceProperty:{text:"Z-",faceColor:"#008000"},zPlusFaceProperty:{text:"Z+",faceColor:"#008000"}},lps:{xMinusFaceProperty:{text:"R",faceRotation:-90},xPlusFaceProperty:{text:"L",faceRotation:90},yMinusFaceProperty:{text:"A",faceRotation:0},yPlusFaceProperty:{text:"P",faceRotation:180},zMinusFaceProperty:{text:"I",faceRotation:180},zPlusFaceProperty:{text:"S",faceRotation:0}}};function Bk(t,e){e.set(t)}function M2e(t,e){return Bk(Uk[t],e)}function R2e(t,e){Uk[t]=e}var L2e={applyDefinitions:Bk,applyPreset:M2e,registerStylePreset:R2e};const N2e={xPlus:0,xMinus:1,yPlus:2,yMinus:3,zPlus:4,zMinus:5};function P2e(t,e){e.classHierarchy.push("vtkAnnotatedCubeActor"),e.xPlusFaceProperty={...e.xPlusFaceProperty},e.xMinusFaceProperty={...e.xMinusFaceProperty},e.yPlusFaceProperty={...e.yPlusFaceProperty},e.yMinusFaceProperty={...e.yMinusFaceProperty},e.zPlusFaceProperty={...e.zPlusFaceProperty},e.zMinusFaceProperty={...e.zMinusFaceProperty};let r=null;const n=document.createElement("canvas"),i=oa.newInstance(),o=Dh.newInstance();o.setInterpolate(!0);function a(c){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;l&&Object.assign(e[`${c}FaceProperty`],l);const f={...e.defaultStyle,...e[`${c}FaceProperty`]};n.width=f.resolution,n.height=f.resolution;const u=n.getContext("2d");u.fillStyle=f.faceColor,u.fillRect(0,0,n.width,n.height),f.edgeThickness>0&&(u.strokeStyle=f.edgeColor,u.lineWidth=f.edgeThickness*n.width,u.strokeRect(0,0,n.width,n.height)),u.save(),u.translate(0,n.height),u.scale(1,-1),u.translate(n.width/2,n.height/2),u.rotate(-Math.PI*(f.faceRotation/180));const d=f.fontSizeScale(f.resolution);u.fillStyle=f.fontColor,u.textAlign="center",u.textBaseline="middle",u.font=`${f.fontStyle} ${d}px "${f.fontFamily}"`,u.fillText(f.text,0,0),u.restore();const h=O2e.canvasToImageData(n);o.setInputData(h,N2e[c]),t.modified()}function s(){r=iM.newInstance({generate3DTextureCoordinates:!0}),i.setInputConnection(r.getOutputPort()),a("xPlus"),a("xMinus"),a("yPlus"),a("yMinus"),a("zPlus"),a("zMinus")}t.setDefaultStyle=c=>{e.defaultStyle={...e.defaultStyle,...c},s()},t.setXPlusFaceProperty=c=>a("xPlus",c),t.setXMinusFaceProperty=c=>a("xMinus",c),t.setYPlusFaceProperty=c=>a("yPlus",c),t.setYMinusFaceProperty=c=>a("yMinus",c),t.setZPlusFaceProperty=c=>a("zPlus",c),t.setZMinusFaceProperty=c=>a("zMinus",c),s(),i.setInputConnection(r.getOutputPort()),t.setMapper(i),t.addTexture(o)}const A2e={defaultStyle:{text:"",faceColor:"white",faceRotation:0,fontFamily:"Arial",fontColor:"black",fontStyle:"normal",fontSizeScale:t=>t/1.8,edgeThickness:.1,edgeColor:"black",resolution:200}};function Gk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,A2e,r),ca.extend(t,e,r),W.get(t,e,["defaultStyle","xPlusFaceProperty","xMinusFaceProperty","yPlusFaceProperty","yMinusFaceProperty","zPlusFaceProperty","zMinusFaceProperty"]),P2e(t,e)}const k2e=W.newInstance(Gk,"vtkAnnotatedCubeActor");var UE={newInstance:k2e,extend:Gk,Presets:L2e};const{vtkErrorMacro:V2e}=W;function F2e(t,e){let r=0;return t.map((n,i)=>i===r?(r+=n+1,n):n+e)}function ip(t,e,r,n){t.set(F2e(e,r),n)}function U2e(t,e){e.classHierarchy.push("vtkAppendPolyData"),t.requestData=(r,n)=>{const i=t.getNumberOfInputPorts();if(!i){V2e("No input specified.");return}if(i===1){n[0]=r[0];return}const o=hr.newInstance();let a=0,s=0,c=1,l=1,f=0,u=0,d=0,h=0,g=!0,p=!0,v=!0;for(let b=0;bc?s:c);const M=I.getPointData();M?(g=g&&M.getNormals()!==null,p=p&&M.getTCoords()!==null,v=v&&M.getScalars()!==null):(g=!1,p=!1,v=!1)}e.outputPointsPrecision===M1.SINGLE?s=vt.FLOAT:e.outputPointsPrecision===M1.DOUBLE&&(s=vt.DOUBLE);const x=Ld.newInstance({dataType:s});x.setNumberOfPoints(a);const m=x.getData(),y=new Uint32Array(f),w=new Uint32Array(u),C=new Uint32Array(d),S=new Uint32Array(h);let T=null,_=null,E=null;const D=r[i-1];if(g){const b=D.getPointData().getNormals();T=tt.newInstance({numberOfComponents:3,numberOfTuples:a,size:3*a,dataType:b.getDataType(),name:b.getName()})}if(p){const b=D.getPointData().getTCoords();_=tt.newInstance({numberOfComponents:2,numberOfTuples:a,size:2*a,dataType:b.getDataType(),name:b.getName()})}if(v){const b=D.getPointData().getScalars();E=tt.newInstance({numberOfComponents:b.getNumberOfComponents(),numberOfTuples:a,size:a*b.getNumberOfComponents(),dataType:b.getDataType(),name:b.getName()})}a=0,f=0,u=0,d=0,h=0;for(let b=0;b2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,B2e,r),W.setGet(t,e,["outputPointsPrecision"]),W.obj(t,e),W.algo(t,e,1,1),U2e(t,e)}const G2e=W.newInstance(Wk,"vtkAppendPolyData");var zk={newInstance:G2e,extend:Wk};function W2e(t,e){e.classHierarchy.push("vtkConeSource");function r(n,i){if(e.deleted)return;let o=i[0];const a=2*Math.PI/e.resolution,s=-e.height/2,c=e.resolution+1,l=4*e.resolution+1+e.resolution;let f=0;const u=W.newTypedArray(e.pointType,c*3);let d=0;const h=new Uint32Array(l);u[0]=e.height/2,u[1]=0,u[2]=0,e.capping&&(h[d++]=e.resolution);for(let g=0;ge.resolution?1:g+2;br.buildFromRadian().translate(...e.center).rotateFromDirections([1,0,0],e.direction).apply(u),o=hr.newInstance(),o.getPoints().setData(u,3),o.getPolys().setData(h,1),i[0]=o}t.requestData=r}const z2e={height:1,radius:.5,resolution:6,center:[0,0,0],direction:[1,0,0],capping:!0,pointType:"Float64Array"};function $k(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,z2e,r),W.obj(t,e),W.setGet(t,e,["height","radius","resolution","capping"]),W.setGetArray(t,e,["center","direction"],3),W.algo(t,e,0,1),W2e(t,e)}const $2e=W.newInstance($k,"vtkConeSource");var j2e={newInstance:$2e,extend:$k};function H2e(t,e){e.classHierarchy.push("vtkCylinderSource");function r(n,i){if(e.deleted)return;let o=i[0];const a=2*Math.PI/e.resolution;let s=2*e.resolution,c=5*e.resolution;e.capping&&(s=4*e.resolution,c=7*e.resolution+2);const l=W.newTypedArray(e.pointType,s*3);let f=0;const u=new Uint32Array(c),d=new Float32Array(s*3),h=tt.newInstance({numberOfComponents:3,values:d,name:"Normals"}),g=new Float32Array(s*2),p=tt.newInstance({numberOfComponents:2,values:g,name:"TCoords"}),v=[0,0,0],x=[0,0,0],m=[0,0,0],y=[0,0,0],w=[0,0],C=[0,0],S=e.otherRadius==null?e.radius:e.otherRadius;for(let T=0;TT*-1)).apply(l),o=hr.newInstance(),o.getPoints().setData(l,3),o.getPolys().setData(u,1),o.getPointData().setNormals(h),o.getPointData().setTCoords(p),i[0]=o}t.requestData=r}const K2e={height:1,initAngle:0,radius:1,resolution:6,center:[0,0,0],direction:[0,1,0],capping:!0,pointType:"Float64Array"};function jk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,K2e,r),W.obj(t,e),W.setGet(t,e,["height","initAngle","otherRadius","radius","resolution","capping"]),W.setGetArray(t,e,["center","direction"],3),W.algo(t,e,0,1),H2e(t,e)}const q2e=W.newInstance(jk,"vtkCylinderSource");var X2e={newInstance:q2e,extend:jk};function Y2e(t,e){e.classHierarchy.push("vtkArrowSource");function r(n,i){if(e.deleted)return;const o=X2e.newInstance({capping:!0});o.setResolution(e.shaftResolution),o.setRadius(e.shaftRadius),o.setHeight(1-e.tipLength),o.setCenter(0,(1-e.tipLength)*.5,0);const a=o.getOutputData(),s=a.getPoints().getData(),c=a.getPointData().getNormals().getData();br.buildFromDegree().rotateZ(-90).apply(s).apply(c);const l=j2e.newInstance();l.setResolution(e.tipResolution),l.setHeight(e.tipLength),l.setRadius(e.tipRadius);const f=l.getOutputData(),u=f.getPoints().getData();br.buildFromRadian().translate(1-e.tipLength*.5,0,0).apply(u);const d=zk.newInstance();d.setInputData(a),d.addInputData(f);const h=d.getOutputData(),g=h.getPoints().getData();br.buildFromRadian().translate(-.5+e.tipLength*.5,0,0).apply(g),e.invert?(br.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(-1,-1,-1).apply(g),i[0]=h):(br.buildFromRadian().rotateFromDirections([1,0,0],e.direction).scale(1,1,1).apply(g),i[0]=d.getOutputData())}t.requestData=r}const J2e={tipResolution:6,tipRadius:.1,tipLength:.35,shaftResolution:6,shaftRadius:.03,invert:!1,direction:[1,0,0],pointType:"Float64Array"};function Hk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,J2e,r),W.obj(t,e),W.setGet(t,e,["tipResolution","tipRadius","tipLength","shaftResolution","shaftRadius","invert"]),W.setGetArray(t,e,["direction"],3),W.algo(t,e,0,1),Y2e(t,e)}const Z2e=W.newInstance(Hk,"vtkArrowSource");var Cy={newInstance:Z2e,extend:Hk};function Sy(t){const e=t.getPoints().getBounds(),r=[-(e[0]+e[1])*.5,-(e[2]+e[3])*.5,-(e[4]+e[5])*.5];br.buildFromDegree().translate(...r).apply(t.getPoints().getData())}function Ty(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const n=t.getPoints().getBounds(),i=[0,0,0];r?i[e]=-n[e*2+1]:i[e]=-n[e*2],br.buildFromDegree().translate(...i).apply(t.getPoints().getData())}function _y(t,e,r,n){const i=t.getPoints().getData().length,o=new Uint8ClampedArray(i);let a=0;for(;a{let i={...e.config,...e.xConfig};const o=Cy.newInstance({direction:[1,0,0],...i}).getOutputData();e.config.recenter?Sy(o):Ty(o,0,i.invert),_y(o,...i.color),i={...e.config,...e.yConfig};const a=Cy.newInstance({direction:[0,1,0],...i}).getOutputData();e.config.recenter?Sy(a):Ty(a,1,i.invert),_y(a,...i.color),i={...e.config,...e.zConfig};const s=Cy.newInstance({direction:[0,0,1],...i}).getOutputData();e.config.recenter?Sy(s):Ty(s,2,i.invert),_y(s,...i.color);const c=zk.newInstance();c.setInputData(o),c.addInputData(a),c.addInputData(s),r.setInputConnection(c.getOutputPort())},t.update();const n=W.debounce(t.update,0);t.setXAxisColor=i=>t.setXConfig({...t.getXConfig(),color:i}),t.setYAxisColor=i=>t.setYConfig({...t.getYConfig(),color:i}),t.setZAxisColor=i=>t.setZConfig({...t.getZConfig(),color:i}),t.getXAxisColor=()=>e.getXConfig().color,t.getYAxisColor=()=>e.getYConfig().color,t.getZAxisColor=()=>e.getZConfig().color,e._onConfigChanged=n,e._onXConfigChanged=n,e._onYConfigChanged=n,e._onZConfigChanged=n}function eve(t){return{config:{recenter:!0,tipResolution:60,tipRadius:.1,tipLength:.2,shaftResolution:60,shaftRadius:.03,invert:!1,...t==null?void 0:t.config},xConfig:{color:[255,0,0],invert:!1,...t==null?void 0:t.xConfig},yConfig:{color:[255,255,0],invert:!1,...t==null?void 0:t.yConfig},zConfig:{color:[0,128,0],invert:!1,...t==null?void 0:t.zConfig}}}function Kk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};ca.extend(t,e,eve(r)),W.setGet(t,e,["config","xConfig","yConfig","zConfig"]),Q2e(t,e)}const tve=W.newInstance(Kk,"vtkAxesActor");var nve={newInstance:tve,extend:Kk},qk={exports:{}};(function(t,e){(function(r,n){t.exports=n()})(Dr,function(){return function(r){var n={};function i(o){if(n[o])return n[o].exports;var a=n[o]={i:o,l:!1,exports:{}};return r[o].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return i.m=r,i.c=n,i.d=function(o,a,s){i.o(o,a)||Object.defineProperty(o,a,{enumerable:!0,get:s})},i.r=function(o){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},i.t=function(o,a){if(1&a&&(o=i(o)),8&a||4&a&&typeof o=="object"&&o&&o.__esModule)return o;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:o}),2&a&&typeof o!="string")for(var c in o)i.d(s,c,(function(l){return o[l]}).bind(null,c));return s},i.n=function(o){var a=o&&o.__esModule?function(){return o.default}:function(){return o};return i.d(a,"a",a),a},i.o=function(o,a){return Object.prototype.hasOwnProperty.call(o,a)},i.p="",i(i.s=184)}([function(r,n,i){function o(a){for(var s in a)n.hasOwnProperty(s)||(n[s]=a[s])}Object.defineProperty(n,"__esModule",{value:!0}),o(i(240)),o(i(251)),o(i(175)),o(i(107)),o(i(29)),o(i(73)),o(i(106)),o(i(30)),o(i(252)),o(i(52)),o(i(97)),o(i(253)),o(i(37)),o(i(51)),o(i(173)),o(i(176)),o(i(172)),o(i(108)),o(i(254)),o(i(255)),o(i(256)),o(i(72)),o(i(177)),o(i(105)),o(i(17)),o(i(257)),o(i(12)),o(i(174))},function(r,n,i){var o=this&&this.__values||function(y){var w=typeof Symbol=="function"&&Symbol.iterator,C=w&&y[w],S=0;if(C)return C.call(y);if(y&&typeof y.length=="number")return{next:function(){return y&&S>=y.length&&(y=void 0),{value:y&&y[S++],done:!y}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(212);n.FixedSizeSet=a.FixedSizeSet;var s=i(213);n.ObjectCache=s.ObjectCache;var c=i(214);n.CompareCache=c.CompareCache;var l=i(215);n.Lazy=l.Lazy;var f=i(216);function u(y,w,C){if(x(y))y.forEach(function(T,_){return w.call(C,_,T)});else for(var S in y)y.hasOwnProperty(S)&&w.call(C,S,y[S])}function d(y){var w,C;if(h(y))return y;if(p(y)){var S=[];try{for(var T=o(y),_=T.next();!_.done;_=T.next()){var E=_.value;S.push(d(E))}}catch(I){w={error:I}}finally{try{_&&!_.done&&(C=T.return)&&C.call(T)}finally{if(w)throw w.error}}return S}if(g(y)){S={};for(var D in y)if(y.hasOwnProperty(D)){var b=y[D];S[D]=d(b)}return S}return y}function h(y){return!!y&&Object.prototype.toString.call(y)==="[object Function]"}function g(y){var w=typeof y;return!!y&&(w==="function"||w==="object")}function p(y){return Array.isArray(y)}function v(y){return y instanceof Set}function x(y){return y instanceof Map}function m(y){if(g(y)){var w=Object.getPrototypeOf(y),C=w.constructor;return w&&C&&typeof C=="function"&&C instanceof C&&Function.prototype.toString.call(C)===Function.prototype.toString.call(Object)}return!1}n.StringWalker=f.StringWalker,n.applyMixin=function(y,w){for(var C=[],S=2;S>6|192;else{if(T>55295&&T<56320){if(++S>=y.length)throw new Error("Incomplete surrogate pair.");var _=y.charCodeAt(S);if(_<56320||_>57343)throw new Error("Invalid surrogate character.");T=65536+((1023&T)<<10)+(1023&_),w[C++]=T>>18|240,w[C++]=T>>12&63|128}else w[C++]=T>>12|224;w[C++]=T>>6&63|128}w[C++]=63&T|128}}return w.subarray(0,C)},n.utf8Decode=function(y){for(var w="",C=0;C127)if(S>191&&S<224){if(C>=y.length)throw new Error("Incomplete 2-byte sequence.");S=(31&S)<<6|63&y[C++]}else if(S>223&&S<240){if(C+1>=y.length)throw new Error("Incomplete 3-byte sequence.");S=(15&S)<<12|(63&y[C++])<<6|63&y[C++]}else{if(!(S>239&&S<248))throw new Error("Unknown multi-byte start.");if(C+2>=y.length)throw new Error("Incomplete 4-byte sequence.");S=(7&S)<<18|(63&y[C++])<<12|(63&y[C++])<<6|63&y[C++]}if(S<=65535)w+=String.fromCharCode(S);else{if(!(S<=1114111))throw new Error("Code point exceeds UTF-16 limit.");S-=65536,w+=String.fromCharCode(S>>10|55296),w+=String.fromCharCode(1023&S|56320)}}return w}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),function(o){o[o.Before=0]="Before",o[o.Equal=1]="Equal",o[o.After=2]="After"}(n.BoundaryPosition||(n.BoundaryPosition={})),function(o){o[o.None=0]="None",o[o.Capturing=1]="Capturing",o[o.AtTarget=2]="AtTarget",o[o.Bubbling=3]="Bubbling"}(n.EventPhase||(n.EventPhase={})),function(o){o[o.Element=1]="Element",o[o.Attribute=2]="Attribute",o[o.Text=3]="Text",o[o.CData=4]="CData",o[o.EntityReference=5]="EntityReference",o[o.Entity=6]="Entity",o[o.ProcessingInstruction=7]="ProcessingInstruction",o[o.Comment=8]="Comment",o[o.Document=9]="Document",o[o.DocumentType=10]="DocumentType",o[o.DocumentFragment=11]="DocumentFragment",o[o.Notation=12]="Notation"}(n.NodeType||(n.NodeType={})),function(o){o[o.Disconnected=1]="Disconnected",o[o.Preceding=2]="Preceding",o[o.Following=4]="Following",o[o.Contains=8]="Contains",o[o.ContainedBy=16]="ContainedBy",o[o.ImplementationSpecific=32]="ImplementationSpecific"}(n.Position||(n.Position={})),function(o){o[o.Accept=1]="Accept",o[o.Reject=2]="Reject",o[o.Skip=3]="Skip"}(n.FilterResult||(n.FilterResult={})),function(o){o[o.All=4294967295]="All",o[o.Element=1]="Element",o[o.Attribute=2]="Attribute",o[o.Text=4]="Text",o[o.CDataSection=8]="CDataSection",o[o.EntityReference=16]="EntityReference",o[o.Entity=32]="Entity",o[o.ProcessingInstruction=64]="ProcessingInstruction",o[o.Comment=128]="Comment",o[o.Document=256]="Document",o[o.DocumentType=512]="DocumentType",o[o.DocumentFragment=1024]="DocumentFragment",o[o.Notation=2048]="Notation"}(n.WhatToShow||(n.WhatToShow={})),function(o){o[o.StartToStart=0]="StartToStart",o[o.StartToEnd=1]="StartToEnd",o[o.EndToEnd=2]="EndToEnd",o[o.EndToStart=3]="EndToStart"}(n.HowToCompare||(n.HowToCompare={}))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(241);n.Cast=o.Cast;var a=i(150);n.Guard=a.Guard;var s=i(242);n.EmptySet=s.EmptySet},function(r,n,i){var o=i(11),a=i(55).f,s=i(21),c=i(25),l=i(80),f=i(119),u=i(123);r.exports=function(d,h){var g,p,v,x,m,y=d.target,w=d.global,C=d.stat;if(g=w?o:C?o[y]||l(y,{}):(o[y]||{}).prototype)for(p in h){if(x=h[p],v=d.noTargetGet?(m=a(g,p))&&m.value:g[p],!u(w?p:y+(C?".":"#")+p,d.forced)&&v!==void 0){if(typeof x==typeof v)continue;f(x,v)}(d.sham||v&&v.sham)&&s(x,"sham",!0),c(g,p,x,d)}}},function(r,n,i){var o=i(11),a=i(81),s=i(14),c=i(58),l=i(86),f=i(124),u=a("wks"),d=o.Symbol,h=f?d:d&&d.withoutSetter||c;r.exports=function(g){return s(u,g)||(l&&s(d,g)?u[g]=d[g]:u[g]=h("Symbol."+g)),u[g]}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(1),a=i(29),s=function(){function c(){this._features={mutationObservers:!0,customElements:!0,slots:!0,steps:!0},this._window=null,this._compareCache=new o.CompareCache,this._rangeList=new o.FixedSizeSet}return c.prototype.setFeatures=function(l){if(l===void 0&&(l=!0),o.isObject(l))for(var f in l)this._features[f]=l[f]||!1;else for(var f in this._features)this._features[f]=l},Object.defineProperty(c.prototype,"features",{get:function(){return this._features},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"window",{get:function(){return this._window===null&&(this._window=a.create_window()),this._window},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"compareCache",{get:function(){return this._compareCache},enumerable:!0,configurable:!0}),Object.defineProperty(c.prototype,"rangeList",{get:function(){return this._rangeList},enumerable:!0,configurable:!0}),Object.defineProperty(c,"instance",{get:function(){return c._instance||(c._instance=new c),c._instance},enumerable:!0,configurable:!0}),c}();n.dom=s.instance},function(r,n,i){var o=this&&this.__importStar||function(m){if(m&&m.__esModule)return m;var y={};if(m!=null)for(var w in m)Object.hasOwnProperty.call(m,w)&&(y[w]=m[w]);return y.default=m,y};Object.defineProperty(n,"__esModule",{value:!0});var a=o(i(228));n.base64=a;var s=o(i(146));n.byte=s;var c=o(i(147));n.byteSequence=c;var l=o(i(96));n.codePoint=l;var f=o(i(232));n.json=f;var u=o(i(233));n.list=u;var d=o(i(234));n.map=d;var h=o(i(235));n.namespace=h;var g=o(i(236));n.queue=g;var p=o(i(237));n.set=p;var v=o(i(238));n.stack=v;var x=o(i(239));n.string=x},function(r,n){r.exports=function(i){try{return!!i()}catch{return!0}}},function(r,n,i){var o,a=this&&this.__extends||(o=function(P,N){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,$){V.__proto__=$}||function(V,$){for(var H in $)$.hasOwnProperty(H)&&(V[H]=$[H])})(P,N)},function(P,N){function V(){this.constructor=P}o(P,N),P.prototype=N===null?Object.create(N):(V.prototype=N.prototype,new V)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(P){function N(V,$){$===void 0&&($="");var H=P.call(this,$)||this;return H.name=V,H}return a(N,P),N}(Error);n.DOMException=s;var c=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"DOMStringSizeError",V)||this}return a(N,P),N}(s);n.DOMStringSizeError=c;var l=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"WrongDocumentError","The object is in the wrong document. "+V)||this}return a(N,P),N}(s);n.WrongDocumentError=l;var f=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NoDataAllowedError",V)||this}return a(N,P),N}(s);n.NoDataAllowedError=f;var u=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NoModificationAllowedError","The object can not be modified. "+V)||this}return a(N,P),N}(s);n.NoModificationAllowedError=u;var d=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotSupportedError","The operation is not supported. "+V)||this}return a(N,P),N}(s);n.NotSupportedError=d;var h=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InUseAttributeError",V)||this}return a(N,P),N}(s);n.InUseAttributeError=h;var g=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidStateError","The object is in an invalid state. "+V)||this}return a(N,P),N}(s);n.InvalidStateError=g;var p=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidModificationError","The object can not be modified in this way. "+V)||this}return a(N,P),N}(s);n.InvalidModificationError=p;var v=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NamespaceError","The operation is not allowed by Namespaces in XML. [XMLNS] "+V)||this}return a(N,P),N}(s);n.NamespaceError=v;var x=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidAccessError","The object does not support the operation or argument. "+V)||this}return a(N,P),N}(s);n.InvalidAccessError=x;var m=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"ValidationError",V)||this}return a(N,P),N}(s);n.ValidationError=m;var y=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"TypeMismatchError",V)||this}return a(N,P),N}(s);n.TypeMismatchError=y;var w=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"SecurityError","The operation is insecure. "+V)||this}return a(N,P),N}(s);n.SecurityError=w;var C=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NetworkError","A network error occurred. "+V)||this}return a(N,P),N}(s);n.NetworkError=C;var S=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"AbortError","The operation was aborted. "+V)||this}return a(N,P),N}(s);n.AbortError=S;var T=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"URLMismatchError","The given URL does not match another URL. "+V)||this}return a(N,P),N}(s);n.URLMismatchError=T;var _=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"QuotaExceededError","The quota has been exceeded. "+V)||this}return a(N,P),N}(s);n.QuotaExceededError=_;var E=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"TimeoutError","The operation timed out. "+V)||this}return a(N,P),N}(s);n.TimeoutError=E;var D=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidNodeTypeError","The supplied node is incorrect or has an incorrect ancestor for this operation. "+V)||this}return a(N,P),N}(s);n.InvalidNodeTypeError=D;var b=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"DataCloneError","The object can not be cloned. "+V)||this}return a(N,P),N}(s);n.DataCloneError=b;var I=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotImplementedError","The DOM method is not implemented by this module. "+V)||this}return a(N,P),N}(s);n.NotImplementedError=I;var R=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"HierarchyRequestError","The operation would yield an incorrect node tree. "+V)||this}return a(N,P),N}(s);n.HierarchyRequestError=R;var M=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"NotFoundError","The object can not be found here. "+V)||this}return a(N,P),N}(s);n.NotFoundError=M;var L=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"IndexSizeError","The index is not in the allowed range. "+V)||this}return a(N,P),N}(s);n.IndexSizeError=L;var A=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"SyntaxError","The string did not match the expected pattern. "+V)||this}return a(N,P),N}(s);n.SyntaxError=A;var G=function(P){function N(V){return V===void 0&&(V=""),P.call(this,"InvalidCharacterError","The string contains invalid characters. "+V)||this}return a(N,P),N}(s);n.InvalidCharacterError=G},function(r,n,i){var o=i(53),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];r.exports=function(c,l){var f,u;if(l=l||{},Object.keys(l).forEach(function(d){if(a.indexOf(d)===-1)throw new o('Unknown option "'+d+'" is met in definition of "'+c+'" YAML type.')}),this.tag=c,this.kind=l.kind||null,this.resolve=l.resolve||function(){return!0},this.construct=l.construct||function(d){return d},this.instanceOf=l.instanceOf||null,this.predicate=l.predicate||null,this.represent=l.represent||null,this.defaultStyle=l.defaultStyle||null,this.styleAliases=(f=l.styleAliases||null,u={},f!==null&&Object.keys(f).forEach(function(d){f[d].forEach(function(h){u[String(h)]=d})}),u),s.indexOf(this.kind)===-1)throw new o('Unknown kind "'+this.kind+'" is specified for "'+c+'" YAML type.')}},function(r,n,i){(function(o){var a=function(s){return s&&s.Math==Math&&s};r.exports=a(typeof globalThis=="object"&&globalThis)||a(typeof window=="object"&&window)||a(typeof self=="object"&&self)||a(typeof o=="object"&&o)||Function("return this")()}).call(this,i(78))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),n.idl_defineConst=function(o,a,s){Object.defineProperty(o,a,{writable:!1,enumerable:!0,configurable:!1,value:s})}},function(r,n){r.exports=function(i){return typeof i=="object"?i!==null:typeof i=="function"}},function(r,n){var i={}.hasOwnProperty;r.exports=function(o,a){return i.call(o,a)}},function(r,n,i){var o=i(16),a=i(115),s=i(18),c=i(56),l=Object.defineProperty;n.f=o?l:function(f,u,d){if(s(f),u=c(u,!0),s(d),a)try{return l(f,u,d)}catch{}if("get"in d||"set"in d)throw TypeError("Accessors not supported");return"value"in d&&(f[u]=d.value),f}},function(r,n,i){var o=i(8);r.exports=!o(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},function(r,n,i){var o=this&&this.__values||function(y){var w=typeof Symbol=="function"&&Symbol.iterator,C=w&&y[w],S=0;if(C)return C.call(y);if(y&&typeof y.length=="number")return{next:function(){return y&&S>=y.length&&(y=void 0),{value:y&&y[S++],done:!y}}};throw new TypeError(w?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(3),s=i(2);function c(y,w,C){if(C===void 0&&(C=!1),C&&a.Guard.isElementNode(w)&&a.Guard.isShadowRoot(w.shadowRoot)&&w.shadowRoot._firstChild)return w.shadowRoot._firstChild;if(w._firstChild)return w._firstChild;if(w===y)return null;if(w._nextSibling)return w._nextSibling;for(var S=w._parent;S&&S!==y;){if(S._nextSibling)return S._nextSibling;S=S._parent}return null}function l(){var y;return(y={})[Symbol.iterator]=function(){return{next:function(){return{done:!0,value:null}}}},y}function f(y,w,C,S){w===void 0&&(w=!1),C===void 0&&(C=!1);for(var T=w?y:c(y,y,C);T&&S&&!S(T);)T=c(y,T,C);return T}function u(y,w,C,S,T){S===void 0&&(S=!1);for(var _=c(y,w,S);_&&T&&!T(_);)_=c(y,_,S);return _}function d(y,w,C,S){var T;return w===void 0&&(w=!1),C===void 0&&(C=!1),w||y._children.size!==0?((T={})[Symbol.iterator]=function(){var _=w?y:c(y,y,C);return{next:function(){for(;_&&S&&!S(_);)_=c(y,_,C);if(_===null)return{done:!0,value:null};var E={done:!1,value:_};return _=c(y,_,C),E}}},T):l()}function h(y,w,C){w===void 0&&(w=!1);for(var S=w?y:y._parent;S&&C&&!C(S);)S=S._parent;return S}function g(y,w,C,S){for(var T=w._parent;T&&S&&!S(T);)T=T._parent;return T}function p(y){return a.Guard.isDocumentTypeNode(y)?0:a.Guard.isCharacterDataNode(y)?y._data.length:y._children.size}function v(y,w){if(w===void 0&&(w=!1),w){var C=v(y,!1);return a.Guard.isShadowRoot(C)?v(C._host,!0):C}return y._parent?v(y._parent):y}function x(y,w,C,S){C===void 0&&(C=!1),S===void 0&&(S=!1);for(var T=C?y:S&&a.Guard.isShadowRoot(y)?y._host:y._parent;T!==null;){if(T===w)return!0;T=S&&a.Guard.isShadowRoot(T)?T._host:T._parent}return!1}function m(y){for(var w=v(y),C=0,S=f(w);S!==null;){if(C++,S===y)return C;S=u(w,S)}return-1}n.tree_getFirstDescendantNode=f,n.tree_getNextDescendantNode=u,n.tree_getDescendantNodes=d,n.tree_getDescendantElements=function(y,w,C,S){var T;return w===void 0&&(w=!1),C===void 0&&(C=!1),w||y._children.size!==0?((T={})[Symbol.iterator]=function(){var _=d(y,w,C,function(D){return a.Guard.isElementNode(D)})[Symbol.iterator](),E=_.next().value;return{next:function(){for(;E&&S&&!S(E);)E=_.next().value;if(E===null)return{done:!0,value:null};var D={done:!1,value:E};return E=_.next().value,D}}},T):l()},n.tree_getSiblingNodes=function(y,w,C){var S;return w===void 0&&(w=!1),y._parent&&y._parent._children.size!==0?((S={})[Symbol.iterator]=function(){var T=y._parent?y._parent._firstChild:null;return{next:function(){for(;T&&(C&&!C(T)||!w&&T===y);)T=T._nextSibling;if(T===null)return{done:!0,value:null};var _={done:!1,value:T};return T=T._nextSibling,_}}},S):l()},n.tree_getFirstAncestorNode=h,n.tree_getNextAncestorNode=g,n.tree_getAncestorNodes=function(y,w,C){var S;return w===void 0&&(w=!1),w||y._parent?((S={})[Symbol.iterator]=function(){var T=h(y,w,C);return{next:function(){if(T===null)return{done:!0,value:null};var _={done:!1,value:T};return T=g(0,T,w,C),_}}},S):l()},n.tree_getCommonAncestor=function(y,w){if(y===w)return y._parent;for(var C=[],S=[],T=h(y,!0);T!==null;)C.push(T),T=g(0,T);for(var _=h(w,!0);_!==null;)S.push(_),_=g(0,_);for(var E=C.length,D=S.length,b=null,I=Math.min(E,D);I>0;I--){var R=C[--E];if(R!==S[--D])break;b=R}return b},n.tree_getFollowingNode=function(y,w){if(w._firstChild)return w._firstChild;if(w._nextSibling)return w._nextSibling;for(;;){var C=w._parent;if(C===null||C===y)return null;if(C._nextSibling)return C._nextSibling;w=C}},n.tree_getPrecedingNode=function(y,w){return w===y?null:w._previousSibling?(w=w._previousSibling)._lastChild?w._lastChild:w:w._parent},n.tree_isConstrained=function y(w){var C,S,T,_,E,D;switch(w._nodeType){case s.NodeType.Document:var b=!1,I=!1;try{for(var R=o(w._children),M=R.next();!M.done;M=R.next())switch(M.value._nodeType){case s.NodeType.ProcessingInstruction:case s.NodeType.Comment:break;case s.NodeType.DocumentType:if(b||I)return!1;b=!0;break;case s.NodeType.Element:if(I)return!1;I=!0;break;default:return!1}}catch(N){C={error:N}}finally{try{M&&!M.done&&(S=R.return)&&S.call(R)}finally{if(C)throw C.error}}break;case s.NodeType.DocumentFragment:case s.NodeType.Element:try{for(var L=o(w._children),A=L.next();!A.done;A=L.next())switch(A.value._nodeType){case s.NodeType.Element:case s.NodeType.Text:case s.NodeType.ProcessingInstruction:case s.NodeType.CData:case s.NodeType.Comment:break;default:return!1}}catch(N){T={error:N}}finally{try{A&&!A.done&&(_=L.return)&&_.call(L)}finally{if(T)throw T.error}}break;case s.NodeType.DocumentType:case s.NodeType.Text:case s.NodeType.ProcessingInstruction:case s.NodeType.CData:case s.NodeType.Comment:return!w.hasChildNodes()}try{for(var G=o(w._children),P=G.next();!P.done;P=G.next())if(!y(P.value))return!1}catch(N){E={error:N}}finally{try{P&&!P.done&&(D=G.return)&&D.call(G)}finally{if(E)throw E.error}}return!0},n.tree_nodeLength=p,n.tree_isEmpty=function(y){return p(y)===0},n.tree_rootNode=v,n.tree_isDescendantOf=function(y,w,C,S){C===void 0&&(C=!1),S===void 0&&(S=!1);for(var T=f(y,C,S);T!==null;){if(T===w)return!0;T=u(y,T,C,S)}return!1},n.tree_isAncestorOf=x,n.tree_isHostIncludingAncestorOf=function y(w,C,S){if(S===void 0&&(S=!1),x(w,C,S))return!0;var T=v(w);return!(!a.Guard.isDocumentFragmentNode(T)||T._host===null||!y(T._host,C,S))},n.tree_isSiblingOf=function(y,w,C){return C===void 0&&(C=!1),y!==w?y._parent!==null&&y._parent===w._parent:!!C},n.tree_isPreceding=function(y,w){var C=m(y),S=m(w);return C!==-1&&S!==-1&&v(y)===v(w)&&SC},n.tree_isParentOf=function(y,w){return y._parent===w},n.tree_isChildOf=function(y,w){return w._parent===y},n.tree_previousSibling=function(y){return y._previousSibling},n.tree_nextSibling=function(y){return y._nextSibling},n.tree_firstChild=function(y){return y._firstChild},n.tree_lastChild=function(y){return y._lastChild},n.tree_treePosition=m,n.tree_index=function(y){for(var w=0;y._previousSibling!==null;)w++,y=y._previousSibling;return w},n.tree_retarget=function(y,w){for(;;){if(!y||!a.Guard.isNode(y))return y;var C=v(y);if(!a.Guard.isShadowRoot(C)||w&&a.Guard.isNode(w)&&x(C,w,!0,!0))return y;y=C.host}}},function(r,n,i){var o=i(13);r.exports=function(a){if(!o(a))throw TypeError(String(a)+" is not an object");return a}},function(r,n,i){var o=i(24),a=i(130),s=i(49),c=i(43),l=i(88),f=c.set,u=c.getterFor("Array Iterator");r.exports=l(Array,"Array",function(d,h){f(this,{type:"Array Iterator",target:o(d),index:0,kind:h})},function(){var d=u(this),h=d.target,g=d.kind,p=d.index++;return!h||p>=h.length?(d.target=void 0,{value:void 0,done:!0}):g=="keys"?{value:p,done:!1}:g=="values"?{value:h[p],done:!1}:{value:[p,h[p]],done:!1}},"values"),s.Arguments=s.Array,a("keys"),a("values"),a("entries")},function(r,n,i){var o=i(90),a=i(25),s=i(202);o||a(Object.prototype,"toString",s,{unsafe:!0})},function(r,n,i){var o=i(16),a=i(15),s=i(40);r.exports=o?function(c,l,f){return a.f(c,l,s(1,f))}:function(c,l,f){return c[l]=f,c}},function(r,n,i){var o=i(137).charAt,a=i(43),s=i(88),c=a.set,l=a.getterFor("String Iterator");s(String,"String",function(f){c(this,{type:"String Iterator",string:String(f),index:0})},function(){var f,u=l(this),d=u.string,h=u.index;return h>=d.length?{value:void 0,done:!0}:(f=o(d,h),u.index+=f.length,{value:f,done:!1})})},function(r,n,i){var o=i(11),a=i(203),s=i(19),c=i(21),l=i(5),f=l("iterator"),u=l("toStringTag"),d=s.values;for(var h in a){var g=o[h],p=g&&g.prototype;if(p){if(p[f]!==d)try{c(p,f,d)}catch{p[f]=d}if(p[u]||c(p,u,h),a[h]){for(var v in s)if(p[v]!==s[v])try{c(p,v,s[v])}catch{p[v]=s[v]}}}}},function(r,n,i){var o=i(41),a=i(35);r.exports=function(s){return o(a(s))}},function(r,n,i){var o=i(11),a=i(21),s=i(14),c=i(80),l=i(117),f=i(43),u=f.get,d=f.enforce,h=String(String).split("String");(r.exports=function(g,p,v,x){var m=!!x&&!!x.unsafe,y=!!x&&!!x.enumerable,w=!!x&&!!x.noTargetGet;typeof v=="function"&&(typeof p!="string"||s(v,"name")||a(v,"name",p),d(v).source=h.join(typeof p=="string"?p:"")),g!==o?(m?!w&&g[p]&&(y=!0):delete g[p],y?g[p]=v:a(g,p,v)):y?g[p]=v:c(p,v)})(Function.prototype,"toString",function(){return typeof this=="function"&&u(this).source||l(this)})},function(r,n,i){var o=i(47),a=Math.min;r.exports=function(s){return s>0?a(o(s),9007199254740991):0}},function(r,n,i){var o=i(35);r.exports=function(a){return Object(o(a))}},function(r,n,i){var o=i(16),a=i(8),s=i(14),c=Object.defineProperty,l={},f=function(u){throw u};r.exports=function(u,d){if(s(l,u))return l[u];d||(d={});var h=[][u],g=!!s(d,"ACCESSORS")&&d.ACCESSORS,p=s(d,0)?d[0]:f,v=s(d,1)?d[1]:void 0;return l[u]=!!h&&!a(function(){if(g&&!o)return!0;var x={length:-1};g?c(x,1,{enumerable:!0,get:f}):x[1]=1,h.call(x,p,v)})}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(148),a=i(149),s=i(151),c=i(98),l=i(153),f=i(154),u=i(155),d=i(99),h=i(100),g=i(156),p=i(157),v=i(101),x=i(158),m=i(159),y=i(160),w=i(161),C=i(162),S=i(163),T=i(164),_=i(165),E=i(166),D=i(167),b=i(168),I=i(169),R=i(170);n.create_domImplementation=function(M){return o.DOMImplementationImpl._create(M)},n.create_window=function(){return a.WindowImpl._create()},n.create_xmlDocument=function(){return new s.XMLDocumentImpl},n.create_document=function(){return new c.DocumentImpl},n.create_abortController=function(){return new l.AbortControllerImpl},n.create_abortSignal=function(){return f.AbortSignalImpl._create()},n.create_documentType=function(M,L,A,G){return u.DocumentTypeImpl._create(M,L,A,G)},n.create_element=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_htmlElement=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_htmlUnknownElement=function(M,L,A,G){return d.ElementImpl._create(M,L,A,G)},n.create_documentFragment=function(M){return h.DocumentFragmentImpl._create(M)},n.create_shadowRoot=function(M,L){return g.ShadowRootImpl._create(M,L)},n.create_attr=function(M,L){return p.AttrImpl._create(M,L)},n.create_text=function(M,L){return v.TextImpl._create(M,L)},n.create_cdataSection=function(M,L){return x.CDATASectionImpl._create(M,L)},n.create_comment=function(M,L){return m.CommentImpl._create(M,L)},n.create_processingInstruction=function(M,L,A){return y.ProcessingInstructionImpl._create(M,L,A)},n.create_htmlCollection=function(M,L){return L===void 0&&(L=function(){return!0}),w.HTMLCollectionImpl._create(M,L)},n.create_nodeList=function(M){return C.NodeListImpl._create(M)},n.create_nodeListStatic=function(M,L){return S.NodeListStaticImpl._create(M,L)},n.create_namedNodeMap=function(M){return T.NamedNodeMapImpl._create(M)},n.create_range=function(M,L){return _.RangeImpl._create(M,L)},n.create_nodeIterator=function(M,L,A){return E.NodeIteratorImpl._create(M,L,A)},n.create_treeWalker=function(M,L){return D.TreeWalkerImpl._create(M,L)},n.create_nodeFilter=function(){return b.NodeFilterImpl._create()},n.create_mutationRecord=function(M,L,A,G,P,N,V,$,H){return I.MutationRecordImpl._create(M,L,A,G,P,N,V,$,H)},n.create_domTokenList=function(M,L){return R.DOMTokenListImpl._create(M,L)}},function(r,n,i){var o=this&&this.__values||function(p){var v=typeof Symbol=="function"&&Symbol.iterator,x=v&&p[v],m=0;if(x)return x.call(p);if(p&&typeof p.length=="number")return{next:function(){return p&&m>=p.length&&(p=void 0),{value:p&&p[m++],done:!p}}};throw new TypeError(v?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(17),c=i(3),l=i(72),f=new Map;function u(p,v){if(v!==p._root&&s.tree_isAncestorOf(p._reference,v,!0)){if(p._pointerBeforeReference)for(;;){var x=s.tree_getFollowingNode(p._root,v);if(x!==null&&s.tree_isDescendantOf(p._root,x,!0)&&!s.tree_isDescendantOf(v,x,!0))return void(p._reference=x);if(x===null)return void(p._pointerBeforeReference=!1)}if(v._previousSibling===null)v._parent!==null&&(p._reference=v._parent);else{for(var m=v._previousSibling,y=s.tree_getFirstDescendantNode(v._previousSibling,!0,!1);y!==null;)y!==null&&(m=y),y=s.tree_getNextDescendantNode(v._previousSibling,y,!0,!1);p._reference=m}}}function d(p,v,x,m,y){if(c.Guard.isSlot(p)&&v==="name"&&y===null){if(m===x||m===null&&x===""||m===""&&x===null)return;p._name=m===null||m===""?"":m,l.shadowTree_assignSlotablesForATree(s.tree_rootNode(p))}}function h(p,v,x,m,y){if(c.Guard.isSlotable(p)&&v==="slot"&&y===null){if(m===x||m===null&&x===""||m===""&&x===null)return;p._name=m===null||m===""?"":m,l.shadowTree_isAssigned(p)&&l.shadowTree_assignSlotables(p._assignedSlot),l.shadowTree_assignASlot(p)}}function g(p,v,x,m){v==="id"&&m===null&&(p._uniqueIdentifier=x||void 0)}n.dom_runRemovingSteps=function(p,v){},n.dom_runCloningSteps=function(p,v,x,m){},n.dom_runAdoptingSteps=function(p,v){},n.dom_runAttributeChangeSteps=function(p,v,x,m,y){var w,C;a.dom.features.slots&&(h.call(p,p,v,x,m,y),d.call(p,p,v,x,m,y)),g.call(p,p,v,m,y);try{for(var S=o(p._attributeChangeSteps),T=S.next();!T.done;T=S.next())T.value.call(p,p,v,x,m,y)}catch(_){w={error:_}}finally{try{T&&!T.done&&(C=S.return)&&C.call(S)}finally{if(w)throw w.error}}},n.dom_runInsertionSteps=function(p){},n.dom_runNodeIteratorPreRemovingSteps=function(p,v){u.call(p,p,v)},n.dom_hasSupportedTokens=function(p){return f.has(p)},n.dom_getSupportedTokens=function(p){return f.get(p)||new Set},n.dom_runEventConstructingSteps=function(p){},n.dom_runChildTextContentChangeSteps=function(p){}},function(r,n,i){var o=i(4),a=i(11),s=i(46),c=i(44),l=i(16),f=i(86),u=i(124),d=i(8),h=i(14),g=i(59),p=i(13),v=i(18),x=i(27),m=i(24),y=i(56),w=i(40),C=i(60),S=i(61),T=i(82),_=i(190),E=i(85),D=i(55),b=i(15),I=i(79),R=i(21),M=i(25),L=i(81),A=i(57),G=i(45),P=i(58),N=i(5),V=i(125),$=i(126),H=i(62),Y=i(43),ne=i(36).forEach,Q=A("hidden"),ee=N("toPrimitive"),de=Y.set,fe=Y.getterFor("Symbol"),le=Object.prototype,k=a.Symbol,O=s("JSON","stringify"),B=D.f,U=b.f,z=_.f,j=I.f,K=L("symbols"),ae=L("op-symbols"),he=L("string-to-symbol-registry"),ye=L("symbol-to-string-registry"),Te=L("wks"),q=a.QObject,J=!q||!q.prototype||!q.prototype.findChild,ie=l&&d(function(){return C(U({},"a",{get:function(){return U(this,"a",{value:7}).a}})).a!=7})?function(Ee,Me,Re){var We=B(le,Me);We&&delete le[Me],U(Ee,Me,Re),We&&Ee!==le&&U(le,Me,We)}:U,Z=function(Ee,Me){var Re=K[Ee]=C(k.prototype);return de(Re,{type:"Symbol",tag:Ee,description:Me}),l||(Re.description=Me),Re},te=u?function(Ee){return typeof Ee=="symbol"}:function(Ee){return Object(Ee)instanceof k},me=function(Ee,Me,Re){Ee===le&&me(ae,Me,Re),v(Ee);var We=y(Me,!0);return v(Re),h(K,We)?(Re.enumerable?(h(Ee,Q)&&Ee[Q][We]&&(Ee[Q][We]=!1),Re=C(Re,{enumerable:w(0,!1)})):(h(Ee,Q)||U(Ee,Q,w(1,{})),Ee[Q][We]=!0),ie(Ee,We,Re)):U(Ee,We,Re)},X=function(Ee,Me){v(Ee);var Re=m(Me),We=S(Re).concat(ue(Re));return ne(We,function(ut){l&&!Ae.call(Re,ut)||me(Ee,ut,Re[ut])}),Ee},Ae=function(Ee){var Me=y(Ee,!0),Re=j.call(this,Me);return!(this===le&&h(K,Me)&&!h(ae,Me))&&(!(Re||!h(this,Me)||!h(K,Me)||h(this,Q)&&this[Q][Me])||Re)},Be=function(Ee,Me){var Re=m(Ee),We=y(Me,!0);if(Re!==le||!h(K,We)||h(ae,We)){var ut=B(Re,We);return!ut||!h(K,We)||h(Re,Q)&&Re[Q][We]||(ut.enumerable=!0),ut}},Ve=function(Ee){var Me=z(m(Ee)),Re=[];return ne(Me,function(We){h(K,We)||h(G,We)||Re.push(We)}),Re},ue=function(Ee){var Me=Ee===le,Re=z(Me?ae:m(Ee)),We=[];return ne(Re,function(ut){!h(K,ut)||Me&&!h(le,ut)||We.push(K[ut])}),We};f||(M((k=function(){if(this instanceof k)throw TypeError("Symbol is not a constructor");var Ee=arguments.length&&arguments[0]!==void 0?String(arguments[0]):void 0,Me=P(Ee),Re=function(We){this===le&&Re.call(ae,We),h(this,Q)&&h(this[Q],Me)&&(this[Q][Me]=!1),ie(this,Me,w(1,We))};return l&&J&&ie(le,Me,{configurable:!0,set:Re}),Z(Me,Ee)}).prototype,"toString",function(){return fe(this).tag}),M(k,"withoutSetter",function(Ee){return Z(P(Ee),Ee)}),I.f=Ae,b.f=me,D.f=Be,T.f=_.f=Ve,E.f=ue,V.f=function(Ee){return Z(N(Ee),Ee)},l&&(U(k.prototype,"description",{configurable:!0,get:function(){return fe(this).description}}),c||M(le,"propertyIsEnumerable",Ae,{unsafe:!0}))),o({global:!0,wrap:!0,forced:!f,sham:!f},{Symbol:k}),ne(S(Te),function(Ee){$(Ee)}),o({target:"Symbol",stat:!0,forced:!f},{for:function(Ee){var Me=String(Ee);if(h(he,Me))return he[Me];var Re=k(Me);return he[Me]=Re,ye[Re]=Me,Re},keyFor:function(Ee){if(!te(Ee))throw TypeError(Ee+" is not a symbol");if(h(ye,Ee))return ye[Ee]},useSetter:function(){J=!0},useSimple:function(){J=!1}}),o({target:"Object",stat:!0,forced:!f,sham:!l},{create:function(Ee,Me){return Me===void 0?C(Ee):X(C(Ee),Me)},defineProperty:me,defineProperties:X,getOwnPropertyDescriptor:Be}),o({target:"Object",stat:!0,forced:!f},{getOwnPropertyNames:Ve,getOwnPropertySymbols:ue}),o({target:"Object",stat:!0,forced:d(function(){E.f(1)})},{getOwnPropertySymbols:function(Ee){return E.f(x(Ee))}}),O&&o({target:"JSON",stat:!0,forced:!f||d(function(){var Ee=k();return O([Ee])!="[null]"||O({a:Ee})!="{}"||O(Object(Ee))!="{}"})},{stringify:function(Ee,Me,Re){for(var We,ut=[Ee],ze=1;arguments.length>ze;)ut.push(arguments[ze++]);if(We=Me,(p(Me)||Ee!==void 0)&&!te(Ee))return g(Me)||(Me=function(ft,dt){if(typeof We=="function"&&(dt=We.call(this,ft,dt)),!te(dt))return dt}),ut[1]=Me,O.apply(null,ut)}}),k.prototype[ee]||R(k.prototype,ee,k.prototype.valueOf),H(k,"Symbol"),G[Q]=!0},function(r,n,i){var o=i(4),a=i(16),s=i(11),c=i(14),l=i(13),f=i(15).f,u=i(119),d=s.Symbol;if(a&&typeof d=="function"&&(!("description"in d.prototype)||d().description!==void 0)){var h={},g=function(){var y=arguments.length<1||arguments[0]===void 0?void 0:String(arguments[0]),w=this instanceof g?new d(y):y===void 0?d():d(y);return y===""&&(h[w]=!0),w};u(g,d);var p=g.prototype=d.prototype;p.constructor=g;var v=p.toString,x=String(d("test"))=="Symbol(test)",m=/^Symbol\((.*)\)[^)]+$/;f(p,"description",{configurable:!0,get:function(){var y=l(this)?this.valueOf():this,w=v.call(y);if(c(h,y))return"";var C=x?w.slice(7,-1):w.replace(m,"$1");return C===""?void 0:C}}),o({global:!0,forced:!0},{Symbol:g})}},function(r,n,i){i(126)("iterator")},function(r,n,i){var o,a=this&&this.__extends||(o=function(x,m){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,w){y.__proto__=w}||function(y,w){for(var C in w)w.hasOwnProperty(C)&&(y[C]=w[C])})(x,m)},function(x,m){function y(){this.constructor=x}o(x,m),x.prototype=m===null?Object.create(m):(y.prototype=m.prototype,new y)}),s=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(6),l=i(2),f=i(70),u=i(3),d=i(9),h=i(0),g=i(152),p=i(12),v=function(x){function m(){var y=x.call(this)||this;return y._parent=null,y._firstChild=null,y._lastChild=null,y._previousSibling=null,y._nextSibling=null,y}return a(m,x),Object.defineProperty(m.prototype,"_childNodes",{get:function(){return this.__childNodes||(this.__childNodes=h.create_nodeList(this))},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"_nodeDocument",{get:function(){return this._nodeDocumentOverride||c.dom.window._associatedDocument},set:function(y){this._nodeDocumentOverride=y},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"_registeredObserverList",{get:function(){return this.__registeredObserverList||(this.__registeredObserverList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeType",{get:function(){return this._nodeType},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeName",{get:function(){return u.Guard.isElementNode(this)?this._htmlUppercasedQualifiedName:u.Guard.isAttrNode(this)?this._qualifiedName:u.Guard.isExclusiveTextNode(this)?"#text":u.Guard.isCDATASectionNode(this)?"#cdata-section":u.Guard.isProcessingInstructionNode(this)?this._target:u.Guard.isCommentNode(this)?"#comment":u.Guard.isDocumentNode(this)?"#document":u.Guard.isDocumentTypeNode(this)?this._name:u.Guard.isDocumentFragmentNode(this)?"#document-fragment":""},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"baseURI",{get:function(){return g.urlSerializer(this._nodeDocument._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"isConnected",{get:function(){return u.Guard.isElementNode(this)&&h.shadowTree_isConnected(this)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"ownerDocument",{get:function(){return this._nodeType===l.NodeType.Document?null:this._nodeDocument},enumerable:!0,configurable:!0}),m.prototype.getRootNode=function(y){return h.tree_rootNode(this,!!y&&y.composed)},Object.defineProperty(m.prototype,"parentNode",{get:function(){return this._nodeType===l.NodeType.Attribute?null:this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"parentElement",{get:function(){return this._parent&&u.Guard.isElementNode(this._parent)?this._parent:null},enumerable:!0,configurable:!0}),m.prototype.hasChildNodes=function(){return this._firstChild!==null},Object.defineProperty(m.prototype,"childNodes",{get:function(){return this._childNodes},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"firstChild",{get:function(){return this._firstChild},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"lastChild",{get:function(){return this._lastChild},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"previousSibling",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nextSibling",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"nodeValue",{get:function(){return u.Guard.isAttrNode(this)?this._value:u.Guard.isCharacterDataNode(this)?this._data:null},set:function(y){y===null&&(y=""),u.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,y):u.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,this._data.length,y)},enumerable:!0,configurable:!0}),Object.defineProperty(m.prototype,"textContent",{get:function(){return u.Guard.isDocumentFragmentNode(this)||u.Guard.isElementNode(this)?h.text_descendantTextContent(this):u.Guard.isAttrNode(this)?this._value:u.Guard.isCharacterDataNode(this)?this._data:null},set:function(y){y===null&&(y=""),u.Guard.isDocumentFragmentNode(this)||u.Guard.isElementNode(this)?h.node_stringReplaceAll(y,this):u.Guard.isAttrNode(this)?h.attr_setAnExistingAttributeValue(this,y):u.Guard.isCharacterDataNode(this)&&h.characterData_replaceData(this,0,h.tree_nodeLength(this),y)},enumerable:!0,configurable:!0}),m.prototype.normalize=function(){for(var y,w,C,S,T=[],_=h.tree_getFirstDescendantNode(this,!1,!1,function(ne){return u.Guard.isExclusiveTextNode(ne)});_!==null;)T.push(_),_=h.tree_getNextDescendantNode(this,_,!1,!1,function(ne){return u.Guard.isExclusiveTextNode(ne)});for(var E=0;ER;R++)if((m||R in D)&&(_=b(T=D[R],R,E),d)){if(h)L[R]=_;else if(_)switch(d){case 3:return!0;case 5:return T;case 6:return R;case 2:f.call(L,T)}else if(v)return!1}return x?-1:p||v?v:L}};r.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},function(r,n,i){var o=this&&this.__values||function(E){var D=typeof Symbol=="function"&&Symbol.iterator,b=D&&E[D],I=0;if(b)return b.call(E);if(E&&typeof E.length=="number")return{next:function(){return E&&I>=E.length&&(E=void 0),{value:E&&E[I++],done:!E}}};throw new TypeError(D?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(E,D){var b=typeof Symbol=="function"&&E[Symbol.iterator];if(!b)return E;var I,R,M=b.call(E),L=[];try{for(;(D===void 0||D-- >0)&&!(I=M.next()).done;)L.push(I.value)}catch(A){R={error:A}}finally{try{I&&!I.done&&(b=M.return)&&b.call(M)}finally{if(R)throw R.error}}return L},s=this&&this.__spread||function(){for(var E=[],D=0;D1)throw new l.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has "+Y+" element nodes.");if(Y===1){try{for(var de=o(D._children),fe=de.next();!fe.done;fe=de.next())if(fe.value._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("The document node already has a document element node.")}catch(j){M={error:j}}finally{try{fe&&!fe.done&&(L=de.return)&&L.call(de)}finally{if(M)throw M.error}}if(b){if(H===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");for(var le=b._nextSibling;le;){if(le._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");le=le._nextSibling}}}}else if($===f.NodeType.Element){try{for(var k=o(D._children),O=k.next();!O.done;O=k.next())if(O.value._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Document already has a document element node. Node is "+E.nodeName+".")}catch(j){A={error:j}}finally{try{O&&!O.done&&(G=k.return)&&G.call(k)}finally{if(A)throw A.error}}if(b){if(H===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+E.nodeName+".");for(le=b._nextSibling;le;){if(le._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+E.nodeName+".");le=le._nextSibling}}}else if($===f.NodeType.DocumentType){try{for(var B=o(D._children),U=B.next();!U.done;U=B.next())if(U.value._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Document already has a document type node. Node is "+E.nodeName+".")}catch(j){P={error:j}}finally{try{U&&!U.done&&(N=B.return)&&N.call(B)}finally{if(P)throw P.error}}if(b)for(var z=b._previousSibling;z;){if(z._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+E.nodeName+".");z=z._previousSibling}else for(z=D._firstChild;z;){if(z._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+E.nodeName+".");z=z._nextSibling}}}}function S(E,D,b){C(E,D,b);var I=b;return I===E&&(I=E._nextSibling),w.document_adopt(E,D._nodeDocument),T(E,D,I),E}function T(E,D,b,I){var R,M;if(b!==null||E._nodeType===f.NodeType.DocumentFragment){var L=E._nodeType===f.NodeType.DocumentFragment?E._children.size:1;if(b!==null&&c.dom.rangeList.size!==0){var A=p.tree_index(b);try{for(var G=o(c.dom.rangeList),P=G.next();!P.done;P=G.next()){var N=P.value;N._start[0]===D&&N._start[1]>A&&(N._start[1]+=L),N._end[0]===D&&N._end[1]>A&&(N._end[1]+=L)}}catch(fe){R={error:fe}}finally{try{P&&!P.done&&(M=G.return)&&M.call(G)}finally{if(R)throw R.error}}}var V=E._nodeType===f.NodeType.DocumentFragment?new(Array.bind.apply(Array,s([void 0],E._children))):[E];if(E._nodeType===f.NodeType.DocumentFragment)for(;E._firstChild;)_(E._firstChild,E,!0);c.dom.features.mutationObservers&&E._nodeType===f.NodeType.DocumentFragment&&m.observer_queueTreeMutationRecord(E,[],V,null,null);for(var $=b?b._previousSibling:D._lastChild,H=b===null?-1:p.tree_index(b),Y=0;YV&&Y._start[1]--,Y._end[0]===D&&Y._end[1]>V&&Y._end[1]--}}catch(he){I={error:he}}finally{try{H&&!H.done&&(R=$.return)&&R.call($)}finally{if(I)throw I.error}}try{for(var ne=o(c.dom.rangeList),Q=ne.next();!Q.done;Q=ne.next())(Y=Q.value)._start[0]===D&&Y._start[1]>V&&(Y._start[1]-=1),Y._end[0]===D&&Y._end[1]>V&&(Y._end[1]-=1)}catch(he){M={error:he}}finally{try{Q&&!Q.done&&(L=ne.return)&&L.call(ne)}finally{if(M)throw M.error}}}if(c.dom.features.steps)try{for(var ee=o(v.nodeIterator_iteratorList()),de=ee.next();!de.done;de=ee.next()){var fe=de.value;fe._root._nodeDocument===E._nodeDocument&&y.dom_runNodeIteratorPreRemovingSteps(fe,E)}}catch(he){A={error:he}}finally{try{de&&!de.done&&(G=ee.return)&&G.call(ee)}finally{if(A)throw A.error}}var le=E._previousSibling,k=E._nextSibling;u.Guard.isDocumentNode(D)&&u.Guard.isElementNode(E)&&(D._documentElement=null),E._parent=null,D._children.delete(E);var O=E._previousSibling,B=E._nextSibling;E._previousSibling=null,E._nextSibling=null,O&&(O._nextSibling=B),B&&(B._previousSibling=O),O||(D._firstChild=B),B||(D._lastChild=O),c.dom.features.slots&&u.Guard.isSlotable(E)&&E._assignedSlot!==null&&x.shadowTree_isAssigned(E)&&x.shadowTree_assignSlotables(E._assignedSlot),c.dom.features.slots&&u.Guard.isShadowRoot(p.tree_rootNode(D))&&u.Guard.isSlot(D)&&d.isEmpty(D._assignedNodes)&&x.shadowTree_signalASlotChange(D),c.dom.features.slots&&p.tree_getFirstDescendantNode(E,!0,!1,function(he){return u.Guard.isSlot(he)})!==null&&(x.shadowTree_assignSlotablesForATree(p.tree_rootNode(D)),x.shadowTree_assignSlotablesForATree(E)),c.dom.features.steps&&y.dom_runRemovingSteps(E,D),c.dom.features.customElements&&u.Guard.isCustomElementNode(E)&&g.customElement_enqueueACustomElementCallbackReaction(E,"disconnectedCallback",[]);for(var U=p.tree_getFirstDescendantNode(E,!1,!0);U!==null;)c.dom.features.steps&&y.dom_runRemovingSteps(U,E),c.dom.features.customElements&&u.Guard.isCustomElementNode(U)&&g.customElement_enqueueACustomElementCallbackReaction(U,"disconnectedCallback",[]),U=p.tree_getNextDescendantNode(E,U,!1,!0);if(c.dom.features.mutationObservers)for(var z=p.tree_getFirstAncestorNode(D,!0);z!==null;){try{for(var j=(P=void 0,o(z._registeredObserverList)),K=j.next();!K.done;K=j.next()){var ae=K.value;ae.options.subtree&&E._registeredObserverList.push({observer:ae.observer,options:ae.options,source:ae})}}catch(he){P={error:he}}finally{try{K&&!K.done&&(N=j.return)&&N.call(j)}finally{if(P)throw P.error}}z=p.tree_getNextAncestorNode(D,z,!0)}c.dom.features.mutationObservers&&(b||m.observer_queueTreeMutationRecord(D,[],[E],le,k)),c.dom.features.steps&&u.Guard.isTextNode(E)&&y.dom_runChildTextContentChangeSteps(D)}n.mutation_ensurePreInsertionValidity=C,n.mutation_preInsert=S,n.mutation_insert=T,n.mutation_append=function(E,D){return S(E,D,null)},n.mutation_replace=function(E,D,b){var I,R,M,L,A,G,P,N;if(b._nodeType!==f.NodeType.Document&&b._nodeType!==f.NodeType.DocumentFragment&&b._nodeType!==f.NodeType.Element)throw new l.HierarchyRequestError("Only document, document fragment and element nodes can contain child nodes. Parent node is "+b.nodeName+".");if(p.tree_isHostIncludingAncestorOf(b,D,!0))throw new l.HierarchyRequestError("The node to be inserted cannot be an ancestor of parent node. Node is "+D.nodeName+", parent node is "+b.nodeName+".");if(E._parent!==b)throw new l.NotFoundError("The reference child node cannot be found under parent node. Child node is "+E.nodeName+", parent node is "+b.nodeName+".");if(D._nodeType!==f.NodeType.DocumentFragment&&D._nodeType!==f.NodeType.DocumentType&&D._nodeType!==f.NodeType.Element&&D._nodeType!==f.NodeType.Text&&D._nodeType!==f.NodeType.ProcessingInstruction&&D._nodeType!==f.NodeType.CData&&D._nodeType!==f.NodeType.Comment)throw new l.HierarchyRequestError("Only document fragment, document type, element, text, processing instruction, cdata section or comment nodes can be inserted. Node is "+D.nodeName+".");if(D._nodeType===f.NodeType.Text&&b._nodeType===f.NodeType.Document)throw new l.HierarchyRequestError("Cannot insert a text node as a child of a document node. Node is "+D.nodeName+".");if(D._nodeType===f.NodeType.DocumentType&&b._nodeType!==f.NodeType.Document)throw new l.HierarchyRequestError("A document type node can only be inserted under a document node. Parent node is "+b.nodeName+".");if(b._nodeType===f.NodeType.Document){if(D._nodeType===f.NodeType.DocumentFragment){var V=0;try{for(var $=o(D._children),H=$.next();!H.done;H=$.next()){var Y=H.value;if(Y._nodeType===f.NodeType.Element)V++;else if(Y._nodeType===f.NodeType.Text)throw new l.HierarchyRequestError("Cannot insert text a node as a child of a document node. Node is "+Y.nodeName+".")}}catch(ae){I={error:ae}}finally{try{H&&!H.done&&(R=$.return)&&R.call($)}finally{if(I)throw I.error}}if(V>1)throw new l.HierarchyRequestError("A document node can only have one document element node. Document fragment to be inserted has "+V+" element nodes.");if(V===1){try{for(var ne=o(b._children),Q=ne.next();!Q.done;Q=ne.next())if((O=Q.value)._nodeType===f.NodeType.Element&&O!==E)throw new l.HierarchyRequestError("The document node already has a document element node.")}catch(ae){M={error:ae}}finally{try{Q&&!Q.done&&(L=ne.return)&&L.call(ne)}finally{if(M)throw M.error}}for(var ee=E._nextSibling;ee;){if(ee._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node.");ee=ee._nextSibling}}}else if(D._nodeType===f.NodeType.Element){try{for(var de=o(b._children),fe=de.next();!fe.done;fe=de.next())if((O=fe.value)._nodeType===f.NodeType.Element&&O!==E)throw new l.HierarchyRequestError("Document already has a document element node. Node is "+D.nodeName+".")}catch(ae){A={error:ae}}finally{try{fe&&!fe.done&&(G=de.return)&&G.call(de)}finally{if(A)throw A.error}}for(ee=E._nextSibling;ee;){if(ee._nodeType===f.NodeType.DocumentType)throw new l.HierarchyRequestError("Cannot insert an element node before a document type node. Node is "+D.nodeName+".");ee=ee._nextSibling}}else if(D._nodeType===f.NodeType.DocumentType){try{for(var le=o(b._children),k=le.next();!k.done;k=le.next()){var O;if((O=k.value)._nodeType===f.NodeType.DocumentType&&O!==E)throw new l.HierarchyRequestError("Document already has a document type node. Node is "+D.nodeName+".")}}catch(ae){P={error:ae}}finally{try{k&&!k.done&&(N=le.return)&&N.call(le)}finally{if(P)throw P.error}}for(var B=E._previousSibling;B;){if(B._nodeType===f.NodeType.Element)throw new l.HierarchyRequestError("Cannot insert a document type node before an element node. Node is "+D.nodeName+".");B=B._previousSibling}}}var U=E._nextSibling;U===D&&(U=D._nextSibling);var z=E._previousSibling;w.document_adopt(D,b._nodeDocument);var j=[];E._parent!==null&&(j.push(E),_(E,E._parent,!0));var K=[];return D._nodeType===f.NodeType.DocumentFragment?K=Array.from(D._children):K.push(D),T(D,b,U,!0),c.dom.features.mutationObservers&&m.observer_queueTreeMutationRecord(b,K,j,z,U),E},n.mutation_replaceAll=function(E,D){var b,I;E!==null&&w.document_adopt(E,D._nodeDocument);var R=Array.from(D._children),M=[];E&&E._nodeType===f.NodeType.DocumentFragment?M=Array.from(E._children):E!==null&&M.push(E);try{for(var L=o(R),A=L.next();!A.done;A=L.next())_(A.value,D,!0)}catch(G){b={error:G}}finally{try{A&&!A.done&&(I=L.return)&&I.call(L)}finally{if(b)throw b.error}}E!==null&&T(E,D,null,!0),c.dom.features.mutationObservers&&m.observer_queueTreeMutationRecord(D,M,R,null,null)},n.mutation_preRemove=function(E,D){if(E._parent!==D)throw new l.NotFoundError("The child node cannot be found under parent node. Child node is "+E.nodeName+", parent node is "+D.nodeName+".");return _(E,D),E},n.mutation_remove=_},function(r,n,i){function o(a){return a==null}r.exports.isNothing=o,r.exports.isObject=function(a){return typeof a=="object"&&a!==null},r.exports.toArray=function(a){return Array.isArray(a)?a:o(a)?[]:[a]},r.exports.repeat=function(a,s){var c,l="";for(c=0;c0?o:i)(a)}},function(r,n,i){var o=i(8);r.exports=function(a,s){var c=[][a];return!!c&&o(function(){c.call(null,s||function(){throw 1},1)})}},function(r,n){r.exports={}},function(r,n,i){i(31),i(32),i(33),i(220),i(64),i(19),i(65),i(20),i(68),i(66),i(92),i(144),i(22),i(94),i(23);var o=this&&this.__values||function(g){var p=typeof Symbol=="function"&&Symbol.iterator,v=p&&g[p],x=0;if(v)return v.call(g);if(g&&typeof g.length=="number")return{next:function(){return g&&x>=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(g,p){var v=typeof Symbol=="function"&&g[Symbol.iterator];if(!v)return g;var x,m,y=v.call(g),w=[];try{for(;(p===void 0||p-- >0)&&!(x=y.next()).done;)w.push(x.value)}catch(C){m={error:C}}finally{try{x&&!x.done&&(v=y.return)&&v.call(y)}finally{if(m)throw m.error}}return w},s=this&&this.__spread||function(){for(var g=[],p=0;p/g,">");this.text(x)},g.prototype._serializeDocumentFragmentNS=function(p,v,x,m,y){var w,C;try{for(var S=o(p.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;this._serializeNodeNS(_,v,x,m,y)}}catch(E){w={error:E}}finally{try{T&&!T.done&&(C=S.return)&&C.call(S)}finally{if(w)throw w.error}}},g.prototype._serializeDocumentFragment=function(p,v){var x,m;try{for(var y=o(p._children),w=y.next();!w.done;w=y.next()){var C=w.value;this._serializeNode(C,v)}}catch(S){x={error:S}}finally{try{w&&!w.done&&(m=y.return)&&m.call(y)}finally{if(x)throw x.error}}},g.prototype._serializeDocumentType=function(p,v){if(v&&!d.xml_isPubidChar(p.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(v&&(!d.xml_isLegalChar(p.systemId)||p.systemId.indexOf('"')!==-1&&p.systemId.indexOf("'")!==-1))throw new Error("DocType system identifier contains invalid characters (well-formed required).");this.docType(p.name,p.publicId,p.systemId)},g.prototype._serializeProcessingInstruction=function(p,v){if(v&&(p.target.indexOf(":")!==-1||/^xml$/i.test(p.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(v&&(!d.xml_isLegalChar(p.data)||p.data.indexOf("?>")!==-1))throw new Error("Processing instruction data contains invalid characters (well-formed required).");this.instruction(p.target,p.data)},g.prototype._serializeCData=function(p,v){if(v&&p.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters (well-formed required).");this.cdata(p.data)},g.prototype._serializeAttributesNS=function(p,v,x,m,y,w){var C,S,T=[],_=w?new l.LocalNameSet:void 0;try{for(var E=o(p.attributes),D=E.next();!D.done;D=E.next()){var b=D.value;if(w||y||b.namespaceURI!==null){if(w&&_&&_.has(b.namespaceURI,b.localName))throw new Error("Element contains duplicate attributes (well-formed required).");w&&_&&_.set(b.namespaceURI,b.localName);var I=b.namespaceURI,R=null;if(I!==null)if(R=v.get(b.prefix,I),I===u.namespace.XMLNS){if(b.value===u.namespace.XML||b.prefix===null&&y||b.prefix!==null&&(!(b.localName in m)||m[b.localName]!==b.value)&&v.has(b.localName,b.value))continue;if(w&&b.value===u.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(w&&b.value==="")throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");b.prefix==="xmlns"&&(R="xmlns")}else R===null&&(R=b.prefix===null||v.hasPrefix(b.prefix)&&!v.has(b.prefix,I)?this._generatePrefix(I,v,x):b.prefix,T.push([null,"xmlns",R,this._serializeAttributeValue(I,w)]));if(w&&(b.localName.indexOf(":")!==-1||!d.xml_isName(b.localName)||b.localName==="xmlns"&&I===null))throw new Error("Attribute local name contains invalid characters (well-formed required).");T.push([I,R,b.localName,this._serializeAttributeValue(b.value,w)])}else T.push([null,null,b.localName,this._serializeAttributeValue(b.value,w)])}}catch(M){C={error:M}}finally{try{D&&!D.done&&(S=E.return)&&S.call(E)}finally{if(C)throw C.error}}return T},g.prototype._serializeAttributes=function(p,v){var x,m,y=[],w=v?{}:void 0;try{for(var C=o(p.attributes),S=C.next();!S.done;S=C.next()){var T=S.value;if(v){if(v&&w&&T.localName in w)throw new Error("Element contains duplicate attributes (well-formed required).");if(v&&w&&(w[T.localName]=!0),v&&(T.localName.indexOf(":")!==-1||!d.xml_isName(T.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");y.push([null,null,T.localName,this._serializeAttributeValue(T.value,v)])}else y.push([null,null,T.localName,this._serializeAttributeValue(T.value,v)])}}catch(_){x={error:_}}finally{try{S&&!S.done&&(m=C.return)&&m.call(C)}finally{if(x)throw x.error}}return y},g.prototype._recordNamespaceInformation=function(p,v,x){var m,y,w=null;try{for(var C=o(p.attributes),S=C.next();!S.done;S=C.next()){var T=S.value,_=T.namespaceURI,E=T.prefix;if(_===u.namespace.XMLNS){if(E===null){w=T.value;continue}var D=T.localName,b=T.value;if(b===u.namespace.XML||(b===""&&(b=null),v.has(D,b)))continue;v.set(D,b),x[D]=b||""}}}catch(I){m={error:I}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},g.prototype._generatePrefix=function(p,v,x){var m="ns"+x.value.toString();return x.value++,v.set(m,p),m},g.prototype._serializeAttributeValue=function(p,v){if(v&&p!==null&&!d.xml_isLegalChar(p))throw new Error("Invalid characters in attribute value.");return p===null?"":p.replace(/(?!&([^&;]*);)&/g,"&").replace(//g,">").replace(/"/g,""")},g._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),g}();n.BaseWriter=h},function(r,n,i){var o=this&&this.__values||function(v){var x=typeof Symbol=="function"&&Symbol.iterator,m=x&&v[x],y=0;if(m)return m.call(v);if(v&&typeof v.length=="number")return{next:function(){return v&&y>=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(v,x){var m=typeof Symbol=="function"&&v[Symbol.iterator];if(!m)return v;var y,w,C=m.call(v),S=[];try{for(;(x===void 0||x-- >0)&&!(y=C.next()).done;)S.push(y.value)}catch(T){w={error:T}}finally{try{y&&!y.done&&(m=C.return)&&m.call(C)}finally{if(w)throw w.error}}return S};Object.defineProperty(n,"__esModule",{value:!0});var s=i(6),c=i(3),l=i(7),f=i(29),u=i(17),d=i(97);function h(){var v=s.dom.window;v._mutationObserverMicrotaskQueued||(v._mutationObserverMicrotaskQueued=!0,Promise.resolve().then(function(){g()}))}function g(){var v,x,m,y,w=s.dom.window;w._mutationObserverMicrotaskQueued=!1;var C=l.set.clone(w._mutationObservers),S=l.set.clone(w._signalSlots);l.set.empty(w._signalSlots);var T=function(R){var M=l.list.clone(R._recordQueue);l.list.empty(R._recordQueue);for(var L=0;L"+x+"<\/script>"},v=function(){try{o=document.domain&&new ActiveXObject("htmlfile")}catch{}var x,m;v=o?function(w){w.write(p("")),w.close();var C=w.parentWindow.Object;return w=null,C}(o):((m=u("iframe")).style.display="none",f.appendChild(m),m.src="javascript:",(x=m.contentWindow.document).open(),x.write(p("document.F=Object")),x.close(),x.F);for(var y=c.length;y--;)delete v.prototype[c[y]];return v()};l[h]=!0,r.exports=Object.create||function(x,m){var y;return x!==null?(g.prototype=a(x),y=new g,g.prototype=null,y[h]=x):y=v(),m===void 0?y:s(y,m)}},function(r,n,i){var o=i(121),a=i(84);r.exports=Object.keys||function(s){return o(s,a)}},function(r,n,i){var o=i(15).f,a=i(14),s=i(5)("toStringTag");r.exports=function(c,l,f){c&&!a(c=f?c:c.prototype,s)&&o(c,s,{configurable:!0,value:l})}},function(r,n,i){var o=i(8),a=i(5),s=i(129),c=a("species");r.exports=function(l){return s>=51||!o(function(){var f=[];return(f.constructor={})[c]=function(){return{foo:1}},f[l](Boolean).foo!==1})}},function(r,n,i){var o=i(4),a=i(122).indexOf,s=i(48),c=i(28),l=[].indexOf,f=!!l&&1/[1].indexOf(1,-0)<0,u=s("indexOf"),d=c("indexOf",{ACCESSORS:!0,1:0});o({target:"Array",proto:!0,forced:f||!u||!d},{indexOf:function(h){return f?l.apply(this,arguments)||0:a(this,h,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(16),a=i(15).f,s=Function.prototype,c=s.toString,l=/^\s*function ([^ (]*)/;o&&!("name"in s)&&a(s,"name",{configurable:!0,get:function(){try{return c.call(this).match(l)[1]}catch{return""}}})},function(r,n,i){var o=i(25),a=i(18),s=i(8),c=i(136),l=RegExp.prototype,f=l.toString,u=s(function(){return f.call({source:"a",flags:"b"})!="/a/b"}),d=f.name!="toString";(u||d)&&o(RegExp.prototype,"toString",function(){var h=a(this),g=String(h.source),p=h.flags;return"/"+g+"/"+String(p===void 0&&h instanceof RegExp&&!("flags"in l)?c.call(h):p)},{unsafe:!0})},function(r,n,i){i(31),i(32),i(33),i(19),i(138),i(20),i(66),i(22),i(23);var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)}),s=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(1),l=i(2),f=function(u){function d(h,g){var p=u.call(this,h)||this;return p._writerOptions=c.applyDefaults(g,{format:"object",wellFormed:!1,group:!1,verbose:!1}),p}return a(d,u),d.prototype.serialize=function(h){return this._currentList=[],this._currentIndex=0,this._listRegister=[this._currentList],this.serializeNode(h,this._writerOptions.wellFormed),this._process(this._currentList,this._writerOptions)},d.prototype._process=function(h,g){var p,v,x,m,y,w,C;if(h.length===0)return{};for(var S={},T=!1,_=0,E=0,D=0,b=0,I=0;I2)try{for(var C=s(h),S=C.next();!S.done;S=C.next()){var T=S.value;g[v+(m++).toString()]=T}}catch(_){y={error:_}}finally{try{S&&!S.done&&(w=C.return)&&w.call(C)}finally{if(y)throw y.error}}else g[x>1?v+(m++).toString():v]=h;return m},d.prototype.beginElement=function(h){var g,p,v=[];if(this._currentList.length===0)this._currentList.push(((g={})[h]=v,g));else{var x=this._currentList[this._currentList.length-1];this._isElementNode(x,h)?x[h].length!==0&&c.isArray(x[h][0])?x[h].push(v):x[h]=[x[h],v]:this._currentList.push(((p={})[h]=v,p))}this._currentIndex++,this._listRegister.length>this._currentIndex?this._listRegister[this._currentIndex]=v:this._listRegister.push(v),this._currentList=v},d.prototype.endElement=function(){this._currentList=this._listRegister[--this._currentIndex]},d.prototype.attribute=function(h,g){var p,v;if(this._currentList.length===0)this._currentList.push({"@":(p={},p[h]=g,p)});else{var x=this._currentList[this._currentList.length-1];this._isAttrNode(x)?x["@"][h]=g:this._currentList.push({"@":(v={},v[h]=g,v)})}},d.prototype.comment=function(h){if(this._currentList.length===0)this._currentList.push({"!":h});else{var g=this._currentList[this._currentList.length-1];this._isCommentNode(g)?c.isArray(g["!"])?g["!"].push(h):g["!"]=[g["!"],h]:this._currentList.push({"!":h})}},d.prototype.text=function(h){if(this._currentList.length===0)this._currentList.push({"#":h});else{var g=this._currentList[this._currentList.length-1];this._isTextNode(g)?c.isArray(g["#"])?g["#"].push(h):g["#"]=[g["#"],h]:this._currentList.push({"#":h})}},d.prototype.instruction=function(h,g){var p=g===""?h:h+" "+g;if(this._currentList.length===0)this._currentList.push({"?":p});else{var v=this._currentList[this._currentList.length-1];this._isInstructionNode(v)?c.isArray(v["?"])?v["?"].push(p):v["?"]=[v["?"],p]:this._currentList.push({"?":p})}},d.prototype.cdata=function(h){if(this._currentList.length===0)this._currentList.push({$:h});else{var g=this._currentList[this._currentList.length-1];this._isCDATANode(g)?c.isArray(g.$)?g.$.push(h):g.$=[g.$,h]:this._currentList.push({$:h})}},d.prototype._isAttrNode=function(h){return"@"in h},d.prototype._isTextNode=function(h){return"#"in h},d.prototype._isCommentNode=function(h){return"!"in h},d.prototype._isInstructionNode=function(h){return"?"in h},d.prototype._isCDATANode=function(h){return"$"in h},d.prototype._isElementNode=function(h,g){return g in h},d.prototype._getAttrKey=function(){return this._builderOptions.convert.att},d.prototype._getNodeKey=function(h){switch(h){case l.NodeType.Comment:return this._builderOptions.convert.comment;case l.NodeType.Text:return this._builderOptions.convert.text;case l.NodeType.ProcessingInstruction:return this._builderOptions.convert.ins;case l.NodeType.CData:return this._builderOptions.convert.cdata;default:throw new Error("Invalid node type.")}},d}(i(50).BaseWriter);n.ObjectWriter=f},function(r,n,i){var o=i(4),a=i(93);o({target:"RegExp",proto:!0,forced:/./.exec!==a},{exec:a})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){this._items={},this._nullItems={}}return a.prototype.set=function(s,c){s===null?this._nullItems[c]=!0:(this._items[s]||(this._items[s]={}),this._items[s][c]=!0)},a.prototype.has=function(s,c){return s===null?this._nullItems[c]===!0:!!this._items[s]&&this._items[s][c]===!0},a}();n.LocalNameSet=o},function(r,n,i){var o=this&&this.__read||function(f,u){var d=typeof Symbol=="function"&&f[Symbol.iterator];if(!d)return f;var h,g,p=d.call(f),v=[];try{for(;(u===void 0||u-- >0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v};Object.defineProperty(n,"__esModule",{value:!0});var a=i(9),s=i(3),c=i(0),l=function(){function f(){}return Object.defineProperty(f.prototype,"_eventListenerList",{get:function(){return this.__eventListenerList||(this.__eventListenerList=[])},enumerable:!0,configurable:!0}),Object.defineProperty(f.prototype,"_eventHandlerMap",{get:function(){return this.__eventHandlerMap||(this.__eventHandlerMap={})},enumerable:!0,configurable:!0}),f.prototype.addEventListener=function(u,d,h){h===void 0&&(h={passive:!1,once:!1,capture:!1});var g,p=o(c.eventTarget_flattenMore(h),3),v=p[0],x=p[1],m=p[2];d&&(g=s.Guard.isEventListener(d)?d:{handleEvent:d},c.eventTarget_addEventListener(this,{type:u,callback:g,capture:v,passive:x,once:m,removed:!1}))},f.prototype.removeEventListener=function(u,d,h){h===void 0&&(h={capture:!1});var g=c.eventTarget_flatten(h);if(d)for(var p=0;p=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(x,m){var y=typeof Symbol=="function"&&x[Symbol.iterator];if(!y)return x;var w,C,S=y.call(x),T=[];try{for(;(m===void 0||m-- >0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},s=this&&this.__spread||function(){for(var x=[],m=0;m",amp:"&",quot:'"',apos:"'"},s}();n.BaseReader=a},function(r,n,i){var o=i(39);r.exports=o.DEFAULT=new o({include:[i(54)],explicit:[i(299),i(300),i(301)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(185);n.XMLBuilderImpl=o.XMLBuilderImpl;var a=i(304);n.XMLBuilderCBImpl=a.XMLBuilderCBImpl;var s=i(183);n.builder=s.builder,n.create=s.create,n.fragment=s.fragment,n.convert=s.convert;var c=i(309);n.createCB=c.createCB,n.fragmentCB=c.fragmentCB},function(r,n){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch{typeof window=="object"&&(i=window)}r.exports=i},function(r,n,i){var o={}.propertyIsEnumerable,a=Object.getOwnPropertyDescriptor,s=a&&!o.call({1:2},1);n.f=s?function(c){var l=a(this,c);return!!l&&l.enumerable}:o},function(r,n,i){var o=i(11),a=i(21);r.exports=function(s,c){try{a(o,s,c)}catch{o[s]=c}return c}},function(r,n,i){var o=i(44),a=i(118);(r.exports=function(s,c){return a[s]||(a[s]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:o?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(r,n,i){var o=i(121),a=i(84).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(s){return o(s,a)}},function(r,n,i){var o=i(47),a=Math.max,s=Math.min;r.exports=function(c,l){var f=o(c);return f<0?a(f+l,0):s(f,l)}},function(r,n){r.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(r,n){n.f=Object.getOwnPropertySymbols},function(r,n,i){var o=i(8);r.exports=!!Object.getOwnPropertySymbols&&!o(function(){return!String(Symbol())})},function(r,n,i){var o=i(127);r.exports=function(a,s,c){if(o(a),s===void 0)return a;switch(c){case 0:return function(){return a.call(s)};case 1:return function(l){return a.call(s,l)};case 2:return function(l,f){return a.call(s,l,f)};case 3:return function(l,f,u){return a.call(s,l,f,u)}}return function(){return a.apply(s,arguments)}}},function(r,n,i){var o=i(4),a=i(195),s=i(132),c=i(133),l=i(62),f=i(21),u=i(25),d=i(5),h=i(44),g=i(49),p=i(131),v=p.IteratorPrototype,x=p.BUGGY_SAFARI_ITERATORS,m=d("iterator"),y=function(){return this};r.exports=function(w,C,S,T,_,E,D){a(S,C,T);var b,I,R,M=function($){if($===_&&N)return N;if(!x&&$ in G)return G[$];switch($){case"keys":case"values":case"entries":return function(){return new S(this,$)}}return function(){return new S(this)}},L=C+" Iterator",A=!1,G=w.prototype,P=G[m]||G["@@iterator"]||_&&G[_],N=!x&&P||M(_),V=C=="Array"&&G.entries||P;if(V&&(b=s(V.call(new w)),v!==Object.prototype&&b.next&&(h||s(b)===v||(c?c(b,v):typeof b[m]!="function"&&f(b,m,y)),l(b,L,!0,!0),h&&(g[L]=y))),_=="values"&&P&&P.name!=="values"&&(A=!0,N=function(){return P.call(this)}),h&&!D||G[m]===N||f(G,m,N),g[C]=N,_)if(I={values:M("values"),keys:E?N:M("keys"),entries:M("entries")},D)for(R in I)(x||A||!(R in G))&&u(G,R,I[R]);else o({target:C,proto:!0,forced:x||A},I);return I}},function(r,n,i){var o=i(4),a=i(13),s=i(59),c=i(83),l=i(26),f=i(24),u=i(134),d=i(5),h=i(63),g=i(28),p=h("slice"),v=g("slice",{ACCESSORS:!0,0:0,1:2}),x=d("species"),m=[].slice,y=Math.max;o({target:"Array",proto:!0,forced:!p||!v},{slice:function(w,C){var S,T,_,E=f(this),D=l(E.length),b=c(w,D),I=c(C===void 0?D:C,D);if(s(E)&&(typeof(S=E.constructor)!="function"||S!==Array&&!s(S.prototype)?a(S)&&(S=S[x])===null&&(S=void 0):S=void 0,S===Array||S===void 0))return m.call(E,b,I);for(T=new(S===void 0?Array:S)(y(I-b,0)),_=0;b0&&(!w.multiline||w.multiline&&p[w.lastIndex-1]!==` -`)&&(T="(?: "+T+")",E=" "+E,_++),x=new RegExp("^(?:"+T+")",S)),g&&(x=new RegExp("^"+T+"$(?!\\s)",S)),d&&(v=w.lastIndex),m=l.call(C?x:w,E),C?m?(m.input=m.input.slice(_),m[0]=m[0].slice(_),m.index=w.lastIndex,w.lastIndex+=m[0].length):w.lastIndex=0:d&&m&&(w.lastIndex=w.global?m.index+m[0].length:v),g&&m&&m.length>1&&f.call(m[0],x,function(){for(y=1;y]*>)/g,x=/\$([$&'`]|\d\d?)/g;o("replace",2,function(m,y,w,C){var S=C.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,T=C.REPLACE_KEEPS_$0,_=S?"$":"$0";return[function(D,b){var I=f(this),R=D==null?void 0:D[m];return R!==void 0?R.call(D,I,b):y.call(String(I),D,b)},function(D,b){if(!S&&T||typeof b=="string"&&b.indexOf(_)===-1){var I=w(y,D,this,b);if(I.done)return I.value}var R=a(D),M=String(this),L=typeof b=="function";L||(b=String(b));var A=R.global;if(A){var G=R.unicode;R.lastIndex=0}for(var P=[];;){var N=d(R,M);if(N===null||(P.push(N),!A))break;String(N[0])===""&&(R.lastIndex=u(M,c(R.lastIndex),G))}for(var V,$="",j=0,Y=0;Y=j&&($+=M.slice(j,Q)+k,j=Q+te.length)}return $+M.slice(j)}];function E(D,b,I,R,M,L){var A=I+D.length,G=R.length,P=x;return M!==void 0&&(M=s(M),P=v),y.call(L,P,function(N,V){var $;switch(V.charAt(0)){case"$":return"$";case"&":return D;case"`":return b.slice(0,I);case"'":return b.slice(A);case"<":$=M[V.slice(1,-1)];break;default:var j=+V;if(j===0)return N;if(j>G){var Y=p(j/10);return Y===0?N:Y<=G?R[Y-1]===void 0?V.charAt(1):R[Y-1]+V.charAt(1):N}$=R[j-1]}return $===void 0?"":$})}})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){this._items={},this._nullItems=[]}return a.prototype.copy=function(){var s=new a;for(var c in this._items)s._items[c]=this._items[c].slice(0);return s._nullItems=this._nullItems.slice(0),s},a.prototype.get=function(s,c){var l=c===null?this._nullItems:this._items[c]||null;if(l===null)return null;for(var f=null,u=0;u=b.length&&(b=void 0),{value:b&&b[M++],done:!b}}};throw new TypeError(I?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(b,I){var R=typeof Symbol=="function"&&b[Symbol.iterator];if(!R)return b;var M,L,A=R.call(b),G=[];try{for(;(I===void 0||I-- >0)&&!(M=A.next()).done;)G.push(M.value)}catch(P){L={error:P}}finally{try{M&&!M.done&&(R=A.return)&&R.call(A)}finally{if(L)throw L.error}}return G},s=this&&this.__spread||function(){for(var b=[],I=0;I=0;ie--)if((ye=K[ie]).shadowAdjustedTarget!==null){H=ye;break}if(H!==null)if(f.Guard.isNode(H.shadowAdjustedTarget)&&f.Guard.isShadowRoot(g.tree_rootNode(H.shadowAdjustedTarget,!0)))N=!0;else if(f.Guard.isNode(H.relatedTarget)&&f.Guard.isShadowRoot(g.tree_rootNode(H.relatedTarget,!0)))N=!0;else for(var he=0;he=0;ie--)(ye=K[ie]).shadowAdjustedTarget!==null?b._eventPhase=l.EventPhase.AtTarget:b._eventPhase=l.EventPhase.Capturing,C(ye,b,"capturing",M);for(ie=0;ie0&&(P=L[A-1]).shadowAdjustedTarget!==null)&&(I._target=P.shadowAdjustedTarget)}if(I._relatedTarget=b.relatedTarget,I._touchTargetList=b.touchTargetList,!I._stopPropagationFlag){I._currentTarget=b.invocationTarget;var N=I._currentTarget._eventListenerList,V=new(Array.bind.apply(Array,s([void 0],N)));if(!S(I,V,R,b,M)&&I._isTrusted){var $=I._type;$==="animationend"?I._type="webkitAnimationEnd":$==="animationiteration"?I._type="webkitAnimationIteration":$==="animationstart"?I._type="webkitAnimationStart":$==="transitionend"&&(I._type="webkitTransitionEnd"),S(I,V,R,b,M),I._type=$}}}function S(b,I,R,M,L){L===void 0&&(L={value:!1});for(var A=!1,G=0;G=w.length&&(w=void 0),{value:w&&w[T++],done:!w}}};throw new TypeError(C?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(w,C){var S=typeof Symbol=="function"&&w[Symbol.iterator];if(!S)return w;var T,_,E=S.call(w),D=[];try{for(;(C===void 0||C-- >0)&&!(T=E.next()).done;)D.push(T.value)}catch(b){_={error:b}}finally{try{T&&!T.done&&(S=E.return)&&S.call(E)}finally{if(_)throw _.error}}return D};Object.defineProperty(n,"__esModule",{value:!0});var l=i(6),f=i(2),u=i(9),d=i(34),h=i(3),g=i(1),p=i(7),v=i(152),x=i(0),m=i(12),y=function(w){function C(){var S=w.call(this)||this;return S._children=new Set,S._encoding={name:"UTF-8",labels:["unicode-1-1-utf-8","utf-8","utf8"]},S._contentType="application/xml",S._URL={scheme:"about",username:"",password:"",host:null,port:null,path:["blank"],query:null,fragment:null,_cannotBeABaseURLFlag:!0,_blobURLEntry:null},S._origin=null,S._type="xml",S._mode="no-quirks",S._documentElement=null,S._hasNamespaces=!1,S._nodeDocumentOverwrite=null,S}return a(C,w),Object.defineProperty(C.prototype,"_nodeDocument",{get:function(){return this._nodeDocumentOverwrite||this},set:function(S){this._nodeDocumentOverwrite=S},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"implementation",{get:function(){return this._implementation||(this._implementation=x.create_domImplementation(this))},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"URL",{get:function(){return v.urlSerializer(this._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"documentURI",{get:function(){return this.URL},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"origin",{get:function(){return"null"},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"compatMode",{get:function(){return this._mode==="quirks"?"BackCompat":"CSS1Compat"},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"characterSet",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"charset",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"inputEncoding",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"contentType",{get:function(){return this._contentType},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"doctype",{get:function(){var S,T;try{for(var _=s(this._children),E=_.next();!E.done;E=_.next()){var D=E.value;if(h.Guard.isDocumentTypeNode(D))return D}}catch(b){S={error:b}}finally{try{E&&!E.done&&(T=_.return)&&T.call(_)}finally{if(S)throw S.error}}return null},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"documentElement",{get:function(){return this._documentElement},enumerable:!0,configurable:!0}),C.prototype.getElementsByTagName=function(S){return x.node_listOfElementsWithQualifiedName(S,this)},C.prototype.getElementsByTagNameNS=function(S,T){return x.node_listOfElementsWithNamespace(S,T,this)},C.prototype.getElementsByClassName=function(S){return x.node_listOfElementsWithClassNames(S,this)},C.prototype.createElement=function(S,T){if(!x.xml_isName(S))throw new u.InvalidCharacterError;this._type==="html"&&(S=S.toLowerCase());var _=null;T!==void 0&&(_=g.isString(T)?T:T.is);var E=this._type==="html"||this._contentType==="application/xhtml+xml"?p.namespace.HTML:null;return x.element_createAnElement(this,S,E,null,_,!0)},C.prototype.createElementNS=function(S,T,_){return x.document_internalCreateElementNS(this,S,T,_)},C.prototype.createDocumentFragment=function(){return x.create_documentFragment(this)},C.prototype.createTextNode=function(S){return x.create_text(this,S)},C.prototype.createCDATASection=function(S){if(this._type==="html")throw new u.NotSupportedError;if(S.indexOf("]]>")!==-1)throw new u.InvalidCharacterError;return x.create_cdataSection(this,S)},C.prototype.createComment=function(S){return x.create_comment(this,S)},C.prototype.createProcessingInstruction=function(S,T){if(!x.xml_isName(S))throw new u.InvalidCharacterError;if(T.indexOf("?>")!==-1)throw new u.InvalidCharacterError;return x.create_processingInstruction(this,S,T)},C.prototype.importNode=function(S,T){if(T===void 0&&(T=!1),h.Guard.isDocumentNode(S)||h.Guard.isShadowRoot(S))throw new u.NotSupportedError;return x.node_clone(S,this,T)},C.prototype.adoptNode=function(S){if(h.Guard.isDocumentNode(S))throw new u.NotSupportedError;if(h.Guard.isShadowRoot(S))throw new u.HierarchyRequestError;return x.document_adopt(S,this),S},C.prototype.createAttribute=function(S){if(!x.xml_isName(S))throw new u.InvalidCharacterError;return this._type==="html"&&(S=S.toLowerCase()),x.create_attr(this,S)},C.prototype.createAttributeNS=function(S,T){var _=c(x.namespace_validateAndExtract(S,T),3),E=_[0],D=_[1],b=_[2],I=x.create_attr(this,b);return I._namespace=E,I._namespacePrefix=D,I},C.prototype.createEvent=function(S){return x.event_createLegacyEvent(S)},C.prototype.createRange=function(){var S=x.create_range();return S._start=[this,0],S._end=[this,0],S},C.prototype.createNodeIterator=function(S,T,_){T===void 0&&(T=f.WhatToShow.All),_===void 0&&(_=null);var E=x.create_nodeIterator(S,S,!0);return E._whatToShow=T,E._iteratorCollection=x.create_nodeList(S),g.isFunction(_)?(E._filter=x.create_nodeFilter(),E._filter.acceptNode=_):E._filter=_,E},C.prototype.createTreeWalker=function(S,T,_){T===void 0&&(T=f.WhatToShow.All),_===void 0&&(_=null);var E=x.create_treeWalker(S,S);return E._whatToShow=T,g.isFunction(_)?(E._filter=x.create_nodeFilter(),E._filter.acceptNode=_):E._filter=_,E},C.prototype._getTheParent=function(S){return S._type==="load"?null:l.dom.window},C.prototype.getElementById=function(S){throw new Error("Mixin: NonElementParentNode not implemented.")},Object.defineProperty(C.prototype,"children",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"firstElementChild",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"lastElementChild",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"childElementCount",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),C.prototype.prepend=function(){for(var S=[],T=0;T=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(v,x){var m=typeof Symbol=="function"&&v[Symbol.iterator];if(!m)return v;var y,w,C=m.call(v),S=[];try{for(;(x===void 0||x-- >0)&&!(y=C.next()).done;)S.push(y.value)}catch(T){w={error:T}}finally{try{y&&!y.done&&(m=C.return)&&m.call(C)}finally{if(w)throw w.error}}return S};Object.defineProperty(n,"__esModule",{value:!0});var l=i(2),f=i(34),u=i(9),d=i(7),h=i(0),g=i(12),p=function(v){function x(){var m=v.call(this)||this;return m._children=new Set,m._namespace=null,m._namespacePrefix=null,m._localName="",m._customElementState="undefined",m._customElementDefinition=null,m._is=null,m._shadowRoot=null,m._attributeList=h.create_namedNodeMap(m),m._attributeChangeSteps=[],m._name="",m._assignedSlot=null,m}return a(x,v),Object.defineProperty(x.prototype,"namespaceURI",{get:function(){return this._namespace},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"prefix",{get:function(){return this._namespacePrefix},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"localName",{get:function(){return this._localName},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"tagName",{get:function(){return this._htmlUppercasedQualifiedName},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"id",{get:function(){return h.element_getAnAttributeValue(this,"id")},set:function(m){h.element_setAnAttributeValue(this,"id",m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"className",{get:function(){return h.element_getAnAttributeValue(this,"class")},set:function(m){h.element_setAnAttributeValue(this,"class",m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"classList",{get:function(){var m=h.element_getAnAttributeByName("class",this);return m===null&&(m=h.create_attr(this._nodeDocument,"class")),h.create_domTokenList(this,m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"slot",{get:function(){return h.element_getAnAttributeValue(this,"slot")},set:function(m){h.element_setAnAttributeValue(this,"slot",m)},enumerable:!0,configurable:!0}),x.prototype.hasAttributes=function(){return this._attributeList.length!==0},Object.defineProperty(x.prototype,"attributes",{get:function(){return this._attributeList},enumerable:!0,configurable:!0}),x.prototype.getAttributeNames=function(){var m,y,w=[];try{for(var C=s(this._attributeList),S=C.next();!S.done;S=C.next()){var T=S.value;w.push(T._qualifiedName)}}catch(_){m={error:_}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},x.prototype.getAttribute=function(m){var y=h.element_getAnAttributeByName(m,this);return y?y._value:null},x.prototype.getAttributeNS=function(m,y){var w=h.element_getAnAttributeByNamespaceAndLocalName(m,y,this);return w?w._value:null},x.prototype.setAttribute=function(m,y){if(!h.xml_isName(m))throw new u.InvalidCharacterError;this._namespace===d.namespace.HTML&&this._nodeDocument._type==="html"&&(m=m.toLowerCase());for(var w=null,C=0;C=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(2),l=i(71),f=i(0),u=i(12),d=function(h){function g(p){p===void 0&&(p="");var v=h.call(this,p)||this;return v._name="",v._assignedSlot=null,v}return a(g,h),Object.defineProperty(g.prototype,"wholeText",{get:function(){var p,v,x="";try{for(var m=s(f.text_contiguousTextNodes(this,!0)),y=m.next();!y.done;y=m.next())x+=y.value._data}catch(w){p={error:w}}finally{try{y&&!y.done&&(v=m.return)&&v.call(m)}finally{if(p)throw p.error}}return x},enumerable:!0,configurable:!0}),g.prototype.splitText=function(p){return f.text_split(this,p)},Object.defineProperty(g.prototype,"assignedSlot",{get:function(){throw new Error("Mixin: Slotable not implemented.")},enumerable:!0,configurable:!0}),g._create=function(p,v){v===void 0&&(v="");var x=new g(v);return x._nodeDocument=p,x},g}(l.CharacterDataImpl);n.TextImpl=d,u.idl_defineConst(d.prototype,"_nodeType",c.NodeType.Text)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){}return Object.defineProperty(a.prototype,"_startNode",{get:function(){return this._start[0]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_startOffset",{get:function(){return this._start[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_endNode",{get:function(){return this._end[0]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_endOffset",{get:function(){return this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_collapsed",{get:function(){return this._start[0]===this._end[0]&&this._start[1]===this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"startContainer",{get:function(){return this._startNode},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"startOffset",{get:function(){return this._startOffset},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"endContainer",{get:function(){return this._endNode},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"endOffset",{get:function(){return this._endOffset},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"collapsed",{get:function(){return this._collapsed},enumerable:!0,configurable:!0}),a}();n.AbstractRangeImpl=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=function(){function s(c){this._activeFlag=!1,this._root=c,this._whatToShow=o.WhatToShow.All,this._filter=null}return Object.defineProperty(s.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"whatToShow",{get:function(){return this._whatToShow},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0}),s}();n.TraverserImpl=a},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(0),s=i(12),c=function(){function l(f,u){this._target=null,this._relatedTarget=null,this._touchTargetList=[],this._path=[],this._currentTarget=null,this._eventPhase=o.EventPhase.None,this._stopPropagationFlag=!1,this._stopImmediatePropagationFlag=!1,this._canceledFlag=!1,this._inPassiveListenerFlag=!1,this._composedFlag=!1,this._initializedFlag=!1,this._dispatchFlag=!1,this._isTrusted=!1,this._bubbles=!1,this._cancelable=!1,this._type=f,u&&(this._bubbles=u.bubbles||!1,this._cancelable=u.cancelable||!1,this._composedFlag=u.composed||!1),this._initializedFlag=!0,this._timeStamp=new Date().getTime()}return Object.defineProperty(l.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"srcElement",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"currentTarget",{get:function(){return this._currentTarget},enumerable:!0,configurable:!0}),l.prototype.composedPath=function(){var f=[],u=this._path;if(u.length===0)return f;var d=this._currentTarget;if(d===null)throw new Error("Event currentTarget is null.");f.push(d);for(var h=0,g=0,p=u.length-1;p>=0;){if(u[p].rootOfClosedTree&&g++,u[p].invocationTarget===d){h=p;break}u[p].slotInClosedTree&&g--,p--}var v=g,x=g;for(p=h-1;p>=0;)u[p].rootOfClosedTree&&v++,v<=x&&f.unshift(u[p].invocationTarget),u[p].slotInClosedTree&&--v0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},a=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(6),c=i(3),l=i(1),f=i(99),u=i(73),d=i(17),h=i(173),g=i(30),p=i(52),v=i(37);n.document_elementInterface=function(x,m){return f.ElementImpl},n.document_internalCreateElementNS=function(x,m,y,w){var C=o(h.namespace_validateAndExtract(m,y),3),S=C[0],T=C[1],_=C[2],E=null;return w!==void 0&&(E=l.isString(w)?w:w.is),p.element_createAnElement(x,_,S,T,E,!0)},n.document_adopt=function(x,m){var y,w;if(x._nodeDocument!==m||x._parent!==null){var C=x._nodeDocument;if(x._parent&&v.mutation_remove(x,x._parent),m!==C)for(var S=d.tree_getFirstDescendantNode(x,!0,!0);S!==null;){if(S._nodeDocument=m,c.Guard.isElementNode(S))try{for(var T=(y=void 0,a(S._attributeList._asArray())),_=T.next();!_.done;_=T.next())_.value._nodeDocument=m}catch(E){y={error:E}}finally{try{_&&!_.done&&(w=T.return)&&w.call(T)}finally{if(y)throw y.error}}s.dom.features.customElements&&c.Guard.isElementNode(S)&&S._customElementState==="custom"&&u.customElement_enqueueACustomElementCallbackReaction(S,"adoptedCallback",[C,m]),s.dom.features.steps&&g.dom_runAdoptingSteps(S,C),S=d.tree_getNextDescendantNode(x,S,!0,!0)}}}},function(r,n,i){var o=this&&this.__values||function(d){var h=typeof Symbol=="function"&&Symbol.iterator,g=h&&d[h],p=0;if(g)return g.call(d);if(d&&typeof d.length=="number")return{next:function(){return d&&p>=d.length&&(d=void 0),{value:d&&d[p++],done:!d}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(9),l=i(17),f=i(51),u=i(30);n.characterData_replaceData=function(d,h,g,p){var v,x,m=l.tree_nodeLength(d);if(h>m)throw new c.IndexSizeError("Offset exceeds character data length. Offset: "+h+", Length: "+m+", Node is "+d.nodeName+".");h+g>m&&(g=m-h),a.dom.features.mutationObservers&&f.observer_queueMutationRecord("characterData",d,null,null,d._data,[],[],null,null);var y=d._data.substring(0,h)+p+d._data.substring(h+g);d._data=y;try{for(var w=o(a.dom.rangeList),C=w.next();!C.done;C=w.next()){var S=C.value;S._start[0]===d&&S._start[1]>h&&S._start[1]<=h+g&&(S._start[1]=h),S._end[0]===d&&S._end[1]>h&&S._end[1]<=h+g&&(S._end[1]=h),S._start[0]===d&&S._start[1]>h+g&&(S._start[1]+=p.length-g),S._end[0]===d&&S._end[1]>h+g&&(S._end[1]+=p.length-g)}}catch(T){v={error:T}}finally{try{C&&!C.done&&(x=w.return)&&x.call(w)}finally{if(v)throw v.error}}a.dom.features.steps&&s.Guard.isTextNode(d)&&d._parent!==null&&u.dom_runChildTextContentChangeSteps(d._parent)},n.characterData_substringData=function(d,h,g){var p=l.tree_nodeLength(d);if(h>p)throw new c.IndexSizeError("Offset exceeds character data length. Offset: "+h+", Length: "+p+", Node is "+d.nodeName+".");return h+g>p?d._data.substr(h):d._data.substr(h,g)}},function(r,n,i){var o=this&&this.__read||function(u,d){var h=typeof Symbol=="function"&&u[Symbol.iterator];if(!h)return u;var g,p,v=h.call(u),x=[];try{for(;(d===void 0||d-- >0)&&!(g=v.next()).done;)x.push(g.value)}catch(m){p={error:m}}finally{try{g&&!g.done&&(h=v.return)&&h.call(v)}finally{if(p)throw p.error}}return x},a=this&&this.__spread||function(){for(var u=[],d=0;d=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(7);function l(u){var d=c.string.splitAStringOnASCIIWhitespace(u);return new Set(d)}function f(u){return a(u).join(" ")}n.orderedSet_parse=l,n.orderedSet_serialize=f,n.orderedSet_sanitize=function(u){return f(l(u))},n.orderedSet_contains=function(u,d,h){var g,p,v,x;try{for(var m=s(d),y=m.next();!y.done;y=m.next()){var w=y.value,C=!1;try{for(var S=(v=void 0,s(u)),T=S.next();!T.done;T=S.next()){var _=T.value;if(h){if(_===w){C=!0;break}}else if(_.toUpperCase()===w.toUpperCase()){C=!0;break}}}catch(E){v={error:E}}finally{try{T&&!T.done&&(x=S.return)&&x.call(S)}finally{if(v)throw v.error}}if(!C)return!1}}catch(E){g={error:E}}finally{try{y&&!y.done&&(p=m.return)&&p.call(m)}finally{if(g)throw g.error}}return!0}},function(r,n,i){i(179),Object.defineProperty(n,"__esModule",{value:!0});var o=i(262),a=i(110),s=i(1);a.dom.setFeatures(!1),n.createDocument=function(){var c=new o.DOMImplementation().createDocument(null,"root",null);return c.documentElement&&c.removeChild(c.documentElement),c},n.sanitizeInput=function(c,l){if(c==null)return c;if(l===void 0)return c+"";var f="";c+="";for(var u=0;u=32&&d<=55295||d>=57344&&d<=65533)f+=c.charAt(u);else if(d>=55296&&d<=56319&&u=56320&&h<=57343?(d=1024*(d-55296)+h-56320+65536,f+=String.fromCodePoint(d),u++):f+=s.isString(l)?l:l(c.charAt(u),u,c)}else f+=s.isString(l)?l:l(c.charAt(u),u,c)}return f}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(1),a=i(153);n.AbortController=a.AbortControllerImpl;var s=i(154);n.AbortSignal=s.AbortSignalImpl;var c=i(102);n.AbstractRange=c.AbstractRangeImpl;var l=i(157);n.Attr=l.AttrImpl;var f=i(158);n.CDATASection=f.CDATASectionImpl;var u=i(71);n.CharacterData=u.CharacterDataImpl;var d=i(263),h=i(159);n.Comment=h.CommentImpl;var g=i(171);n.CustomEvent=g.CustomEventImpl;var p=i(100);n.DocumentFragment=p.DocumentFragmentImpl;var v=i(98);n.Document=v.DocumentImpl;var x=i(264),m=i(155);n.DocumentType=m.DocumentTypeImpl;var y=i(6);n.dom=y.dom;var w=i(148);n.DOMImplementation=w.DOMImplementationImpl;var C=i(170);n.DOMTokenList=C.DOMTokenListImpl;var S=i(99);n.Element=S.ElementImpl;var T=i(104);n.Event=T.EventImpl;var _=i(70);n.EventTarget=_.EventTargetImpl;var E=i(161);n.HTMLCollection=E.HTMLCollectionImpl;var D=i(265);n.MutationObserver=D.MutationObserverImpl;var b=i(169);n.MutationRecord=b.MutationRecordImpl;var I=i(164);n.NamedNodeMap=I.NamedNodeMapImpl;var R=i(168);n.NodeFilter=R.NodeFilterImpl;var M=i(34);n.Node=M.NodeImpl;var L=i(166);n.NodeIterator=L.NodeIteratorImpl;var A=i(162);n.NodeList=A.NodeListImpl;var G=i(163);n.NodeListStatic=G.NodeListStaticImpl;var P=i(266),N=i(267),V=i(268),$=i(160);n.ProcessingInstruction=$.ProcessingInstructionImpl;var j=i(165);n.Range=j.RangeImpl;var Y=i(156);n.ShadowRoot=Y.ShadowRootImpl;var te=i(269),Q=i(270);n.StaticRange=Q.StaticRangeImpl;var re=i(101);n.Text=re.TextImpl;var de=i(103);n.Traverser=de.TraverserImpl;var fe=i(167);n.TreeWalker=fe.TreeWalkerImpl;var se=i(149);n.Window=se.WindowImpl;var k=i(151);n.XMLDocument=k.XMLDocumentImpl,o.applyMixin(S.ElementImpl,d.ChildNodeImpl),o.applyMixin(u.CharacterDataImpl,d.ChildNodeImpl),o.applyMixin(m.DocumentTypeImpl,d.ChildNodeImpl),o.applyMixin(v.DocumentImpl,x.DocumentOrShadowRootImpl),o.applyMixin(Y.ShadowRootImpl,x.DocumentOrShadowRootImpl),o.applyMixin(S.ElementImpl,P.NonDocumentTypeChildNodeImpl),o.applyMixin(u.CharacterDataImpl,P.NonDocumentTypeChildNodeImpl),o.applyMixin(v.DocumentImpl,N.NonElementParentNodeImpl),o.applyMixin(p.DocumentFragmentImpl,N.NonElementParentNodeImpl),o.applyMixin(v.DocumentImpl,V.ParentNodeImpl),o.applyMixin(p.DocumentFragmentImpl,V.ParentNodeImpl),o.applyMixin(S.ElementImpl,V.ParentNodeImpl),o.applyMixin(re.TextImpl,te.SlotableImpl),o.applyMixin(S.ElementImpl,te.SlotableImpl)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),function(o){o[o.EOF=0]="EOF",o[o.Declaration=1]="Declaration",o[o.DocType=2]="DocType",o[o.Element=3]="Element",o[o.Text=4]="Text",o[o.CDATA=5]="CDATA",o[o.PI=6]="PI",o[o.Comment=7]="Comment",o[o.ClosingTag=8]="ClosingTag"}(n.TokenType||(n.TokenType={}))},function(r,n,i){i(64),i(20),i(66);var o,a=this&&this.__extends||(o=function(l,f){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,d){u.__proto__=d}||function(u,d){for(var h in d)d.hasOwnProperty(h)&&(u[h]=d[h])})(l,f)},function(l,f){function u(){this.constructor=l}o(l,f),l.prototype=f===null?Object.create(f):(u.prototype=f.prototype,new u)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=function(l){function f(){return l!==null&&l.apply(this,arguments)||this}return a(f,l),f.prototype._parse=function(u,d){var h=this,g=this._builderOptions,p=null;return s.isFunction(d)?p=this.parse(u,d.apply(this)):s.isArray(d)||s.isSet(d)?s.forEachArray(d,function(v){return p=h.parse(u,v)},this):s.isMap(d)||s.isObject(d)?s.forEachObject(d,function(v,x){if(s.isFunction(x)&&(x=x.apply(h)),g.ignoreConverters||v.indexOf(g.convert.att)!==0)if(g.ignoreConverters||v.indexOf(g.convert.text)!==0)if(g.ignoreConverters||v.indexOf(g.convert.cdata)!==0)if(g.ignoreConverters||v.indexOf(g.convert.comment)!==0)if(g.ignoreConverters||v.indexOf(g.convert.ins)!==0){if(!((s.isArray(x)||s.isSet(x))&&s.isEmpty(x))){if((s.isMap(x)||s.isObject(x))&&s.isEmpty(x))p=h.element(u,void 0,h.sanitize(v))||p;else if(g.keepNullNodes||x!=null)if(s.isArray(x)||s.isSet(x))s.forEachArray(x,function(S){var T={};T[v]=S,p=h.parse(u,T)},h);else if(s.isMap(x)||s.isObject(x))(m=h.element(u,void 0,h.sanitize(v)))&&(p=m,h.parse(m,x));else if(x!=null&&x!==""){var m;(m=h.element(u,void 0,h.sanitize(v)))&&(p=m,h.text(m,h._decodeText(h.sanitize(x))))}else p=h.element(u,void 0,h.sanitize(v))||p}}else if(s.isString(x)){var y=x.indexOf(" "),w=y===-1?x:x.substr(0,y),C=y===-1?"":x.substr(y+1);p=h.instruction(u,h.sanitize(w),h.sanitize(C))||p}else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){var T=S.indexOf(" "),_=T===-1?S:S.substr(0,T),E=T===-1?"":S.substr(T+1);p=h.instruction(u,h.sanitize(_),h.sanitize(E))||p},h):s.forEachObject(x,function(S,T){return p=h.instruction(u,h.sanitize(S),h.sanitize(T))||p},h);else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){return p=h.comment(u,h.sanitize(S))||p},h):p=h.comment(u,h.sanitize(x))||p;else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){return p=h.cdata(u,h.sanitize(S))||p},h):p=h.cdata(u,h.sanitize(x))||p;else p=s.isMap(x)||s.isObject(x)?h.parse(u,x):h.text(u,h._decodeText(h.sanitize(x)))||p;else if(v===g.convert.att){if(s.isArray(x)||s.isSet(x))throw new Error("Invalid attribute: "+x.toString()+". "+u._debugInfo());s.forEachObject(x,function(S,T){p=h.attribute(u,void 0,h.sanitize(S),h._decodeAttributeValue(h.sanitize(T)))||p})}else p=h.attribute(u,void 0,h.sanitize(v.substr(g.convert.att.length)),h._decodeAttributeValue(h.sanitize(x)))||p},this):(g.keepNullNodes||d!=null)&&(p=this.text(u,this._decodeText(this.sanitize(d)))||p),p||u},f}(i(75).BaseReader);n.ObjectReader=c},function(r,n,i){var o=i(39);r.exports=new o({explicit:[i(286),i(287),i(288)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(a){this.level=0,this._builderOptions=a,this._writerOptions=a};n.BaseCBWriter=o},function(r,n,i){var o=i(16),a=i(8),s=i(116);r.exports=!o&&!a(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},function(r,n,i){var o=i(11),a=i(13),s=o.document,c=a(s)&&a(s.createElement);r.exports=function(l){return c?s.createElement(l):{}}},function(r,n,i){var o=i(118),a=Function.toString;typeof o.inspectSource!="function"&&(o.inspectSource=function(s){return a.call(s)}),r.exports=o.inspectSource},function(r,n,i){var o=i(11),a=i(80),s=o["__core-js_shared__"]||a("__core-js_shared__",{});r.exports=s},function(r,n,i){var o=i(14),a=i(187),s=i(55),c=i(15);r.exports=function(l,f){for(var u=a(f),d=c.f,h=s.f,g=0;gh;)o(d,u=f[h++])&&(~s(g,u)||g.push(u));return g}},function(r,n,i){var o=i(24),a=i(26),s=i(83),c=function(l){return function(f,u,d){var h,g=o(f),p=a(g.length),v=s(d,p);if(l&&u!=u){for(;p>v;)if((h=g[v++])!=h)return!0}else for(;p>v;v++)if((l||v in g)&&g[v]===u)return l||v||0;return!l&&-1}};r.exports={includes:c(!0),indexOf:c(!1)}},function(r,n,i){var o=i(8),a=/#|\.prototype\./,s=function(d,h){var g=l[c(d)];return g==u||g!=f&&(typeof h=="function"?o(h):!!h)},c=s.normalize=function(d){return String(d).replace(a,".").toLowerCase()},l=s.data={},f=s.NATIVE="N",u=s.POLYFILL="P";r.exports=s},function(r,n,i){var o=i(86);r.exports=o&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},function(r,n,i){var o=i(5);n.f=o},function(r,n,i){var o=i(120),a=i(14),s=i(125),c=i(15).f;r.exports=function(l){var f=o.Symbol||(o.Symbol={});a(f,l)||c(f,l,{value:s.f(l)})}},function(r,n){r.exports=function(i){if(typeof i!="function")throw TypeError(String(i)+" is not a function");return i}},function(r,n,i){var o=i(13),a=i(59),s=i(5)("species");r.exports=function(c,l){var f;return a(c)&&(typeof(f=c.constructor)!="function"||f!==Array&&!a(f.prototype)?o(f)&&(f=f[s])===null&&(f=void 0):f=void 0),new(f===void 0?Array:f)(l===0?0:l)}},function(r,n,i){var o,a,s=i(11),c=i(193),l=s.process,f=l&&l.versions,u=f&&f.v8;u?a=(o=u.split("."))[0]+o[1]:c&&(!(o=c.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=c.match(/Chrome\/(\d+)/))&&(a=o[1]),r.exports=a&&+a},function(r,n,i){var o=i(5),a=i(60),s=i(15),c=o("unscopables"),l=Array.prototype;l[c]==null&&s.f(l,c,{configurable:!0,value:a(null)}),r.exports=function(f){l[c][f]=!0}},function(r,n,i){var o,a,s,c=i(132),l=i(21),f=i(14),u=i(5),d=i(44),h=u("iterator"),g=!1;[].keys&&("next"in(s=[].keys())?(a=c(c(s)))!==Object.prototype&&(o=a):g=!0),o==null&&(o={}),d||f(o,h)||l(o,h,function(){return this}),r.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:g}},function(r,n,i){var o=i(14),a=i(27),s=i(57),c=i(196),l=s("IE_PROTO"),f=Object.prototype;r.exports=c?Object.getPrototypeOf:function(u){return u=a(u),o(u,l)?u[l]:typeof u.constructor=="function"&&u instanceof u.constructor?u.constructor.prototype:u instanceof Object?f:null}},function(r,n,i){var o=i(18),a=i(197);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s,c=!1,l={};try{(s=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(l,[]),c=l instanceof Array}catch{}return function(f,u){return o(f),a(u),c?s.call(f,u):f.__proto__=u,f}}():void 0)},function(r,n,i){var o=i(56),a=i(15),s=i(40);r.exports=function(c,l,f){var u=o(l);u in c?a.f(c,u,s(0,f)):c[u]=f}},function(r,n,i){var o=i(90),a=i(42),s=i(5)("toStringTag"),c=a(function(){return arguments}())=="Arguments";r.exports=o?a:function(l){var f,u,d;return l===void 0?"Undefined":l===null?"Null":typeof(u=function(h,g){try{return h[g]}catch{}}(f=Object(l),s))=="string"?u:c?a(f):(d=a(f))=="Object"&&typeof f.callee=="function"?"Arguments":d}},function(r,n,i){var o=i(18);r.exports=function(){var a=o(this),s="";return a.global&&(s+="g"),a.ignoreCase&&(s+="i"),a.multiline&&(s+="m"),a.dotAll&&(s+="s"),a.unicode&&(s+="u"),a.sticky&&(s+="y"),s}},function(r,n,i){var o=i(47),a=i(35),s=function(c){return function(l,f){var u,d,h=String(a(l)),g=o(f),p=h.length;return g<0||g>=p?c?"":void 0:(u=h.charCodeAt(g))<55296||u>56319||g+1===p||(d=h.charCodeAt(g+1))<56320||d>57343?c?h.charAt(g):u:c?h.slice(g,g+2):d-56320+(u-55296<<10)+65536}};r.exports={codeAt:s(!1),charAt:s(!0)}},function(r,n,i){var o=i(4),a=i(27),s=i(61);o({target:"Object",stat:!0,forced:i(8)(function(){s(1)})},{keys:function(c){return s(a(c))}})},function(r,n,i){var o=i(4),a=i(11),s=i(123),c=i(25),l=i(140),f=i(141),u=i(142),d=i(13),h=i(8),g=i(208),p=i(62),v=i(209);r.exports=function(x,m,y){var w=x.indexOf("Map")!==-1,C=x.indexOf("Weak")!==-1,S=w?"set":"add",T=a[x],_=T&&T.prototype,E=T,D={},b=function(G){var P=_[G];c(_,G,G=="add"?function(N){return P.call(this,N===0?0:N),this}:G=="delete"?function(N){return!(C&&!d(N))&&P.call(this,N===0?0:N)}:G=="get"?function(N){return C&&!d(N)?void 0:P.call(this,N===0?0:N)}:G=="has"?function(N){return!(C&&!d(N))&&P.call(this,N===0?0:N)}:function(N,V){return P.call(this,N===0?0:N,V),this})};if(s(x,typeof T!="function"||!(C||_.forEach&&!h(function(){new T().entries().next()}))))E=y.getConstructor(m,x,w,S),l.REQUIRED=!0;else if(s(x,!0)){var I=new E,R=I[S](C?{}:-0,1)!=I,M=h(function(){I.has(1)}),L=g(function(G){new T(G)}),A=!C&&h(function(){for(var G=new T,P=5;P--;)G[S](P,P);return!G.has(-0)});L||((E=m(function(G,P){u(G,E,x);var N=v(new T,G,E);return P!=null&&f(P,N[S],N,w),N})).prototype=_,_.constructor=E),(M||A)&&(b("delete"),b("has"),w&&b("get")),(A||R)&&b(S),C&&_.clear&&delete _.clear}return D[x]=E,o({global:!0,forced:E!=T},D),p(E,x),C||y.setStrong(E,x,w),E}},function(r,n,i){var o=i(45),a=i(13),s=i(14),c=i(15).f,l=i(58),f=i(204),u=l("meta"),d=0,h=Object.isExtensible||function(){return!0},g=function(v){c(v,u,{value:{objectID:"O"+ ++d,weakData:{}}})},p=r.exports={REQUIRED:!1,fastKey:function(v,x){if(!a(v))return typeof v=="symbol"?v:(typeof v=="string"?"S":"P")+v;if(!s(v,u)){if(!h(v))return"F";if(!x)return"E";g(v)}return v[u].objectID},getWeakData:function(v,x){if(!s(v,u)){if(!h(v))return!0;if(!x)return!1;g(v)}return v[u].weakData},onFreeze:function(v){return f&&p.REQUIRED&&h(v)&&!s(v,u)&&g(v),v}};o[u]=!0},function(r,n,i){var o=i(18),a=i(205),s=i(26),c=i(87),l=i(206),f=i(207),u=function(d,h){this.stopped=d,this.result=h};(r.exports=function(d,h,g,p,v){var x,m,y,w,C,S,T,_=c(h,g,p?2:1);if(v)x=d;else{if(typeof(m=l(d))!="function")throw TypeError("Target is not iterable");if(a(m)){for(y=0,w=s(d.length);w>y;y++)if((C=p?_(o(T=d[y])[0],T[1]):_(d[y]))&&C instanceof u)return C;return new u(!1)}x=m.call(d)}for(S=x.next;!(T=S.call(x)).done;)if(typeof(C=f(x,_,T.value,p))=="object"&&C&&C instanceof u)return C;return new u(!1)}).stop=function(d){return new u(!0,d)}},function(r,n){r.exports=function(i,o,a){if(!(i instanceof o))throw TypeError("Incorrect "+(a?a+" ":"")+"invocation");return i}},function(r,n,i){var o=i(15).f,a=i(60),s=i(210),c=i(87),l=i(142),f=i(141),u=i(88),d=i(211),h=i(16),g=i(140).fastKey,p=i(43),v=p.set,x=p.getterFor;r.exports={getConstructor:function(m,y,w,C){var S=m(function(D,b){l(D,S,y),v(D,{type:y,index:a(null),first:void 0,last:void 0,size:0}),h||(D.size=0),b!=null&&f(b,D[C],D,w)}),T=x(y),_=function(D,b,I){var R,M,L=T(D),A=E(D,b);return A?A.value=I:(L.last=A={index:M=g(b,!0),key:b,value:I,previous:R=L.last,next:void 0,removed:!1},L.first||(L.first=A),R&&(R.next=A),h?L.size++:D.size++,M!=="F"&&(L.index[M]=A)),D},E=function(D,b){var I,R=T(D),M=g(b);if(M!=="F")return R.index[M];for(I=R.first;I;I=I.next)if(I.key==b)return I};return s(S.prototype,{clear:function(){for(var D=T(this),b=D.index,I=D.first;I;)I.removed=!0,I.previous&&(I.previous=I.previous.next=void 0),delete b[I.index],I=I.next;D.first=D.last=void 0,h?D.size=0:this.size=0},delete:function(D){var b=T(this),I=E(this,D);if(I){var R=I.next,M=I.previous;delete b.index[I.index],I.removed=!0,M&&(M.next=R),R&&(R.previous=M),b.first==I&&(b.first=R),b.last==I&&(b.last=M),h?b.size--:this.size--}return!!I},forEach:function(D){for(var b,I=T(this),R=c(D,arguments.length>1?arguments[1]:void 0,3);b=b?b.next:I.first;)for(R(b.value,b.key,this);b&&b.removed;)b=b.previous},has:function(D){return!!E(this,D)}}),s(S.prototype,w?{get:function(D){var b=E(this,D);return b&&b.value},set:function(D,b){return _(this,D===0?0:D,b)}}:{add:function(D){return _(this,D=D===0?0:D,D)}}),h&&o(S.prototype,"size",{get:function(){return T(this).size}}),S},setStrong:function(m,y,w){var C=y+" Iterator",S=x(y),T=x(C);u(m,y,function(_,E){v(this,{type:C,target:_,state:S(_),kind:E,last:void 0})},function(){for(var _=T(this),E=_.kind,D=_.last;D&&D.removed;)D=D.previous;return _.target&&(_.last=D=D?D.next:_.state.first)?E=="keys"?{value:D.key,done:!1}:E=="values"?{value:D.value,done:!1}:{value:[D.key,D.value],done:!1}:(_.target=void 0,{value:void 0,done:!0})},w?"entries":"values",!w,!0),d(y)}}},function(r,n,i){var o,a=i(4),s=i(55).f,c=i(26),l=i(222),f=i(35),u=i(224),d=i(44),h="".endsWith,g=Math.min,p=u("endsWith");a({target:"String",proto:!0,forced:!!(d||p||(o=s(String.prototype,"endsWith"),!o||o.writable))&&!p},{endsWith:function(v){var x=String(f(this));l(v);var m=arguments.length>1?arguments[1]:void 0,y=c(x.length),w=m===void 0?y:g(c(m),y),C=String(v);return h?h.call(x,C,w):x.slice(w-C.length,w)===C}})},function(r,n,i){(function(o){/*! +`)&&(T="(?: "+T+")",E=" "+E,_++),x=new RegExp("^(?:"+T+")",S)),g&&(x=new RegExp("^"+T+"$(?!\\s)",S)),d&&(v=w.lastIndex),m=l.call(C?x:w,E),C?m?(m.input=m.input.slice(_),m[0]=m[0].slice(_),m.index=w.lastIndex,w.lastIndex+=m[0].length):w.lastIndex=0:d&&m&&(w.lastIndex=w.global?m.index+m[0].length:v),g&&m&&m.length>1&&f.call(m[0],x,function(){for(y=1;y]*>)/g,x=/\$([$&'`]|\d\d?)/g;o("replace",2,function(m,y,w,C){var S=C.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,T=C.REPLACE_KEEPS_$0,_=S?"$":"$0";return[function(D,b){var I=f(this),R=D==null?void 0:D[m];return R!==void 0?R.call(D,I,b):y.call(String(I),D,b)},function(D,b){if(!S&&T||typeof b=="string"&&b.indexOf(_)===-1){var I=w(y,D,this,b);if(I.done)return I.value}var R=a(D),M=String(this),L=typeof b=="function";L||(b=String(b));var A=R.global;if(A){var G=R.unicode;R.lastIndex=0}for(var P=[];;){var N=d(R,M);if(N===null||(P.push(N),!A))break;String(N[0])===""&&(R.lastIndex=u(M,c(R.lastIndex),G))}for(var V,$="",H=0,Y=0;Y=H&&($+=M.slice(H,Q)+k,H=Q+ne.length)}return $+M.slice(H)}];function E(D,b,I,R,M,L){var A=I+D.length,G=R.length,P=x;return M!==void 0&&(M=s(M),P=v),y.call(L,P,function(N,V){var $;switch(V.charAt(0)){case"$":return"$";case"&":return D;case"`":return b.slice(0,I);case"'":return b.slice(A);case"<":$=M[V.slice(1,-1)];break;default:var H=+V;if(H===0)return N;if(H>G){var Y=p(H/10);return Y===0?N:Y<=G?R[Y-1]===void 0?V.charAt(1):R[Y-1]+V.charAt(1):N}$=R[H-1]}return $===void 0?"":$})}})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){this._items={},this._nullItems=[]}return a.prototype.copy=function(){var s=new a;for(var c in this._items)s._items[c]=this._items[c].slice(0);return s._nullItems=this._nullItems.slice(0),s},a.prototype.get=function(s,c){var l=c===null?this._nullItems:this._items[c]||null;if(l===null)return null;for(var f=null,u=0;u=b.length&&(b=void 0),{value:b&&b[M++],done:!b}}};throw new TypeError(I?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(b,I){var R=typeof Symbol=="function"&&b[Symbol.iterator];if(!R)return b;var M,L,A=R.call(b),G=[];try{for(;(I===void 0||I-- >0)&&!(M=A.next()).done;)G.push(M.value)}catch(P){L={error:P}}finally{try{M&&!M.done&&(R=A.return)&&R.call(A)}finally{if(L)throw L.error}}return G},s=this&&this.__spread||function(){for(var b=[],I=0;I=0;ae--)if((ye=K[ae]).shadowAdjustedTarget!==null){j=ye;break}if(j!==null)if(f.Guard.isNode(j.shadowAdjustedTarget)&&f.Guard.isShadowRoot(g.tree_rootNode(j.shadowAdjustedTarget,!0)))N=!0;else if(f.Guard.isNode(j.relatedTarget)&&f.Guard.isShadowRoot(g.tree_rootNode(j.relatedTarget,!0)))N=!0;else for(var he=0;he=0;ae--)(ye=K[ae]).shadowAdjustedTarget!==null?b._eventPhase=l.EventPhase.AtTarget:b._eventPhase=l.EventPhase.Capturing,C(ye,b,"capturing",M);for(ae=0;ae0&&(P=L[A-1]).shadowAdjustedTarget!==null)&&(I._target=P.shadowAdjustedTarget)}if(I._relatedTarget=b.relatedTarget,I._touchTargetList=b.touchTargetList,!I._stopPropagationFlag){I._currentTarget=b.invocationTarget;var N=I._currentTarget._eventListenerList,V=new(Array.bind.apply(Array,s([void 0],N)));if(!S(I,V,R,b,M)&&I._isTrusted){var $=I._type;$==="animationend"?I._type="webkitAnimationEnd":$==="animationiteration"?I._type="webkitAnimationIteration":$==="animationstart"?I._type="webkitAnimationStart":$==="transitionend"&&(I._type="webkitTransitionEnd"),S(I,V,R,b,M),I._type=$}}}function S(b,I,R,M,L){L===void 0&&(L={value:!1});for(var A=!1,G=0;G=w.length&&(w=void 0),{value:w&&w[T++],done:!w}}};throw new TypeError(C?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(w,C){var S=typeof Symbol=="function"&&w[Symbol.iterator];if(!S)return w;var T,_,E=S.call(w),D=[];try{for(;(C===void 0||C-- >0)&&!(T=E.next()).done;)D.push(T.value)}catch(b){_={error:b}}finally{try{T&&!T.done&&(S=E.return)&&S.call(E)}finally{if(_)throw _.error}}return D};Object.defineProperty(n,"__esModule",{value:!0});var l=i(6),f=i(2),u=i(9),d=i(34),h=i(3),g=i(1),p=i(7),v=i(152),x=i(0),m=i(12),y=function(w){function C(){var S=w.call(this)||this;return S._children=new Set,S._encoding={name:"UTF-8",labels:["unicode-1-1-utf-8","utf-8","utf8"]},S._contentType="application/xml",S._URL={scheme:"about",username:"",password:"",host:null,port:null,path:["blank"],query:null,fragment:null,_cannotBeABaseURLFlag:!0,_blobURLEntry:null},S._origin=null,S._type="xml",S._mode="no-quirks",S._documentElement=null,S._hasNamespaces=!1,S._nodeDocumentOverwrite=null,S}return a(C,w),Object.defineProperty(C.prototype,"_nodeDocument",{get:function(){return this._nodeDocumentOverwrite||this},set:function(S){this._nodeDocumentOverwrite=S},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"implementation",{get:function(){return this._implementation||(this._implementation=x.create_domImplementation(this))},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"URL",{get:function(){return v.urlSerializer(this._URL)},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"documentURI",{get:function(){return this.URL},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"origin",{get:function(){return"null"},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"compatMode",{get:function(){return this._mode==="quirks"?"BackCompat":"CSS1Compat"},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"characterSet",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"charset",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"inputEncoding",{get:function(){return this._encoding.name},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"contentType",{get:function(){return this._contentType},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"doctype",{get:function(){var S,T;try{for(var _=s(this._children),E=_.next();!E.done;E=_.next()){var D=E.value;if(h.Guard.isDocumentTypeNode(D))return D}}catch(b){S={error:b}}finally{try{E&&!E.done&&(T=_.return)&&T.call(_)}finally{if(S)throw S.error}}return null},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"documentElement",{get:function(){return this._documentElement},enumerable:!0,configurable:!0}),C.prototype.getElementsByTagName=function(S){return x.node_listOfElementsWithQualifiedName(S,this)},C.prototype.getElementsByTagNameNS=function(S,T){return x.node_listOfElementsWithNamespace(S,T,this)},C.prototype.getElementsByClassName=function(S){return x.node_listOfElementsWithClassNames(S,this)},C.prototype.createElement=function(S,T){if(!x.xml_isName(S))throw new u.InvalidCharacterError;this._type==="html"&&(S=S.toLowerCase());var _=null;T!==void 0&&(_=g.isString(T)?T:T.is);var E=this._type==="html"||this._contentType==="application/xhtml+xml"?p.namespace.HTML:null;return x.element_createAnElement(this,S,E,null,_,!0)},C.prototype.createElementNS=function(S,T,_){return x.document_internalCreateElementNS(this,S,T,_)},C.prototype.createDocumentFragment=function(){return x.create_documentFragment(this)},C.prototype.createTextNode=function(S){return x.create_text(this,S)},C.prototype.createCDATASection=function(S){if(this._type==="html")throw new u.NotSupportedError;if(S.indexOf("]]>")!==-1)throw new u.InvalidCharacterError;return x.create_cdataSection(this,S)},C.prototype.createComment=function(S){return x.create_comment(this,S)},C.prototype.createProcessingInstruction=function(S,T){if(!x.xml_isName(S))throw new u.InvalidCharacterError;if(T.indexOf("?>")!==-1)throw new u.InvalidCharacterError;return x.create_processingInstruction(this,S,T)},C.prototype.importNode=function(S,T){if(T===void 0&&(T=!1),h.Guard.isDocumentNode(S)||h.Guard.isShadowRoot(S))throw new u.NotSupportedError;return x.node_clone(S,this,T)},C.prototype.adoptNode=function(S){if(h.Guard.isDocumentNode(S))throw new u.NotSupportedError;if(h.Guard.isShadowRoot(S))throw new u.HierarchyRequestError;return x.document_adopt(S,this),S},C.prototype.createAttribute=function(S){if(!x.xml_isName(S))throw new u.InvalidCharacterError;return this._type==="html"&&(S=S.toLowerCase()),x.create_attr(this,S)},C.prototype.createAttributeNS=function(S,T){var _=c(x.namespace_validateAndExtract(S,T),3),E=_[0],D=_[1],b=_[2],I=x.create_attr(this,b);return I._namespace=E,I._namespacePrefix=D,I},C.prototype.createEvent=function(S){return x.event_createLegacyEvent(S)},C.prototype.createRange=function(){var S=x.create_range();return S._start=[this,0],S._end=[this,0],S},C.prototype.createNodeIterator=function(S,T,_){T===void 0&&(T=f.WhatToShow.All),_===void 0&&(_=null);var E=x.create_nodeIterator(S,S,!0);return E._whatToShow=T,E._iteratorCollection=x.create_nodeList(S),g.isFunction(_)?(E._filter=x.create_nodeFilter(),E._filter.acceptNode=_):E._filter=_,E},C.prototype.createTreeWalker=function(S,T,_){T===void 0&&(T=f.WhatToShow.All),_===void 0&&(_=null);var E=x.create_treeWalker(S,S);return E._whatToShow=T,g.isFunction(_)?(E._filter=x.create_nodeFilter(),E._filter.acceptNode=_):E._filter=_,E},C.prototype._getTheParent=function(S){return S._type==="load"?null:l.dom.window},C.prototype.getElementById=function(S){throw new Error("Mixin: NonElementParentNode not implemented.")},Object.defineProperty(C.prototype,"children",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"firstElementChild",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"lastElementChild",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),Object.defineProperty(C.prototype,"childElementCount",{get:function(){throw new Error("Mixin: ParentNode not implemented.")},enumerable:!0,configurable:!0}),C.prototype.prepend=function(){for(var S=[],T=0;T=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(v,x){var m=typeof Symbol=="function"&&v[Symbol.iterator];if(!m)return v;var y,w,C=m.call(v),S=[];try{for(;(x===void 0||x-- >0)&&!(y=C.next()).done;)S.push(y.value)}catch(T){w={error:T}}finally{try{y&&!y.done&&(m=C.return)&&m.call(C)}finally{if(w)throw w.error}}return S};Object.defineProperty(n,"__esModule",{value:!0});var l=i(2),f=i(34),u=i(9),d=i(7),h=i(0),g=i(12),p=function(v){function x(){var m=v.call(this)||this;return m._children=new Set,m._namespace=null,m._namespacePrefix=null,m._localName="",m._customElementState="undefined",m._customElementDefinition=null,m._is=null,m._shadowRoot=null,m._attributeList=h.create_namedNodeMap(m),m._attributeChangeSteps=[],m._name="",m._assignedSlot=null,m}return a(x,v),Object.defineProperty(x.prototype,"namespaceURI",{get:function(){return this._namespace},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"prefix",{get:function(){return this._namespacePrefix},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"localName",{get:function(){return this._localName},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"tagName",{get:function(){return this._htmlUppercasedQualifiedName},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"id",{get:function(){return h.element_getAnAttributeValue(this,"id")},set:function(m){h.element_setAnAttributeValue(this,"id",m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"className",{get:function(){return h.element_getAnAttributeValue(this,"class")},set:function(m){h.element_setAnAttributeValue(this,"class",m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"classList",{get:function(){var m=h.element_getAnAttributeByName("class",this);return m===null&&(m=h.create_attr(this._nodeDocument,"class")),h.create_domTokenList(this,m)},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"slot",{get:function(){return h.element_getAnAttributeValue(this,"slot")},set:function(m){h.element_setAnAttributeValue(this,"slot",m)},enumerable:!0,configurable:!0}),x.prototype.hasAttributes=function(){return this._attributeList.length!==0},Object.defineProperty(x.prototype,"attributes",{get:function(){return this._attributeList},enumerable:!0,configurable:!0}),x.prototype.getAttributeNames=function(){var m,y,w=[];try{for(var C=s(this._attributeList),S=C.next();!S.done;S=C.next()){var T=S.value;w.push(T._qualifiedName)}}catch(_){m={error:_}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},x.prototype.getAttribute=function(m){var y=h.element_getAnAttributeByName(m,this);return y?y._value:null},x.prototype.getAttributeNS=function(m,y){var w=h.element_getAnAttributeByNamespaceAndLocalName(m,y,this);return w?w._value:null},x.prototype.setAttribute=function(m,y){if(!h.xml_isName(m))throw new u.InvalidCharacterError;this._namespace===d.namespace.HTML&&this._nodeDocument._type==="html"&&(m=m.toLowerCase());for(var w=null,C=0;C=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(2),l=i(71),f=i(0),u=i(12),d=function(h){function g(p){p===void 0&&(p="");var v=h.call(this,p)||this;return v._name="",v._assignedSlot=null,v}return a(g,h),Object.defineProperty(g.prototype,"wholeText",{get:function(){var p,v,x="";try{for(var m=s(f.text_contiguousTextNodes(this,!0)),y=m.next();!y.done;y=m.next())x+=y.value._data}catch(w){p={error:w}}finally{try{y&&!y.done&&(v=m.return)&&v.call(m)}finally{if(p)throw p.error}}return x},enumerable:!0,configurable:!0}),g.prototype.splitText=function(p){return f.text_split(this,p)},Object.defineProperty(g.prototype,"assignedSlot",{get:function(){throw new Error("Mixin: Slotable not implemented.")},enumerable:!0,configurable:!0}),g._create=function(p,v){v===void 0&&(v="");var x=new g(v);return x._nodeDocument=p,x},g}(l.CharacterDataImpl);n.TextImpl=d,u.idl_defineConst(d.prototype,"_nodeType",c.NodeType.Text)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(){}return Object.defineProperty(a.prototype,"_startNode",{get:function(){return this._start[0]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_startOffset",{get:function(){return this._start[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_endNode",{get:function(){return this._end[0]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_endOffset",{get:function(){return this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"_collapsed",{get:function(){return this._start[0]===this._end[0]&&this._start[1]===this._end[1]},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"startContainer",{get:function(){return this._startNode},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"startOffset",{get:function(){return this._startOffset},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"endContainer",{get:function(){return this._endNode},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"endOffset",{get:function(){return this._endOffset},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"collapsed",{get:function(){return this._collapsed},enumerable:!0,configurable:!0}),a}();n.AbstractRangeImpl=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=function(){function s(c){this._activeFlag=!1,this._root=c,this._whatToShow=o.WhatToShow.All,this._filter=null}return Object.defineProperty(s.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"whatToShow",{get:function(){return this._whatToShow},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"filter",{get:function(){return this._filter},enumerable:!0,configurable:!0}),s}();n.TraverserImpl=a},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(0),s=i(12),c=function(){function l(f,u){this._target=null,this._relatedTarget=null,this._touchTargetList=[],this._path=[],this._currentTarget=null,this._eventPhase=o.EventPhase.None,this._stopPropagationFlag=!1,this._stopImmediatePropagationFlag=!1,this._canceledFlag=!1,this._inPassiveListenerFlag=!1,this._composedFlag=!1,this._initializedFlag=!1,this._dispatchFlag=!1,this._isTrusted=!1,this._bubbles=!1,this._cancelable=!1,this._type=f,u&&(this._bubbles=u.bubbles||!1,this._cancelable=u.cancelable||!1,this._composedFlag=u.composed||!1),this._initializedFlag=!0,this._timeStamp=new Date().getTime()}return Object.defineProperty(l.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"srcElement",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"currentTarget",{get:function(){return this._currentTarget},enumerable:!0,configurable:!0}),l.prototype.composedPath=function(){var f=[],u=this._path;if(u.length===0)return f;var d=this._currentTarget;if(d===null)throw new Error("Event currentTarget is null.");f.push(d);for(var h=0,g=0,p=u.length-1;p>=0;){if(u[p].rootOfClosedTree&&g++,u[p].invocationTarget===d){h=p;break}u[p].slotInClosedTree&&g--,p--}var v=g,x=g;for(p=h-1;p>=0;)u[p].rootOfClosedTree&&v++,v<=x&&f.unshift(u[p].invocationTarget),u[p].slotInClosedTree&&--v0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},a=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(6),c=i(3),l=i(1),f=i(99),u=i(73),d=i(17),h=i(173),g=i(30),p=i(52),v=i(37);n.document_elementInterface=function(x,m){return f.ElementImpl},n.document_internalCreateElementNS=function(x,m,y,w){var C=o(h.namespace_validateAndExtract(m,y),3),S=C[0],T=C[1],_=C[2],E=null;return w!==void 0&&(E=l.isString(w)?w:w.is),p.element_createAnElement(x,_,S,T,E,!0)},n.document_adopt=function(x,m){var y,w;if(x._nodeDocument!==m||x._parent!==null){var C=x._nodeDocument;if(x._parent&&v.mutation_remove(x,x._parent),m!==C)for(var S=d.tree_getFirstDescendantNode(x,!0,!0);S!==null;){if(S._nodeDocument=m,c.Guard.isElementNode(S))try{for(var T=(y=void 0,a(S._attributeList._asArray())),_=T.next();!_.done;_=T.next())_.value._nodeDocument=m}catch(E){y={error:E}}finally{try{_&&!_.done&&(w=T.return)&&w.call(T)}finally{if(y)throw y.error}}s.dom.features.customElements&&c.Guard.isElementNode(S)&&S._customElementState==="custom"&&u.customElement_enqueueACustomElementCallbackReaction(S,"adoptedCallback",[C,m]),s.dom.features.steps&&g.dom_runAdoptingSteps(S,C),S=d.tree_getNextDescendantNode(x,S,!0,!0)}}}},function(r,n,i){var o=this&&this.__values||function(d){var h=typeof Symbol=="function"&&Symbol.iterator,g=h&&d[h],p=0;if(g)return g.call(d);if(d&&typeof d.length=="number")return{next:function(){return d&&p>=d.length&&(d=void 0),{value:d&&d[p++],done:!d}}};throw new TypeError(h?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(9),l=i(17),f=i(51),u=i(30);n.characterData_replaceData=function(d,h,g,p){var v,x,m=l.tree_nodeLength(d);if(h>m)throw new c.IndexSizeError("Offset exceeds character data length. Offset: "+h+", Length: "+m+", Node is "+d.nodeName+".");h+g>m&&(g=m-h),a.dom.features.mutationObservers&&f.observer_queueMutationRecord("characterData",d,null,null,d._data,[],[],null,null);var y=d._data.substring(0,h)+p+d._data.substring(h+g);d._data=y;try{for(var w=o(a.dom.rangeList),C=w.next();!C.done;C=w.next()){var S=C.value;S._start[0]===d&&S._start[1]>h&&S._start[1]<=h+g&&(S._start[1]=h),S._end[0]===d&&S._end[1]>h&&S._end[1]<=h+g&&(S._end[1]=h),S._start[0]===d&&S._start[1]>h+g&&(S._start[1]+=p.length-g),S._end[0]===d&&S._end[1]>h+g&&(S._end[1]+=p.length-g)}}catch(T){v={error:T}}finally{try{C&&!C.done&&(x=w.return)&&x.call(w)}finally{if(v)throw v.error}}a.dom.features.steps&&s.Guard.isTextNode(d)&&d._parent!==null&&u.dom_runChildTextContentChangeSteps(d._parent)},n.characterData_substringData=function(d,h,g){var p=l.tree_nodeLength(d);if(h>p)throw new c.IndexSizeError("Offset exceeds character data length. Offset: "+h+", Length: "+p+", Node is "+d.nodeName+".");return h+g>p?d._data.substr(h):d._data.substr(h,g)}},function(r,n,i){var o=this&&this.__read||function(u,d){var h=typeof Symbol=="function"&&u[Symbol.iterator];if(!h)return u;var g,p,v=h.call(u),x=[];try{for(;(d===void 0||d-- >0)&&!(g=v.next()).done;)x.push(g.value)}catch(m){p={error:m}}finally{try{g&&!g.done&&(h=v.return)&&h.call(v)}finally{if(p)throw p.error}}return x},a=this&&this.__spread||function(){for(var u=[],d=0;d=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(7);function l(u){var d=c.string.splitAStringOnASCIIWhitespace(u);return new Set(d)}function f(u){return a(u).join(" ")}n.orderedSet_parse=l,n.orderedSet_serialize=f,n.orderedSet_sanitize=function(u){return f(l(u))},n.orderedSet_contains=function(u,d,h){var g,p,v,x;try{for(var m=s(d),y=m.next();!y.done;y=m.next()){var w=y.value,C=!1;try{for(var S=(v=void 0,s(u)),T=S.next();!T.done;T=S.next()){var _=T.value;if(h){if(_===w){C=!0;break}}else if(_.toUpperCase()===w.toUpperCase()){C=!0;break}}}catch(E){v={error:E}}finally{try{T&&!T.done&&(x=S.return)&&x.call(S)}finally{if(v)throw v.error}}if(!C)return!1}}catch(E){g={error:E}}finally{try{y&&!y.done&&(p=m.return)&&p.call(m)}finally{if(g)throw g.error}}return!0}},function(r,n,i){i(179),Object.defineProperty(n,"__esModule",{value:!0});var o=i(262),a=i(110),s=i(1);a.dom.setFeatures(!1),n.createDocument=function(){var c=new o.DOMImplementation().createDocument(null,"root",null);return c.documentElement&&c.removeChild(c.documentElement),c},n.sanitizeInput=function(c,l){if(c==null)return c;if(l===void 0)return c+"";var f="";c+="";for(var u=0;u=32&&d<=55295||d>=57344&&d<=65533)f+=c.charAt(u);else if(d>=55296&&d<=56319&&u=56320&&h<=57343?(d=1024*(d-55296)+h-56320+65536,f+=String.fromCodePoint(d),u++):f+=s.isString(l)?l:l(c.charAt(u),u,c)}else f+=s.isString(l)?l:l(c.charAt(u),u,c)}return f}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(1),a=i(153);n.AbortController=a.AbortControllerImpl;var s=i(154);n.AbortSignal=s.AbortSignalImpl;var c=i(102);n.AbstractRange=c.AbstractRangeImpl;var l=i(157);n.Attr=l.AttrImpl;var f=i(158);n.CDATASection=f.CDATASectionImpl;var u=i(71);n.CharacterData=u.CharacterDataImpl;var d=i(263),h=i(159);n.Comment=h.CommentImpl;var g=i(171);n.CustomEvent=g.CustomEventImpl;var p=i(100);n.DocumentFragment=p.DocumentFragmentImpl;var v=i(98);n.Document=v.DocumentImpl;var x=i(264),m=i(155);n.DocumentType=m.DocumentTypeImpl;var y=i(6);n.dom=y.dom;var w=i(148);n.DOMImplementation=w.DOMImplementationImpl;var C=i(170);n.DOMTokenList=C.DOMTokenListImpl;var S=i(99);n.Element=S.ElementImpl;var T=i(104);n.Event=T.EventImpl;var _=i(70);n.EventTarget=_.EventTargetImpl;var E=i(161);n.HTMLCollection=E.HTMLCollectionImpl;var D=i(265);n.MutationObserver=D.MutationObserverImpl;var b=i(169);n.MutationRecord=b.MutationRecordImpl;var I=i(164);n.NamedNodeMap=I.NamedNodeMapImpl;var R=i(168);n.NodeFilter=R.NodeFilterImpl;var M=i(34);n.Node=M.NodeImpl;var L=i(166);n.NodeIterator=L.NodeIteratorImpl;var A=i(162);n.NodeList=A.NodeListImpl;var G=i(163);n.NodeListStatic=G.NodeListStaticImpl;var P=i(266),N=i(267),V=i(268),$=i(160);n.ProcessingInstruction=$.ProcessingInstructionImpl;var H=i(165);n.Range=H.RangeImpl;var Y=i(156);n.ShadowRoot=Y.ShadowRootImpl;var ne=i(269),Q=i(270);n.StaticRange=Q.StaticRangeImpl;var ee=i(101);n.Text=ee.TextImpl;var de=i(103);n.Traverser=de.TraverserImpl;var fe=i(167);n.TreeWalker=fe.TreeWalkerImpl;var le=i(149);n.Window=le.WindowImpl;var k=i(151);n.XMLDocument=k.XMLDocumentImpl,o.applyMixin(S.ElementImpl,d.ChildNodeImpl),o.applyMixin(u.CharacterDataImpl,d.ChildNodeImpl),o.applyMixin(m.DocumentTypeImpl,d.ChildNodeImpl),o.applyMixin(v.DocumentImpl,x.DocumentOrShadowRootImpl),o.applyMixin(Y.ShadowRootImpl,x.DocumentOrShadowRootImpl),o.applyMixin(S.ElementImpl,P.NonDocumentTypeChildNodeImpl),o.applyMixin(u.CharacterDataImpl,P.NonDocumentTypeChildNodeImpl),o.applyMixin(v.DocumentImpl,N.NonElementParentNodeImpl),o.applyMixin(p.DocumentFragmentImpl,N.NonElementParentNodeImpl),o.applyMixin(v.DocumentImpl,V.ParentNodeImpl),o.applyMixin(p.DocumentFragmentImpl,V.ParentNodeImpl),o.applyMixin(S.ElementImpl,V.ParentNodeImpl),o.applyMixin(ee.TextImpl,ne.SlotableImpl),o.applyMixin(S.ElementImpl,ne.SlotableImpl)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),function(o){o[o.EOF=0]="EOF",o[o.Declaration=1]="Declaration",o[o.DocType=2]="DocType",o[o.Element=3]="Element",o[o.Text=4]="Text",o[o.CDATA=5]="CDATA",o[o.PI=6]="PI",o[o.Comment=7]="Comment",o[o.ClosingTag=8]="ClosingTag"}(n.TokenType||(n.TokenType={}))},function(r,n,i){i(64),i(20),i(66);var o,a=this&&this.__extends||(o=function(l,f){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,d){u.__proto__=d}||function(u,d){for(var h in d)d.hasOwnProperty(h)&&(u[h]=d[h])})(l,f)},function(l,f){function u(){this.constructor=l}o(l,f),l.prototype=f===null?Object.create(f):(u.prototype=f.prototype,new u)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=function(l){function f(){return l!==null&&l.apply(this,arguments)||this}return a(f,l),f.prototype._parse=function(u,d){var h=this,g=this._builderOptions,p=null;return s.isFunction(d)?p=this.parse(u,d.apply(this)):s.isArray(d)||s.isSet(d)?s.forEachArray(d,function(v){return p=h.parse(u,v)},this):s.isMap(d)||s.isObject(d)?s.forEachObject(d,function(v,x){if(s.isFunction(x)&&(x=x.apply(h)),g.ignoreConverters||v.indexOf(g.convert.att)!==0)if(g.ignoreConverters||v.indexOf(g.convert.text)!==0)if(g.ignoreConverters||v.indexOf(g.convert.cdata)!==0)if(g.ignoreConverters||v.indexOf(g.convert.comment)!==0)if(g.ignoreConverters||v.indexOf(g.convert.ins)!==0){if(!((s.isArray(x)||s.isSet(x))&&s.isEmpty(x))){if((s.isMap(x)||s.isObject(x))&&s.isEmpty(x))p=h.element(u,void 0,h.sanitize(v))||p;else if(g.keepNullNodes||x!=null)if(s.isArray(x)||s.isSet(x))s.forEachArray(x,function(S){var T={};T[v]=S,p=h.parse(u,T)},h);else if(s.isMap(x)||s.isObject(x))(m=h.element(u,void 0,h.sanitize(v)))&&(p=m,h.parse(m,x));else if(x!=null&&x!==""){var m;(m=h.element(u,void 0,h.sanitize(v)))&&(p=m,h.text(m,h._decodeText(h.sanitize(x))))}else p=h.element(u,void 0,h.sanitize(v))||p}}else if(s.isString(x)){var y=x.indexOf(" "),w=y===-1?x:x.substr(0,y),C=y===-1?"":x.substr(y+1);p=h.instruction(u,h.sanitize(w),h.sanitize(C))||p}else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){var T=S.indexOf(" "),_=T===-1?S:S.substr(0,T),E=T===-1?"":S.substr(T+1);p=h.instruction(u,h.sanitize(_),h.sanitize(E))||p},h):s.forEachObject(x,function(S,T){return p=h.instruction(u,h.sanitize(S),h.sanitize(T))||p},h);else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){return p=h.comment(u,h.sanitize(S))||p},h):p=h.comment(u,h.sanitize(x))||p;else s.isArray(x)||s.isSet(x)?s.forEachArray(x,function(S){return p=h.cdata(u,h.sanitize(S))||p},h):p=h.cdata(u,h.sanitize(x))||p;else p=s.isMap(x)||s.isObject(x)?h.parse(u,x):h.text(u,h._decodeText(h.sanitize(x)))||p;else if(v===g.convert.att){if(s.isArray(x)||s.isSet(x))throw new Error("Invalid attribute: "+x.toString()+". "+u._debugInfo());s.forEachObject(x,function(S,T){p=h.attribute(u,void 0,h.sanitize(S),h._decodeAttributeValue(h.sanitize(T)))||p})}else p=h.attribute(u,void 0,h.sanitize(v.substr(g.convert.att.length)),h._decodeAttributeValue(h.sanitize(x)))||p},this):(g.keepNullNodes||d!=null)&&(p=this.text(u,this._decodeText(this.sanitize(d)))||p),p||u},f}(i(75).BaseReader);n.ObjectReader=c},function(r,n,i){var o=i(39);r.exports=new o({explicit:[i(286),i(287),i(288)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(a){this.level=0,this._builderOptions=a,this._writerOptions=a};n.BaseCBWriter=o},function(r,n,i){var o=i(16),a=i(8),s=i(116);r.exports=!o&&!a(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},function(r,n,i){var o=i(11),a=i(13),s=o.document,c=a(s)&&a(s.createElement);r.exports=function(l){return c?s.createElement(l):{}}},function(r,n,i){var o=i(118),a=Function.toString;typeof o.inspectSource!="function"&&(o.inspectSource=function(s){return a.call(s)}),r.exports=o.inspectSource},function(r,n,i){var o=i(11),a=i(80),s=o["__core-js_shared__"]||a("__core-js_shared__",{});r.exports=s},function(r,n,i){var o=i(14),a=i(187),s=i(55),c=i(15);r.exports=function(l,f){for(var u=a(f),d=c.f,h=s.f,g=0;gh;)o(d,u=f[h++])&&(~s(g,u)||g.push(u));return g}},function(r,n,i){var o=i(24),a=i(26),s=i(83),c=function(l){return function(f,u,d){var h,g=o(f),p=a(g.length),v=s(d,p);if(l&&u!=u){for(;p>v;)if((h=g[v++])!=h)return!0}else for(;p>v;v++)if((l||v in g)&&g[v]===u)return l||v||0;return!l&&-1}};r.exports={includes:c(!0),indexOf:c(!1)}},function(r,n,i){var o=i(8),a=/#|\.prototype\./,s=function(d,h){var g=l[c(d)];return g==u||g!=f&&(typeof h=="function"?o(h):!!h)},c=s.normalize=function(d){return String(d).replace(a,".").toLowerCase()},l=s.data={},f=s.NATIVE="N",u=s.POLYFILL="P";r.exports=s},function(r,n,i){var o=i(86);r.exports=o&&!Symbol.sham&&typeof Symbol.iterator=="symbol"},function(r,n,i){var o=i(5);n.f=o},function(r,n,i){var o=i(120),a=i(14),s=i(125),c=i(15).f;r.exports=function(l){var f=o.Symbol||(o.Symbol={});a(f,l)||c(f,l,{value:s.f(l)})}},function(r,n){r.exports=function(i){if(typeof i!="function")throw TypeError(String(i)+" is not a function");return i}},function(r,n,i){var o=i(13),a=i(59),s=i(5)("species");r.exports=function(c,l){var f;return a(c)&&(typeof(f=c.constructor)!="function"||f!==Array&&!a(f.prototype)?o(f)&&(f=f[s])===null&&(f=void 0):f=void 0),new(f===void 0?Array:f)(l===0?0:l)}},function(r,n,i){var o,a,s=i(11),c=i(193),l=s.process,f=l&&l.versions,u=f&&f.v8;u?a=(o=u.split("."))[0]+o[1]:c&&(!(o=c.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=c.match(/Chrome\/(\d+)/))&&(a=o[1]),r.exports=a&&+a},function(r,n,i){var o=i(5),a=i(60),s=i(15),c=o("unscopables"),l=Array.prototype;l[c]==null&&s.f(l,c,{configurable:!0,value:a(null)}),r.exports=function(f){l[c][f]=!0}},function(r,n,i){var o,a,s,c=i(132),l=i(21),f=i(14),u=i(5),d=i(44),h=u("iterator"),g=!1;[].keys&&("next"in(s=[].keys())?(a=c(c(s)))!==Object.prototype&&(o=a):g=!0),o==null&&(o={}),d||f(o,h)||l(o,h,function(){return this}),r.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:g}},function(r,n,i){var o=i(14),a=i(27),s=i(57),c=i(196),l=s("IE_PROTO"),f=Object.prototype;r.exports=c?Object.getPrototypeOf:function(u){return u=a(u),o(u,l)?u[l]:typeof u.constructor=="function"&&u instanceof u.constructor?u.constructor.prototype:u instanceof Object?f:null}},function(r,n,i){var o=i(18),a=i(197);r.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s,c=!1,l={};try{(s=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(l,[]),c=l instanceof Array}catch{}return function(f,u){return o(f),a(u),c?s.call(f,u):f.__proto__=u,f}}():void 0)},function(r,n,i){var o=i(56),a=i(15),s=i(40);r.exports=function(c,l,f){var u=o(l);u in c?a.f(c,u,s(0,f)):c[u]=f}},function(r,n,i){var o=i(90),a=i(42),s=i(5)("toStringTag"),c=a(function(){return arguments}())=="Arguments";r.exports=o?a:function(l){var f,u,d;return l===void 0?"Undefined":l===null?"Null":typeof(u=function(h,g){try{return h[g]}catch{}}(f=Object(l),s))=="string"?u:c?a(f):(d=a(f))=="Object"&&typeof f.callee=="function"?"Arguments":d}},function(r,n,i){var o=i(18);r.exports=function(){var a=o(this),s="";return a.global&&(s+="g"),a.ignoreCase&&(s+="i"),a.multiline&&(s+="m"),a.dotAll&&(s+="s"),a.unicode&&(s+="u"),a.sticky&&(s+="y"),s}},function(r,n,i){var o=i(47),a=i(35),s=function(c){return function(l,f){var u,d,h=String(a(l)),g=o(f),p=h.length;return g<0||g>=p?c?"":void 0:(u=h.charCodeAt(g))<55296||u>56319||g+1===p||(d=h.charCodeAt(g+1))<56320||d>57343?c?h.charAt(g):u:c?h.slice(g,g+2):d-56320+(u-55296<<10)+65536}};r.exports={codeAt:s(!1),charAt:s(!0)}},function(r,n,i){var o=i(4),a=i(27),s=i(61);o({target:"Object",stat:!0,forced:i(8)(function(){s(1)})},{keys:function(c){return s(a(c))}})},function(r,n,i){var o=i(4),a=i(11),s=i(123),c=i(25),l=i(140),f=i(141),u=i(142),d=i(13),h=i(8),g=i(208),p=i(62),v=i(209);r.exports=function(x,m,y){var w=x.indexOf("Map")!==-1,C=x.indexOf("Weak")!==-1,S=w?"set":"add",T=a[x],_=T&&T.prototype,E=T,D={},b=function(G){var P=_[G];c(_,G,G=="add"?function(N){return P.call(this,N===0?0:N),this}:G=="delete"?function(N){return!(C&&!d(N))&&P.call(this,N===0?0:N)}:G=="get"?function(N){return C&&!d(N)?void 0:P.call(this,N===0?0:N)}:G=="has"?function(N){return!(C&&!d(N))&&P.call(this,N===0?0:N)}:function(N,V){return P.call(this,N===0?0:N,V),this})};if(s(x,typeof T!="function"||!(C||_.forEach&&!h(function(){new T().entries().next()}))))E=y.getConstructor(m,x,w,S),l.REQUIRED=!0;else if(s(x,!0)){var I=new E,R=I[S](C?{}:-0,1)!=I,M=h(function(){I.has(1)}),L=g(function(G){new T(G)}),A=!C&&h(function(){for(var G=new T,P=5;P--;)G[S](P,P);return!G.has(-0)});L||((E=m(function(G,P){u(G,E,x);var N=v(new T,G,E);return P!=null&&f(P,N[S],N,w),N})).prototype=_,_.constructor=E),(M||A)&&(b("delete"),b("has"),w&&b("get")),(A||R)&&b(S),C&&_.clear&&delete _.clear}return D[x]=E,o({global:!0,forced:E!=T},D),p(E,x),C||y.setStrong(E,x,w),E}},function(r,n,i){var o=i(45),a=i(13),s=i(14),c=i(15).f,l=i(58),f=i(204),u=l("meta"),d=0,h=Object.isExtensible||function(){return!0},g=function(v){c(v,u,{value:{objectID:"O"+ ++d,weakData:{}}})},p=r.exports={REQUIRED:!1,fastKey:function(v,x){if(!a(v))return typeof v=="symbol"?v:(typeof v=="string"?"S":"P")+v;if(!s(v,u)){if(!h(v))return"F";if(!x)return"E";g(v)}return v[u].objectID},getWeakData:function(v,x){if(!s(v,u)){if(!h(v))return!0;if(!x)return!1;g(v)}return v[u].weakData},onFreeze:function(v){return f&&p.REQUIRED&&h(v)&&!s(v,u)&&g(v),v}};o[u]=!0},function(r,n,i){var o=i(18),a=i(205),s=i(26),c=i(87),l=i(206),f=i(207),u=function(d,h){this.stopped=d,this.result=h};(r.exports=function(d,h,g,p,v){var x,m,y,w,C,S,T,_=c(h,g,p?2:1);if(v)x=d;else{if(typeof(m=l(d))!="function")throw TypeError("Target is not iterable");if(a(m)){for(y=0,w=s(d.length);w>y;y++)if((C=p?_(o(T=d[y])[0],T[1]):_(d[y]))&&C instanceof u)return C;return new u(!1)}x=m.call(d)}for(S=x.next;!(T=S.call(x)).done;)if(typeof(C=f(x,_,T.value,p))=="object"&&C&&C instanceof u)return C;return new u(!1)}).stop=function(d){return new u(!0,d)}},function(r,n){r.exports=function(i,o,a){if(!(i instanceof o))throw TypeError("Incorrect "+(a?a+" ":"")+"invocation");return i}},function(r,n,i){var o=i(15).f,a=i(60),s=i(210),c=i(87),l=i(142),f=i(141),u=i(88),d=i(211),h=i(16),g=i(140).fastKey,p=i(43),v=p.set,x=p.getterFor;r.exports={getConstructor:function(m,y,w,C){var S=m(function(D,b){l(D,S,y),v(D,{type:y,index:a(null),first:void 0,last:void 0,size:0}),h||(D.size=0),b!=null&&f(b,D[C],D,w)}),T=x(y),_=function(D,b,I){var R,M,L=T(D),A=E(D,b);return A?A.value=I:(L.last=A={index:M=g(b,!0),key:b,value:I,previous:R=L.last,next:void 0,removed:!1},L.first||(L.first=A),R&&(R.next=A),h?L.size++:D.size++,M!=="F"&&(L.index[M]=A)),D},E=function(D,b){var I,R=T(D),M=g(b);if(M!=="F")return R.index[M];for(I=R.first;I;I=I.next)if(I.key==b)return I};return s(S.prototype,{clear:function(){for(var D=T(this),b=D.index,I=D.first;I;)I.removed=!0,I.previous&&(I.previous=I.previous.next=void 0),delete b[I.index],I=I.next;D.first=D.last=void 0,h?D.size=0:this.size=0},delete:function(D){var b=T(this),I=E(this,D);if(I){var R=I.next,M=I.previous;delete b.index[I.index],I.removed=!0,M&&(M.next=R),R&&(R.previous=M),b.first==I&&(b.first=R),b.last==I&&(b.last=M),h?b.size--:this.size--}return!!I},forEach:function(D){for(var b,I=T(this),R=c(D,arguments.length>1?arguments[1]:void 0,3);b=b?b.next:I.first;)for(R(b.value,b.key,this);b&&b.removed;)b=b.previous},has:function(D){return!!E(this,D)}}),s(S.prototype,w?{get:function(D){var b=E(this,D);return b&&b.value},set:function(D,b){return _(this,D===0?0:D,b)}}:{add:function(D){return _(this,D=D===0?0:D,D)}}),h&&o(S.prototype,"size",{get:function(){return T(this).size}}),S},setStrong:function(m,y,w){var C=y+" Iterator",S=x(y),T=x(C);u(m,y,function(_,E){v(this,{type:C,target:_,state:S(_),kind:E,last:void 0})},function(){for(var _=T(this),E=_.kind,D=_.last;D&&D.removed;)D=D.previous;return _.target&&(_.last=D=D?D.next:_.state.first)?E=="keys"?{value:D.key,done:!1}:E=="values"?{value:D.value,done:!1}:{value:[D.key,D.value],done:!1}:(_.target=void 0,{value:void 0,done:!0})},w?"entries":"values",!w,!0),d(y)}}},function(r,n,i){var o,a=i(4),s=i(55).f,c=i(26),l=i(222),f=i(35),u=i(224),d=i(44),h="".endsWith,g=Math.min,p=u("endsWith");a({target:"String",proto:!0,forced:!!(d||p||(o=s(String.prototype,"endsWith"),!o||o.writable))&&!p},{endsWith:function(v){var x=String(f(this));l(v);var m=arguments.length>1?arguments[1]:void 0,y=c(x.length),w=m===void 0?y:g(c(m),y),C=String(v);return h?h.call(x,C,w):x.slice(w-C.length,w)===C}})},function(r,n,i){(function(o){/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */var a=i(229),s=i(230),c=i(231);function l(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function f(k,O){if(l()=l())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l().toString(16)+" bytes");return 0|k}function x(k,O){if(u.isBuffer(k))return k.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(k)||k instanceof ArrayBuffer))return k.byteLength;typeof k!="string"&&(k=""+k);var B=k.length;if(B===0)return 0;for(var U=!1;;)switch(O){case"ascii":case"latin1":case"binary":return B;case"utf8":case"utf-8":case void 0:return de(k).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*B;case"hex":return B>>>1;case"base64":return fe(k).length;default:if(U)return de(k).length;O=(""+O).toLowerCase(),U=!0}}function m(k,O,B){var U=!1;if((O===void 0||O<0)&&(O=0),O>this.length||((B===void 0||B>this.length)&&(B=this.length),B<=0)||(B>>>=0)<=(O>>>=0))return"";for(k||(k="utf8");;)switch(k){case"hex":return A(this,O,B);case"utf8":case"utf-8":return R(this,O,B);case"ascii":return M(this,O,B);case"latin1":case"binary":return L(this,O,B);case"base64":return I(this,O,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,O,B);default:if(U)throw new TypeError("Unknown encoding: "+k);k=(k+"").toLowerCase(),U=!0}}function y(k,O,B){var U=k[O];k[O]=k[B],k[B]=U}function w(k,O,B,U,z){if(k.length===0)return-1;if(typeof B=="string"?(U=B,B=0):B>2147483647?B=2147483647:B<-2147483648&&(B=-2147483648),B=+B,isNaN(B)&&(B=z?0:k.length-1),B<0&&(B=k.length+B),B>=k.length){if(z)return-1;B=k.length-1}else if(B<0){if(!z)return-1;B=0}if(typeof O=="string"&&(O=u.from(O,U)),u.isBuffer(O))return O.length===0?-1:C(k,O,B,U,z);if(typeof O=="number")return O&=255,u.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?z?Uint8Array.prototype.indexOf.call(k,O,B):Uint8Array.prototype.lastIndexOf.call(k,O,B):C(k,[O],B,U,z);throw new TypeError("val must be string, number or Buffer")}function C(k,O,B,U,z){var H,K=1,ie=k.length,he=O.length;if(U!==void 0&&((U=String(U).toLowerCase())==="ucs2"||U==="ucs-2"||U==="utf16le"||U==="utf-16le")){if(k.length<2||O.length<2)return-1;K=2,ie/=2,he/=2,B/=2}function ye(oe,Z){return K===1?oe[Z]:oe.readUInt16BE(Z*K)}if(z){var Ee=-1;for(H=B;Hie&&(B=ie-he),H=B;H>=0;H--){for(var X=!0,J=0;Jz&&(U=z):U=z;var H=O.length;if(H%2!=0)throw new TypeError("Invalid hex string");U>H/2&&(U=H/2);for(var K=0;K>8,he=K%256,ye.push(he),ye.push(ie);return ye}(O,k.length-B),k,B,U)}function I(k,O,B){return O===0&&B===k.length?a.fromByteArray(k):a.fromByteArray(k.slice(O,B))}function R(k,O,B){B=Math.min(k.length,B);for(var U=[],z=O;z239?4:ye>223?3:ye>191?2:1;if(z+X<=B)switch(X){case 1:ye<128&&(Ee=ye);break;case 2:(192&(H=k[z+1]))==128&&(he=(31&ye)<<6|63&H)>127&&(Ee=he);break;case 3:H=k[z+1],K=k[z+2],(192&H)==128&&(192&K)==128&&(he=(15&ye)<<12|(63&H)<<6|63&K)>2047&&(he<55296||he>57343)&&(Ee=he);break;case 4:H=k[z+1],K=k[z+2],ie=k[z+3],(192&H)==128&&(192&K)==128&&(192&ie)==128&&(he=(15&ye)<<18|(63&H)<<12|(63&K)<<6|63&ie)>65535&&he<1114112&&(Ee=he)}Ee===null?(Ee=65533,X=1):Ee>65535&&(Ee-=65536,U.push(Ee>>>10&1023|55296),Ee=56320|1023&Ee),U.push(Ee),z+=X}return function(J){var oe=J.length;if(oe<=4096)return String.fromCharCode.apply(String,J);for(var Z="",ee=0;ee0&&(k=this.toString("hex",0,O).match(/.{2}/g).join(" "),this.length>O&&(k+=" ... ")),""},u.prototype.compare=function(k,O,B,U,z){if(!u.isBuffer(k))throw new TypeError("Argument must be a Buffer");if(O===void 0&&(O=0),B===void 0&&(B=k?k.length:0),U===void 0&&(U=0),z===void 0&&(z=this.length),O<0||B>k.length||U<0||z>this.length)throw new RangeError("out of range index");if(U>=z&&O>=B)return 0;if(U>=z)return-1;if(O>=B)return 1;if(this===k)return 0;for(var H=(z>>>=0)-(U>>>=0),K=(B>>>=0)-(O>>>=0),ie=Math.min(H,K),he=this.slice(U,z),ye=k.slice(O,B),Ee=0;Eez)&&(B=z),k.length>0&&(B<0||O<0)||O>this.length)throw new RangeError("Attempt to write outside buffer bounds");U||(U="utf8");for(var H=!1;;)switch(U){case"hex":return S(this,k,O,B);case"utf8":case"utf-8":return T(this,k,O,B);case"ascii":return _(this,k,O,B);case"latin1":case"binary":return E(this,k,O,B);case"base64":return D(this,k,O,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b(this,k,O,B);default:if(H)throw new TypeError("Unknown encoding: "+U);U=(""+U).toLowerCase(),H=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function M(k,O,B){var U="";B=Math.min(k.length,B);for(var z=O;zU)&&(B=U);for(var z="",H=O;HB)throw new RangeError("Trying to access beyond buffer length")}function N(k,O,B,U,z,H){if(!u.isBuffer(k))throw new TypeError('"buffer" argument must be a Buffer instance');if(O>z||Ok.length)throw new RangeError("Index out of range")}function V(k,O,B,U){O<0&&(O=65535+O+1);for(var z=0,H=Math.min(k.length-B,2);z>>8*(U?z:1-z)}function $(k,O,B,U){O<0&&(O=4294967295+O+1);for(var z=0,H=Math.min(k.length-B,4);z>>8*(U?z:3-z)&255}function j(k,O,B,U,z,H){if(B+U>k.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("Index out of range")}function Y(k,O,B,U,z){return z||j(k,0,B,4),s.write(k,O,B,U,23,4),B+4}function te(k,O,B,U,z){return z||j(k,0,B,8),s.write(k,O,B,U,52,8),B+8}u.prototype.slice=function(k,O){var B,U=this.length;if((k=~~k)<0?(k+=U)<0&&(k=0):k>U&&(k=U),(O=O===void 0?U:~~O)<0?(O+=U)<0&&(O=0):O>U&&(O=U),O0&&(z*=256);)U+=this[k+--O]*z;return U},u.prototype.readUInt8=function(k,O){return O||P(k,1,this.length),this[k]},u.prototype.readUInt16LE=function(k,O){return O||P(k,2,this.length),this[k]|this[k+1]<<8},u.prototype.readUInt16BE=function(k,O){return O||P(k,2,this.length),this[k]<<8|this[k+1]},u.prototype.readUInt32LE=function(k,O){return O||P(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+16777216*this[k+3]},u.prototype.readUInt32BE=function(k,O){return O||P(k,4,this.length),16777216*this[k]+(this[k+1]<<16|this[k+2]<<8|this[k+3])},u.prototype.readIntLE=function(k,O,B){k|=0,O|=0,B||P(k,O,this.length);for(var U=this[k],z=1,H=0;++H=(z*=128)&&(U-=Math.pow(2,8*O)),U},u.prototype.readIntBE=function(k,O,B){k|=0,O|=0,B||P(k,O,this.length);for(var U=O,z=1,H=this[k+--U];U>0&&(z*=256);)H+=this[k+--U]*z;return H>=(z*=128)&&(H-=Math.pow(2,8*O)),H},u.prototype.readInt8=function(k,O){return O||P(k,1,this.length),128&this[k]?-1*(255-this[k]+1):this[k]},u.prototype.readInt16LE=function(k,O){O||P(k,2,this.length);var B=this[k]|this[k+1]<<8;return 32768&B?4294901760|B:B},u.prototype.readInt16BE=function(k,O){O||P(k,2,this.length);var B=this[k+1]|this[k]<<8;return 32768&B?4294901760|B:B},u.prototype.readInt32LE=function(k,O){return O||P(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},u.prototype.readInt32BE=function(k,O){return O||P(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},u.prototype.readFloatLE=function(k,O){return O||P(k,4,this.length),s.read(this,k,!0,23,4)},u.prototype.readFloatBE=function(k,O){return O||P(k,4,this.length),s.read(this,k,!1,23,4)},u.prototype.readDoubleLE=function(k,O){return O||P(k,8,this.length),s.read(this,k,!0,52,8)},u.prototype.readDoubleBE=function(k,O){return O||P(k,8,this.length),s.read(this,k,!1,52,8)},u.prototype.writeUIntLE=function(k,O,B,U){k=+k,O|=0,B|=0,U||N(this,k,O,B,Math.pow(2,8*B)-1,0);var z=1,H=0;for(this[O]=255&k;++H=0&&(H*=256);)this[O+z]=k/H&255;return O+B},u.prototype.writeUInt8=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,1,255,0),u.TYPED_ARRAY_SUPPORT||(k=Math.floor(k)),this[O]=255&k,O+1},u.prototype.writeUInt16LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8):V(this,k,O,!0),O+2},u.prototype.writeUInt16BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>8,this[O+1]=255&k):V(this,k,O,!1),O+2},u.prototype.writeUInt32LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[O+3]=k>>>24,this[O+2]=k>>>16,this[O+1]=k>>>8,this[O]=255&k):$(this,k,O,!0),O+4},u.prototype.writeUInt32BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>24,this[O+1]=k>>>16,this[O+2]=k>>>8,this[O+3]=255&k):$(this,k,O,!1),O+4},u.prototype.writeIntLE=function(k,O,B,U){if(k=+k,O|=0,!U){var z=Math.pow(2,8*B-1);N(this,k,O,B,z-1,-z)}var H=0,K=1,ie=0;for(this[O]=255&k;++H>0)-ie&255;return O+B},u.prototype.writeIntBE=function(k,O,B,U){if(k=+k,O|=0,!U){var z=Math.pow(2,8*B-1);N(this,k,O,B,z-1,-z)}var H=B-1,K=1,ie=0;for(this[O+H]=255&k;--H>=0&&(K*=256);)k<0&&ie===0&&this[O+H+1]!==0&&(ie=1),this[O+H]=(k/K>>0)-ie&255;return O+B},u.prototype.writeInt8=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,1,127,-128),u.TYPED_ARRAY_SUPPORT||(k=Math.floor(k)),k<0&&(k=255+k+1),this[O]=255&k,O+1},u.prototype.writeInt16LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8):V(this,k,O,!0),O+2},u.prototype.writeInt16BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>8,this[O+1]=255&k):V(this,k,O,!1),O+2},u.prototype.writeInt32LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8,this[O+2]=k>>>16,this[O+3]=k>>>24):$(this,k,O,!0),O+4},u.prototype.writeInt32BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>24,this[O+1]=k>>>16,this[O+2]=k>>>8,this[O+3]=255&k):$(this,k,O,!1),O+4},u.prototype.writeFloatLE=function(k,O,B){return Y(this,k,O,!0,B)},u.prototype.writeFloatBE=function(k,O,B){return Y(this,k,O,!1,B)},u.prototype.writeDoubleLE=function(k,O,B){return te(this,k,O,!0,B)},u.prototype.writeDoubleBE=function(k,O,B){return te(this,k,O,!1,B)},u.prototype.copy=function(k,O,B,U){if(B||(B=0),U||U===0||(U=this.length),O>=k.length&&(O=k.length),O||(O=0),U>0&&U=this.length)throw new RangeError("sourceStart out of bounds");if(U<0)throw new RangeError("sourceEnd out of bounds");U>this.length&&(U=this.length),k.length-O=0;--z)k[z+O]=this[z+B];else if(H<1e3||!u.TYPED_ARRAY_SUPPORT)for(z=0;z>>=0,B=B===void 0?this.length:B>>>0,k||(k=0),typeof k=="number")for(H=O;H55295&&B<57344){if(!z){if(B>56319){(O-=3)>-1&&H.push(239,191,189);continue}if(K+1===U){(O-=3)>-1&&H.push(239,191,189);continue}z=B;continue}if(B<56320){(O-=3)>-1&&H.push(239,191,189),z=B;continue}B=65536+(z-55296<<10|B-56320)}else z&&(O-=3)>-1&&H.push(239,191,189);if(z=null,B<128){if((O-=1)<0)break;H.push(B)}else if(B<2048){if((O-=2)<0)break;H.push(B>>6|192,63&B|128)}else if(B<65536){if((O-=3)<0)break;H.push(B>>12|224,B>>6&63|128,63&B|128)}else{if(!(B<1114112))throw new Error("Invalid code point");if((O-=4)<0)break;H.push(B>>18|240,B>>12&63|128,B>>6&63|128,63&B|128)}}return H}function fe(k){return a.toByteArray(function(O){if((O=function(B){return B.trim?B.trim():B.replace(/^\s+|\s+$/g,"")}(O).replace(Q,"")).length<2)return"";for(;O.length%4!=0;)O+="=";return O}(k))}function se(k,O,B,U){for(var z=0;z=O.length||z>=k.length);++z)O[z+B]=k[z];return z}}).call(this,i(78))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),n.isASCIIByte=function(o){return o>=0&&o<=127}},function(r,n,i){var o=this&&this.__read||function(s,c){var l=typeof Symbol=="function"&&s[Symbol.iterator];if(!l)return s;var f,u,d=l.call(s),h=[];try{for(;(c===void 0||c-- >0)&&!(f=d.next()).done;)h.push(f.value)}catch(g){u={error:g}}finally{try{f&&!f.done&&(l=d.return)&&l.call(d)}finally{if(u)throw u.error}}return h},a=this&&this.__spread||function(){for(var s=[],c=0;c=65&&l<=90&&(s[c]=l+32)}},n.byteUppercase=function(s){for(var c=0;c=97&&l<=122&&(s[c]=l-32)}},n.byteCaseInsensitiveMatch=function(s,c){if(s.length!==c.length)return!1;for(var l=0;l=65&&f<=90&&(f+=32),u>=65&&u<=90&&(u+=32),f!==u)return!1}return!0},n.startsWith=function(s,c){for(var l=0;;){if(l>=s.length)return!1;if(l>=c.length)return!0;if(s[l]!==c[l])return!1;l++}},n.byteLessThan=function(s,c){for(var l=0;;){if(l>=s.length)return!1;if(l>=c.length)return!0;var f=s[l],u=c[l];if(fu)return!1;l++}},n.isomorphicDecode=function(s){return String.fromCodePoint.apply(String,a(s))}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(6),a=i(7),s=i(0),c=i(12),l=function(){function f(u){this._associatedDocument=u||o.dom.window.document}return f.prototype.createDocumentType=function(u,d,h){return s.namespace_validate(u),s.create_documentType(this._associatedDocument,u,d,h)},f.prototype.createDocument=function(u,d,h){h===void 0&&(h=null);var g=s.create_xmlDocument(),p=null;return d&&(p=s.document_internalCreateElementNS(g,u,d)),h&&g.appendChild(h),p&&g.appendChild(p),g._origin=this._associatedDocument._origin,u===a.namespace.HTML?g._contentType="application/xhtml+xml":u===a.namespace.SVG?g._contentType="image/svg+xml":g._contentType="application/xml",g},f.prototype.createHTMLDocument=function(u){var d=s.create_document();d._type="html",d._contentType="text/html",d.appendChild(s.create_documentType(d,"html","",""));var h=s.element_createAnElement(d,"html",a.namespace.HTML);d.appendChild(h);var g=s.element_createAnElement(d,"head",a.namespace.HTML);if(h.appendChild(g),u!==void 0){var p=s.element_createAnElement(d,"title",a.namespace.HTML);g.appendChild(p);var v=s.create_text(d,u);p.appendChild(v)}var x=s.element_createAnElement(d,"body",a.namespace.HTML);return h.appendChild(x),d._origin=this._associatedDocument._origin,d},f.prototype.hasFeature=function(){return!0},f._create=function(u){return new f(u)},f}();n.DOMImplementationImpl=l,c.idl_defineConst(l.prototype,"_ID","@oozcitak/dom")},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(70),c=i(1),l=i(0),f=function(u){function d(){var h=u.call(this)||this;return h._signalSlots=new Set,h._mutationObserverMicrotaskQueued=!1,h._mutationObservers=new Set,h._iteratorList=new c.FixedSizeSet,h._associatedDocument=l.create_document(),h}return a(d,u),Object.defineProperty(d.prototype,"document",{get:function(){return this._associatedDocument},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"event",{get:function(){return this._currentEvent},enumerable:!0,configurable:!0}),d._create=function(){return new d},d}(s.EventTargetImpl);n.WindowImpl=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=function(){function s(){}return s.isNode=function(c){return!!c&&c._nodeType!==void 0},s.isDocumentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Document},s.isDocumentTypeNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.DocumentType},s.isDocumentFragmentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.DocumentFragment},s.isAttrNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Attribute},s.isCharacterDataNode=function(c){if(!s.isNode(c))return!1;var l=c._nodeType;return l===o.NodeType.Text||l===o.NodeType.ProcessingInstruction||l===o.NodeType.Comment||l===o.NodeType.CData},s.isTextNode=function(c){return s.isNode(c)&&(c._nodeType===o.NodeType.Text||c._nodeType===o.NodeType.CData)},s.isExclusiveTextNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Text},s.isCDATASectionNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.CData},s.isCommentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Comment},s.isProcessingInstructionNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.ProcessingInstruction},s.isElementNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Element},s.isCustomElementNode=function(c){return s.isElementNode(c)&&c._customElementState==="custom"},s.isShadowRoot=function(c){return!!c&&c.host!==void 0},s.isMouseEvent=function(c){return!!c&&c.screenX!==void 0&&c.screenY!=null},s.isSlotable=function(c){return!!c&&c._name!==void 0&&c._assignedSlot!==void 0&&(s.isTextNode(c)||s.isElementNode(c))},s.isSlot=function(c){return!!c&&c._name!==void 0&&c._assignedNodes!==void 0&&s.isElementNode(c)},s.isWindow=function(c){return!!c&&c.navigator!==void 0},s.isEventListener=function(c){return!!c&&c.handleEvent!==void 0},s.isRegisteredObserver=function(c){return!!c&&c.observer!==void 0&&c.options!==void 0},s.isTransientRegisteredObserver=function(c){return!!c&&c.source!==void 0&&s.isRegisteredObserver(c)},s}();n.Guard=a},function(r,n,i){var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(){return c.call(this)||this}return a(l,c),l}(i(98).DocumentImpl);n.XMLDocumentImpl=s},function(r,n,i){var o=this&&this.__values||function(U){var z=typeof Symbol=="function"&&Symbol.iterator,H=z&&U[z],K=0;if(H)return H.call(U);if(U&&typeof U.length=="number")return{next:function(){return U&&K>=U.length&&(U=void 0),{value:U&&U[K++],done:!U}}};throw new TypeError(z?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(U,z){var H=typeof Symbol=="function"&&U[Symbol.iterator];if(!H)return U;var K,ie,he=H.call(U),ye=[];try{for(;(z===void 0||z-- >0)&&!(K=he.next()).done;)ye.push(K.value)}catch(Ee){ie={error:Ee}}finally{try{K&&!K.done&&(H=he.return)&&H.call(he)}finally{if(ie)throw ie.error}}return ye};Object.defineProperty(n,"__esModule",{value:!0});var s,c=i(1),l=i(243),f=i(7),u=i(244),d={ftp:21,file:null,http:80,https:443,ws:80,wss:443},h=/[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[ "<>`]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,p=/[ "<>`#?{}]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,v=/[ "<>`#?{}/:;=@\[\]\\\^\|]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,x=/[0-9A-Za-z!\$&-\/:;=\?@_~\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uD83E\uD840-\uD87E\uD880-\uD8BE\uD8C0-\uD8FE\uD900-\uD93E\uD940-\uD97E\uD980-\uD9BE\uD9C0-\uD9FE\uDA00-\uDA3E\uDA40-\uDA7E\uDA80-\uDABE\uDAC0-\uDAFE\uDB00-\uDB3E\uDB40-\uDB7E\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDC00-\uDFFD]/,m=/[\0\t\f\r #%/:?@\[\\\]]/;function y(U){s!==void 0&&s.call(null,"Validation Error: "+U)}function w(){return{scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null}}function C(U){return U in d}function S(U){return C(U.scheme)}function T(U){return d[U]||null}function _(U){return U.username!==""||U.password!==""}function E(U,z){var H,K;z===void 0&&(z=!1);var ie=U.scheme+":";if(U.host!==null?(ie+="//",_(U)&&(ie+=U.username,U.password!==""&&(ie+=":"+U.password),ie+="@"),ie+=D(U.host),U.port!==null&&(ie+=":"+U.port)):U.host===null&&U.scheme==="file"&&(ie+="//"),U._cannotBeABaseURLFlag)ie+=U.path[0];else try{for(var he=o(U.path),ye=he.next();!ye.done;ye=he.next())ie+="/"+ye.value}catch(Ee){H={error:Ee}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(H)throw H.error}}return U.query!==null&&(ie+="?"+U.query),z||U.fragment===null||(ie+="#"+U.fragment),ie}function D(U){return c.isNumber(U)?b(U):c.isArray(U)?"["+I(U)+"]":U}function b(U){for(var z="",H=U,K=1;K<=4;K++)z=(H%256).toString()+z,K!==4&&(z="."+z),H=Math.floor(H/256);return z}function I(U){for(var z="",H=null,K=-1,ie=0,he=0,ye=0;ye<8;ye++)if(U[ye]===0){ie=1;for(var Ee=ye+1;Ee<8&&U[Ee]===0;Ee++)ie++;ie>he&&(he=ie,K=ye)}he>1&&(H=K);for(var X=!1,J=0;J<8;J++)X&&U[J]===0||(X&&(X=!1),H!==J?(z+=U[J].toString(16),J!==7&&(z+=":")):(z+=J===0?"::":":",X=!0));return z}function R(U,z,H,K,ie){var he,ye,Ee,X;if(K===void 0){K={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null};var J=/^[\u0000-\u001F\u0020]+/,oe=/[\u0000-\u001F\u0020]+$/;(J.test(U)||oe.test(U))&&y("Input string contains leading or trailing control characters or space."),U=(U=U.replace(J,"")).replace(oe,"")}var Z=/[\u0009\u000A\u000D]/g;Z.test(U)&&y("Input string contains tab or newline characters."),U=U.replace(Z,"");var ee=ie===void 0?l.ParserState.SchemeStart:ie;z===void 0&&(z=null);for(var ve=H===void 0||H==="replacement"||H==="UTF-16BE"||H==="UTF-16LE"?"UTF-8":H,q="",Ae=!1,Be=!1,ke=!1,le=new c.StringWalker(U);;){switch(ee){case l.ParserState.SchemeStart:if(f.codePoint.ASCIIAlpha.test(le.c()))q+=le.c().toLowerCase(),ee=l.ParserState.Scheme;else{if(ie!==void 0)return y("Invalid scheme start character."),null;ee=l.ParserState.NoScheme,le.pointer--}break;case l.ParserState.Scheme:if(f.codePoint.ASCIIAlphanumeric.test(le.c())||le.c()==="+"||le.c()==="-"||le.c()===".")q+=le.c().toLowerCase();else{if(le.c()!==":"){if(ie===void 0){q="",ee=l.ParserState.NoScheme,le.pointer=0;continue}return y("Invalid input string."),null}if(ie!==void 0&&(C(K.scheme)&&!C(q)||!C(K.scheme)&&C(q)||(_(K)||K.port!==null)&&q==="file"||K.scheme==="file"&&(K.host===""||K.host===null)))return K;if(K.scheme=q,ie!==void 0)return K.port===T(K.scheme)&&(K.port=null),K;q="",K.scheme==="file"?(le.remaining().startsWith("//")||y("Invalid file URL scheme, '//' expected."),ee=l.ParserState.File):S(K)&&z!==null&&z.scheme===K.scheme?ee=l.ParserState.SpecialRelativeOrAuthority:S(K)?ee=l.ParserState.SpecialAuthoritySlashes:le.remaining().startsWith("/")?(ee=l.ParserState.PathOrAuthority,le.pointer++):(K._cannotBeABaseURLFlag=!0,K.path.push(""),ee=l.ParserState.CannotBeABaseURLPath)}break;case l.ParserState.NoScheme:if(z===null||z._cannotBeABaseURLFlag&&le.c()!=="#")return y("Invalid input string."),null;z._cannotBeABaseURLFlag&&le.c()==="#"?(K.scheme=z.scheme,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",K._cannotBeABaseURLFlag=!0,ee=l.ParserState.Fragment):z.scheme!=="file"?(ee=l.ParserState.Relative,le.pointer--):(ee=l.ParserState.File,le.pointer--);break;case l.ParserState.SpecialRelativeOrAuthority:le.c()==="/"&&le.remaining().startsWith("/")?(ee=l.ParserState.SpecialAuthorityIgnoreSlashes,le.pointer++):(y("Invalid input string."),ee=l.ParserState.Relative,le.pointer--);break;case l.ParserState.PathOrAuthority:le.c()==="/"?ee=l.ParserState.Authority:(ee=l.ParserState.Path,le.pointer--);break;case l.ParserState.Relative:if(z===null)throw new Error("Invalid parser state. Base URL is null.");switch(K.scheme=z.scheme,le.c()){case"":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query=z.query;break;case"/":ee=l.ParserState.RelativeSlash;break;case"?":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query="",ee=l.ParserState.Query;break;case"#":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",ee=l.ParserState.Fragment;break;default:S(K)&&le.c()==="\\"?(y("Invalid input string."),ee=l.ParserState.RelativeSlash):(K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.path.length!==0&&K.path.splice(K.path.length-1,1),ee=l.ParserState.Path,le.pointer--)}break;case l.ParserState.RelativeSlash:if(!S(K)||le.c()!=="/"&&le.c()!=="\\")if(le.c()==="/")ee=l.ParserState.Authority;else{if(z===null)throw new Error("Invalid parser state. Base URL is null.");K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,ee=l.ParserState.Path,le.pointer--}else le.c()==="\\"&&y("Invalid input string."),ee=l.ParserState.SpecialAuthorityIgnoreSlashes;break;case l.ParserState.SpecialAuthoritySlashes:le.c()==="/"&&le.remaining().startsWith("/")?(ee=l.ParserState.SpecialAuthorityIgnoreSlashes,le.pointer++):(y("Expected '//'."),ee=l.ParserState.SpecialAuthorityIgnoreSlashes,le.pointer--);break;case l.ParserState.SpecialAuthorityIgnoreSlashes:le.c()!=="/"&&le.c()!=="\\"?(ee=l.ParserState.Authority,le.pointer--):y("Unexpected '/' or '\\'.");break;case l.ParserState.Authority:if(le.c()==="@"){y("Unexpected '@'."),Ae&&(q="%40"+q),Ae=!0;try{for(var _e=(he=void 0,o(q)),Me=_e.next();!Me.done;Me=_e.next()){var Re=Me.value;if(Re!==":"||ke){var We=se(Re,v);ke?K.password+=We:K.username+=We}else ke=!0}}catch(gr){he={error:gr}}finally{try{Me&&!Me.done&&(ye=_e.return)&&ye.call(_e)}finally{if(he)throw he.error}}q=""}else if(le.c()===""||le.c()==="/"||le.c()==="?"||le.c()==="#"||S(K)&&le.c()==="\\"){if(Ae&&q==="")return y("Invalid input string."),null;le.pointer-=q.length+1,q="",ee=l.ParserState.Host}else q+=le.c();break;case l.ParserState.Host:case l.ParserState.Hostname:if(ie!==void 0&&K.scheme==="file")le.pointer--,ee=l.ParserState.FileHost;else if(le.c()!==":"||Be)if(le.c()===""||le.c()==="/"||le.c()==="?"||le.c()==="#"||S(K)&&le.c()==="\\"){if(le.pointer--,S(K)&&q==="")return y("Invalid input string."),null;if(ie!==void 0&&q===""&&(_(K)||K.port!==null))return y("Invalid input string."),K;if((ze=V(q,!S(K)))===null)return null;if(K.host=ze,q="",ee=l.ParserState.PathStart,ie!==void 0)return K}else le.c()==="["&&(Be=!0),le.c()==="]"&&(Be=!1),q+=le.c();else{if(q==="")return y("Invalid input string."),null;if((ze=V(q,!S(K)))===null)return null;if(K.host=ze,q="",ee=l.ParserState.Port,ie===l.ParserState.Hostname)return K}break;case l.ParserState.Port:if(f.codePoint.ASCIIDigit.test(le.c()))q+=le.c();else{if(!(le.c()===""||le.c()==="/"||le.c()==="?"||le.c()==="#"||S(K)&&le.c()==="\\"||ie))return y("Invalid input string."),null;if(q!==""&&q!==""){var ut=parseInt(q,10);if(ut>Math.pow(2,16)-1)return y("Invalid port number."),null;K.port=ut===T(K.scheme)?null:ut,q=""}if(ie!==void 0)return K;ee=l.ParserState.PathStart,le.pointer--}break;case l.ParserState.File:if(K.scheme="file",le.c()==="/"||le.c()==="\\")le.c()==="\\"&&y("Invalid input string."),ee=l.ParserState.FileSlash;else if(z!==null&&z.scheme==="file")switch(le.c()){case"":K.host=z.host,K.path=f.list.clone(z.path),K.query=z.query;break;case"?":K.host=z.host,K.path=f.list.clone(z.path),K.query="",ee=l.ParserState.Query;break;case"#":K.host=z.host,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",ee=l.ParserState.Fragment;break;default:N(le.substring())?y("Unexpected windows drive letter in input string."):(K.host=z.host,K.path=f.list.clone(z.path),A(K)),ee=l.ParserState.Path,le.pointer--}else ee=l.ParserState.Path,le.pointer--;break;case l.ParserState.FileSlash:le.c()==="/"||le.c()==="\\"?(le.c()==="\\"&&y("Invalid input string."),ee=l.ParserState.FileHost):(z===null||z.scheme!=="file"||N(le.substring())||(G(z.path[0])?K.path.push(z.path[0]):K.host=z.host),ee=l.ParserState.Path,le.pointer--);break;case l.ParserState.FileHost:if(le.c()===""||le.c()==="/"||le.c()==="\\"||le.c()==="?"||le.c()==="#")if(le.pointer--,ie===void 0&&P(q))y("Unexpected windows drive letter in input string."),ee=l.ParserState.Path;else if(q===""){if(K.host="",ie!==void 0)return K;ee=l.ParserState.PathStart}else{var ze;if((ze=V(q,!S(K)))===null)return null;if(ze==="localhost"&&(ze=""),K.host=ze,ie!==void 0)return K;q="",ee=l.ParserState.PathStart}else q+=le.c();break;case l.ParserState.PathStart:S(K)?(le.c()==="\\"&&y("Invalid input string."),ee=l.ParserState.Path,le.c()!=="/"&&le.c()!=="\\"&&le.pointer--):ie===void 0&&le.c()==="?"?(K.query="",ee=l.ParserState.Query):ie===void 0&&le.c()==="#"?(K.fragment="",ee=l.ParserState.Fragment):le.c()!==""&&(ee=l.ParserState.Path,le.c()!=="/"&&le.pointer--);break;case l.ParserState.Path:if(le.c()===""||le.c()==="/"||S(K)&&le.c()==="\\"||ie===void 0&&(le.c()==="?"||le.c()==="#")){if(S(K)&&le.c()==="\\"&&y("Invalid input string."),L(q))A(K),le.c()==="/"||S(K)&&le.c()==="\\"||K.path.push("");else if(!M(q)||le.c()==="/"||S(K)&&le.c()==="\\"){if(!M(q)){if(K.scheme==="file"&&K.path.length===0&&P(q)){K.host!==null&&K.host!==""&&(y("Invalid input string."),K.host="");var st=Array.from(q);q=st.slice(0,1)+":"+st.slice(2)}K.path.push(q)}}else K.path.push("");if(q="",K.scheme==="file"&&(le.c()===""||le.c()==="?"||le.c()==="#"))for(;K.path.length>1&&K.path[0]==="";)y("Invalid input string."),K.path.splice(0,1);le.c()==="?"&&(K.query="",ee=l.ParserState.Query),le.c()==="#"&&(K.fragment="",ee=l.ParserState.Fragment)}else x.test(le.c())||le.c()==="%"||y("Character is not a URL code point or a percent encoded character."),le.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(le.remaining())||y("Percent encoded character must be followed by two hex digits."),q+=se(le.c(),p);break;case l.ParserState.CannotBeABaseURLPath:le.c()==="?"?(K.query="",ee=l.ParserState.Query):le.c()==="#"?(K.fragment="",ee=l.ParserState.Fragment):(le.c()===""||x.test(le.c())||le.c()==="%"||y("Character is not a URL code point or a percent encoded character."),le.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(le.remaining())||y("Percent encoded character must be followed by two hex digits."),le.c()!==""&&(K.path[0]+=se(le.c(),h)));break;case l.ParserState.Query:if(ve==="UTF-8"||S(K)&&K.scheme!=="ws"&&K.scheme!=="wss"||(ve="UTF-8"),ie===void 0&&le.c()==="#")K.fragment="",ee=l.ParserState.Fragment;else if(le.c()!==""){if(x.test(le.c())||le.c()==="%"||y("Character is not a URL code point or a percent encoded character."),le.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(le.remaining())||y("Percent encoded character must be followed by two hex digits."),ve.toUpperCase()!=="UTF-8")throw new Error("Only UTF-8 encoding is supported.");var ht=c.utf8Encode(le.c());if(ht.length>=3&&ht[0]===38&&ht[1]===35&&ht[ht.length-1]===59)ht=ht.subarray(2,ht.length-1),K.query+="%26%23"+f.byteSequence.isomorphicDecode(ht)+"%3B";else try{for(var Wt=(Ee=void 0,o(ht)),Sn=Wt.next();!Sn.done;Sn=Wt.next()){var zt=Sn.value;zt<33||zt>126||zt===34||zt===35||zt===60||zt===62||zt===39&&S(K)?K.query+=re(zt):K.query+=String.fromCharCode(zt)}}catch(gr){Ee={error:gr}}finally{try{Sn&&!Sn.done&&(X=Wt.return)&&X.call(Wt)}finally{if(Ee)throw Ee.error}}}break;case l.ParserState.Fragment:le.c()===""||(le.c()==="\0"?y("NULL character in input string."):(x.test(le.c())||le.c()==="%"||y("Unexpected character in fragment string."),le.c()!=="%"||/^[A-Za-z0-9][A-Za-z0-9]/.test(le.remaining())||y("Unexpected character in fragment string."),K.fragment+=se(le.c(),g)))}if(le.eof)break;le.pointer++}return K}function M(U){return U==="."||U.toLowerCase()==="%2e"}function L(U){var z=U.toLowerCase();return z===".."||z===".%2e"||z==="%2e."||z==="%2e%2e"}function A(U){var z=U.path;z.length!==0&&(U.scheme==="file"&&z.length===1&&G(z[0])||U.path.splice(U.path.length-1,1))}function G(U){return U.length>=2&&f.codePoint.ASCIIAlpha.test(U[0])&&U[1]===":"}function P(U){return U.length>=2&&f.codePoint.ASCIIAlpha.test(U[0])&&(U[1]===":"||U[1]==="|")}function N(U){return U.length>=2&&P(U)&&(U.length===2||U[2]==="/"||U[2]==="\\"||U[2]==="?"||U[2]==="#")}function V(U,z){if(z===void 0&&(z=!1),U.startsWith("["))return U.endsWith("]")?Y(U.substring(1,U.length-1)):(y("Expected ']' after '['."),null);if(z)return te(U);var H=B(c.utf8Decode(fe(U)));if(H===null||m.test(H))return y("Invalid domain."),null;var K=j(H);return K===null||c.isNumber(K)?K:H}function $(U,z){z===void 0&&(z={value:!1});var H=10;return U.startsWith("0x")||U.startsWith("0X")?(z.value=!0,U=U.substr(2),H=16):U.length>=2&&U[0]==="0"&&(z.value=!0,U=U.substr(1),H=8),U===""?0:(H===10?/^[0-9]+$/:H===16?/^[0-9A-Fa-f]+$/:/^[0-7]+$/).test(U)?parseInt(U,H):null}function j(U){var z,H,K,ie,he={value:!1},ye=U.split(".");if(ye[ye.length-1]===""&&(he.value=!0,ye.length>1&&ye.pop()),ye.length>4)return U;var Ee=[];try{for(var X=o(ye),J=X.next();!J.done;J=X.next()){var oe=J.value;if(oe===""||(Be=$(oe,he))===null)return U;Ee.push(Be)}}catch(ke){z={error:ke}}finally{try{J&&!J.done&&(H=X.return)&&H.call(X)}finally{if(z)throw z.error}}he.value&&y("Invalid IP v4 address.");for(var Z=0;Z255&&(y("Invalid IP v4 address."),Z=Math.pow(256,5-Ee.length))return y("Invalid IP v4 address."),null;var ee=Ee[Ee.length-1];Ee.pop();var ve=0;try{for(var q=o(Ee),Ae=q.next();!Ae.done;Ae=q.next()){var Be;ee+=(Be=Ae.value)*Math.pow(256,3-ve),ve++}}catch(ke){K={error:ke}}finally{try{Ae&&!Ae.done&&(ie=q.return)&&ie.call(q)}finally{if(K)throw K.error}}return ee}function Y(U){var z,H=[0,0,0,0,0,0,0,0],K=0,ie=null,he=new c.StringWalker(U);if(he.c()===":"){if(!he.remaining().startsWith(":"))return y("Invalid IP v6 address."),null;he.pointer+=2,ie=K+=1}for(;he.c()!=="";){if(K===8)return y("Invalid IP v6 address."),null;if(he.c()!==":"){for(var ye=0,Ee=0;Ee<4&&f.codePoint.ASCIIHexDigit.test(he.c());)ye=16*ye+parseInt(he.c(),16),he.pointer++,Ee++;if(he.c()==="."){if(Ee===0||(he.pointer-=Ee,K>6))return y("Invalid IP v6 address."),null;for(var X=0;he.c()!=="";){var J=null;if(X>0){if(!(he.c()==="."&&X<4))return y("Invalid IP v6 address."),null;he.pointer++}if(!f.codePoint.ASCIIDigit.test(he.c()))return y("Invalid IP v6 address."),null;for(;f.codePoint.ASCIIDigit.test(he.c());){var oe=parseInt(he.c(),10);if(J===null)J=oe;else{if(J===0)return y("Invalid IP v6 address."),null;J=10*J+oe}if(J>255)return y("Invalid IP v6 address."),null;he.pointer++}if(J===null)return y("Invalid IP v6 address."),null;H[K]=256*H[K]+J,++X!==2&&X!==4||K++}if(X!==4)return y("Invalid IP v6 address."),null;break}if(he.c()===":"){if(he.pointer++,he.c()==="")return y("Invalid IP v6 address."),null}else if(he.c()!=="")return y("Invalid IP v6 address."),null;H[K]=ye,K++}else{if(ie!==null)return y("Invalid IP v6 address."),null;he.pointer++,ie=++K}}if(ie!==null){var Z=K-ie;for(K=7;K!==0&&Z>0;)z=a([H[ie+Z-1],H[K]],2),H[K]=z[0],H[ie+Z-1]=z[1],K--,Z--}else if(ie===null&&K!==8)return y("Invalid IP v6 address."),null;return H}function te(U){var z,H;if(/[\x00\t\f\r #/:?@\[\\\]]/.test(U))return y("Invalid host string."),null;var K="";try{for(var ie=o(U),he=ie.next();!he.done;he=ie.next())K+=se(he.value,h)}catch(ye){z={error:ye}}finally{try{he&&!he.done&&(H=ie.return)&&H.call(ie)}finally{if(z)throw z.error}}return K}function Q(U){return null}function re(U){return"%"+("00"+U.toString(16).toUpperCase()).slice(-2)}function de(U){for(var z=function(Ee){return Ee>=48&&Ee<=57||Ee>=65&&Ee<=70||Ee>=97&&Ee<=102},H=new Uint8Array(U.length),K=0,ie=0;ie=U.length-2)H[K]=he,K++;else if(he!==37||z(U[ie+1])&&z(U[ie+2])){var ye=parseInt(c.utf8Decode(Uint8Array.of(U[ie+1],U[ie+2])),16);H[K]=ye,K++,ie+=2}else H[K]=he,K++}return H.subarray(0,K)}function fe(U){return de(c.utf8Encode(U))}function se(U,z){var H,K;if(!z.test(U))return U;var ie=c.utf8Encode(U),he="";try{for(var ye=o(ie),Ee=ye.next();!Ee.done;Ee=ye.next())he+=re(Ee.value)}catch(X){H={error:X}}finally{try{Ee&&!Ee.done&&(K=ye.return)&&K.call(ye)}finally{if(H)throw H.error}}return he}function k(U){var z,H,K,ie,he=[],ye=[];try{for(var Ee=o(U),X=Ee.next();!X.done;X=Ee.next()){var J=X.value;J===38?(he.push(Uint8Array.from(ye)),ye=[]):ye.push(J)}}catch(Me){z={error:Me}}finally{try{X&&!X.done&&(H=Ee.return)&&H.call(Ee)}finally{if(z)throw z.error}}ye.length!==0&&he.push(Uint8Array.from(ye));var oe=[];try{for(var Z=o(he),ee=Z.next();!ee.done;ee=Z.next()){var ve=ee.value;if(ve.length!==0){for(var q=ve.indexOf(61),Ae=q!==-1?ve.slice(0,q):ve,Be=q!==-1?ve.slice(q+1):new Uint8Array,ke=0;ke=48&&ye<=57||ye>=65&&ye<=90||ye===95||ye>=97&&ye<=122?String.fromCodePoint(ye):re(ye)}}catch(Ee){z={error:Ee}}finally{try{he&&!he.done&&(H=ie.return)&&H.call(ie)}finally{if(z)throw z.error}}return K}function B(U,z){var H=u.domainToASCII(U);return H===""?(y("Invalid domain name."),null):H}n.setValidationErrorCallback=function(U){s=U},n.newURL=w,n.isSpecialScheme=C,n.isSpecial=S,n.defaultPort=T,n.includesCredentials=_,n.cannotHaveAUsernamePasswordPort=function(U){return U.host===null||U.host===""||U._cannotBeABaseURLFlag||U.scheme==="file"},n.urlSerializer=E,n.hostSerializer=D,n.iPv4Serializer=b,n.iPv6Serializer=I,n.urlParser=function(U,z,H){var K=R(U,z,H);return K===null?null:(K.scheme!=="blob"||(K._blobURLEntry=null),K)},n.basicURLParser=R,n.setTheUsername=function(U,z){var H,K,ie="";try{for(var he=o(z),ye=he.next();!ye.done;ye=he.next())ie+=se(ye.value,v)}catch(Ee){H={error:Ee}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(H)throw H.error}}U.username=ie},n.setThePassword=function(U,z){var H,K,ie="";try{for(var he=o(z),ye=he.next();!ye.done;ye=he.next())ie+=se(ye.value,v)}catch(Ee){H={error:Ee}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(H)throw H.error}}U.password=ie},n.isSingleDotPathSegment=M,n.isDoubleDotPathSegment=L,n.shorten=A,n.isNormalizedWindowsDriveLetter=G,n.isWindowsDriveLetter=P,n.startsWithAWindowsDriveLetter=N,n.hostParser=V,n.iPv4NumberParser=$,n.iPv4Parser=j,n.iPv6Parser=Y,n.opaqueHostParser=te,n.resolveABlobURL=Q,n.percentEncode=re,n.percentDecode=de,n.stringPercentDecode=fe,n.utf8PercentEncode=se,n.hostEquals=function(U,z){return U===z},n.urlEquals=function(U,z,H){return H===void 0&&(H=!1),E(U,H)===E(z,H)},n.urlEncodedStringParser=function(U){return k(c.utf8Encode(U))},n.urlEncodedParser=k,n.urlEncodedByteSerializer=O,n.urlEncodedSerializer=function(U,z){var H,K;if((z===void 0||z==="replacement"||z==="UTF-16BE"||z==="UTF-16LE"?"UTF-8":z).toUpperCase()!=="UTF-8")throw new Error("Only UTF-8 encoding is supported.");var ie="";try{for(var he=o(U),ye=he.next();!ye.done;ye=he.next()){var Ee=ye.value,X=O(c.utf8Encode(Ee[0])),J=Ee[1];J=O(c.utf8Encode(J)),ie!==""&&(ie+="&"),ie+=X+"="+J}}catch(oe){H={error:oe}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(H)throw H.error}}return ie},n.origin=function U(z){switch(z.scheme){case"blob":z._blobURLEntry;var H=R(z.path[0]);return H===null?l.OpaqueOrigin:U(H);case"ftp":case"http":case"https":case"ws":case"wss":return[z.scheme,z.host===null?"":z.host,z.port,null];case"file":default:return l.OpaqueOrigin}},n.domainToASCII=B,n.domainToUnicode=function(U,z){var H=u.domainToUnicode(U);return H===""&&y("Invalid domain name."),H},n.asciiSerializationOfAnOrigin=function(U){if(U[0]===""&&U[1]===""&&U[2]===null&&U[3]===null)return"null";var z=U[0]+"://"+D(U[1]);return U[2]!==null&&(z+=":"+U[2].toString()),z}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(0),a=function(){function s(){this._signal=o.create_abortSignal()}return Object.defineProperty(s.prototype,"signal",{get:function(){return this._signal},enumerable:!0,configurable:!0}),s.prototype.abort=function(){o.abort_signalAbort(this._signal)},s}();n.AbortControllerImpl=a},function(r,n,i){var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(70),c=i(0),l=function(f){function u(){var d=f.call(this)||this;return d._abortedFlag=!1,d._abortAlgorithms=new Set,d}return a(u,f),Object.defineProperty(u.prototype,"aborted",{get:function(){return this._abortedFlag},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"onabort",{get:function(){return c.event_getterEventHandlerIDLAttribute(this,"onabort")},set:function(d){c.event_setterEventHandlerIDLAttribute(this,"onabort",d)},enumerable:!0,configurable:!0}),u._create=function(){return new u},u}(s.EventTargetImpl);n.AbortSignalImpl=l},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(2),c=i(34),l=i(12),f=function(u){function d(h,g,p){var v=u.call(this)||this;return v._name="",v._publicId="",v._systemId="",v._name=h,v._publicId=g,v._systemId=p,v}return a(d,u),Object.defineProperty(d.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"publicId",{get:function(){return this._publicId},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"systemId",{get:function(){return this._systemId},enumerable:!0,configurable:!0}),d.prototype.before=function(){for(var h=[],g=0;g=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(1),c=i(0),l=function(){function f(u){return this._live=!0,this._filter=null,this._length=0,this._root=u,new Proxy(this,this)}return Object.defineProperty(f.prototype,"length",{get:function(){return this._root._children.size},enumerable:!0,configurable:!0}),f.prototype.item=function(u){if(u<0||u>this.length-1)return null;if(u=l.length&&(l=void 0),{value:l&&l[d++],done:!l}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(1),c=function(){function l(f){return this._live=!1,this._items=[],this._length=0,this._root=f,this._items=[],this._filter=function(u){return!0},new Proxy(this,this)}return Object.defineProperty(l.prototype,"length",{get:function(){return this._items.length},enumerable:!0,configurable:!0}),l.prototype.item=function(f){return f<0||f>this.length-1?null:this._items[f]},l.prototype.keys=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=0;return{next:(function(){return u===this.length?{done:!0,value:null}:{done:!1,value:u++}}).bind(this)}}).bind(this),f},l.prototype.values=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=this[Symbol.iterator]();return{next:function(){return u.next()}}}).bind(this),f},l.prototype.entries=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=this[Symbol.iterator](),d=0;return{next:function(){var h=u.next();return h.done?{done:!0,value:null}:{done:!1,value:[d++,h.value]}}}}).bind(this),f},l.prototype[Symbol.iterator]=function(){var f=this._items[Symbol.iterator]();return{next:function(){return f.next()}}},l.prototype.forEach=function(f,u){var d,h;u===void 0&&(u=a.dom.window);var g=0;try{for(var p=o(this._items),v=p.next();!v.done;v=p.next()){var x=v.value;f.call(u,x,g++,this)}}catch(m){d={error:m}}finally{try{v&&!v.done&&(h=p.return)&&h.call(p)}finally{if(d)throw d.error}}},l.prototype.get=function(f,u,d){if(!s.isString(u))return Reflect.get(f,u,d);var h=Number(u);return isNaN(h)?Reflect.get(f,u,d):f._items[h]||void 0},l.prototype.set=function(f,u,d,h){if(!s.isString(u))return Reflect.set(f,u,d,h);var g=Number(u);return isNaN(g)?Reflect.set(f,u,d,h):g>=0&&g=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(6),l=i(2),f=i(102),u=i(9),d=i(0),h=i(12),g=i(3),p=function(v){function x(){var m=v.call(this)||this,y=c.dom.window._associatedDocument;return m._start=[y,0],m._end=[y,0],c.dom.rangeList.add(m),m}return a(x,v),Object.defineProperty(x.prototype,"commonAncestorContainer",{get:function(){for(var m=this._start[0];!d.tree_isAncestorOf(this._end[0],m,!0);){if(m._parent===null)throw new Error("Parent node is null.");m=m._parent}return m},enumerable:!0,configurable:!0}),x.prototype.setStart=function(m,y){d.range_setTheStart(this,m,y)},x.prototype.setEnd=function(m,y){d.range_setTheEnd(this,m,y)},x.prototype.setStartBefore=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheStart(this,y,d.tree_index(m))},x.prototype.setStartAfter=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheStart(this,y,d.tree_index(m)+1)},x.prototype.setEndBefore=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheEnd(this,y,d.tree_index(m))},x.prototype.setEndAfter=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheEnd(this,y,d.tree_index(m)+1)},x.prototype.collapse=function(m){m?this._end=this._start:this._start=this._end},x.prototype.selectNode=function(m){d.range_select(m,this)},x.prototype.selectNodeContents=function(m){if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;var y=d.tree_nodeLength(m);this._start=[m,0],this._end=[m,y]},x.prototype.compareBoundaryPoints=function(m,y){if(m!==l.HowToCompare.StartToStart&&m!==l.HowToCompare.StartToEnd&&m!==l.HowToCompare.EndToEnd&&m!==l.HowToCompare.EndToStart)throw new u.NotSupportedError;if(d.range_root(this)!==d.range_root(y))throw new u.WrongDocumentError;var w,C;switch(m){case l.HowToCompare.StartToStart:w=this._start,C=y._start;break;case l.HowToCompare.StartToEnd:w=this._end,C=y._start;break;case l.HowToCompare.EndToEnd:w=this._end,C=y._end;break;case l.HowToCompare.EndToStart:w=this._start,C=y._end;break;default:throw new u.NotSupportedError}var S=d.boundaryPoint_position(w,C);return S===l.BoundaryPosition.Before?-1:S===l.BoundaryPosition.After?1:0},x.prototype.deleteContents=function(){var m,y,w,C;if(!d.range_collapsed(this)){var S=this._startNode,T=this._startOffset,_=this._endNode,E=this._endOffset;if(S===_&&g.Guard.isCharacterDataNode(S))d.characterData_replaceData(S,T,E-T,"");else{var D,b,I=[];try{for(var R=s(d.range_getContainedNodes(this)),M=R.next();!M.done;M=R.next()){var L=(N=M.value)._parent;L!==null&&d.range_isContained(L,this)||I.push(N)}}catch(V){m={error:V}}finally{try{M&&!M.done&&(y=R.return)&&y.call(R)}finally{if(m)throw m.error}}if(d.tree_isAncestorOf(_,S,!0))D=S,b=T;else{for(var A=S;A._parent!==null&&!d.tree_isAncestorOf(_,A._parent,!0);)A=A._parent;if(A._parent===null)throw new Error("Parent node is null.");D=A._parent,b=d.tree_index(A)+1}g.Guard.isCharacterDataNode(S)&&d.characterData_replaceData(S,T,d.tree_nodeLength(S)-T,"");try{for(var G=s(I),P=G.next();!P.done;P=G.next()){var N;(N=P.value)._parent&&d.mutation_remove(N,N._parent)}}catch(V){w={error:V}}finally{try{P&&!P.done&&(C=G.return)&&C.call(G)}finally{if(w)throw w.error}}g.Guard.isCharacterDataNode(_)&&d.characterData_replaceData(_,0,E,""),this._start=[D,b],this._end=[D,b]}}},x.prototype.extractContents=function(){return d.range_extract(this)},x.prototype.cloneContents=function(){return d.range_cloneTheContents(this)},x.prototype.insertNode=function(m){return d.range_insert(m,this)},x.prototype.surroundContents=function(m){var y,w;try{for(var C=s(d.range_getPartiallyContainedNodes(this)),S=C.next();!S.done;S=C.next()){var T=S.value;if(!g.Guard.isTextNode(T))throw new u.InvalidStateError}}catch(E){y={error:E}}finally{try{S&&!S.done&&(w=C.return)&&w.call(C)}finally{if(y)throw y.error}}if(g.Guard.isDocumentNode(m)||g.Guard.isDocumentTypeNode(m)||g.Guard.isDocumentFragmentNode(m))throw new u.InvalidNodeTypeError;var _=d.range_extract(this);m._children.size!==0&&d.mutation_replaceAll(null,m),d.range_insert(m,this),d.mutation_append(_,m),d.range_select(m,this)},x.prototype.cloneRange=function(){return d.create_range(this._start,this._end)},x.prototype.detach=function(){c.dom.rangeList.delete(this)},x.prototype.isPointInRange=function(m,y){if(d.tree_rootNode(m)!==d.range_root(this))return!1;if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;if(y>d.tree_nodeLength(m))throw new u.IndexSizeError;var w=[m,y];return d.boundaryPoint_position(w,this._start)!==l.BoundaryPosition.Before&&d.boundaryPoint_position(w,this._end)!==l.BoundaryPosition.After},x.prototype.comparePoint=function(m,y){if(d.tree_rootNode(m)!==d.range_root(this))throw new u.WrongDocumentError;if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;if(y>d.tree_nodeLength(m))throw new u.IndexSizeError;var w=[m,y];return d.boundaryPoint_position(w,this._start)===l.BoundaryPosition.Before?-1:d.boundaryPoint_position(w,this._end)===l.BoundaryPosition.After?1:0},x.prototype.intersectsNode=function(m){if(d.tree_rootNode(m)!==d.range_root(this))return!1;var y=m._parent;if(y===null)return!0;var w=d.tree_index(m);return d.boundaryPoint_position([y,w],this._end)===l.BoundaryPosition.Before&&d.boundaryPoint_position([y,w+1],this._start)===l.BoundaryPosition.After},x.prototype.toString=function(){var m,y,w="";if(this._startNode===this._endNode&&g.Guard.isTextNode(this._startNode))return this._startNode._data.substring(this._startOffset,this._endOffset);g.Guard.isTextNode(this._startNode)&&(w+=this._startNode._data.substring(this._startOffset));try{for(var C=s(d.range_getContainedNodes(this)),S=C.next();!S.done;S=C.next()){var T=S.value;g.Guard.isTextNode(T)&&(w+=T._data)}}catch(_){m={error:_}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return g.Guard.isTextNode(this._endNode)&&(w+=this._endNode._data.substring(0,this._endOffset)),w},x._create=function(m,y){var w=new x;return m&&(w._start=m),y&&(w._end=y),w},x.START_TO_START=0,x.START_TO_END=1,x.END_TO_END=2,x.END_TO_START=3,x}(f.AbstractRangeImpl);n.RangeImpl=p,h.idl_defineConst(p.prototype,"START_TO_START",0),h.idl_defineConst(p.prototype,"START_TO_END",1),h.idl_defineConst(p.prototype,"END_TO_END",2),h.idl_defineConst(p.prototype,"END_TO_START",3)},function(r,n,i){var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(103),c=i(0),l=function(f){function u(d,h,g){var p=f.call(this,d)||this;return p._iteratorCollection=void 0,p._reference=h,p._pointerBeforeReference=g,c.nodeIterator_iteratorList().add(p),p}return a(u,f),Object.defineProperty(u.prototype,"referenceNode",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"pointerBeforeReferenceNode",{get:function(){return this._pointerBeforeReference},enumerable:!0,configurable:!0}),u.prototype.nextNode=function(){return c.nodeIterator_traverse(this,!0)},u.prototype.previousNode=function(){return c.nodeIterator_traverse(this,!1)},u.prototype.detach=function(){c.nodeIterator_iteratorList().delete(this)},u._create=function(d,h,g){return new u(d,h,g)},u}(s.TraverserImpl);n.NodeIteratorImpl=l},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(2),c=i(103),l=i(0),f=function(u){function d(h,g){var p=u.call(this,h)||this;return p._current=g,p}return a(d,u),Object.defineProperty(d.prototype,"currentNode",{get:function(){return this._current},set:function(h){this._current=h},enumerable:!0,configurable:!0}),d.prototype.parentNode=function(){for(var h=this._current;h!==null&&h!==this._root;)if((h=h._parent)!==null&&l.traversal_filter(this,h)===s.FilterResult.Accept)return this._current=h,h;return null},d.prototype.firstChild=function(){return l.treeWalker_traverseChildren(this,!0)},d.prototype.lastChild=function(){return l.treeWalker_traverseChildren(this,!1)},d.prototype.nextSibling=function(){return l.treeWalker_traverseSiblings(this,!0)},d.prototype.previousNode=function(){for(var h=this._current;h!==this._root;){for(var g=h._previousSibling;g;){h=g;for(var p=l.traversal_filter(this,h);p!==s.FilterResult.Reject&&h._lastChild;)h=h._lastChild,p=l.traversal_filter(this,h);if(p===s.FilterResult.Accept)return this._current=h,h;g=h._previousSibling}if(h===this._root||h._parent===null)return null;if(h=h._parent,l.traversal_filter(this,h)===s.FilterResult.Accept)return this._current=h,h}return null},d.prototype.previousSibling=function(){return l.treeWalker_traverseSiblings(this,!1)},d.prototype.nextNode=function(){for(var h=this._current,g=s.FilterResult.Accept;;){for(;g!==s.FilterResult.Reject&&h._firstChild;)if(h=h._firstChild,(g=l.traversal_filter(this,h))===s.FilterResult.Accept)return this._current=h,h;for(var p=null,v=h;v!==null;){if(v===this._root)return null;if((p=v._nextSibling)!==null){h=p;break}v=v._parent}if((g=l.traversal_filter(this,h))===s.FilterResult.Accept)return this._current=h,h}},d._create=function(h,g){return new d(h,g)},d}(c.TraverserImpl);n.TreeWalkerImpl=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(12),s=function(){function c(){}return c.prototype.acceptNode=function(l){return o.FilterResult.Accept},c._create=function(){return new c},c.FILTER_ACCEPT=1,c.FILTER_REJECT=2,c.FILTER_SKIP=3,c.SHOW_ALL=4294967295,c.SHOW_ELEMENT=1,c.SHOW_ATTRIBUTE=2,c.SHOW_TEXT=4,c.SHOW_CDATA_SECTION=8,c.SHOW_ENTITY_REFERENCE=16,c.SHOW_ENTITY=32,c.SHOW_PROCESSING_INSTRUCTION=64,c.SHOW_COMMENT=128,c.SHOW_DOCUMENT=256,c.SHOW_DOCUMENT_TYPE=512,c.SHOW_DOCUMENT_FRAGMENT=1024,c.SHOW_NOTATION=2048,c}();n.NodeFilterImpl=s,a.idl_defineConst(s.prototype,"FILTER_ACCEPT",1),a.idl_defineConst(s.prototype,"FILTER_REJECT",2),a.idl_defineConst(s.prototype,"FILTER_SKIP",3),a.idl_defineConst(s.prototype,"SHOW_ALL",4294967295),a.idl_defineConst(s.prototype,"SHOW_ELEMENT",1),a.idl_defineConst(s.prototype,"SHOW_ATTRIBUTE",2),a.idl_defineConst(s.prototype,"SHOW_TEXT",4),a.idl_defineConst(s.prototype,"SHOW_CDATA_SECTION",8),a.idl_defineConst(s.prototype,"SHOW_ENTITY_REFERENCE",16),a.idl_defineConst(s.prototype,"SHOW_ENTITY",32),a.idl_defineConst(s.prototype,"SHOW_PROCESSING_INSTRUCTION",64),a.idl_defineConst(s.prototype,"SHOW_COMMENT",128),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT",256),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT_TYPE",512),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT_FRAGMENT",1024),a.idl_defineConst(s.prototype,"SHOW_NOTATION",2048)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s,c,l,f,u,d,h,g,p){this._type=s,this._target=c,this._addedNodes=l,this._removedNodes=f,this._previousSibling=u,this._nextSibling=d,this._attributeName=h,this._attributeNamespace=g,this._oldValue=p}return Object.defineProperty(a.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"addedNodes",{get:function(){return this._addedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"removedNodes",{get:function(){return this._removedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"previousSibling",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"nextSibling",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"attributeName",{get:function(){return this._attributeName},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"attributeNamespace",{get:function(){return this._attributeNamespace},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"oldValue",{get:function(){return this._oldValue},enumerable:!0,configurable:!0}),a._create=function(s,c,l,f,u,d,h,g,p){return new a(s,c,l,f,u,d,h,g,p)},a}();n.MutationRecordImpl=o},function(r,n,i){var o=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(9),c=i(7),l=i(0),f=function(){function u(d,h){this._element=d,this._attribute=h,this._tokenSet=new Set;var g=h._localName,p=l.element_getAnAttributeValue(d,g),v=this;this._element._attributeChangeSteps.push(function(x,m,y,w,C){m===v._attribute._localName&&C===null&&(w?v._tokenSet=l.orderedSet_parse(w):v._tokenSet.clear())}),a.dom.features.steps&&l.dom_runAttributeChangeSteps(d,g,p,p,null)}return Object.defineProperty(u.prototype,"length",{get:function(){return this._tokenSet.size},enumerable:!0,configurable:!0}),u.prototype.item=function(d){var h,g,p=0;try{for(var v=o(this._tokenSet),x=v.next();!x.done;x=v.next()){var m=x.value;if(p===d)return m;p++}}catch(y){h={error:y}}finally{try{x&&!x.done&&(g=v.return)&&g.call(v)}finally{if(h)throw h.error}}return null},u.prototype.contains=function(d){return this._tokenSet.has(d)},u.prototype.add=function(){for(var d,h,g=[],p=0;p=97&&s<=122||s>=65&&s<=90||s===58||s===95||s>=192&&s<=214||s>=216&&s<=246||s>=248&&s<=767||s>=880&&s<=893||s>=895&&s<=8191||s>=8204&&s<=8205||s>=8304&&s<=8591||s>=11264&&s<=12271||s>=12289&&s<=55295||s>=63744&&s<=64975||s>=65008&&s<=65533)&&(a===0||!(s===45||s===46||s>=48&&s<=57||s===183||s>=768&&s<=879||s>=8255&&s<=8256))){if(s>=55296&&s<=56319&&a=56320&&c<=57343&&(a++,(s=1024*(s-55296)+c-56320+65536)>=65536&&s<=983039))continue}return!1}}return!0},n.xml_isQName=function(o){for(var a=!1,s=0;s=97&&c<=122||c>=65&&c<=90||c===95||c>=192&&c<=214||c>=216&&c<=246||c>=248&&c<=767||c>=880&&c<=893||c>=895&&c<=8191||c>=8204&&c<=8205||c>=8304&&c<=8591||c>=11264&&c<=12271||c>=12289&&c<=55295||c>=63744&&c<=64975||c>=65008&&c<=65533)&&(s===0||!(c===45||c===46||c>=48&&c<=57||c===183||c>=768&&c<=879||c>=8255&&c<=8256))){if(s===0||c!==58){if(c>=55296&&c<=56319&&s=56320&&l<=57343&&(s++,(c=1024*(c-55296)+l-56320+65536)>=65536&&c<=983039))continue}return!1}if(a||s===o.length-1)return!1;a=!0}}return!0},n.xml_isLegalChar=function(o){for(var a=0;a=32&&s<=55295||s>=57344&&s<=65533)){if(s>=55296&&s<=56319&&a=56320&&c<=57343&&(a++,(s=1024*(s-55296)+c-56320+65536)>=65536&&s<=1114111))continue}return!1}}return!0},n.xml_isPubidChar=function(o){for(var a=0;a=97&&s<=122||s>=65&&s<=90||s>=39&&s<=59||s===32||s===13||s===10||s>=35&&s<=37||s===33||s===61||s===63||s===64||s===95))return!1}return!0}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(17);n.boundaryPoint_position=function s(c,l){var f=c[0],u=c[1],d=l[0],h=l[1];if(console.assert(a.tree_rootNode(f)===a.tree_rootNode(d),"Boundary points must share the same root node."),f===d)return u===h?o.BoundaryPosition.Equal:u=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(7),l=i(29),f=i(108),u=i(30),d=i(37),h=i(52);n.node_stringReplaceAll=function(g,p){var v=null;g!==""&&(v=l.create_text(p._nodeDocument,g)),d.mutation_replaceAll(v,p)},n.node_clone=function g(p,v,x){var m,y,w,C,S;if(v===void 0&&(v=null),x===void 0&&(x=!1),v===null&&(v=p._nodeDocument),s.Guard.isElementNode(p)){S=h.element_createAnElement(v,p._localName,p._namespace,p._namespacePrefix,p._is,!1);try{for(var T=o(p._attributeList),_=T.next();!_.done;_=T.next()){var E=g(_.value,v);h.element_append(E,S)}}catch(L){m={error:L}}finally{try{_&&!_.done&&(y=T.return)&&y.call(T)}finally{if(m)throw m.error}}}else if(s.Guard.isDocumentNode(p)){var D=l.create_document();D._encoding=p._encoding,D._contentType=p._contentType,D._URL=p._URL,D._origin=p._origin,D._type=p._type,D._mode=p._mode,S=D}else if(s.Guard.isDocumentTypeNode(p))S=l.create_documentType(v,p._name,p._publicId,p._systemId);else if(s.Guard.isAttrNode(p)){var b=l.create_attr(v,p.localName);b._namespace=p._namespace,b._namespacePrefix=p._namespacePrefix,b._value=p._value,S=b}else S=s.Guard.isExclusiveTextNode(p)?l.create_text(v,p._data):s.Guard.isCDATASectionNode(p)?l.create_cdataSection(v,p._data):s.Guard.isCommentNode(p)?l.create_comment(v,p._data):s.Guard.isProcessingInstructionNode(p)?l.create_processingInstruction(v,p._target,p._data):s.Guard.isDocumentFragmentNode(p)?l.create_documentFragment(v):Object.create(p);if(s.Guard.isDocumentNode(S)?(S._nodeDocument=S,v=S):S._nodeDocument=v,a.dom.features.steps&&u.dom_runCloningSteps(S,p,v,x),x)try{for(var I=o(p._children),R=I.next();!R.done;R=I.next()){var M=g(R.value,v,!0);d.mutation_append(M,S)}}catch(L){w={error:L}}finally{try{R&&!R.done&&(C=I.return)&&C.call(I)}finally{if(w)throw w.error}}return S},n.node_equals=function g(p,v){var x,m,y,w;if(p._nodeType!==v._nodeType)return!1;if(s.Guard.isDocumentTypeNode(p)&&s.Guard.isDocumentTypeNode(v)){if(p._name!==v._name||p._publicId!==v._publicId||p._systemId!==v._systemId)return!1}else if(s.Guard.isElementNode(p)&&s.Guard.isElementNode(v)){if(p._namespace!==v._namespace||p._namespacePrefix!==v._namespacePrefix||p._localName!==v._localName||p._attributeList.length!==v._attributeList.length)return!1}else if(s.Guard.isAttrNode(p)&&s.Guard.isAttrNode(v)){if(p._namespace!==v._namespace||p._localName!==v._localName||p._value!==v._value)return!1}else if(s.Guard.isProcessingInstructionNode(p)&&s.Guard.isProcessingInstructionNode(v)){if(p._target!==v._target||p._data!==v._data)return!1}else if(s.Guard.isCharacterDataNode(p)&&s.Guard.isCharacterDataNode(v)&&p._data!==v._data)return!1;if(s.Guard.isElementNode(p)&&s.Guard.isElementNode(v)){var C={};try{for(var S=o(p._attributeList),T=S.next();!T.done;T=S.next())C[(D=T.value)._localName]=D}catch(A){x={error:A}}finally{try{T&&!T.done&&(m=S.return)&&m.call(S)}finally{if(x)throw x.error}}try{for(var _=o(v._attributeList),E=_.next();!E.done;E=_.next()){var D,b=E.value;if(!(D=C[b._localName])||!g(D,b))return!1}}catch(A){y={error:A}}finally{try{E&&!E.done&&(w=_.return)&&w.call(_)}finally{if(y)throw y.error}}}if(p._children.size!==v._children.size)return!1;for(var I=p._children[Symbol.iterator](),R=v._children[Symbol.iterator](),M=I.next(),L=R.next();!M.done&&!L.done;){if(!g(M.value,L.value))return!1;M=I.next(),L=R.next()}return!0},n.node_listOfElementsWithQualifiedName=function(g,p){return g==="*"?l.create_htmlCollection(p):p._nodeDocument._type==="html"?l.create_htmlCollection(p,function(v){return v._namespace===c.namespace.HTML&&v._qualifiedName===g.toLowerCase()||v._namespace!==c.namespace.HTML&&v._qualifiedName===g}):l.create_htmlCollection(p,function(v){return v._qualifiedName===g})},n.node_listOfElementsWithNamespace=function(g,p,v){return g===""&&(g=null),g==="*"&&p==="*"?l.create_htmlCollection(v):g==="*"?l.create_htmlCollection(v,function(x){return x._localName===p}):p==="*"?l.create_htmlCollection(v,function(x){return x._namespace===g}):l.create_htmlCollection(v,function(x){return x._localName===p&&x._namespace===g})},n.node_listOfElementsWithClassNames=function(g,p){var v=f.orderedSet_parse(g);if(v.size===0)return l.create_htmlCollection(p,function(){return!1});var x=p._nodeDocument._mode!=="quirks";return l.create_htmlCollection(p,function(m){var y=m.classList;return f.orderedSet_contains(y._tokenSet,v,x)})},n.node_locateANamespacePrefix=function g(p,v){if(p._namespace===v&&p._namespacePrefix!==null)return p._namespacePrefix;for(var x=0;x=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(9),l=i(29),f=i(17),u=i(107),d=i(37);n.text_contiguousTextNodes=function(h,g){var p;return g===void 0&&(g=!1),(p={})[Symbol.iterator]=function(){for(var v=h;v&&s.Guard.isTextNode(v._previousSibling);)v=v._previousSibling;return{next:function(){if(v&&!g&&v===h&&(v=s.Guard.isTextNode(v._nextSibling)?v._nextSibling:null),v===null)return{done:!0,value:null};var x={done:!1,value:v};return v=s.Guard.isTextNode(v._nextSibling)?v._nextSibling:null,x}}},p},n.text_contiguousExclusiveTextNodes=function(h,g){var p;return g===void 0&&(g=!1),(p={})[Symbol.iterator]=function(){for(var v=h;v&&s.Guard.isExclusiveTextNode(v._previousSibling);)v=v._previousSibling;return{next:function(){if(v&&!g&&v===h&&(v=s.Guard.isExclusiveTextNode(v._nextSibling)?v._nextSibling:null),v===null)return{done:!0,value:null};var x={done:!1,value:v};return v=s.Guard.isExclusiveTextNode(v._nextSibling)?v._nextSibling:null,x}}},p},n.text_descendantTextContent=function(h){for(var g="",p=f.tree_getFirstDescendantNode(h,!1,!1,function(v){return s.Guard.isTextNode(v)});p!==null;)g+=p._data,p=f.tree_getNextDescendantNode(h,p,!1,!1,function(v){return s.Guard.isTextNode(v)});return g},n.text_split=function(h,g){var p,v,x=h._data.length;if(g>x)throw new c.IndexSizeError;var m=x-g,y=u.characterData_substringData(h,g,m),w=l.create_text(h._nodeDocument,y),C=h._parent;if(C!==null){d.mutation_insert(w,C,h._nextSibling);try{for(var S=o(a.dom.rangeList),T=S.next();!T.done;T=S.next()){var _=T.value;_._start[0]===h&&_._start[1]>g&&(_._start[0]=w,_._start[1]-=g),_._end[0]===h&&_._end[1]>g&&(_._end[0]=w,_._end[1]-=g);var E=f.tree_index(h);_._start[0]===C&&_._start[1]===E+1&&_._start[1]++,_._end[0]===C&&_._end[1]===E+1&&_._end[1]++}}catch(D){p={error:D}}finally{try{T&&!T.done&&(v=S.return)&&v.call(S)}finally{if(p)throw p.error}}}return u.characterData_replaceData(h,g,m,""),w}},function(r,n,i){var o=i(4),a=i(41),s=i(24),c=i(48),l=[].join,f=a!=Object,u=c("join",",");o({target:"Array",proto:!0,forced:f||!u},{join:function(d){return l.call(s(this),d===void 0?",":d)}})},function(r,n,i){var o=i(4),a=i(83),s=String.fromCharCode,c=String.fromCodePoint;o({target:"String",stat:!0,forced:!!c&&c.length!=1},{fromCodePoint:function(l){for(var f,u=[],d=arguments.length,h=0;d>h;){if(f=+arguments[h++],a(f,1114111)!==f)throw RangeError(f+" is not a valid code point");u.push(f<65536?s(f):s(55296+((f-=65536)>>10),f%1024+56320))}return u.join("")}})},function(r,n,i){var o=this&&this.__read||function(c,l){var f=typeof Symbol=="function"&&c[Symbol.iterator];if(!f)return c;var u,d,h=f.call(c),g=[];try{for(;(l===void 0||l-- >0)&&!(u=h.next()).done;)g.push(u.value)}catch(p){d={error:p}}finally{try{u&&!u.done&&(f=h.return)&&f.call(h)}finally{if(d)throw d.error}}return g};Object.defineProperty(n,"__esModule",{value:!0});var a=i(111),s=function(){function c(l,f){this._options={skipWhitespaceOnlyText:!1},this.err={line:-1,col:-1,index:-1,str:""},this._str=l,this._index=0,this._length=l.length,f&&(this._options.skipWhitespaceOnlyText=f.skipWhitespaceOnlyText||!1)}return c.prototype.nextToken=function(){if(this.eof())return{type:a.TokenType.EOF};var l=this.skipIfStartsWith("<")?this.openBracket():this.text();return this._options.skipWhitespaceOnlyText&&l.type===a.TokenType.Text&&c.isWhiteSpaceToken(l)&&(l=this.nextToken()),l},c.prototype.openBracket=function(){return this.skipIfStartsWith("?")?this.skipIfStartsWith("xml")?c.isSpace(this._str[this._index])?this.declaration():(this.seek(-3),this.pi()):this.pi():this.skipIfStartsWith("!")?this.skipIfStartsWith("--")?this.comment():this.skipIfStartsWith("[CDATA[")?this.cdata():this.skipIfStartsWith("DOCTYPE")?this.doctype():void this.throwError("Invalid '!' in opening tag."):this.skipIfStartsWith("/")?this.closeTag():this.openTag()},c.prototype.declaration=function(){for(var l="",f="",u="";!this.eof();){if(this.skipSpace(),this.skipIfStartsWith("?>"))return{type:a.TokenType.Declaration,version:l,encoding:f,standalone:u};var d=o(this.attribute(),2),h=d[0],g=d[1];h==="version"?l=g:h==="encoding"?f=g:h==="standalone"?u=g:this.throwError("Invalid attribute name: "+h)}this.throwError("Missing declaration end symbol `?>`")},c.prototype.doctype=function(){var l="",f="";this.skipSpace();var u=this.takeUntil2("[",">",!0);return this.skipSpace(),this.skipIfStartsWith("PUBLIC")?(l=this.quotedString(),f=this.quotedString()):this.skipIfStartsWith("SYSTEM")&&(f=this.quotedString()),this.skipSpace(),this.skipIfStartsWith("[")&&(this.skipUntil("]"),this.skipIfStartsWith("]")||this.throwError("Missing end bracket of DTD internal subset")),this.skipSpace(),this.skipIfStartsWith(">")||this.throwError("Missing doctype end symbol `>`"),{type:a.TokenType.DocType,name:u,pubId:l,sysId:f}},c.prototype.pi=function(){var l=this.takeUntilStartsWith("?>",!0);if(this.eof()&&this.throwError("Missing processing instruction end symbol `?>`"),this.skipSpace(),this.skipIfStartsWith("?>"))return{type:a.TokenType.PI,target:l,data:""};var f=this.takeUntilStartsWith("?>");return this.eof()&&this.throwError("Missing processing instruction end symbol `?>`"),this.seek(2),{type:a.TokenType.PI,target:l,data:f}},c.prototype.text=function(){var l=this.takeUntil("<");return{type:a.TokenType.Text,data:l}},c.prototype.comment=function(){var l=this.takeUntilStartsWith("-->");return this.eof()&&this.throwError("Missing comment end symbol `-->`"),this.seek(3),{type:a.TokenType.Comment,data:l}},c.prototype.cdata=function(){var l=this.takeUntilStartsWith("]]>");return this.eof()&&this.throwError("Missing CDATA end symbol `]>`"),this.seek(3),{type:a.TokenType.CDATA,data:l}},c.prototype.openTag=function(){this.skipSpace();var l=this.takeUntil2(">","/",!0);if(this.skipSpace(),this.skipIfStartsWith(">"))return{type:a.TokenType.Element,name:l,attributes:[],selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:a.TokenType.Element,name:l,attributes:[],selfClosing:!0};for(var f=[];!this.eof();){if(this.skipSpace(),this.skipIfStartsWith(">"))return{type:a.TokenType.Element,name:l,attributes:f,selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:a.TokenType.Element,name:l,attributes:f,selfClosing:!0};var u=this.attribute();f.push(u)}this.throwError("Missing opening element tag end symbol `>`")},c.prototype.closeTag=function(){this.skipSpace();var l=this.takeUntil(">",!0);return this.skipSpace(),this.skipIfStartsWith(">")||this.throwError("Missing closing element tag end symbol `>`"),{type:a.TokenType.ClosingTag,name:l}},c.prototype.attribute=function(){this.skipSpace();var l=this.takeUntil("=",!0);return this.skipSpace(),this.skipIfStartsWith("=")||this.throwError("Missing equals sign before attribute value"),[l,this.quotedString()]},c.prototype.quotedString=function(){this.skipSpace();var l=this.take(1);c.isQuote(l)||this.throwError("Missing start quote character before quoted value");var f=this.takeUntil(l);return this.skipIfStartsWith(l)||this.throwError("Missing end quote character after quoted value"),f},c.prototype.eof=function(){return this._index>=this._length},c.prototype.skipIfStartsWith=function(l){var f=l.length;if(f===1)return this._str[this._index]===l&&(this._index++,!0);for(var u=0;uthis._length&&(this._index=this._length)},c.prototype.skipSpace=function(){for(;!this.eof()&&c.isSpace(this._str[this._index]);)this._index++},c.prototype.take=function(l){if(l===1)return this._str[this._index++];var f=this._index;return this.seek(l),this._str.slice(f,this._index)},c.prototype.takeUntil=function(l,f){f===void 0&&(f=!1);for(var u=this._index;this._index=l())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l().toString(16)+" bytes");return 0|k}function x(k,O){if(u.isBuffer(k))return k.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(k)||k instanceof ArrayBuffer))return k.byteLength;typeof k!="string"&&(k=""+k);var B=k.length;if(B===0)return 0;for(var U=!1;;)switch(O){case"ascii":case"latin1":case"binary":return B;case"utf8":case"utf-8":case void 0:return de(k).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*B;case"hex":return B>>>1;case"base64":return fe(k).length;default:if(U)return de(k).length;O=(""+O).toLowerCase(),U=!0}}function m(k,O,B){var U=!1;if((O===void 0||O<0)&&(O=0),O>this.length||((B===void 0||B>this.length)&&(B=this.length),B<=0)||(B>>>=0)<=(O>>>=0))return"";for(k||(k="utf8");;)switch(k){case"hex":return A(this,O,B);case"utf8":case"utf-8":return R(this,O,B);case"ascii":return M(this,O,B);case"latin1":case"binary":return L(this,O,B);case"base64":return I(this,O,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,O,B);default:if(U)throw new TypeError("Unknown encoding: "+k);k=(k+"").toLowerCase(),U=!0}}function y(k,O,B){var U=k[O];k[O]=k[B],k[B]=U}function w(k,O,B,U,z){if(k.length===0)return-1;if(typeof B=="string"?(U=B,B=0):B>2147483647?B=2147483647:B<-2147483648&&(B=-2147483648),B=+B,isNaN(B)&&(B=z?0:k.length-1),B<0&&(B=k.length+B),B>=k.length){if(z)return-1;B=k.length-1}else if(B<0){if(!z)return-1;B=0}if(typeof O=="string"&&(O=u.from(O,U)),u.isBuffer(O))return O.length===0?-1:C(k,O,B,U,z);if(typeof O=="number")return O&=255,u.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?z?Uint8Array.prototype.indexOf.call(k,O,B):Uint8Array.prototype.lastIndexOf.call(k,O,B):C(k,[O],B,U,z);throw new TypeError("val must be string, number or Buffer")}function C(k,O,B,U,z){var j,K=1,ae=k.length,he=O.length;if(U!==void 0&&((U=String(U).toLowerCase())==="ucs2"||U==="ucs-2"||U==="utf16le"||U==="utf-16le")){if(k.length<2||O.length<2)return-1;K=2,ae/=2,he/=2,B/=2}function ye(ie,Z){return K===1?ie[Z]:ie.readUInt16BE(Z*K)}if(z){var Te=-1;for(j=B;jae&&(B=ae-he),j=B;j>=0;j--){for(var q=!0,J=0;Jz&&(U=z):U=z;var j=O.length;if(j%2!=0)throw new TypeError("Invalid hex string");U>j/2&&(U=j/2);for(var K=0;K>8,he=K%256,ye.push(he),ye.push(ae);return ye}(O,k.length-B),k,B,U)}function I(k,O,B){return O===0&&B===k.length?a.fromByteArray(k):a.fromByteArray(k.slice(O,B))}function R(k,O,B){B=Math.min(k.length,B);for(var U=[],z=O;z239?4:ye>223?3:ye>191?2:1;if(z+q<=B)switch(q){case 1:ye<128&&(Te=ye);break;case 2:(192&(j=k[z+1]))==128&&(he=(31&ye)<<6|63&j)>127&&(Te=he);break;case 3:j=k[z+1],K=k[z+2],(192&j)==128&&(192&K)==128&&(he=(15&ye)<<12|(63&j)<<6|63&K)>2047&&(he<55296||he>57343)&&(Te=he);break;case 4:j=k[z+1],K=k[z+2],ae=k[z+3],(192&j)==128&&(192&K)==128&&(192&ae)==128&&(he=(15&ye)<<18|(63&j)<<12|(63&K)<<6|63&ae)>65535&&he<1114112&&(Te=he)}Te===null?(Te=65533,q=1):Te>65535&&(Te-=65536,U.push(Te>>>10&1023|55296),Te=56320|1023&Te),U.push(Te),z+=q}return function(J){var ie=J.length;if(ie<=4096)return String.fromCharCode.apply(String,J);for(var Z="",te=0;te0&&(k=this.toString("hex",0,O).match(/.{2}/g).join(" "),this.length>O&&(k+=" ... ")),""},u.prototype.compare=function(k,O,B,U,z){if(!u.isBuffer(k))throw new TypeError("Argument must be a Buffer");if(O===void 0&&(O=0),B===void 0&&(B=k?k.length:0),U===void 0&&(U=0),z===void 0&&(z=this.length),O<0||B>k.length||U<0||z>this.length)throw new RangeError("out of range index");if(U>=z&&O>=B)return 0;if(U>=z)return-1;if(O>=B)return 1;if(this===k)return 0;for(var j=(z>>>=0)-(U>>>=0),K=(B>>>=0)-(O>>>=0),ae=Math.min(j,K),he=this.slice(U,z),ye=k.slice(O,B),Te=0;Tez)&&(B=z),k.length>0&&(B<0||O<0)||O>this.length)throw new RangeError("Attempt to write outside buffer bounds");U||(U="utf8");for(var j=!1;;)switch(U){case"hex":return S(this,k,O,B);case"utf8":case"utf-8":return T(this,k,O,B);case"ascii":return _(this,k,O,B);case"latin1":case"binary":return E(this,k,O,B);case"base64":return D(this,k,O,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return b(this,k,O,B);default:if(j)throw new TypeError("Unknown encoding: "+U);U=(""+U).toLowerCase(),j=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function M(k,O,B){var U="";B=Math.min(k.length,B);for(var z=O;zU)&&(B=U);for(var z="",j=O;jB)throw new RangeError("Trying to access beyond buffer length")}function N(k,O,B,U,z,j){if(!u.isBuffer(k))throw new TypeError('"buffer" argument must be a Buffer instance');if(O>z||Ok.length)throw new RangeError("Index out of range")}function V(k,O,B,U){O<0&&(O=65535+O+1);for(var z=0,j=Math.min(k.length-B,2);z>>8*(U?z:1-z)}function $(k,O,B,U){O<0&&(O=4294967295+O+1);for(var z=0,j=Math.min(k.length-B,4);z>>8*(U?z:3-z)&255}function H(k,O,B,U,z,j){if(B+U>k.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("Index out of range")}function Y(k,O,B,U,z){return z||H(k,0,B,4),s.write(k,O,B,U,23,4),B+4}function ne(k,O,B,U,z){return z||H(k,0,B,8),s.write(k,O,B,U,52,8),B+8}u.prototype.slice=function(k,O){var B,U=this.length;if((k=~~k)<0?(k+=U)<0&&(k=0):k>U&&(k=U),(O=O===void 0?U:~~O)<0?(O+=U)<0&&(O=0):O>U&&(O=U),O0&&(z*=256);)U+=this[k+--O]*z;return U},u.prototype.readUInt8=function(k,O){return O||P(k,1,this.length),this[k]},u.prototype.readUInt16LE=function(k,O){return O||P(k,2,this.length),this[k]|this[k+1]<<8},u.prototype.readUInt16BE=function(k,O){return O||P(k,2,this.length),this[k]<<8|this[k+1]},u.prototype.readUInt32LE=function(k,O){return O||P(k,4,this.length),(this[k]|this[k+1]<<8|this[k+2]<<16)+16777216*this[k+3]},u.prototype.readUInt32BE=function(k,O){return O||P(k,4,this.length),16777216*this[k]+(this[k+1]<<16|this[k+2]<<8|this[k+3])},u.prototype.readIntLE=function(k,O,B){k|=0,O|=0,B||P(k,O,this.length);for(var U=this[k],z=1,j=0;++j=(z*=128)&&(U-=Math.pow(2,8*O)),U},u.prototype.readIntBE=function(k,O,B){k|=0,O|=0,B||P(k,O,this.length);for(var U=O,z=1,j=this[k+--U];U>0&&(z*=256);)j+=this[k+--U]*z;return j>=(z*=128)&&(j-=Math.pow(2,8*O)),j},u.prototype.readInt8=function(k,O){return O||P(k,1,this.length),128&this[k]?-1*(255-this[k]+1):this[k]},u.prototype.readInt16LE=function(k,O){O||P(k,2,this.length);var B=this[k]|this[k+1]<<8;return 32768&B?4294901760|B:B},u.prototype.readInt16BE=function(k,O){O||P(k,2,this.length);var B=this[k+1]|this[k]<<8;return 32768&B?4294901760|B:B},u.prototype.readInt32LE=function(k,O){return O||P(k,4,this.length),this[k]|this[k+1]<<8|this[k+2]<<16|this[k+3]<<24},u.prototype.readInt32BE=function(k,O){return O||P(k,4,this.length),this[k]<<24|this[k+1]<<16|this[k+2]<<8|this[k+3]},u.prototype.readFloatLE=function(k,O){return O||P(k,4,this.length),s.read(this,k,!0,23,4)},u.prototype.readFloatBE=function(k,O){return O||P(k,4,this.length),s.read(this,k,!1,23,4)},u.prototype.readDoubleLE=function(k,O){return O||P(k,8,this.length),s.read(this,k,!0,52,8)},u.prototype.readDoubleBE=function(k,O){return O||P(k,8,this.length),s.read(this,k,!1,52,8)},u.prototype.writeUIntLE=function(k,O,B,U){k=+k,O|=0,B|=0,U||N(this,k,O,B,Math.pow(2,8*B)-1,0);var z=1,j=0;for(this[O]=255&k;++j=0&&(j*=256);)this[O+z]=k/j&255;return O+B},u.prototype.writeUInt8=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,1,255,0),u.TYPED_ARRAY_SUPPORT||(k=Math.floor(k)),this[O]=255&k,O+1},u.prototype.writeUInt16LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8):V(this,k,O,!0),O+2},u.prototype.writeUInt16BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>8,this[O+1]=255&k):V(this,k,O,!1),O+2},u.prototype.writeUInt32LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[O+3]=k>>>24,this[O+2]=k>>>16,this[O+1]=k>>>8,this[O]=255&k):$(this,k,O,!0),O+4},u.prototype.writeUInt32BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>24,this[O+1]=k>>>16,this[O+2]=k>>>8,this[O+3]=255&k):$(this,k,O,!1),O+4},u.prototype.writeIntLE=function(k,O,B,U){if(k=+k,O|=0,!U){var z=Math.pow(2,8*B-1);N(this,k,O,B,z-1,-z)}var j=0,K=1,ae=0;for(this[O]=255&k;++j>0)-ae&255;return O+B},u.prototype.writeIntBE=function(k,O,B,U){if(k=+k,O|=0,!U){var z=Math.pow(2,8*B-1);N(this,k,O,B,z-1,-z)}var j=B-1,K=1,ae=0;for(this[O+j]=255&k;--j>=0&&(K*=256);)k<0&&ae===0&&this[O+j+1]!==0&&(ae=1),this[O+j]=(k/K>>0)-ae&255;return O+B},u.prototype.writeInt8=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,1,127,-128),u.TYPED_ARRAY_SUPPORT||(k=Math.floor(k)),k<0&&(k=255+k+1),this[O]=255&k,O+1},u.prototype.writeInt16LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8):V(this,k,O,!0),O+2},u.prototype.writeInt16BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>8,this[O+1]=255&k):V(this,k,O,!1),O+2},u.prototype.writeInt32LE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[O]=255&k,this[O+1]=k>>>8,this[O+2]=k>>>16,this[O+3]=k>>>24):$(this,k,O,!0),O+4},u.prototype.writeInt32BE=function(k,O,B){return k=+k,O|=0,B||N(this,k,O,4,2147483647,-2147483648),k<0&&(k=4294967295+k+1),u.TYPED_ARRAY_SUPPORT?(this[O]=k>>>24,this[O+1]=k>>>16,this[O+2]=k>>>8,this[O+3]=255&k):$(this,k,O,!1),O+4},u.prototype.writeFloatLE=function(k,O,B){return Y(this,k,O,!0,B)},u.prototype.writeFloatBE=function(k,O,B){return Y(this,k,O,!1,B)},u.prototype.writeDoubleLE=function(k,O,B){return ne(this,k,O,!0,B)},u.prototype.writeDoubleBE=function(k,O,B){return ne(this,k,O,!1,B)},u.prototype.copy=function(k,O,B,U){if(B||(B=0),U||U===0||(U=this.length),O>=k.length&&(O=k.length),O||(O=0),U>0&&U=this.length)throw new RangeError("sourceStart out of bounds");if(U<0)throw new RangeError("sourceEnd out of bounds");U>this.length&&(U=this.length),k.length-O=0;--z)k[z+O]=this[z+B];else if(j<1e3||!u.TYPED_ARRAY_SUPPORT)for(z=0;z>>=0,B=B===void 0?this.length:B>>>0,k||(k=0),typeof k=="number")for(j=O;j55295&&B<57344){if(!z){if(B>56319){(O-=3)>-1&&j.push(239,191,189);continue}if(K+1===U){(O-=3)>-1&&j.push(239,191,189);continue}z=B;continue}if(B<56320){(O-=3)>-1&&j.push(239,191,189),z=B;continue}B=65536+(z-55296<<10|B-56320)}else z&&(O-=3)>-1&&j.push(239,191,189);if(z=null,B<128){if((O-=1)<0)break;j.push(B)}else if(B<2048){if((O-=2)<0)break;j.push(B>>6|192,63&B|128)}else if(B<65536){if((O-=3)<0)break;j.push(B>>12|224,B>>6&63|128,63&B|128)}else{if(!(B<1114112))throw new Error("Invalid code point");if((O-=4)<0)break;j.push(B>>18|240,B>>12&63|128,B>>6&63|128,63&B|128)}}return j}function fe(k){return a.toByteArray(function(O){if((O=function(B){return B.trim?B.trim():B.replace(/^\s+|\s+$/g,"")}(O).replace(Q,"")).length<2)return"";for(;O.length%4!=0;)O+="=";return O}(k))}function le(k,O,B,U){for(var z=0;z=O.length||z>=k.length);++z)O[z+B]=k[z];return z}}).call(this,i(78))},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),n.isASCIIByte=function(o){return o>=0&&o<=127}},function(r,n,i){var o=this&&this.__read||function(s,c){var l=typeof Symbol=="function"&&s[Symbol.iterator];if(!l)return s;var f,u,d=l.call(s),h=[];try{for(;(c===void 0||c-- >0)&&!(f=d.next()).done;)h.push(f.value)}catch(g){u={error:g}}finally{try{f&&!f.done&&(l=d.return)&&l.call(d)}finally{if(u)throw u.error}}return h},a=this&&this.__spread||function(){for(var s=[],c=0;c=65&&l<=90&&(s[c]=l+32)}},n.byteUppercase=function(s){for(var c=0;c=97&&l<=122&&(s[c]=l-32)}},n.byteCaseInsensitiveMatch=function(s,c){if(s.length!==c.length)return!1;for(var l=0;l=65&&f<=90&&(f+=32),u>=65&&u<=90&&(u+=32),f!==u)return!1}return!0},n.startsWith=function(s,c){for(var l=0;;){if(l>=s.length)return!1;if(l>=c.length)return!0;if(s[l]!==c[l])return!1;l++}},n.byteLessThan=function(s,c){for(var l=0;;){if(l>=s.length)return!1;if(l>=c.length)return!0;var f=s[l],u=c[l];if(fu)return!1;l++}},n.isomorphicDecode=function(s){return String.fromCodePoint.apply(String,a(s))}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(6),a=i(7),s=i(0),c=i(12),l=function(){function f(u){this._associatedDocument=u||o.dom.window.document}return f.prototype.createDocumentType=function(u,d,h){return s.namespace_validate(u),s.create_documentType(this._associatedDocument,u,d,h)},f.prototype.createDocument=function(u,d,h){h===void 0&&(h=null);var g=s.create_xmlDocument(),p=null;return d&&(p=s.document_internalCreateElementNS(g,u,d)),h&&g.appendChild(h),p&&g.appendChild(p),g._origin=this._associatedDocument._origin,u===a.namespace.HTML?g._contentType="application/xhtml+xml":u===a.namespace.SVG?g._contentType="image/svg+xml":g._contentType="application/xml",g},f.prototype.createHTMLDocument=function(u){var d=s.create_document();d._type="html",d._contentType="text/html",d.appendChild(s.create_documentType(d,"html","",""));var h=s.element_createAnElement(d,"html",a.namespace.HTML);d.appendChild(h);var g=s.element_createAnElement(d,"head",a.namespace.HTML);if(h.appendChild(g),u!==void 0){var p=s.element_createAnElement(d,"title",a.namespace.HTML);g.appendChild(p);var v=s.create_text(d,u);p.appendChild(v)}var x=s.element_createAnElement(d,"body",a.namespace.HTML);return h.appendChild(x),d._origin=this._associatedDocument._origin,d},f.prototype.hasFeature=function(){return!0},f._create=function(u){return new f(u)},f}();n.DOMImplementationImpl=l,c.idl_defineConst(l.prototype,"_ID","@oozcitak/dom")},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(70),c=i(1),l=i(0),f=function(u){function d(){var h=u.call(this)||this;return h._signalSlots=new Set,h._mutationObserverMicrotaskQueued=!1,h._mutationObservers=new Set,h._iteratorList=new c.FixedSizeSet,h._associatedDocument=l.create_document(),h}return a(d,u),Object.defineProperty(d.prototype,"document",{get:function(){return this._associatedDocument},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"event",{get:function(){return this._currentEvent},enumerable:!0,configurable:!0}),d._create=function(){return new d},d}(s.EventTargetImpl);n.WindowImpl=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=function(){function s(){}return s.isNode=function(c){return!!c&&c._nodeType!==void 0},s.isDocumentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Document},s.isDocumentTypeNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.DocumentType},s.isDocumentFragmentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.DocumentFragment},s.isAttrNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Attribute},s.isCharacterDataNode=function(c){if(!s.isNode(c))return!1;var l=c._nodeType;return l===o.NodeType.Text||l===o.NodeType.ProcessingInstruction||l===o.NodeType.Comment||l===o.NodeType.CData},s.isTextNode=function(c){return s.isNode(c)&&(c._nodeType===o.NodeType.Text||c._nodeType===o.NodeType.CData)},s.isExclusiveTextNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Text},s.isCDATASectionNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.CData},s.isCommentNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Comment},s.isProcessingInstructionNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.ProcessingInstruction},s.isElementNode=function(c){return s.isNode(c)&&c._nodeType===o.NodeType.Element},s.isCustomElementNode=function(c){return s.isElementNode(c)&&c._customElementState==="custom"},s.isShadowRoot=function(c){return!!c&&c.host!==void 0},s.isMouseEvent=function(c){return!!c&&c.screenX!==void 0&&c.screenY!=null},s.isSlotable=function(c){return!!c&&c._name!==void 0&&c._assignedSlot!==void 0&&(s.isTextNode(c)||s.isElementNode(c))},s.isSlot=function(c){return!!c&&c._name!==void 0&&c._assignedNodes!==void 0&&s.isElementNode(c)},s.isWindow=function(c){return!!c&&c.navigator!==void 0},s.isEventListener=function(c){return!!c&&c.handleEvent!==void 0},s.isRegisteredObserver=function(c){return!!c&&c.observer!==void 0&&c.options!==void 0},s.isTransientRegisteredObserver=function(c){return!!c&&c.source!==void 0&&s.isRegisteredObserver(c)},s}();n.Guard=a},function(r,n,i){var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(){return c.call(this)||this}return a(l,c),l}(i(98).DocumentImpl);n.XMLDocumentImpl=s},function(r,n,i){var o=this&&this.__values||function(U){var z=typeof Symbol=="function"&&Symbol.iterator,j=z&&U[z],K=0;if(j)return j.call(U);if(U&&typeof U.length=="number")return{next:function(){return U&&K>=U.length&&(U=void 0),{value:U&&U[K++],done:!U}}};throw new TypeError(z?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(U,z){var j=typeof Symbol=="function"&&U[Symbol.iterator];if(!j)return U;var K,ae,he=j.call(U),ye=[];try{for(;(z===void 0||z-- >0)&&!(K=he.next()).done;)ye.push(K.value)}catch(Te){ae={error:Te}}finally{try{K&&!K.done&&(j=he.return)&&j.call(he)}finally{if(ae)throw ae.error}}return ye};Object.defineProperty(n,"__esModule",{value:!0});var s,c=i(1),l=i(243),f=i(7),u=i(244),d={ftp:21,file:null,http:80,https:443,ws:80,wss:443},h=/[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[ "<>`]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,p=/[ "<>`#?{}]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,v=/[ "<>`#?{}/:;=@\[\]\\\^\|]|[\0-\x1F\x7F-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,x=/[0-9A-Za-z!\$&-\/:;=\?@_~\xA0-\uD7FF\uE000-\uFDCF\uFDF0-\uFFFD]|[\uD800-\uD83E\uD840-\uD87E\uD880-\uD8BE\uD8C0-\uD8FE\uD900-\uD93E\uD940-\uD97E\uD980-\uD9BE\uD9C0-\uD9FE\uDA00-\uDA3E\uDA40-\uDA7E\uDA80-\uDABE\uDAC0-\uDAFE\uDB00-\uDB3E\uDB40-\uDB7E\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDC00-\uDFFD]/,m=/[\0\t\f\r #%/:?@\[\\\]]/;function y(U){s!==void 0&&s.call(null,"Validation Error: "+U)}function w(){return{scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null}}function C(U){return U in d}function S(U){return C(U.scheme)}function T(U){return d[U]||null}function _(U){return U.username!==""||U.password!==""}function E(U,z){var j,K;z===void 0&&(z=!1);var ae=U.scheme+":";if(U.host!==null?(ae+="//",_(U)&&(ae+=U.username,U.password!==""&&(ae+=":"+U.password),ae+="@"),ae+=D(U.host),U.port!==null&&(ae+=":"+U.port)):U.host===null&&U.scheme==="file"&&(ae+="//"),U._cannotBeABaseURLFlag)ae+=U.path[0];else try{for(var he=o(U.path),ye=he.next();!ye.done;ye=he.next())ae+="/"+ye.value}catch(Te){j={error:Te}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(j)throw j.error}}return U.query!==null&&(ae+="?"+U.query),z||U.fragment===null||(ae+="#"+U.fragment),ae}function D(U){return c.isNumber(U)?b(U):c.isArray(U)?"["+I(U)+"]":U}function b(U){for(var z="",j=U,K=1;K<=4;K++)z=(j%256).toString()+z,K!==4&&(z="."+z),j=Math.floor(j/256);return z}function I(U){for(var z="",j=null,K=-1,ae=0,he=0,ye=0;ye<8;ye++)if(U[ye]===0){ae=1;for(var Te=ye+1;Te<8&&U[Te]===0;Te++)ae++;ae>he&&(he=ae,K=ye)}he>1&&(j=K);for(var q=!1,J=0;J<8;J++)q&&U[J]===0||(q&&(q=!1),j!==J?(z+=U[J].toString(16),J!==7&&(z+=":")):(z+=J===0?"::":":",q=!0));return z}function R(U,z,j,K,ae){var he,ye,Te,q;if(K===void 0){K={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,_cannotBeABaseURLFlag:!1,_blobURLEntry:null};var J=/^[\u0000-\u001F\u0020]+/,ie=/[\u0000-\u001F\u0020]+$/;(J.test(U)||ie.test(U))&&y("Input string contains leading or trailing control characters or space."),U=(U=U.replace(J,"")).replace(ie,"")}var Z=/[\u0009\u000A\u000D]/g;Z.test(U)&&y("Input string contains tab or newline characters."),U=U.replace(Z,"");var te=ae===void 0?l.ParserState.SchemeStart:ae;z===void 0&&(z=null);for(var me=j===void 0||j==="replacement"||j==="UTF-16BE"||j==="UTF-16LE"?"UTF-8":j,X="",Ae=!1,Be=!1,Ve=!1,ue=new c.StringWalker(U);;){switch(te){case l.ParserState.SchemeStart:if(f.codePoint.ASCIIAlpha.test(ue.c()))X+=ue.c().toLowerCase(),te=l.ParserState.Scheme;else{if(ae!==void 0)return y("Invalid scheme start character."),null;te=l.ParserState.NoScheme,ue.pointer--}break;case l.ParserState.Scheme:if(f.codePoint.ASCIIAlphanumeric.test(ue.c())||ue.c()==="+"||ue.c()==="-"||ue.c()===".")X+=ue.c().toLowerCase();else{if(ue.c()!==":"){if(ae===void 0){X="",te=l.ParserState.NoScheme,ue.pointer=0;continue}return y("Invalid input string."),null}if(ae!==void 0&&(C(K.scheme)&&!C(X)||!C(K.scheme)&&C(X)||(_(K)||K.port!==null)&&X==="file"||K.scheme==="file"&&(K.host===""||K.host===null)))return K;if(K.scheme=X,ae!==void 0)return K.port===T(K.scheme)&&(K.port=null),K;X="",K.scheme==="file"?(ue.remaining().startsWith("//")||y("Invalid file URL scheme, '//' expected."),te=l.ParserState.File):S(K)&&z!==null&&z.scheme===K.scheme?te=l.ParserState.SpecialRelativeOrAuthority:S(K)?te=l.ParserState.SpecialAuthoritySlashes:ue.remaining().startsWith("/")?(te=l.ParserState.PathOrAuthority,ue.pointer++):(K._cannotBeABaseURLFlag=!0,K.path.push(""),te=l.ParserState.CannotBeABaseURLPath)}break;case l.ParserState.NoScheme:if(z===null||z._cannotBeABaseURLFlag&&ue.c()!=="#")return y("Invalid input string."),null;z._cannotBeABaseURLFlag&&ue.c()==="#"?(K.scheme=z.scheme,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",K._cannotBeABaseURLFlag=!0,te=l.ParserState.Fragment):z.scheme!=="file"?(te=l.ParserState.Relative,ue.pointer--):(te=l.ParserState.File,ue.pointer--);break;case l.ParserState.SpecialRelativeOrAuthority:ue.c()==="/"&&ue.remaining().startsWith("/")?(te=l.ParserState.SpecialAuthorityIgnoreSlashes,ue.pointer++):(y("Invalid input string."),te=l.ParserState.Relative,ue.pointer--);break;case l.ParserState.PathOrAuthority:ue.c()==="/"?te=l.ParserState.Authority:(te=l.ParserState.Path,ue.pointer--);break;case l.ParserState.Relative:if(z===null)throw new Error("Invalid parser state. Base URL is null.");switch(K.scheme=z.scheme,ue.c()){case"":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query=z.query;break;case"/":te=l.ParserState.RelativeSlash;break;case"?":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query="",te=l.ParserState.Query;break;case"#":K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",te=l.ParserState.Fragment;break;default:S(K)&&ue.c()==="\\"?(y("Invalid input string."),te=l.ParserState.RelativeSlash):(K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,K.path=f.list.clone(z.path),K.path.length!==0&&K.path.splice(K.path.length-1,1),te=l.ParserState.Path,ue.pointer--)}break;case l.ParserState.RelativeSlash:if(!S(K)||ue.c()!=="/"&&ue.c()!=="\\")if(ue.c()==="/")te=l.ParserState.Authority;else{if(z===null)throw new Error("Invalid parser state. Base URL is null.");K.username=z.username,K.password=z.password,K.host=z.host,K.port=z.port,te=l.ParserState.Path,ue.pointer--}else ue.c()==="\\"&&y("Invalid input string."),te=l.ParserState.SpecialAuthorityIgnoreSlashes;break;case l.ParserState.SpecialAuthoritySlashes:ue.c()==="/"&&ue.remaining().startsWith("/")?(te=l.ParserState.SpecialAuthorityIgnoreSlashes,ue.pointer++):(y("Expected '//'."),te=l.ParserState.SpecialAuthorityIgnoreSlashes,ue.pointer--);break;case l.ParserState.SpecialAuthorityIgnoreSlashes:ue.c()!=="/"&&ue.c()!=="\\"?(te=l.ParserState.Authority,ue.pointer--):y("Unexpected '/' or '\\'.");break;case l.ParserState.Authority:if(ue.c()==="@"){y("Unexpected '@'."),Ae&&(X="%40"+X),Ae=!0;try{for(var Ee=(he=void 0,o(X)),Me=Ee.next();!Me.done;Me=Ee.next()){var Re=Me.value;if(Re!==":"||Ve){var We=le(Re,v);Ve?K.password+=We:K.username+=We}else Ve=!0}}catch(sr){he={error:sr}}finally{try{Me&&!Me.done&&(ye=Ee.return)&&ye.call(Ee)}finally{if(he)throw he.error}}X=""}else if(ue.c()===""||ue.c()==="/"||ue.c()==="?"||ue.c()==="#"||S(K)&&ue.c()==="\\"){if(Ae&&X==="")return y("Invalid input string."),null;ue.pointer-=X.length+1,X="",te=l.ParserState.Host}else X+=ue.c();break;case l.ParserState.Host:case l.ParserState.Hostname:if(ae!==void 0&&K.scheme==="file")ue.pointer--,te=l.ParserState.FileHost;else if(ue.c()!==":"||Be)if(ue.c()===""||ue.c()==="/"||ue.c()==="?"||ue.c()==="#"||S(K)&&ue.c()==="\\"){if(ue.pointer--,S(K)&&X==="")return y("Invalid input string."),null;if(ae!==void 0&&X===""&&(_(K)||K.port!==null))return y("Invalid input string."),K;if((ze=V(X,!S(K)))===null)return null;if(K.host=ze,X="",te=l.ParserState.PathStart,ae!==void 0)return K}else ue.c()==="["&&(Be=!0),ue.c()==="]"&&(Be=!1),X+=ue.c();else{if(X==="")return y("Invalid input string."),null;if((ze=V(X,!S(K)))===null)return null;if(K.host=ze,X="",te=l.ParserState.Port,ae===l.ParserState.Hostname)return K}break;case l.ParserState.Port:if(f.codePoint.ASCIIDigit.test(ue.c()))X+=ue.c();else{if(!(ue.c()===""||ue.c()==="/"||ue.c()==="?"||ue.c()==="#"||S(K)&&ue.c()==="\\"||ae))return y("Invalid input string."),null;if(X!==""&&X!==""){var ut=parseInt(X,10);if(ut>Math.pow(2,16)-1)return y("Invalid port number."),null;K.port=ut===T(K.scheme)?null:ut,X=""}if(ae!==void 0)return K;te=l.ParserState.PathStart,ue.pointer--}break;case l.ParserState.File:if(K.scheme="file",ue.c()==="/"||ue.c()==="\\")ue.c()==="\\"&&y("Invalid input string."),te=l.ParserState.FileSlash;else if(z!==null&&z.scheme==="file")switch(ue.c()){case"":K.host=z.host,K.path=f.list.clone(z.path),K.query=z.query;break;case"?":K.host=z.host,K.path=f.list.clone(z.path),K.query="",te=l.ParserState.Query;break;case"#":K.host=z.host,K.path=f.list.clone(z.path),K.query=z.query,K.fragment="",te=l.ParserState.Fragment;break;default:N(ue.substring())?y("Unexpected windows drive letter in input string."):(K.host=z.host,K.path=f.list.clone(z.path),A(K)),te=l.ParserState.Path,ue.pointer--}else te=l.ParserState.Path,ue.pointer--;break;case l.ParserState.FileSlash:ue.c()==="/"||ue.c()==="\\"?(ue.c()==="\\"&&y("Invalid input string."),te=l.ParserState.FileHost):(z===null||z.scheme!=="file"||N(ue.substring())||(G(z.path[0])?K.path.push(z.path[0]):K.host=z.host),te=l.ParserState.Path,ue.pointer--);break;case l.ParserState.FileHost:if(ue.c()===""||ue.c()==="/"||ue.c()==="\\"||ue.c()==="?"||ue.c()==="#")if(ue.pointer--,ae===void 0&&P(X))y("Unexpected windows drive letter in input string."),te=l.ParserState.Path;else if(X===""){if(K.host="",ae!==void 0)return K;te=l.ParserState.PathStart}else{var ze;if((ze=V(X,!S(K)))===null)return null;if(ze==="localhost"&&(ze=""),K.host=ze,ae!==void 0)return K;X="",te=l.ParserState.PathStart}else X+=ue.c();break;case l.ParserState.PathStart:S(K)?(ue.c()==="\\"&&y("Invalid input string."),te=l.ParserState.Path,ue.c()!=="/"&&ue.c()!=="\\"&&ue.pointer--):ae===void 0&&ue.c()==="?"?(K.query="",te=l.ParserState.Query):ae===void 0&&ue.c()==="#"?(K.fragment="",te=l.ParserState.Fragment):ue.c()!==""&&(te=l.ParserState.Path,ue.c()!=="/"&&ue.pointer--);break;case l.ParserState.Path:if(ue.c()===""||ue.c()==="/"||S(K)&&ue.c()==="\\"||ae===void 0&&(ue.c()==="?"||ue.c()==="#")){if(S(K)&&ue.c()==="\\"&&y("Invalid input string."),L(X))A(K),ue.c()==="/"||S(K)&&ue.c()==="\\"||K.path.push("");else if(!M(X)||ue.c()==="/"||S(K)&&ue.c()==="\\"){if(!M(X)){if(K.scheme==="file"&&K.path.length===0&&P(X)){K.host!==null&&K.host!==""&&(y("Invalid input string."),K.host="");var ft=Array.from(X);X=ft.slice(0,1)+":"+ft.slice(2)}K.path.push(X)}}else K.path.push("");if(X="",K.scheme==="file"&&(ue.c()===""||ue.c()==="?"||ue.c()==="#"))for(;K.path.length>1&&K.path[0]==="";)y("Invalid input string."),K.path.splice(0,1);ue.c()==="?"&&(K.query="",te=l.ParserState.Query),ue.c()==="#"&&(K.fragment="",te=l.ParserState.Fragment)}else x.test(ue.c())||ue.c()==="%"||y("Character is not a URL code point or a percent encoded character."),ue.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(ue.remaining())||y("Percent encoded character must be followed by two hex digits."),X+=le(ue.c(),p);break;case l.ParserState.CannotBeABaseURLPath:ue.c()==="?"?(K.query="",te=l.ParserState.Query):ue.c()==="#"?(K.fragment="",te=l.ParserState.Fragment):(ue.c()===""||x.test(ue.c())||ue.c()==="%"||y("Character is not a URL code point or a percent encoded character."),ue.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(ue.remaining())||y("Percent encoded character must be followed by two hex digits."),ue.c()!==""&&(K.path[0]+=le(ue.c(),h)));break;case l.ParserState.Query:if(me==="UTF-8"||S(K)&&K.scheme!=="ws"&&K.scheme!=="wss"||(me="UTF-8"),ae===void 0&&ue.c()==="#")K.fragment="",te=l.ParserState.Fragment;else if(ue.c()!==""){if(x.test(ue.c())||ue.c()==="%"||y("Character is not a URL code point or a percent encoded character."),ue.c()!=="%"||/^[0-9a-fA-F][0-9a-fA-F]/.test(ue.remaining())||y("Percent encoded character must be followed by two hex digits."),me.toUpperCase()!=="UTF-8")throw new Error("Only UTF-8 encoding is supported.");var dt=c.utf8Encode(ue.c());if(dt.length>=3&&dt[0]===38&&dt[1]===35&&dt[dt.length-1]===59)dt=dt.subarray(2,dt.length-1),K.query+="%26%23"+f.byteSequence.isomorphicDecode(dt)+"%3B";else try{for(var dn=(Te=void 0,o(dt)),Pn=dn.next();!Pn.done;Pn=dn.next()){var Gt=Pn.value;Gt<33||Gt>126||Gt===34||Gt===35||Gt===60||Gt===62||Gt===39&&S(K)?K.query+=ee(Gt):K.query+=String.fromCharCode(Gt)}}catch(sr){Te={error:sr}}finally{try{Pn&&!Pn.done&&(q=dn.return)&&q.call(dn)}finally{if(Te)throw Te.error}}}break;case l.ParserState.Fragment:ue.c()===""||(ue.c()==="\0"?y("NULL character in input string."):(x.test(ue.c())||ue.c()==="%"||y("Unexpected character in fragment string."),ue.c()!=="%"||/^[A-Za-z0-9][A-Za-z0-9]/.test(ue.remaining())||y("Unexpected character in fragment string."),K.fragment+=le(ue.c(),g)))}if(ue.eof)break;ue.pointer++}return K}function M(U){return U==="."||U.toLowerCase()==="%2e"}function L(U){var z=U.toLowerCase();return z===".."||z===".%2e"||z==="%2e."||z==="%2e%2e"}function A(U){var z=U.path;z.length!==0&&(U.scheme==="file"&&z.length===1&&G(z[0])||U.path.splice(U.path.length-1,1))}function G(U){return U.length>=2&&f.codePoint.ASCIIAlpha.test(U[0])&&U[1]===":"}function P(U){return U.length>=2&&f.codePoint.ASCIIAlpha.test(U[0])&&(U[1]===":"||U[1]==="|")}function N(U){return U.length>=2&&P(U)&&(U.length===2||U[2]==="/"||U[2]==="\\"||U[2]==="?"||U[2]==="#")}function V(U,z){if(z===void 0&&(z=!1),U.startsWith("["))return U.endsWith("]")?Y(U.substring(1,U.length-1)):(y("Expected ']' after '['."),null);if(z)return ne(U);var j=B(c.utf8Decode(fe(U)));if(j===null||m.test(j))return y("Invalid domain."),null;var K=H(j);return K===null||c.isNumber(K)?K:j}function $(U,z){z===void 0&&(z={value:!1});var j=10;return U.startsWith("0x")||U.startsWith("0X")?(z.value=!0,U=U.substr(2),j=16):U.length>=2&&U[0]==="0"&&(z.value=!0,U=U.substr(1),j=8),U===""?0:(j===10?/^[0-9]+$/:j===16?/^[0-9A-Fa-f]+$/:/^[0-7]+$/).test(U)?parseInt(U,j):null}function H(U){var z,j,K,ae,he={value:!1},ye=U.split(".");if(ye[ye.length-1]===""&&(he.value=!0,ye.length>1&&ye.pop()),ye.length>4)return U;var Te=[];try{for(var q=o(ye),J=q.next();!J.done;J=q.next()){var ie=J.value;if(ie===""||(Be=$(ie,he))===null)return U;Te.push(Be)}}catch(Ve){z={error:Ve}}finally{try{J&&!J.done&&(j=q.return)&&j.call(q)}finally{if(z)throw z.error}}he.value&&y("Invalid IP v4 address.");for(var Z=0;Z255&&(y("Invalid IP v4 address."),Z=Math.pow(256,5-Te.length))return y("Invalid IP v4 address."),null;var te=Te[Te.length-1];Te.pop();var me=0;try{for(var X=o(Te),Ae=X.next();!Ae.done;Ae=X.next()){var Be;te+=(Be=Ae.value)*Math.pow(256,3-me),me++}}catch(Ve){K={error:Ve}}finally{try{Ae&&!Ae.done&&(ae=X.return)&&ae.call(X)}finally{if(K)throw K.error}}return te}function Y(U){var z,j=[0,0,0,0,0,0,0,0],K=0,ae=null,he=new c.StringWalker(U);if(he.c()===":"){if(!he.remaining().startsWith(":"))return y("Invalid IP v6 address."),null;he.pointer+=2,ae=K+=1}for(;he.c()!=="";){if(K===8)return y("Invalid IP v6 address."),null;if(he.c()!==":"){for(var ye=0,Te=0;Te<4&&f.codePoint.ASCIIHexDigit.test(he.c());)ye=16*ye+parseInt(he.c(),16),he.pointer++,Te++;if(he.c()==="."){if(Te===0||(he.pointer-=Te,K>6))return y("Invalid IP v6 address."),null;for(var q=0;he.c()!=="";){var J=null;if(q>0){if(!(he.c()==="."&&q<4))return y("Invalid IP v6 address."),null;he.pointer++}if(!f.codePoint.ASCIIDigit.test(he.c()))return y("Invalid IP v6 address."),null;for(;f.codePoint.ASCIIDigit.test(he.c());){var ie=parseInt(he.c(),10);if(J===null)J=ie;else{if(J===0)return y("Invalid IP v6 address."),null;J=10*J+ie}if(J>255)return y("Invalid IP v6 address."),null;he.pointer++}if(J===null)return y("Invalid IP v6 address."),null;j[K]=256*j[K]+J,++q!==2&&q!==4||K++}if(q!==4)return y("Invalid IP v6 address."),null;break}if(he.c()===":"){if(he.pointer++,he.c()==="")return y("Invalid IP v6 address."),null}else if(he.c()!=="")return y("Invalid IP v6 address."),null;j[K]=ye,K++}else{if(ae!==null)return y("Invalid IP v6 address."),null;he.pointer++,ae=++K}}if(ae!==null){var Z=K-ae;for(K=7;K!==0&&Z>0;)z=a([j[ae+Z-1],j[K]],2),j[K]=z[0],j[ae+Z-1]=z[1],K--,Z--}else if(ae===null&&K!==8)return y("Invalid IP v6 address."),null;return j}function ne(U){var z,j;if(/[\x00\t\f\r #/:?@\[\\\]]/.test(U))return y("Invalid host string."),null;var K="";try{for(var ae=o(U),he=ae.next();!he.done;he=ae.next())K+=le(he.value,h)}catch(ye){z={error:ye}}finally{try{he&&!he.done&&(j=ae.return)&&j.call(ae)}finally{if(z)throw z.error}}return K}function Q(U){return null}function ee(U){return"%"+("00"+U.toString(16).toUpperCase()).slice(-2)}function de(U){for(var z=function(Te){return Te>=48&&Te<=57||Te>=65&&Te<=70||Te>=97&&Te<=102},j=new Uint8Array(U.length),K=0,ae=0;ae=U.length-2)j[K]=he,K++;else if(he!==37||z(U[ae+1])&&z(U[ae+2])){var ye=parseInt(c.utf8Decode(Uint8Array.of(U[ae+1],U[ae+2])),16);j[K]=ye,K++,ae+=2}else j[K]=he,K++}return j.subarray(0,K)}function fe(U){return de(c.utf8Encode(U))}function le(U,z){var j,K;if(!z.test(U))return U;var ae=c.utf8Encode(U),he="";try{for(var ye=o(ae),Te=ye.next();!Te.done;Te=ye.next())he+=ee(Te.value)}catch(q){j={error:q}}finally{try{Te&&!Te.done&&(K=ye.return)&&K.call(ye)}finally{if(j)throw j.error}}return he}function k(U){var z,j,K,ae,he=[],ye=[];try{for(var Te=o(U),q=Te.next();!q.done;q=Te.next()){var J=q.value;J===38?(he.push(Uint8Array.from(ye)),ye=[]):ye.push(J)}}catch(Me){z={error:Me}}finally{try{q&&!q.done&&(j=Te.return)&&j.call(Te)}finally{if(z)throw z.error}}ye.length!==0&&he.push(Uint8Array.from(ye));var ie=[];try{for(var Z=o(he),te=Z.next();!te.done;te=Z.next()){var me=te.value;if(me.length!==0){for(var X=me.indexOf(61),Ae=X!==-1?me.slice(0,X):me,Be=X!==-1?me.slice(X+1):new Uint8Array,Ve=0;Ve=48&&ye<=57||ye>=65&&ye<=90||ye===95||ye>=97&&ye<=122?String.fromCodePoint(ye):ee(ye)}}catch(Te){z={error:Te}}finally{try{he&&!he.done&&(j=ae.return)&&j.call(ae)}finally{if(z)throw z.error}}return K}function B(U,z){var j=u.domainToASCII(U);return j===""?(y("Invalid domain name."),null):j}n.setValidationErrorCallback=function(U){s=U},n.newURL=w,n.isSpecialScheme=C,n.isSpecial=S,n.defaultPort=T,n.includesCredentials=_,n.cannotHaveAUsernamePasswordPort=function(U){return U.host===null||U.host===""||U._cannotBeABaseURLFlag||U.scheme==="file"},n.urlSerializer=E,n.hostSerializer=D,n.iPv4Serializer=b,n.iPv6Serializer=I,n.urlParser=function(U,z,j){var K=R(U,z,j);return K===null?null:(K.scheme!=="blob"||(K._blobURLEntry=null),K)},n.basicURLParser=R,n.setTheUsername=function(U,z){var j,K,ae="";try{for(var he=o(z),ye=he.next();!ye.done;ye=he.next())ae+=le(ye.value,v)}catch(Te){j={error:Te}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(j)throw j.error}}U.username=ae},n.setThePassword=function(U,z){var j,K,ae="";try{for(var he=o(z),ye=he.next();!ye.done;ye=he.next())ae+=le(ye.value,v)}catch(Te){j={error:Te}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(j)throw j.error}}U.password=ae},n.isSingleDotPathSegment=M,n.isDoubleDotPathSegment=L,n.shorten=A,n.isNormalizedWindowsDriveLetter=G,n.isWindowsDriveLetter=P,n.startsWithAWindowsDriveLetter=N,n.hostParser=V,n.iPv4NumberParser=$,n.iPv4Parser=H,n.iPv6Parser=Y,n.opaqueHostParser=ne,n.resolveABlobURL=Q,n.percentEncode=ee,n.percentDecode=de,n.stringPercentDecode=fe,n.utf8PercentEncode=le,n.hostEquals=function(U,z){return U===z},n.urlEquals=function(U,z,j){return j===void 0&&(j=!1),E(U,j)===E(z,j)},n.urlEncodedStringParser=function(U){return k(c.utf8Encode(U))},n.urlEncodedParser=k,n.urlEncodedByteSerializer=O,n.urlEncodedSerializer=function(U,z){var j,K;if((z===void 0||z==="replacement"||z==="UTF-16BE"||z==="UTF-16LE"?"UTF-8":z).toUpperCase()!=="UTF-8")throw new Error("Only UTF-8 encoding is supported.");var ae="";try{for(var he=o(U),ye=he.next();!ye.done;ye=he.next()){var Te=ye.value,q=O(c.utf8Encode(Te[0])),J=Te[1];J=O(c.utf8Encode(J)),ae!==""&&(ae+="&"),ae+=q+"="+J}}catch(ie){j={error:ie}}finally{try{ye&&!ye.done&&(K=he.return)&&K.call(he)}finally{if(j)throw j.error}}return ae},n.origin=function U(z){switch(z.scheme){case"blob":z._blobURLEntry;var j=R(z.path[0]);return j===null?l.OpaqueOrigin:U(j);case"ftp":case"http":case"https":case"ws":case"wss":return[z.scheme,z.host===null?"":z.host,z.port,null];case"file":default:return l.OpaqueOrigin}},n.domainToASCII=B,n.domainToUnicode=function(U,z){var j=u.domainToUnicode(U);return j===""&&y("Invalid domain name."),j},n.asciiSerializationOfAnOrigin=function(U){if(U[0]===""&&U[1]===""&&U[2]===null&&U[3]===null)return"null";var z=U[0]+"://"+D(U[1]);return U[2]!==null&&(z+=":"+U[2].toString()),z}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(0),a=function(){function s(){this._signal=o.create_abortSignal()}return Object.defineProperty(s.prototype,"signal",{get:function(){return this._signal},enumerable:!0,configurable:!0}),s.prototype.abort=function(){o.abort_signalAbort(this._signal)},s}();n.AbortControllerImpl=a},function(r,n,i){var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(70),c=i(0),l=function(f){function u(){var d=f.call(this)||this;return d._abortedFlag=!1,d._abortAlgorithms=new Set,d}return a(u,f),Object.defineProperty(u.prototype,"aborted",{get:function(){return this._abortedFlag},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"onabort",{get:function(){return c.event_getterEventHandlerIDLAttribute(this,"onabort")},set:function(d){c.event_setterEventHandlerIDLAttribute(this,"onabort",d)},enumerable:!0,configurable:!0}),u._create=function(){return new u},u}(s.EventTargetImpl);n.AbortSignalImpl=l},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(2),c=i(34),l=i(12),f=function(u){function d(h,g,p){var v=u.call(this)||this;return v._name="",v._publicId="",v._systemId="",v._name=h,v._publicId=g,v._systemId=p,v}return a(d,u),Object.defineProperty(d.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"publicId",{get:function(){return this._publicId},enumerable:!0,configurable:!0}),Object.defineProperty(d.prototype,"systemId",{get:function(){return this._systemId},enumerable:!0,configurable:!0}),d.prototype.before=function(){for(var h=[],g=0;g=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(1),c=i(0),l=function(){function f(u){return this._live=!0,this._filter=null,this._length=0,this._root=u,new Proxy(this,this)}return Object.defineProperty(f.prototype,"length",{get:function(){return this._root._children.size},enumerable:!0,configurable:!0}),f.prototype.item=function(u){if(u<0||u>this.length-1)return null;if(u=l.length&&(l=void 0),{value:l&&l[d++],done:!l}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(1),c=function(){function l(f){return this._live=!1,this._items=[],this._length=0,this._root=f,this._items=[],this._filter=function(u){return!0},new Proxy(this,this)}return Object.defineProperty(l.prototype,"length",{get:function(){return this._items.length},enumerable:!0,configurable:!0}),l.prototype.item=function(f){return f<0||f>this.length-1?null:this._items[f]},l.prototype.keys=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=0;return{next:(function(){return u===this.length?{done:!0,value:null}:{done:!1,value:u++}}).bind(this)}}).bind(this),f},l.prototype.values=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=this[Symbol.iterator]();return{next:function(){return u.next()}}}).bind(this),f},l.prototype.entries=function(){var f;return(f={})[Symbol.iterator]=(function(){var u=this[Symbol.iterator](),d=0;return{next:function(){var h=u.next();return h.done?{done:!0,value:null}:{done:!1,value:[d++,h.value]}}}}).bind(this),f},l.prototype[Symbol.iterator]=function(){var f=this._items[Symbol.iterator]();return{next:function(){return f.next()}}},l.prototype.forEach=function(f,u){var d,h;u===void 0&&(u=a.dom.window);var g=0;try{for(var p=o(this._items),v=p.next();!v.done;v=p.next()){var x=v.value;f.call(u,x,g++,this)}}catch(m){d={error:m}}finally{try{v&&!v.done&&(h=p.return)&&h.call(p)}finally{if(d)throw d.error}}},l.prototype.get=function(f,u,d){if(!s.isString(u))return Reflect.get(f,u,d);var h=Number(u);return isNaN(h)?Reflect.get(f,u,d):f._items[h]||void 0},l.prototype.set=function(f,u,d,h){if(!s.isString(u))return Reflect.set(f,u,d,h);var g=Number(u);return isNaN(g)?Reflect.set(f,u,d,h):g>=0&&g=v.length&&(v=void 0),{value:v&&v[y++],done:!v}}};throw new TypeError(x?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(6),l=i(2),f=i(102),u=i(9),d=i(0),h=i(12),g=i(3),p=function(v){function x(){var m=v.call(this)||this,y=c.dom.window._associatedDocument;return m._start=[y,0],m._end=[y,0],c.dom.rangeList.add(m),m}return a(x,v),Object.defineProperty(x.prototype,"commonAncestorContainer",{get:function(){for(var m=this._start[0];!d.tree_isAncestorOf(this._end[0],m,!0);){if(m._parent===null)throw new Error("Parent node is null.");m=m._parent}return m},enumerable:!0,configurable:!0}),x.prototype.setStart=function(m,y){d.range_setTheStart(this,m,y)},x.prototype.setEnd=function(m,y){d.range_setTheEnd(this,m,y)},x.prototype.setStartBefore=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheStart(this,y,d.tree_index(m))},x.prototype.setStartAfter=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheStart(this,y,d.tree_index(m)+1)},x.prototype.setEndBefore=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheEnd(this,y,d.tree_index(m))},x.prototype.setEndAfter=function(m){var y=m._parent;if(y===null)throw new u.InvalidNodeTypeError;d.range_setTheEnd(this,y,d.tree_index(m)+1)},x.prototype.collapse=function(m){m?this._end=this._start:this._start=this._end},x.prototype.selectNode=function(m){d.range_select(m,this)},x.prototype.selectNodeContents=function(m){if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;var y=d.tree_nodeLength(m);this._start=[m,0],this._end=[m,y]},x.prototype.compareBoundaryPoints=function(m,y){if(m!==l.HowToCompare.StartToStart&&m!==l.HowToCompare.StartToEnd&&m!==l.HowToCompare.EndToEnd&&m!==l.HowToCompare.EndToStart)throw new u.NotSupportedError;if(d.range_root(this)!==d.range_root(y))throw new u.WrongDocumentError;var w,C;switch(m){case l.HowToCompare.StartToStart:w=this._start,C=y._start;break;case l.HowToCompare.StartToEnd:w=this._end,C=y._start;break;case l.HowToCompare.EndToEnd:w=this._end,C=y._end;break;case l.HowToCompare.EndToStart:w=this._start,C=y._end;break;default:throw new u.NotSupportedError}var S=d.boundaryPoint_position(w,C);return S===l.BoundaryPosition.Before?-1:S===l.BoundaryPosition.After?1:0},x.prototype.deleteContents=function(){var m,y,w,C;if(!d.range_collapsed(this)){var S=this._startNode,T=this._startOffset,_=this._endNode,E=this._endOffset;if(S===_&&g.Guard.isCharacterDataNode(S))d.characterData_replaceData(S,T,E-T,"");else{var D,b,I=[];try{for(var R=s(d.range_getContainedNodes(this)),M=R.next();!M.done;M=R.next()){var L=(N=M.value)._parent;L!==null&&d.range_isContained(L,this)||I.push(N)}}catch(V){m={error:V}}finally{try{M&&!M.done&&(y=R.return)&&y.call(R)}finally{if(m)throw m.error}}if(d.tree_isAncestorOf(_,S,!0))D=S,b=T;else{for(var A=S;A._parent!==null&&!d.tree_isAncestorOf(_,A._parent,!0);)A=A._parent;if(A._parent===null)throw new Error("Parent node is null.");D=A._parent,b=d.tree_index(A)+1}g.Guard.isCharacterDataNode(S)&&d.characterData_replaceData(S,T,d.tree_nodeLength(S)-T,"");try{for(var G=s(I),P=G.next();!P.done;P=G.next()){var N;(N=P.value)._parent&&d.mutation_remove(N,N._parent)}}catch(V){w={error:V}}finally{try{P&&!P.done&&(C=G.return)&&C.call(G)}finally{if(w)throw w.error}}g.Guard.isCharacterDataNode(_)&&d.characterData_replaceData(_,0,E,""),this._start=[D,b],this._end=[D,b]}}},x.prototype.extractContents=function(){return d.range_extract(this)},x.prototype.cloneContents=function(){return d.range_cloneTheContents(this)},x.prototype.insertNode=function(m){return d.range_insert(m,this)},x.prototype.surroundContents=function(m){var y,w;try{for(var C=s(d.range_getPartiallyContainedNodes(this)),S=C.next();!S.done;S=C.next()){var T=S.value;if(!g.Guard.isTextNode(T))throw new u.InvalidStateError}}catch(E){y={error:E}}finally{try{S&&!S.done&&(w=C.return)&&w.call(C)}finally{if(y)throw y.error}}if(g.Guard.isDocumentNode(m)||g.Guard.isDocumentTypeNode(m)||g.Guard.isDocumentFragmentNode(m))throw new u.InvalidNodeTypeError;var _=d.range_extract(this);m._children.size!==0&&d.mutation_replaceAll(null,m),d.range_insert(m,this),d.mutation_append(_,m),d.range_select(m,this)},x.prototype.cloneRange=function(){return d.create_range(this._start,this._end)},x.prototype.detach=function(){c.dom.rangeList.delete(this)},x.prototype.isPointInRange=function(m,y){if(d.tree_rootNode(m)!==d.range_root(this))return!1;if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;if(y>d.tree_nodeLength(m))throw new u.IndexSizeError;var w=[m,y];return d.boundaryPoint_position(w,this._start)!==l.BoundaryPosition.Before&&d.boundaryPoint_position(w,this._end)!==l.BoundaryPosition.After},x.prototype.comparePoint=function(m,y){if(d.tree_rootNode(m)!==d.range_root(this))throw new u.WrongDocumentError;if(g.Guard.isDocumentTypeNode(m))throw new u.InvalidNodeTypeError;if(y>d.tree_nodeLength(m))throw new u.IndexSizeError;var w=[m,y];return d.boundaryPoint_position(w,this._start)===l.BoundaryPosition.Before?-1:d.boundaryPoint_position(w,this._end)===l.BoundaryPosition.After?1:0},x.prototype.intersectsNode=function(m){if(d.tree_rootNode(m)!==d.range_root(this))return!1;var y=m._parent;if(y===null)return!0;var w=d.tree_index(m);return d.boundaryPoint_position([y,w],this._end)===l.BoundaryPosition.Before&&d.boundaryPoint_position([y,w+1],this._start)===l.BoundaryPosition.After},x.prototype.toString=function(){var m,y,w="";if(this._startNode===this._endNode&&g.Guard.isTextNode(this._startNode))return this._startNode._data.substring(this._startOffset,this._endOffset);g.Guard.isTextNode(this._startNode)&&(w+=this._startNode._data.substring(this._startOffset));try{for(var C=s(d.range_getContainedNodes(this)),S=C.next();!S.done;S=C.next()){var T=S.value;g.Guard.isTextNode(T)&&(w+=T._data)}}catch(_){m={error:_}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return g.Guard.isTextNode(this._endNode)&&(w+=this._endNode._data.substring(0,this._endOffset)),w},x._create=function(m,y){var w=new x;return m&&(w._start=m),y&&(w._end=y),w},x.START_TO_START=0,x.START_TO_END=1,x.END_TO_END=2,x.END_TO_START=3,x}(f.AbstractRangeImpl);n.RangeImpl=p,h.idl_defineConst(p.prototype,"START_TO_START",0),h.idl_defineConst(p.prototype,"START_TO_END",1),h.idl_defineConst(p.prototype,"END_TO_END",2),h.idl_defineConst(p.prototype,"END_TO_START",3)},function(r,n,i){var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(103),c=i(0),l=function(f){function u(d,h,g){var p=f.call(this,d)||this;return p._iteratorCollection=void 0,p._reference=h,p._pointerBeforeReference=g,c.nodeIterator_iteratorList().add(p),p}return a(u,f),Object.defineProperty(u.prototype,"referenceNode",{get:function(){return this._reference},enumerable:!0,configurable:!0}),Object.defineProperty(u.prototype,"pointerBeforeReferenceNode",{get:function(){return this._pointerBeforeReference},enumerable:!0,configurable:!0}),u.prototype.nextNode=function(){return c.nodeIterator_traverse(this,!0)},u.prototype.previousNode=function(){return c.nodeIterator_traverse(this,!1)},u.prototype.detach=function(){c.nodeIterator_iteratorList().delete(this)},u._create=function(d,h,g){return new u(d,h,g)},u}(s.TraverserImpl);n.NodeIteratorImpl=l},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(2),c=i(103),l=i(0),f=function(u){function d(h,g){var p=u.call(this,h)||this;return p._current=g,p}return a(d,u),Object.defineProperty(d.prototype,"currentNode",{get:function(){return this._current},set:function(h){this._current=h},enumerable:!0,configurable:!0}),d.prototype.parentNode=function(){for(var h=this._current;h!==null&&h!==this._root;)if((h=h._parent)!==null&&l.traversal_filter(this,h)===s.FilterResult.Accept)return this._current=h,h;return null},d.prototype.firstChild=function(){return l.treeWalker_traverseChildren(this,!0)},d.prototype.lastChild=function(){return l.treeWalker_traverseChildren(this,!1)},d.prototype.nextSibling=function(){return l.treeWalker_traverseSiblings(this,!0)},d.prototype.previousNode=function(){for(var h=this._current;h!==this._root;){for(var g=h._previousSibling;g;){h=g;for(var p=l.traversal_filter(this,h);p!==s.FilterResult.Reject&&h._lastChild;)h=h._lastChild,p=l.traversal_filter(this,h);if(p===s.FilterResult.Accept)return this._current=h,h;g=h._previousSibling}if(h===this._root||h._parent===null)return null;if(h=h._parent,l.traversal_filter(this,h)===s.FilterResult.Accept)return this._current=h,h}return null},d.prototype.previousSibling=function(){return l.treeWalker_traverseSiblings(this,!1)},d.prototype.nextNode=function(){for(var h=this._current,g=s.FilterResult.Accept;;){for(;g!==s.FilterResult.Reject&&h._firstChild;)if(h=h._firstChild,(g=l.traversal_filter(this,h))===s.FilterResult.Accept)return this._current=h,h;for(var p=null,v=h;v!==null;){if(v===this._root)return null;if((p=v._nextSibling)!==null){h=p;break}v=v._parent}if((g=l.traversal_filter(this,h))===s.FilterResult.Accept)return this._current=h,h}},d._create=function(h,g){return new d(h,g)},d}(c.TraverserImpl);n.TreeWalkerImpl=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(12),s=function(){function c(){}return c.prototype.acceptNode=function(l){return o.FilterResult.Accept},c._create=function(){return new c},c.FILTER_ACCEPT=1,c.FILTER_REJECT=2,c.FILTER_SKIP=3,c.SHOW_ALL=4294967295,c.SHOW_ELEMENT=1,c.SHOW_ATTRIBUTE=2,c.SHOW_TEXT=4,c.SHOW_CDATA_SECTION=8,c.SHOW_ENTITY_REFERENCE=16,c.SHOW_ENTITY=32,c.SHOW_PROCESSING_INSTRUCTION=64,c.SHOW_COMMENT=128,c.SHOW_DOCUMENT=256,c.SHOW_DOCUMENT_TYPE=512,c.SHOW_DOCUMENT_FRAGMENT=1024,c.SHOW_NOTATION=2048,c}();n.NodeFilterImpl=s,a.idl_defineConst(s.prototype,"FILTER_ACCEPT",1),a.idl_defineConst(s.prototype,"FILTER_REJECT",2),a.idl_defineConst(s.prototype,"FILTER_SKIP",3),a.idl_defineConst(s.prototype,"SHOW_ALL",4294967295),a.idl_defineConst(s.prototype,"SHOW_ELEMENT",1),a.idl_defineConst(s.prototype,"SHOW_ATTRIBUTE",2),a.idl_defineConst(s.prototype,"SHOW_TEXT",4),a.idl_defineConst(s.prototype,"SHOW_CDATA_SECTION",8),a.idl_defineConst(s.prototype,"SHOW_ENTITY_REFERENCE",16),a.idl_defineConst(s.prototype,"SHOW_ENTITY",32),a.idl_defineConst(s.prototype,"SHOW_PROCESSING_INSTRUCTION",64),a.idl_defineConst(s.prototype,"SHOW_COMMENT",128),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT",256),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT_TYPE",512),a.idl_defineConst(s.prototype,"SHOW_DOCUMENT_FRAGMENT",1024),a.idl_defineConst(s.prototype,"SHOW_NOTATION",2048)},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s,c,l,f,u,d,h,g,p){this._type=s,this._target=c,this._addedNodes=l,this._removedNodes=f,this._previousSibling=u,this._nextSibling=d,this._attributeName=h,this._attributeNamespace=g,this._oldValue=p}return Object.defineProperty(a.prototype,"type",{get:function(){return this._type},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"addedNodes",{get:function(){return this._addedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"removedNodes",{get:function(){return this._removedNodes},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"previousSibling",{get:function(){return this._previousSibling},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"nextSibling",{get:function(){return this._nextSibling},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"attributeName",{get:function(){return this._attributeName},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"attributeNamespace",{get:function(){return this._attributeNamespace},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"oldValue",{get:function(){return this._oldValue},enumerable:!0,configurable:!0}),a._create=function(s,c,l,f,u,d,h,g,p){return new a(s,c,l,f,u,d,h,g,p)},a}();n.MutationRecordImpl=o},function(r,n,i){var o=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(9),c=i(7),l=i(0),f=function(){function u(d,h){this._element=d,this._attribute=h,this._tokenSet=new Set;var g=h._localName,p=l.element_getAnAttributeValue(d,g),v=this;this._element._attributeChangeSteps.push(function(x,m,y,w,C){m===v._attribute._localName&&C===null&&(w?v._tokenSet=l.orderedSet_parse(w):v._tokenSet.clear())}),a.dom.features.steps&&l.dom_runAttributeChangeSteps(d,g,p,p,null)}return Object.defineProperty(u.prototype,"length",{get:function(){return this._tokenSet.size},enumerable:!0,configurable:!0}),u.prototype.item=function(d){var h,g,p=0;try{for(var v=o(this._tokenSet),x=v.next();!x.done;x=v.next()){var m=x.value;if(p===d)return m;p++}}catch(y){h={error:y}}finally{try{x&&!x.done&&(g=v.return)&&g.call(v)}finally{if(h)throw h.error}}return null},u.prototype.contains=function(d){return this._tokenSet.has(d)},u.prototype.add=function(){for(var d,h,g=[],p=0;p=97&&s<=122||s>=65&&s<=90||s===58||s===95||s>=192&&s<=214||s>=216&&s<=246||s>=248&&s<=767||s>=880&&s<=893||s>=895&&s<=8191||s>=8204&&s<=8205||s>=8304&&s<=8591||s>=11264&&s<=12271||s>=12289&&s<=55295||s>=63744&&s<=64975||s>=65008&&s<=65533)&&(a===0||!(s===45||s===46||s>=48&&s<=57||s===183||s>=768&&s<=879||s>=8255&&s<=8256))){if(s>=55296&&s<=56319&&a=56320&&c<=57343&&(a++,(s=1024*(s-55296)+c-56320+65536)>=65536&&s<=983039))continue}return!1}}return!0},n.xml_isQName=function(o){for(var a=!1,s=0;s=97&&c<=122||c>=65&&c<=90||c===95||c>=192&&c<=214||c>=216&&c<=246||c>=248&&c<=767||c>=880&&c<=893||c>=895&&c<=8191||c>=8204&&c<=8205||c>=8304&&c<=8591||c>=11264&&c<=12271||c>=12289&&c<=55295||c>=63744&&c<=64975||c>=65008&&c<=65533)&&(s===0||!(c===45||c===46||c>=48&&c<=57||c===183||c>=768&&c<=879||c>=8255&&c<=8256))){if(s===0||c!==58){if(c>=55296&&c<=56319&&s=56320&&l<=57343&&(s++,(c=1024*(c-55296)+l-56320+65536)>=65536&&c<=983039))continue}return!1}if(a||s===o.length-1)return!1;a=!0}}return!0},n.xml_isLegalChar=function(o){for(var a=0;a=32&&s<=55295||s>=57344&&s<=65533)){if(s>=55296&&s<=56319&&a=56320&&c<=57343&&(a++,(s=1024*(s-55296)+c-56320+65536)>=65536&&s<=1114111))continue}return!1}}return!0},n.xml_isPubidChar=function(o){for(var a=0;a=97&&s<=122||s>=65&&s<=90||s>=39&&s<=59||s===32||s===13||s===10||s>=35&&s<=37||s===33||s===61||s===63||s===64||s===95))return!1}return!0}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(17);n.boundaryPoint_position=function s(c,l){var f=c[0],u=c[1],d=l[0],h=l[1];if(console.assert(a.tree_rootNode(f)===a.tree_rootNode(d),"Boundary points must share the same root node."),f===d)return u===h?o.BoundaryPosition.Equal:u=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(7),l=i(29),f=i(108),u=i(30),d=i(37),h=i(52);n.node_stringReplaceAll=function(g,p){var v=null;g!==""&&(v=l.create_text(p._nodeDocument,g)),d.mutation_replaceAll(v,p)},n.node_clone=function g(p,v,x){var m,y,w,C,S;if(v===void 0&&(v=null),x===void 0&&(x=!1),v===null&&(v=p._nodeDocument),s.Guard.isElementNode(p)){S=h.element_createAnElement(v,p._localName,p._namespace,p._namespacePrefix,p._is,!1);try{for(var T=o(p._attributeList),_=T.next();!_.done;_=T.next()){var E=g(_.value,v);h.element_append(E,S)}}catch(L){m={error:L}}finally{try{_&&!_.done&&(y=T.return)&&y.call(T)}finally{if(m)throw m.error}}}else if(s.Guard.isDocumentNode(p)){var D=l.create_document();D._encoding=p._encoding,D._contentType=p._contentType,D._URL=p._URL,D._origin=p._origin,D._type=p._type,D._mode=p._mode,S=D}else if(s.Guard.isDocumentTypeNode(p))S=l.create_documentType(v,p._name,p._publicId,p._systemId);else if(s.Guard.isAttrNode(p)){var b=l.create_attr(v,p.localName);b._namespace=p._namespace,b._namespacePrefix=p._namespacePrefix,b._value=p._value,S=b}else S=s.Guard.isExclusiveTextNode(p)?l.create_text(v,p._data):s.Guard.isCDATASectionNode(p)?l.create_cdataSection(v,p._data):s.Guard.isCommentNode(p)?l.create_comment(v,p._data):s.Guard.isProcessingInstructionNode(p)?l.create_processingInstruction(v,p._target,p._data):s.Guard.isDocumentFragmentNode(p)?l.create_documentFragment(v):Object.create(p);if(s.Guard.isDocumentNode(S)?(S._nodeDocument=S,v=S):S._nodeDocument=v,a.dom.features.steps&&u.dom_runCloningSteps(S,p,v,x),x)try{for(var I=o(p._children),R=I.next();!R.done;R=I.next()){var M=g(R.value,v,!0);d.mutation_append(M,S)}}catch(L){w={error:L}}finally{try{R&&!R.done&&(C=I.return)&&C.call(I)}finally{if(w)throw w.error}}return S},n.node_equals=function g(p,v){var x,m,y,w;if(p._nodeType!==v._nodeType)return!1;if(s.Guard.isDocumentTypeNode(p)&&s.Guard.isDocumentTypeNode(v)){if(p._name!==v._name||p._publicId!==v._publicId||p._systemId!==v._systemId)return!1}else if(s.Guard.isElementNode(p)&&s.Guard.isElementNode(v)){if(p._namespace!==v._namespace||p._namespacePrefix!==v._namespacePrefix||p._localName!==v._localName||p._attributeList.length!==v._attributeList.length)return!1}else if(s.Guard.isAttrNode(p)&&s.Guard.isAttrNode(v)){if(p._namespace!==v._namespace||p._localName!==v._localName||p._value!==v._value)return!1}else if(s.Guard.isProcessingInstructionNode(p)&&s.Guard.isProcessingInstructionNode(v)){if(p._target!==v._target||p._data!==v._data)return!1}else if(s.Guard.isCharacterDataNode(p)&&s.Guard.isCharacterDataNode(v)&&p._data!==v._data)return!1;if(s.Guard.isElementNode(p)&&s.Guard.isElementNode(v)){var C={};try{for(var S=o(p._attributeList),T=S.next();!T.done;T=S.next())C[(D=T.value)._localName]=D}catch(A){x={error:A}}finally{try{T&&!T.done&&(m=S.return)&&m.call(S)}finally{if(x)throw x.error}}try{for(var _=o(v._attributeList),E=_.next();!E.done;E=_.next()){var D,b=E.value;if(!(D=C[b._localName])||!g(D,b))return!1}}catch(A){y={error:A}}finally{try{E&&!E.done&&(w=_.return)&&w.call(_)}finally{if(y)throw y.error}}}if(p._children.size!==v._children.size)return!1;for(var I=p._children[Symbol.iterator](),R=v._children[Symbol.iterator](),M=I.next(),L=R.next();!M.done&&!L.done;){if(!g(M.value,L.value))return!1;M=I.next(),L=R.next()}return!0},n.node_listOfElementsWithQualifiedName=function(g,p){return g==="*"?l.create_htmlCollection(p):p._nodeDocument._type==="html"?l.create_htmlCollection(p,function(v){return v._namespace===c.namespace.HTML&&v._qualifiedName===g.toLowerCase()||v._namespace!==c.namespace.HTML&&v._qualifiedName===g}):l.create_htmlCollection(p,function(v){return v._qualifiedName===g})},n.node_listOfElementsWithNamespace=function(g,p,v){return g===""&&(g=null),g==="*"&&p==="*"?l.create_htmlCollection(v):g==="*"?l.create_htmlCollection(v,function(x){return x._localName===p}):p==="*"?l.create_htmlCollection(v,function(x){return x._namespace===g}):l.create_htmlCollection(v,function(x){return x._localName===p&&x._namespace===g})},n.node_listOfElementsWithClassNames=function(g,p){var v=f.orderedSet_parse(g);if(v.size===0)return l.create_htmlCollection(p,function(){return!1});var x=p._nodeDocument._mode!=="quirks";return l.create_htmlCollection(p,function(m){var y=m.classList;return f.orderedSet_contains(y._tokenSet,v,x)})},n.node_locateANamespacePrefix=function g(p,v){if(p._namespace===v&&p._namespacePrefix!==null)return p._namespacePrefix;for(var x=0;x=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(9),l=i(29),f=i(17),u=i(107),d=i(37);n.text_contiguousTextNodes=function(h,g){var p;return g===void 0&&(g=!1),(p={})[Symbol.iterator]=function(){for(var v=h;v&&s.Guard.isTextNode(v._previousSibling);)v=v._previousSibling;return{next:function(){if(v&&!g&&v===h&&(v=s.Guard.isTextNode(v._nextSibling)?v._nextSibling:null),v===null)return{done:!0,value:null};var x={done:!1,value:v};return v=s.Guard.isTextNode(v._nextSibling)?v._nextSibling:null,x}}},p},n.text_contiguousExclusiveTextNodes=function(h,g){var p;return g===void 0&&(g=!1),(p={})[Symbol.iterator]=function(){for(var v=h;v&&s.Guard.isExclusiveTextNode(v._previousSibling);)v=v._previousSibling;return{next:function(){if(v&&!g&&v===h&&(v=s.Guard.isExclusiveTextNode(v._nextSibling)?v._nextSibling:null),v===null)return{done:!0,value:null};var x={done:!1,value:v};return v=s.Guard.isExclusiveTextNode(v._nextSibling)?v._nextSibling:null,x}}},p},n.text_descendantTextContent=function(h){for(var g="",p=f.tree_getFirstDescendantNode(h,!1,!1,function(v){return s.Guard.isTextNode(v)});p!==null;)g+=p._data,p=f.tree_getNextDescendantNode(h,p,!1,!1,function(v){return s.Guard.isTextNode(v)});return g},n.text_split=function(h,g){var p,v,x=h._data.length;if(g>x)throw new c.IndexSizeError;var m=x-g,y=u.characterData_substringData(h,g,m),w=l.create_text(h._nodeDocument,y),C=h._parent;if(C!==null){d.mutation_insert(w,C,h._nextSibling);try{for(var S=o(a.dom.rangeList),T=S.next();!T.done;T=S.next()){var _=T.value;_._start[0]===h&&_._start[1]>g&&(_._start[0]=w,_._start[1]-=g),_._end[0]===h&&_._end[1]>g&&(_._end[0]=w,_._end[1]-=g);var E=f.tree_index(h);_._start[0]===C&&_._start[1]===E+1&&_._start[1]++,_._end[0]===C&&_._end[1]===E+1&&_._end[1]++}}catch(D){p={error:D}}finally{try{T&&!T.done&&(v=S.return)&&v.call(S)}finally{if(p)throw p.error}}}return u.characterData_replaceData(h,g,m,""),w}},function(r,n,i){var o=i(4),a=i(41),s=i(24),c=i(48),l=[].join,f=a!=Object,u=c("join",",");o({target:"Array",proto:!0,forced:f||!u},{join:function(d){return l.call(s(this),d===void 0?",":d)}})},function(r,n,i){var o=i(4),a=i(83),s=String.fromCharCode,c=String.fromCodePoint;o({target:"String",stat:!0,forced:!!c&&c.length!=1},{fromCodePoint:function(l){for(var f,u=[],d=arguments.length,h=0;d>h;){if(f=+arguments[h++],a(f,1114111)!==f)throw RangeError(f+" is not a valid code point");u.push(f<65536?s(f):s(55296+((f-=65536)>>10),f%1024+56320))}return u.join("")}})},function(r,n,i){var o=this&&this.__read||function(c,l){var f=typeof Symbol=="function"&&c[Symbol.iterator];if(!f)return c;var u,d,h=f.call(c),g=[];try{for(;(l===void 0||l-- >0)&&!(u=h.next()).done;)g.push(u.value)}catch(p){d={error:p}}finally{try{u&&!u.done&&(f=h.return)&&f.call(h)}finally{if(d)throw d.error}}return g};Object.defineProperty(n,"__esModule",{value:!0});var a=i(111),s=function(){function c(l,f){this._options={skipWhitespaceOnlyText:!1},this.err={line:-1,col:-1,index:-1,str:""},this._str=l,this._index=0,this._length=l.length,f&&(this._options.skipWhitespaceOnlyText=f.skipWhitespaceOnlyText||!1)}return c.prototype.nextToken=function(){if(this.eof())return{type:a.TokenType.EOF};var l=this.skipIfStartsWith("<")?this.openBracket():this.text();return this._options.skipWhitespaceOnlyText&&l.type===a.TokenType.Text&&c.isWhiteSpaceToken(l)&&(l=this.nextToken()),l},c.prototype.openBracket=function(){return this.skipIfStartsWith("?")?this.skipIfStartsWith("xml")?c.isSpace(this._str[this._index])?this.declaration():(this.seek(-3),this.pi()):this.pi():this.skipIfStartsWith("!")?this.skipIfStartsWith("--")?this.comment():this.skipIfStartsWith("[CDATA[")?this.cdata():this.skipIfStartsWith("DOCTYPE")?this.doctype():void this.throwError("Invalid '!' in opening tag."):this.skipIfStartsWith("/")?this.closeTag():this.openTag()},c.prototype.declaration=function(){for(var l="",f="",u="";!this.eof();){if(this.skipSpace(),this.skipIfStartsWith("?>"))return{type:a.TokenType.Declaration,version:l,encoding:f,standalone:u};var d=o(this.attribute(),2),h=d[0],g=d[1];h==="version"?l=g:h==="encoding"?f=g:h==="standalone"?u=g:this.throwError("Invalid attribute name: "+h)}this.throwError("Missing declaration end symbol `?>`")},c.prototype.doctype=function(){var l="",f="";this.skipSpace();var u=this.takeUntil2("[",">",!0);return this.skipSpace(),this.skipIfStartsWith("PUBLIC")?(l=this.quotedString(),f=this.quotedString()):this.skipIfStartsWith("SYSTEM")&&(f=this.quotedString()),this.skipSpace(),this.skipIfStartsWith("[")&&(this.skipUntil("]"),this.skipIfStartsWith("]")||this.throwError("Missing end bracket of DTD internal subset")),this.skipSpace(),this.skipIfStartsWith(">")||this.throwError("Missing doctype end symbol `>`"),{type:a.TokenType.DocType,name:u,pubId:l,sysId:f}},c.prototype.pi=function(){var l=this.takeUntilStartsWith("?>",!0);if(this.eof()&&this.throwError("Missing processing instruction end symbol `?>`"),this.skipSpace(),this.skipIfStartsWith("?>"))return{type:a.TokenType.PI,target:l,data:""};var f=this.takeUntilStartsWith("?>");return this.eof()&&this.throwError("Missing processing instruction end symbol `?>`"),this.seek(2),{type:a.TokenType.PI,target:l,data:f}},c.prototype.text=function(){var l=this.takeUntil("<");return{type:a.TokenType.Text,data:l}},c.prototype.comment=function(){var l=this.takeUntilStartsWith("-->");return this.eof()&&this.throwError("Missing comment end symbol `-->`"),this.seek(3),{type:a.TokenType.Comment,data:l}},c.prototype.cdata=function(){var l=this.takeUntilStartsWith("]]>");return this.eof()&&this.throwError("Missing CDATA end symbol `]>`"),this.seek(3),{type:a.TokenType.CDATA,data:l}},c.prototype.openTag=function(){this.skipSpace();var l=this.takeUntil2(">","/",!0);if(this.skipSpace(),this.skipIfStartsWith(">"))return{type:a.TokenType.Element,name:l,attributes:[],selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:a.TokenType.Element,name:l,attributes:[],selfClosing:!0};for(var f=[];!this.eof();){if(this.skipSpace(),this.skipIfStartsWith(">"))return{type:a.TokenType.Element,name:l,attributes:f,selfClosing:!1};if(this.skipIfStartsWith("/>"))return{type:a.TokenType.Element,name:l,attributes:f,selfClosing:!0};var u=this.attribute();f.push(u)}this.throwError("Missing opening element tag end symbol `>`")},c.prototype.closeTag=function(){this.skipSpace();var l=this.takeUntil(">",!0);return this.skipSpace(),this.skipIfStartsWith(">")||this.throwError("Missing closing element tag end symbol `>`"),{type:a.TokenType.ClosingTag,name:l}},c.prototype.attribute=function(){this.skipSpace();var l=this.takeUntil("=",!0);return this.skipSpace(),this.skipIfStartsWith("=")||this.throwError("Missing equals sign before attribute value"),[l,this.quotedString()]},c.prototype.quotedString=function(){this.skipSpace();var l=this.take(1);c.isQuote(l)||this.throwError("Missing start quote character before quoted value");var f=this.takeUntil(l);return this.skipIfStartsWith(l)||this.throwError("Missing end quote character after quoted value"),f},c.prototype.eof=function(){return this._index>=this._length},c.prototype.skipIfStartsWith=function(l){var f=l.length;if(f===1)return this._str[this._index]===l&&(this._index++,!0);for(var u=0;uthis._length&&(this._index=this._length)},c.prototype.skipSpace=function(){for(;!this.eof()&&c.isSpace(this._str[this._index]);)this._index++},c.prototype.take=function(l){if(l===1)return this._str[this._index++];var f=this._index;return this.seek(l),this._str.slice(f,this._index)},c.prototype.takeUntil=function(l,f){f===void 0&&(f=!1);for(var u=this._index;this._indexthis._index){g=u.index;break}throw this.err={line:d,col:this._index-h,index:this._index,str:this._str.substring(h,g)},new Error(l+` Index: `+this.err.index+` Ln: `+this.err.line+", Col: "+this.err.col+` -Input: `+this.err.str)},c.prototype[Symbol.iterator]=function(){return this._index=0,{next:(function(){var l=this.nextToken();return l.type===a.TokenType.EOF?{done:!0,value:null}:{done:!1,value:l}}).bind(this)}},c}();n.XMLStringLexer=s},function(r,n,i){var o=i(39);r.exports=new o({include:[i(182)]})},function(r,n,i){var o=i(39);r.exports=new o({include:[i(113)],implicit:[i(289),i(290),i(291),i(292)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(91),a=i(1),s=i(3),c=i(77),l=i(109);function f(g,p){var v=d(g===void 0||u(g)?g:o.DefaultBuilderOptions),x=u(g)?p:g,m=l.createDocument();h(m,v);var y=new c.XMLBuilderImpl(m);return x!==void 0&&y.ele(x),y}function u(g){if(!a.isPlainObject(g))return!1;for(var p in g)if(g.hasOwnProperty(p)&&!o.XMLBuilderOptionKeys.has(p))return!1;return!0}function d(g){g===void 0&&(g={});var p=a.applyDefaults(g,o.DefaultBuilderOptions);if(p.convert.att.length===0||p.convert.ins.length===0||p.convert.text.length===0||p.convert.cdata.length===0||p.convert.comment.length===0)throw new Error("JS object converter strings cannot be zero length.");return p}function h(g,p,v){var x=g;x._xmlBuilderOptions=p,x._isFragment=v}n.builder=function(g,p){var v=d(u(g)?g:o.DefaultBuilderOptions),x=s.Guard.isNode(g)||a.isArray(g)?g:p;if(x===void 0)throw new Error("Invalid arguments.");if(a.isArray(x)){for(var m=[],y=0;y0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},a=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(91),c=i(1),l=i(217),f=i(2),u=i(3),d=i(0),h=i(109),g=i(7),p=i(276),v=function(){function x(m){this._domNode=m}return Object.defineProperty(x.prototype,"node",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"options",{get:function(){return this._options},enumerable:!0,configurable:!0}),x.prototype.set=function(m){return this._options=c.applyDefaults(c.applyDefaults(this._options,m,!0),s.DefaultBuilderOptions),this},x.prototype.ele=function(m,y,w){var C,S,T,_,E,D;if(c.isObject(m))return new p.ObjectReader(this._options).parse(this,m);if(m!==null&&/^\s*0&&(m===void 0&&(m=y.slice(C+1)),y=y.slice(0,C)),m===void 0)m=w?this._options.defaultNamespace.ele:this._options.defaultNamespace.att;else if(m!==null&&m[0]==="@"){var S=m.slice(1);if((m=this._options.namespaceAlias[S])===void 0)throw new Error("Namespace alias `"+S+"` is not defined. "+this._debugInfo())}return[m,y]},x.prototype._updateNamespace=function(m){var y,w,C,S,T=this._domNode;if(u.Guard.isElementNode(T)&&m!==null&&T.namespaceURI!==m){var _=o(d.namespace_extractQName(T.prefix?T.prefix+":"+T.localName:T.localName),2),E=_[0],D=_[1],b=d.create_element(this._doc,D,m,E);try{for(var I=a(T.attributes),R=I.next();!R.done;R=I.next()){var M=R.value,L=M.prefix?M.prefix+":"+M.localName:M.localName,A=o(d.namespace_extractQName(L),1)[0],G=M.namespaceURI;G===null&&A!==null&&(G=T.lookupNamespaceURI(A)),G===null?b.setAttribute(L,M.value):b.setAttributeNS(G,L,M.value)}}catch(te){y={error:te}}finally{try{R&&!R.done&&(w=I.return)&&w.call(I)}finally{if(y)throw y.error}}var P=T.parentNode;if(P===null)throw new Error("Parent node is null."+this._debugInfo());P.replaceChild(b,T),this._domNode=b;try{for(var N=a(T.childNodes),V=N.next();!V.done;V=N.next()){var $=V.value.cloneNode(!0);if(b.appendChild($),u.Guard.isElementNode($)){var j=o(d.namespace_extractQName($.prefix?$.prefix+":"+$.localName:$.localName),1)[0],Y=b.lookupNamespaceURI(j);new x($)._updateNamespace(Y)}}}catch(te){C={error:te}}finally{try{V&&!V.done&&(S=N.return)&&S.call(N)}finally{if(C)throw C.error}}}},Object.defineProperty(x.prototype,"_doc",{get:function(){var m=this.node;if(u.Guard.isDocumentNode(m))return m;var y=m.ownerDocument;if(!y)throw new Error("Owner document is null. "+this._debugInfo());return y},enumerable:!0,configurable:!0}),x.prototype._debugInfo=function(m){var y=this.node,w=y.parentNode;m=m||y.nodeName;var C=w?w.nodeName:"";return C?"node: <"+m+">, parent: <"+C+">":"node: <"+m+">"},Object.defineProperty(x.prototype,"_options",{get:function(){var m=this._doc;if(m._xmlBuilderOptions===void 0)throw new Error("Builder options is not set.");return m._xmlBuilderOptions},set:function(m){this._doc._xmlBuilderOptions=m},enumerable:!0,configurable:!0}),x}();n.XMLBuilderImpl=v},function(r,n,i){var o=i(11),a=i(117),s=o.WeakMap;r.exports=typeof s=="function"&&/native code/.test(a(s))},function(r,n,i){var o=i(46),a=i(82),s=i(85),c=i(18);r.exports=o("Reflect","ownKeys")||function(l){var f=a.f(c(l)),u=s.f;return u?f.concat(u(l)):f}},function(r,n,i){var o=i(16),a=i(15),s=i(18),c=i(61);r.exports=o?Object.defineProperties:function(l,f){s(l);for(var u,d=c(f),h=d.length,g=0;h>g;)a.f(l,u=d[g++],f[u]);return l}},function(r,n,i){var o=i(46);r.exports=o("document","documentElement")},function(r,n,i){var o=i(24),a=i(82).f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];r.exports.f=function(l){return c&&s.call(l)=="[object Window]"?function(f){try{return a(f)}catch{return c.slice()}}(l):a(o(l))}},function(r,n,i){var o=i(4),a=i(36).every,s=i(48),c=i(28),l=s("every"),f=c("every");o({target:"Array",proto:!0,forced:!l||!f},{every:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(4),a=i(36).filter,s=i(63),c=i(28),l=s("filter"),f=c("filter");o({target:"Array",proto:!0,forced:!l||!f},{filter:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(46);r.exports=o("navigator","userAgent")||""},function(r,n,i){var o=i(4),a=i(36).find,s=i(130),c=i(28),l=!0,f=c("find");"find"in[]&&Array(1).find(function(){l=!1}),o({target:"Array",proto:!0,forced:l||!f},{find:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}}),s("find")},function(r,n,i){var o=i(131).IteratorPrototype,a=i(60),s=i(40),c=i(62),l=i(49),f=function(){return this};r.exports=function(u,d,h){var g=d+" Iterator";return u.prototype=a(o,{next:s(1,h)}),c(u,g,!1,!0),l[g]=f,u}},function(r,n,i){var o=i(8);r.exports=!o(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype})},function(r,n,i){var o=i(13);r.exports=function(a){if(!o(a)&&a!==null)throw TypeError("Can't set "+String(a)+" as a prototype");return a}},function(r,n,i){var o=i(4),a=i(36).map,s=i(63),c=i(28),l=s("map"),f=c("map");o({target:"Array",proto:!0,forced:!l||!f},{map:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(4),a=i(200).left,s=i(48),c=i(28),l=s("reduce"),f=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!l||!f},{reduce:function(u){return a(this,u,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(127),a=i(27),s=i(41),c=i(26),l=function(f){return function(u,d,h,g){o(d);var p=a(u),v=s(p),x=c(p.length),m=f?x-1:0,y=f?-1:1;if(h<2)for(;;){if(m in v){g=v[m],m+=y;break}if(m+=y,f?m<0:x<=m)throw TypeError("Reduce of empty array with no initial value")}for(;f?m>=0:x>m;m+=y)m in v&&(g=d(g,v[m],m,p));return g}};r.exports={left:l(!1),right:l(!0)}},function(r,n,i){var o=i(4),a=i(36).some,s=i(48),c=i(28),l=s("some"),f=c("some");o({target:"Array",proto:!0,forced:!l||!f},{some:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(90),a=i(135);r.exports=o?{}.toString:function(){return"[object "+a(this)+"]"}},function(r,n){r.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(r,n,i){var o=i(8);r.exports=!o(function(){return Object.isExtensible(Object.preventExtensions({}))})},function(r,n,i){var o=i(5),a=i(49),s=o("iterator"),c=Array.prototype;r.exports=function(l){return l!==void 0&&(a.Array===l||c[s]===l)}},function(r,n,i){var o=i(135),a=i(49),s=i(5)("iterator");r.exports=function(c){if(c!=null)return c[s]||c["@@iterator"]||a[o(c)]}},function(r,n,i){var o=i(18);r.exports=function(a,s,c,l){try{return l?s(o(c)[0],c[1]):s(c)}catch(u){var f=a.return;throw f!==void 0&&o(f.call(a)),u}}},function(r,n,i){var o=i(5)("iterator"),a=!1;try{var s=0,c={next:function(){return{done:!!s++}},return:function(){a=!0}};c[o]=function(){return this},Array.from(c,function(){throw 2})}catch{}r.exports=function(l,f){if(!f&&!a)return!1;var u=!1;try{var d={};d[o]=function(){return{next:function(){return{done:u=!0}}}},l(d)}catch{}return u}},function(r,n,i){var o=i(13),a=i(133);r.exports=function(s,c,l){var f,u;return a&&typeof(f=c.constructor)=="function"&&f!==l&&o(u=f.prototype)&&u!==l.prototype&&a(s,u),s}},function(r,n,i){var o=i(25);r.exports=function(a,s,c){for(var l in s)o(a,l,s[l],c);return a}},function(r,n,i){var o=i(46),a=i(15),s=i(5),c=i(16),l=s("species");r.exports=function(f){var u=o(f),d=a.f;c&&u&&!u[l]&&d(u,l,{configurable:!0,get:function(){return this}})}},function(r,n,i){var o=this&&this.__generator||function(c,l){var f,u,d,h,g={label:0,sent:function(){if(1&d[0])throw d[1];return d[1]},trys:[],ops:[]};return h={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function p(v){return function(x){return function(m){if(f)throw new TypeError("Generator is already executing.");for(;g;)try{if(f=1,u&&(d=2&m[0]?u.return:m[0]?u.throw||((d=u.return)&&d.call(u),0):u.next)&&!(d=d.call(u,m[1])).done)return d;switch(u=0,d&&(m=[2&m[0],d.value]),m[0]){case 0:case 1:d=m;break;case 4:return g.label++,{value:m[1],done:!1};case 5:g.label++,u=m[1],m=[0];continue;case 7:m=g.ops.pop(),g.trys.pop();continue;default:if(d=g.trys,!((d=d.length>0&&d[d.length-1])||m[0]!==6&&m[0]!==2)){g=0;continue}if(m[0]===3&&(!d||m[1]>d[0]&&m[1]=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function c(l){l===void 0&&(l=1e3),this._items=new Set,this._limit=l}return c.prototype.add=function(l){if(this._items.add(l),this._items.size>this._limit){var f=this._items.values().next();f.done||this._items.delete(f.value)}return this},c.prototype.delete=function(l){return this._items.delete(l)},c.prototype.has=function(l){return this._items.has(l)},c.prototype.clear=function(){this._items.clear()},Object.defineProperty(c.prototype,"size",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),c.prototype.forEach=function(l,f){var u=this;this._items.forEach(function(d){return l.call(f,d,d,u)})},c.prototype.keys=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.keys())];case 1:return l.sent(),[2]}})},c.prototype.values=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.values())];case 1:return l.sent(),[2]}})},c.prototype.entries=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.entries())];case 1:return l.sent(),[2]}})},c.prototype[Symbol.iterator]=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items)];case 1:return l.sent(),[2]}})},Object.defineProperty(c.prototype,Symbol.toStringTag,{get:function(){return"FixedSizeSet"},enumerable:!0,configurable:!0}),c}();n.FixedSizeSet=s},function(r,n,i){var o=this&&this.__generator||function(c,l){var f,u,d,h,g={label:0,sent:function(){if(1&d[0])throw d[1];return d[1]},trys:[],ops:[]};return h={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function p(v){return function(x){return function(m){if(f)throw new TypeError("Generator is already executing.");for(;g;)try{if(f=1,u&&(d=2&m[0]?u.return:m[0]?u.throw||((d=u.return)&&d.call(u),0):u.next)&&!(d=d.call(u,m[1])).done)return d;switch(u=0,d&&(m=[2&m[0],d.value]),m[0]){case 0:case 1:d=m;break;case 4:return g.label++,{value:m[1],done:!1};case 5:g.label++,u=m[1],m=[0];continue;case 7:m=g.ops.pop(),g.trys.pop();continue;default:if(d=g.trys,!((d=d.length>0&&d[d.length-1])||m[0]!==6&&m[0]!==2)){g=0;continue}if(m[0]===3&&(!d||m[1]>d[0]&&m[1]=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function c(l){l===void 0&&(l=1e3),this._items=new Map,this._limit=l}return c.prototype.get=function(l){return this._items.get(l)},c.prototype.set=function(l,f){if(this._items.set(l,f),this._items.size>this._limit){var u=this._items.keys().next();u.done||this._items.delete(u.value)}},c.prototype.delete=function(l){return this._items.delete(l)},c.prototype.has=function(l){return this._items.has(l)},c.prototype.clear=function(){this._items.clear()},Object.defineProperty(c.prototype,"size",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),c.prototype.forEach=function(l,f){this._items.forEach(function(u,d){return l.call(f,d,u)})},c.prototype.keys=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.keys())];case 1:return l.sent(),[2]}})},c.prototype.values=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.values())];case 1:return l.sent(),[2]}})},c.prototype.entries=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.entries())];case 1:return l.sent(),[2]}})},c.prototype[Symbol.iterator]=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items)];case 1:return l.sent(),[2]}})},Object.defineProperty(c.prototype,Symbol.toStringTag,{get:function(){return"ObjectCache"},enumerable:!0,configurable:!0}),c}();n.ObjectCache=s},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){s===void 0&&(s=1e3),this._items=new Map,this._limit=s}return a.prototype.check=function(s,c){if(this._items.get(s)===c)return!0;if(this._items.get(c)===s)return!1;var l=Math.random()<.5;if(l?this._items.set(s,c):this._items.set(c,s),this._items.size>this._limit){var f=this._items.keys().next();f.done||this._items.delete(f.value)}return l},a}();n.CompareCache=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){this._initialized=!1,this._value=void 0,this._initFunc=s}return Object.defineProperty(a.prototype,"value",{get:function(){return this._initialized||(this._value=this._initFunc(),this._initialized=!0),this._value},enumerable:!0,configurable:!0}),a}();n.Lazy=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){this._pointer=0,this._chars=Array.from(s),this._length=this._chars.length}return Object.defineProperty(a.prototype,"eof",{get:function(){return this._pointer>=this._length},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),a.prototype.codePoint=function(){if(this._codePoint===void 0)if(this.eof)this._codePoint=-1;else{var s=this._chars[this._pointer].codePointAt(0);this._codePoint=s!==void 0?s:-1}return this._codePoint},a.prototype.c=function(){return this._c===void 0&&(this._c=this.eof?"":this._chars[this._pointer]),this._c},a.prototype.remaining=function(){return this._remaining===void 0&&(this._remaining=this.eof?"":this._chars.slice(this._pointer+1).join("")),this._remaining},a.prototype.substring=function(){return this._substring===void 0&&(this._substring=this.eof?"":this._chars.slice(this._pointer).join("")),this._substring},Object.defineProperty(a.prototype,"pointer",{get:function(){return this._pointer},set:function(s){s!==this._pointer&&(this._pointer=s,this._codePoint=void 0,this._c=void 0,this._remaining=void 0,this._substring=void 0)},enumerable:!0,configurable:!0}),a}();n.StringWalker=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(218);n.MapWriter=o.MapWriter;var a=i(258);n.XMLWriter=a.XMLWriter;var s=i(67);n.ObjectWriter=s.ObjectWriter;var c=i(260);n.JSONWriter=c.JSONWriter;var l=i(261);n.YAMLWriter=l.YAMLWriter},function(r,n,i){i(19),i(219),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=i(67),l=function(f){function u(d,h){var g=f.call(this,d)||this;return g._writerOptions=s.applyDefaults(h,{format:"map",wellFormed:!1,group:!1,verbose:!1}),g}return a(u,f),u.prototype.serialize=function(d){var h=s.applyDefaults(this._writerOptions,{format:"object",wellFormed:!1,verbose:!1}),g=new c.ObjectWriter(this._builderOptions,h).serialize(d);return this._convertObject(g)},u.prototype._convertObject=function(d){if(s.isArray(d)){for(var h=0;h=51||!a(function(){var w=[];return w[v]=!1,w.concat()[0]!==w}),m=h("concat"),y=function(w){if(!c(w))return!1;var C=w[v];return C!==void 0?!!C:s(w)};o({target:"Array",proto:!0,forced:!x||!m},{concat:function(w){var C,S,T,_,E,D=l(this),b=d(D,0),I=0;for(C=-1,T=arguments.length;C9007199254740991)throw TypeError("Maximum allowed index exceeded");for(S=0;S<_;S++,I++)S in E&&u(b,I,E[S])}else{if(I>=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(b,I++,E)}return b.length=I,b}})},function(r,n,i){var o=i(8);function a(s,c){return RegExp(s,c)}n.UNSUPPORTED_Y=o(function(){var s=a("a","y");return s.lastIndex=2,s.exec("abcd")!=null}),n.BROKEN_CARET=o(function(){var s=a("^r","gy");return s.lastIndex=2,s.exec("str")!=null})},function(r,n,i){var o=i(223);r.exports=function(a){if(o(a))throw TypeError("The method doesn't accept regular expressions");return a}},function(r,n,i){var o=i(13),a=i(42),s=i(5)("match");r.exports=function(c){var l;return o(c)&&((l=c[s])!==void 0?!!l:a(c)=="RegExp")}},function(r,n,i){var o=i(5)("match");r.exports=function(a){var s=/./;try{"/./"[a](s)}catch{try{return s[o]=!1,"/./"[a](s)}catch{}}return!1}},function(r,n,i){i(68);var o=i(25),a=i(8),s=i(5),c=i(93),l=i(21),f=s("species"),u=!a(function(){var v=/./;return v.exec=function(){var x=[];return x.groups={a:"7"},x},"".replace(v,"$")!=="7"}),d="a".replace(/./,"$0")==="$0",h=s("replace"),g=!!/./[h]&&/./[h]("a","$0")==="",p=!a(function(){var v=/(?:)/,x=v.exec;v.exec=function(){return x.apply(this,arguments)};var m="ab".split(v);return m.length!==2||m[0]!=="a"||m[1]!=="b"});r.exports=function(v,x,m,y){var w=s(v),C=!a(function(){var b={};return b[w]=function(){return 7},""[v](b)!=7}),S=C&&!a(function(){var b=!1,I=/a/;return v==="split"&&((I={}).constructor={},I.constructor[f]=function(){return I},I.flags="",I[w]=/./[w]),I.exec=function(){return b=!0,null},I[w](""),!b});if(!C||!S||v==="replace"&&(!u||!d||g)||v==="split"&&!p){var T=/./[w],_=m(w,""[v],function(b,I,R,M,L){return I.exec===c?C&&!L?{done:!0,value:T.call(I,R,M)}:{done:!0,value:b.call(R,I,M)}:{done:!1}},{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:g}),E=_[0],D=_[1];o(String.prototype,v,E),o(RegExp.prototype,w,x==2?function(b,I){return D.call(b,this,I)}:function(b){return D.call(b,this)})}y&&l(RegExp.prototype[w],"sham",!0)}},function(r,n,i){var o=i(137).charAt;r.exports=function(a,s,c){return s+(c?o(a,s).length:1)}},function(r,n,i){var o=i(42),a=i(93);r.exports=function(s,c){var l=s.exec;if(typeof l=="function"){var f=l.call(s,c);if(typeof f!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return f}if(o(s)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return a.call(s,c)}},function(r,n,i){(function(o){Object.defineProperty(n,"__esModule",{value:!0});var a=i(96);n.forgivingBase64Encode=function(s){return o.from(s).toString("base64")},n.forgivingBase64Decode=function(s){return s===""?"":((s=s.replace(a.ASCIIWhiteSpace,"")).length%4==0&&(s.endsWith("==")?s=s.substr(0,s.length-2):s.endsWith("=")&&(s=s.substr(0,s.length-1))),s.length%4==1?null:/[0-9A-Za-z+/]/.test(s)?o.from(s,"base64").toString("utf8"):null)}}).call(this,i(145).Buffer)},function(r,n,i){n.byteLength=function(h){var g=u(h),p=g[0],v=g[1];return 3*(p+v)/4-v},n.toByteArray=function(h){var g,p,v=u(h),x=v[0],m=v[1],y=new s(function(S,T,_){return 3*(T+_)/4-_}(0,x,m)),w=0,C=m>0?x-4:x;for(p=0;p>16&255,y[w++]=g>>8&255,y[w++]=255&g;return m===2&&(g=a[h.charCodeAt(p)]<<2|a[h.charCodeAt(p+1)]>>4,y[w++]=255&g),m===1&&(g=a[h.charCodeAt(p)]<<10|a[h.charCodeAt(p+1)]<<4|a[h.charCodeAt(p+2)]>>2,y[w++]=g>>8&255,y[w++]=255&g),y},n.fromByteArray=function(h){for(var g,p=h.length,v=p%3,x=[],m=0,y=p-v;my?y:m+16383));return v===1?(g=h[p-1],x.push(o[g>>2]+o[g<<4&63]+"==")):v===2&&(g=(h[p-2]<<8)+h[p-1],x.push(o[g>>10]+o[g>>4&63]+o[g<<2&63]+"=")),x.join("")};for(var o=[],a=[],s=typeof Uint8Array<"u"?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,f=c.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var p=h.indexOf("=");return p===-1&&(p=g),[p,p===g?0:4-p%4]}function d(h,g,p){for(var v,x,m=[],y=g;y>18&63]+o[x>>12&63]+o[x>>6&63]+o[63&x]);return m.join("")}a[45]=62,a[95]=63},function(r,n){n.read=function(i,o,a,s,c){var l,f,u=8*c-s-1,d=(1<>1,g=-7,p=a?c-1:0,v=a?-1:1,x=i[o+p];for(p+=v,l=x&(1<<-g)-1,x>>=-g,g+=u;g>0;l=256*l+i[o+p],p+=v,g-=8);for(f=l&(1<<-g)-1,l>>=-g,g+=s;g>0;f=256*f+i[o+p],p+=v,g-=8);if(l===0)l=1-h;else{if(l===d)return f?NaN:1/0*(x?-1:1);f+=Math.pow(2,s),l-=h}return(x?-1:1)*f*Math.pow(2,l-s)},n.write=function(i,o,a,s,c,l){var f,u,d,h=8*l-c-1,g=(1<>1,v=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,x=s?0:l-1,m=s?1:-1,y=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(u=isNaN(o)?1:0,f=g):(f=Math.floor(Math.log(o)/Math.LN2),o*(d=Math.pow(2,-f))<1&&(f--,d*=2),(o+=f+p>=1?v/d:v*Math.pow(2,1-p))*d>=2&&(f++,d/=2),f+p>=g?(u=0,f=g):f+p>=1?(u=(o*d-1)*Math.pow(2,c),f+=p):(u=o*Math.pow(2,p-1)*Math.pow(2,c),f=0));c>=8;i[a+x]=255&u,x+=m,u/=256,c-=8);for(f=f<0;i[a+x]=255&f,x+=m,f/=256,h-=8);i[a+x-m]|=128*y}},function(r,n){var i={}.toString;r.exports=Array.isArray||function(o){return i.call(o)=="[object Array]"}},function(r,n,i){var o=this&&this.__values||function(c){var l=typeof Symbol=="function"&&Symbol.iterator,f=l&&c[l],u=0;if(f)return f.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&u>=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1);function s(c){var l,f;if(c===null||a.isString(c)||a.isNumber(c))return c;if(a.isArray(c)){var u=new Array;try{for(var d=o(c),h=d.next();!h.done;h=d.next()){var g=h.value;u.push(s(g))}}catch(x){l={error:x}}finally{try{h&&!h.done&&(f=d.return)&&f.call(d)}finally{if(l)throw l.error}}return u}if(a.isObject(c)){u=new Map;for(var p in c)if(c.hasOwnProperty(p)){var v=c[p];u.set(p,s(v))}return u}return c}n.parseJSONFromBytes=function(c){var l=a.utf8Decode(c);return JSON.parse.call(void 0,l)},n.serializeJSONToBytes=function(c){var l=JSON.stringify.call(void 0,c);return a.utf8Encode(l)},n.parseJSONIntoInfraValues=function(c){return s(JSON.parse.call(void 0,c))},n.convertAJSONDerivedJavaScriptValueToAnInfraValue=s},function(r,n,i){var o=this&&this.__generator||function(f,u){var d,h,g,p,v={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return p={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function x(m){return function(y){return function(w){if(d)throw new TypeError("Generator is already executing.");for(;v;)try{if(d=1,h&&(g=2&w[0]?h.return:w[0]?h.throw||((g=h.return)&&g.call(h),0):h.next)&&!(g=g.call(h,w[1])).done)return g;switch(h=0,g&&(w=[2&w[0],g.value]),w[0]){case 0:case 1:g=w;break;case 4:return v.label++,{value:w[1],done:!1};case 5:v.label++,h=w[1],w=[0];continue;case 7:w=v.ops.pop(),v.trys.pop();continue;default:if(g=v.trys,!((g=g.length>0&&g[g.length-1])||w[0]!==6&&w[0]!==2)){v=0;continue}if(w[0]===3&&(!g||w[1]>g[0]&&w[1]0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v},s=this&&this.__spread||function(){for(var f=[],u=0;u=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var l=i(1);n.append=function(f,u){f.push(u)},n.extend=function(f,u){f.push.apply(f,s(u))},n.prepend=function(f,u){f.unshift(u)},n.replace=function(f,u,d){var h,g,p=0;try{for(var v=c(f),x=v.next();!x.done;x=v.next()){var m=x.value;if(l.isFunction(u))u.call(null,m)&&(f[p]=d);else if(m===u)return void(f[p]=d);p++}}catch(y){h={error:y}}finally{try{x&&!x.done&&(g=v.return)&&g.call(v)}finally{if(h)throw h.error}}},n.insert=function(f,u,d){f.splice(d,0,u)},n.remove=function(f,u){for(var d=f.length;d--;){var h=f[d];if(l.isFunction(u))u.call(null,h)&&f.splice(d,1);else if(h===u)return void f.splice(d,1)}},n.empty=function(f){f.length=0},n.contains=function(f,u){var d,h;try{for(var g=c(f),p=g.next();!p.done;p=g.next()){var v=p.value;if(l.isFunction(u)){if(u.call(null,v))return!0}else if(v===u)return!0}}catch(x){d={error:x}}finally{try{p&&!p.done&&(h=g.return)&&h.call(g)}finally{if(d)throw d.error}}return!1},n.size=function(f,u){var d,h;if(u===void 0)return f.length;var g=0;try{for(var p=c(f),v=p.next();!v.done;v=p.next()){var x=v.value;u.call(null,x)&&g++}}catch(m){d={error:m}}finally{try{v&&!v.done&&(h=p.return)&&h.call(p)}finally{if(d)throw d.error}}return g},n.isEmpty=function(f){return f.length===0},n.forEach=function(f,u){var d,h,g,p,v,x;return o(this,function(m){switch(m.label){case 0:return u!==void 0?[3,2]:[5,c(f)];case 1:return m.sent(),[3,9];case 2:m.trys.push([2,7,8,9]),d=c(f),h=d.next(),m.label=3;case 3:return h.done?[3,6]:(g=h.value,u.call(null,g)?[4,g]:[3,5]);case 4:m.sent(),m.label=5;case 5:return h=d.next(),[3,3];case 6:return[3,9];case 7:return p=m.sent(),v={error:p},[3,9];case 8:try{h&&!h.done&&(x=d.return)&&x.call(d)}finally{if(v)throw v.error}return[7];case 9:return[2]}})},n.clone=function(f){return new(Array.bind.apply(Array,s([void 0],f)))},n.sortInAscendingOrder=function(f,u){return f.sort(function(d,h){return u.call(null,d,h)?-1:1})},n.sortInDescendingOrder=function(f,u){return f.sort(function(d,h){return u.call(null,d,h)?1:-1})}},function(r,n,i){var o=this&&this.__generator||function(f,u){var d,h,g,p,v={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return p={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function x(m){return function(y){return function(w){if(d)throw new TypeError("Generator is already executing.");for(;v;)try{if(d=1,h&&(g=2&w[0]?h.return:w[0]?h.throw||((g=h.return)&&g.call(h),0):h.next)&&!(g=g.call(h,w[1])).done)return g;switch(h=0,g&&(w=[2&w[0],g.value]),w[0]){case 0:case 1:g=w;break;case 4:return v.label++,{value:w[1],done:!1};case 5:v.label++,h=w[1],w=[0];continue;case 7:w=v.ops.pop(),v.trys.pop();continue;default:if(g=v.trys,!((g=g.length>0&&g[g.length-1])||w[0]!==6&&w[0]!==2)){v=0;continue}if(w[0]===3&&(!g||w[1]>g[0]&&w[1]=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__read||function(f,u){var d=typeof Symbol=="function"&&f[Symbol.iterator];if(!d)return f;var h,g,p=d.call(f),v=[];try{for(;(u===void 0||u-- >0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v},c=this&&this.__spread||function(){for(var f=[],u=0;u0&&p[p.length-1])||C[0]!==6&&C[0]!==2)){x=0;continue}if(C[0]===3&&(!p||C[1]>p[0]&&C[1]=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__read||function(u,d){var h=typeof Symbol=="function"&&u[Symbol.iterator];if(!h)return u;var g,p,v=h.call(u),x=[];try{for(;(d===void 0||d-- >0)&&!(g=v.next()).done;)x.push(g.value)}catch(m){p={error:m}}finally{try{g&&!g.done&&(h=v.return)&&h.call(v)}finally{if(p)throw p.error}}return x},c=this&&this.__spread||function(){for(var u=[],d=0;d=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(96),s=i(147),c=i(146),l=i(1);function f(x,m){for(var y=0;;){var w=y=65&&_<=90?String.fromCodePoint(_+32):T}}catch(E){m={error:E}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w}function g(x){return x.replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,"")}function p(x,m,y){if(!l.isArray(m))return p(x,Array.from(m),y);for(var w="";y.position=97&&_<=122?String.fromCodePoint(_-32):T}}catch(E){m={error:E}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},n.asciiCaseInsensitiveMatch=function(x,m){return h(x)===h(m)},n.asciiEncode=function(x){return console.assert(d(x),"asciiEncode requires an ASCII string."),u(x)},n.asciiDecode=function(x){var m,y;try{for(var w=o(x),C=w.next();!C.done;C=w.next()){var S=C.value;console.assert(c.isASCIIByte(S),"asciiDecode requires an ASCII byte sequence.")}}catch(T){m={error:T}}finally{try{C&&!C.done&&(y=w.return)&&y.call(w)}finally{if(m)throw m.error}}return s.isomorphicDecode(x)},n.stripNewlines=function(x){return x.replace(/[\n\r]/g,"")},n.normalizeNewlines=function(x){return x.replace(/\r\n/g,` +Input: `+this.err.str)},c.prototype[Symbol.iterator]=function(){return this._index=0,{next:(function(){var l=this.nextToken();return l.type===a.TokenType.EOF?{done:!0,value:null}:{done:!1,value:l}}).bind(this)}},c}();n.XMLStringLexer=s},function(r,n,i){var o=i(39);r.exports=new o({include:[i(182)]})},function(r,n,i){var o=i(39);r.exports=new o({include:[i(113)],implicit:[i(289),i(290),i(291),i(292)]})},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(91),a=i(1),s=i(3),c=i(77),l=i(109);function f(g,p){var v=d(g===void 0||u(g)?g:o.DefaultBuilderOptions),x=u(g)?p:g,m=l.createDocument();h(m,v);var y=new c.XMLBuilderImpl(m);return x!==void 0&&y.ele(x),y}function u(g){if(!a.isPlainObject(g))return!1;for(var p in g)if(g.hasOwnProperty(p)&&!o.XMLBuilderOptionKeys.has(p))return!1;return!0}function d(g){g===void 0&&(g={});var p=a.applyDefaults(g,o.DefaultBuilderOptions);if(p.convert.att.length===0||p.convert.ins.length===0||p.convert.text.length===0||p.convert.cdata.length===0||p.convert.comment.length===0)throw new Error("JS object converter strings cannot be zero length.");return p}function h(g,p,v){var x=g;x._xmlBuilderOptions=p,x._isFragment=v}n.builder=function(g,p){var v=d(u(g)?g:o.DefaultBuilderOptions),x=s.Guard.isNode(g)||a.isArray(g)?g:p;if(x===void 0)throw new Error("Invalid arguments.");if(a.isArray(x)){for(var m=[],y=0;y0)&&!(w=S.next()).done;)T.push(w.value)}catch(_){C={error:_}}finally{try{w&&!w.done&&(y=S.return)&&y.call(S)}finally{if(C)throw C.error}}return T},a=this&&this.__values||function(x){var m=typeof Symbol=="function"&&Symbol.iterator,y=m&&x[m],w=0;if(y)return y.call(x);if(x&&typeof x.length=="number")return{next:function(){return x&&w>=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(91),c=i(1),l=i(217),f=i(2),u=i(3),d=i(0),h=i(109),g=i(7),p=i(276),v=function(){function x(m){this._domNode=m}return Object.defineProperty(x.prototype,"node",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),Object.defineProperty(x.prototype,"options",{get:function(){return this._options},enumerable:!0,configurable:!0}),x.prototype.set=function(m){return this._options=c.applyDefaults(c.applyDefaults(this._options,m,!0),s.DefaultBuilderOptions),this},x.prototype.ele=function(m,y,w){var C,S,T,_,E,D;if(c.isObject(m))return new p.ObjectReader(this._options).parse(this,m);if(m!==null&&/^\s*0&&(m===void 0&&(m=y.slice(C+1)),y=y.slice(0,C)),m===void 0)m=w?this._options.defaultNamespace.ele:this._options.defaultNamespace.att;else if(m!==null&&m[0]==="@"){var S=m.slice(1);if((m=this._options.namespaceAlias[S])===void 0)throw new Error("Namespace alias `"+S+"` is not defined. "+this._debugInfo())}return[m,y]},x.prototype._updateNamespace=function(m){var y,w,C,S,T=this._domNode;if(u.Guard.isElementNode(T)&&m!==null&&T.namespaceURI!==m){var _=o(d.namespace_extractQName(T.prefix?T.prefix+":"+T.localName:T.localName),2),E=_[0],D=_[1],b=d.create_element(this._doc,D,m,E);try{for(var I=a(T.attributes),R=I.next();!R.done;R=I.next()){var M=R.value,L=M.prefix?M.prefix+":"+M.localName:M.localName,A=o(d.namespace_extractQName(L),1)[0],G=M.namespaceURI;G===null&&A!==null&&(G=T.lookupNamespaceURI(A)),G===null?b.setAttribute(L,M.value):b.setAttributeNS(G,L,M.value)}}catch(ne){y={error:ne}}finally{try{R&&!R.done&&(w=I.return)&&w.call(I)}finally{if(y)throw y.error}}var P=T.parentNode;if(P===null)throw new Error("Parent node is null."+this._debugInfo());P.replaceChild(b,T),this._domNode=b;try{for(var N=a(T.childNodes),V=N.next();!V.done;V=N.next()){var $=V.value.cloneNode(!0);if(b.appendChild($),u.Guard.isElementNode($)){var H=o(d.namespace_extractQName($.prefix?$.prefix+":"+$.localName:$.localName),1)[0],Y=b.lookupNamespaceURI(H);new x($)._updateNamespace(Y)}}}catch(ne){C={error:ne}}finally{try{V&&!V.done&&(S=N.return)&&S.call(N)}finally{if(C)throw C.error}}}},Object.defineProperty(x.prototype,"_doc",{get:function(){var m=this.node;if(u.Guard.isDocumentNode(m))return m;var y=m.ownerDocument;if(!y)throw new Error("Owner document is null. "+this._debugInfo());return y},enumerable:!0,configurable:!0}),x.prototype._debugInfo=function(m){var y=this.node,w=y.parentNode;m=m||y.nodeName;var C=w?w.nodeName:"";return C?"node: <"+m+">, parent: <"+C+">":"node: <"+m+">"},Object.defineProperty(x.prototype,"_options",{get:function(){var m=this._doc;if(m._xmlBuilderOptions===void 0)throw new Error("Builder options is not set.");return m._xmlBuilderOptions},set:function(m){this._doc._xmlBuilderOptions=m},enumerable:!0,configurable:!0}),x}();n.XMLBuilderImpl=v},function(r,n,i){var o=i(11),a=i(117),s=o.WeakMap;r.exports=typeof s=="function"&&/native code/.test(a(s))},function(r,n,i){var o=i(46),a=i(82),s=i(85),c=i(18);r.exports=o("Reflect","ownKeys")||function(l){var f=a.f(c(l)),u=s.f;return u?f.concat(u(l)):f}},function(r,n,i){var o=i(16),a=i(15),s=i(18),c=i(61);r.exports=o?Object.defineProperties:function(l,f){s(l);for(var u,d=c(f),h=d.length,g=0;h>g;)a.f(l,u=d[g++],f[u]);return l}},function(r,n,i){var o=i(46);r.exports=o("document","documentElement")},function(r,n,i){var o=i(24),a=i(82).f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];r.exports.f=function(l){return c&&s.call(l)=="[object Window]"?function(f){try{return a(f)}catch{return c.slice()}}(l):a(o(l))}},function(r,n,i){var o=i(4),a=i(36).every,s=i(48),c=i(28),l=s("every"),f=c("every");o({target:"Array",proto:!0,forced:!l||!f},{every:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(4),a=i(36).filter,s=i(63),c=i(28),l=s("filter"),f=c("filter");o({target:"Array",proto:!0,forced:!l||!f},{filter:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(46);r.exports=o("navigator","userAgent")||""},function(r,n,i){var o=i(4),a=i(36).find,s=i(130),c=i(28),l=!0,f=c("find");"find"in[]&&Array(1).find(function(){l=!1}),o({target:"Array",proto:!0,forced:l||!f},{find:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}}),s("find")},function(r,n,i){var o=i(131).IteratorPrototype,a=i(60),s=i(40),c=i(62),l=i(49),f=function(){return this};r.exports=function(u,d,h){var g=d+" Iterator";return u.prototype=a(o,{next:s(1,h)}),c(u,g,!1,!0),l[g]=f,u}},function(r,n,i){var o=i(8);r.exports=!o(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype})},function(r,n,i){var o=i(13);r.exports=function(a){if(!o(a)&&a!==null)throw TypeError("Can't set "+String(a)+" as a prototype");return a}},function(r,n,i){var o=i(4),a=i(36).map,s=i(63),c=i(28),l=s("map"),f=c("map");o({target:"Array",proto:!0,forced:!l||!f},{map:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(4),a=i(200).left,s=i(48),c=i(28),l=s("reduce"),f=c("reduce",{1:0});o({target:"Array",proto:!0,forced:!l||!f},{reduce:function(u){return a(this,u,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(127),a=i(27),s=i(41),c=i(26),l=function(f){return function(u,d,h,g){o(d);var p=a(u),v=s(p),x=c(p.length),m=f?x-1:0,y=f?-1:1;if(h<2)for(;;){if(m in v){g=v[m],m+=y;break}if(m+=y,f?m<0:x<=m)throw TypeError("Reduce of empty array with no initial value")}for(;f?m>=0:x>m;m+=y)m in v&&(g=d(g,v[m],m,p));return g}};r.exports={left:l(!1),right:l(!0)}},function(r,n,i){var o=i(4),a=i(36).some,s=i(48),c=i(28),l=s("some"),f=c("some");o({target:"Array",proto:!0,forced:!l||!f},{some:function(u){return a(this,u,arguments.length>1?arguments[1]:void 0)}})},function(r,n,i){var o=i(90),a=i(135);r.exports=o?{}.toString:function(){return"[object "+a(this)+"]"}},function(r,n){r.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(r,n,i){var o=i(8);r.exports=!o(function(){return Object.isExtensible(Object.preventExtensions({}))})},function(r,n,i){var o=i(5),a=i(49),s=o("iterator"),c=Array.prototype;r.exports=function(l){return l!==void 0&&(a.Array===l||c[s]===l)}},function(r,n,i){var o=i(135),a=i(49),s=i(5)("iterator");r.exports=function(c){if(c!=null)return c[s]||c["@@iterator"]||a[o(c)]}},function(r,n,i){var o=i(18);r.exports=function(a,s,c,l){try{return l?s(o(c)[0],c[1]):s(c)}catch(u){var f=a.return;throw f!==void 0&&o(f.call(a)),u}}},function(r,n,i){var o=i(5)("iterator"),a=!1;try{var s=0,c={next:function(){return{done:!!s++}},return:function(){a=!0}};c[o]=function(){return this},Array.from(c,function(){throw 2})}catch{}r.exports=function(l,f){if(!f&&!a)return!1;var u=!1;try{var d={};d[o]=function(){return{next:function(){return{done:u=!0}}}},l(d)}catch{}return u}},function(r,n,i){var o=i(13),a=i(133);r.exports=function(s,c,l){var f,u;return a&&typeof(f=c.constructor)=="function"&&f!==l&&o(u=f.prototype)&&u!==l.prototype&&a(s,u),s}},function(r,n,i){var o=i(25);r.exports=function(a,s,c){for(var l in s)o(a,l,s[l],c);return a}},function(r,n,i){var o=i(46),a=i(15),s=i(5),c=i(16),l=s("species");r.exports=function(f){var u=o(f),d=a.f;c&&u&&!u[l]&&d(u,l,{configurable:!0,get:function(){return this}})}},function(r,n,i){var o=this&&this.__generator||function(c,l){var f,u,d,h,g={label:0,sent:function(){if(1&d[0])throw d[1];return d[1]},trys:[],ops:[]};return h={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function p(v){return function(x){return function(m){if(f)throw new TypeError("Generator is already executing.");for(;g;)try{if(f=1,u&&(d=2&m[0]?u.return:m[0]?u.throw||((d=u.return)&&d.call(u),0):u.next)&&!(d=d.call(u,m[1])).done)return d;switch(u=0,d&&(m=[2&m[0],d.value]),m[0]){case 0:case 1:d=m;break;case 4:return g.label++,{value:m[1],done:!1};case 5:g.label++,u=m[1],m=[0];continue;case 7:m=g.ops.pop(),g.trys.pop();continue;default:if(d=g.trys,!((d=d.length>0&&d[d.length-1])||m[0]!==6&&m[0]!==2)){g=0;continue}if(m[0]===3&&(!d||m[1]>d[0]&&m[1]=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function c(l){l===void 0&&(l=1e3),this._items=new Set,this._limit=l}return c.prototype.add=function(l){if(this._items.add(l),this._items.size>this._limit){var f=this._items.values().next();f.done||this._items.delete(f.value)}return this},c.prototype.delete=function(l){return this._items.delete(l)},c.prototype.has=function(l){return this._items.has(l)},c.prototype.clear=function(){this._items.clear()},Object.defineProperty(c.prototype,"size",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),c.prototype.forEach=function(l,f){var u=this;this._items.forEach(function(d){return l.call(f,d,d,u)})},c.prototype.keys=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.keys())];case 1:return l.sent(),[2]}})},c.prototype.values=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.values())];case 1:return l.sent(),[2]}})},c.prototype.entries=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.entries())];case 1:return l.sent(),[2]}})},c.prototype[Symbol.iterator]=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items)];case 1:return l.sent(),[2]}})},Object.defineProperty(c.prototype,Symbol.toStringTag,{get:function(){return"FixedSizeSet"},enumerable:!0,configurable:!0}),c}();n.FixedSizeSet=s},function(r,n,i){var o=this&&this.__generator||function(c,l){var f,u,d,h,g={label:0,sent:function(){if(1&d[0])throw d[1];return d[1]},trys:[],ops:[]};return h={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function p(v){return function(x){return function(m){if(f)throw new TypeError("Generator is already executing.");for(;g;)try{if(f=1,u&&(d=2&m[0]?u.return:m[0]?u.throw||((d=u.return)&&d.call(u),0):u.next)&&!(d=d.call(u,m[1])).done)return d;switch(u=0,d&&(m=[2&m[0],d.value]),m[0]){case 0:case 1:d=m;break;case 4:return g.label++,{value:m[1],done:!1};case 5:g.label++,u=m[1],m=[0];continue;case 7:m=g.ops.pop(),g.trys.pop();continue;default:if(d=g.trys,!((d=d.length>0&&d[d.length-1])||m[0]!==6&&m[0]!==2)){g=0;continue}if(m[0]===3&&(!d||m[1]>d[0]&&m[1]=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function c(l){l===void 0&&(l=1e3),this._items=new Map,this._limit=l}return c.prototype.get=function(l){return this._items.get(l)},c.prototype.set=function(l,f){if(this._items.set(l,f),this._items.size>this._limit){var u=this._items.keys().next();u.done||this._items.delete(u.value)}},c.prototype.delete=function(l){return this._items.delete(l)},c.prototype.has=function(l){return this._items.has(l)},c.prototype.clear=function(){this._items.clear()},Object.defineProperty(c.prototype,"size",{get:function(){return this._items.size},enumerable:!0,configurable:!0}),c.prototype.forEach=function(l,f){this._items.forEach(function(u,d){return l.call(f,d,u)})},c.prototype.keys=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.keys())];case 1:return l.sent(),[2]}})},c.prototype.values=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.values())];case 1:return l.sent(),[2]}})},c.prototype.entries=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items.entries())];case 1:return l.sent(),[2]}})},c.prototype[Symbol.iterator]=function(){return o(this,function(l){switch(l.label){case 0:return[5,a(this._items)];case 1:return l.sent(),[2]}})},Object.defineProperty(c.prototype,Symbol.toStringTag,{get:function(){return"ObjectCache"},enumerable:!0,configurable:!0}),c}();n.ObjectCache=s},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){s===void 0&&(s=1e3),this._items=new Map,this._limit=s}return a.prototype.check=function(s,c){if(this._items.get(s)===c)return!0;if(this._items.get(c)===s)return!1;var l=Math.random()<.5;if(l?this._items.set(s,c):this._items.set(c,s),this._items.size>this._limit){var f=this._items.keys().next();f.done||this._items.delete(f.value)}return l},a}();n.CompareCache=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){this._initialized=!1,this._value=void 0,this._initFunc=s}return Object.defineProperty(a.prototype,"value",{get:function(){return this._initialized||(this._value=this._initFunc(),this._initialized=!0),this._value},enumerable:!0,configurable:!0}),a}();n.Lazy=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function a(s){this._pointer=0,this._chars=Array.from(s),this._length=this._chars.length}return Object.defineProperty(a.prototype,"eof",{get:function(){return this._pointer>=this._length},enumerable:!0,configurable:!0}),Object.defineProperty(a.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),a.prototype.codePoint=function(){if(this._codePoint===void 0)if(this.eof)this._codePoint=-1;else{var s=this._chars[this._pointer].codePointAt(0);this._codePoint=s!==void 0?s:-1}return this._codePoint},a.prototype.c=function(){return this._c===void 0&&(this._c=this.eof?"":this._chars[this._pointer]),this._c},a.prototype.remaining=function(){return this._remaining===void 0&&(this._remaining=this.eof?"":this._chars.slice(this._pointer+1).join("")),this._remaining},a.prototype.substring=function(){return this._substring===void 0&&(this._substring=this.eof?"":this._chars.slice(this._pointer).join("")),this._substring},Object.defineProperty(a.prototype,"pointer",{get:function(){return this._pointer},set:function(s){s!==this._pointer&&(this._pointer=s,this._codePoint=void 0,this._c=void 0,this._remaining=void 0,this._substring=void 0)},enumerable:!0,configurable:!0}),a}();n.StringWalker=o},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(218);n.MapWriter=o.MapWriter;var a=i(258);n.XMLWriter=a.XMLWriter;var s=i(67);n.ObjectWriter=s.ObjectWriter;var c=i(260);n.JSONWriter=c.JSONWriter;var l=i(261);n.YAMLWriter=l.YAMLWriter},function(r,n,i){i(19),i(219),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(f,u){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,h){d.__proto__=h}||function(d,h){for(var g in h)h.hasOwnProperty(g)&&(d[g]=h[g])})(f,u)},function(f,u){function d(){this.constructor=f}o(f,u),f.prototype=u===null?Object.create(u):(d.prototype=u.prototype,new d)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=i(67),l=function(f){function u(d,h){var g=f.call(this,d)||this;return g._writerOptions=s.applyDefaults(h,{format:"map",wellFormed:!1,group:!1,verbose:!1}),g}return a(u,f),u.prototype.serialize=function(d){var h=s.applyDefaults(this._writerOptions,{format:"object",wellFormed:!1,verbose:!1}),g=new c.ObjectWriter(this._builderOptions,h).serialize(d);return this._convertObject(g)},u.prototype._convertObject=function(d){if(s.isArray(d)){for(var h=0;h=51||!a(function(){var w=[];return w[v]=!1,w.concat()[0]!==w}),m=h("concat"),y=function(w){if(!c(w))return!1;var C=w[v];return C!==void 0?!!C:s(w)};o({target:"Array",proto:!0,forced:!x||!m},{concat:function(w){var C,S,T,_,E,D=l(this),b=d(D,0),I=0;for(C=-1,T=arguments.length;C9007199254740991)throw TypeError("Maximum allowed index exceeded");for(S=0;S<_;S++,I++)S in E&&u(b,I,E[S])}else{if(I>=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(b,I++,E)}return b.length=I,b}})},function(r,n,i){var o=i(8);function a(s,c){return RegExp(s,c)}n.UNSUPPORTED_Y=o(function(){var s=a("a","y");return s.lastIndex=2,s.exec("abcd")!=null}),n.BROKEN_CARET=o(function(){var s=a("^r","gy");return s.lastIndex=2,s.exec("str")!=null})},function(r,n,i){var o=i(223);r.exports=function(a){if(o(a))throw TypeError("The method doesn't accept regular expressions");return a}},function(r,n,i){var o=i(13),a=i(42),s=i(5)("match");r.exports=function(c){var l;return o(c)&&((l=c[s])!==void 0?!!l:a(c)=="RegExp")}},function(r,n,i){var o=i(5)("match");r.exports=function(a){var s=/./;try{"/./"[a](s)}catch{try{return s[o]=!1,"/./"[a](s)}catch{}}return!1}},function(r,n,i){i(68);var o=i(25),a=i(8),s=i(5),c=i(93),l=i(21),f=s("species"),u=!a(function(){var v=/./;return v.exec=function(){var x=[];return x.groups={a:"7"},x},"".replace(v,"$")!=="7"}),d="a".replace(/./,"$0")==="$0",h=s("replace"),g=!!/./[h]&&/./[h]("a","$0")==="",p=!a(function(){var v=/(?:)/,x=v.exec;v.exec=function(){return x.apply(this,arguments)};var m="ab".split(v);return m.length!==2||m[0]!=="a"||m[1]!=="b"});r.exports=function(v,x,m,y){var w=s(v),C=!a(function(){var b={};return b[w]=function(){return 7},""[v](b)!=7}),S=C&&!a(function(){var b=!1,I=/a/;return v==="split"&&((I={}).constructor={},I.constructor[f]=function(){return I},I.flags="",I[w]=/./[w]),I.exec=function(){return b=!0,null},I[w](""),!b});if(!C||!S||v==="replace"&&(!u||!d||g)||v==="split"&&!p){var T=/./[w],_=m(w,""[v],function(b,I,R,M,L){return I.exec===c?C&&!L?{done:!0,value:T.call(I,R,M)}:{done:!0,value:b.call(R,I,M)}:{done:!1}},{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:g}),E=_[0],D=_[1];o(String.prototype,v,E),o(RegExp.prototype,w,x==2?function(b,I){return D.call(b,this,I)}:function(b){return D.call(b,this)})}y&&l(RegExp.prototype[w],"sham",!0)}},function(r,n,i){var o=i(137).charAt;r.exports=function(a,s,c){return s+(c?o(a,s).length:1)}},function(r,n,i){var o=i(42),a=i(93);r.exports=function(s,c){var l=s.exec;if(typeof l=="function"){var f=l.call(s,c);if(typeof f!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return f}if(o(s)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return a.call(s,c)}},function(r,n,i){(function(o){Object.defineProperty(n,"__esModule",{value:!0});var a=i(96);n.forgivingBase64Encode=function(s){return o.from(s).toString("base64")},n.forgivingBase64Decode=function(s){return s===""?"":((s=s.replace(a.ASCIIWhiteSpace,"")).length%4==0&&(s.endsWith("==")?s=s.substr(0,s.length-2):s.endsWith("=")&&(s=s.substr(0,s.length-1))),s.length%4==1?null:/[0-9A-Za-z+/]/.test(s)?o.from(s,"base64").toString("utf8"):null)}}).call(this,i(145).Buffer)},function(r,n,i){n.byteLength=function(h){var g=u(h),p=g[0],v=g[1];return 3*(p+v)/4-v},n.toByteArray=function(h){var g,p,v=u(h),x=v[0],m=v[1],y=new s(function(S,T,_){return 3*(T+_)/4-_}(0,x,m)),w=0,C=m>0?x-4:x;for(p=0;p>16&255,y[w++]=g>>8&255,y[w++]=255&g;return m===2&&(g=a[h.charCodeAt(p)]<<2|a[h.charCodeAt(p+1)]>>4,y[w++]=255&g),m===1&&(g=a[h.charCodeAt(p)]<<10|a[h.charCodeAt(p+1)]<<4|a[h.charCodeAt(p+2)]>>2,y[w++]=g>>8&255,y[w++]=255&g),y},n.fromByteArray=function(h){for(var g,p=h.length,v=p%3,x=[],m=0,y=p-v;my?y:m+16383));return v===1?(g=h[p-1],x.push(o[g>>2]+o[g<<4&63]+"==")):v===2&&(g=(h[p-2]<<8)+h[p-1],x.push(o[g>>10]+o[g>>4&63]+o[g<<2&63]+"=")),x.join("")};for(var o=[],a=[],s=typeof Uint8Array<"u"?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,f=c.length;l0)throw new Error("Invalid string. Length must be a multiple of 4");var p=h.indexOf("=");return p===-1&&(p=g),[p,p===g?0:4-p%4]}function d(h,g,p){for(var v,x,m=[],y=g;y>18&63]+o[x>>12&63]+o[x>>6&63]+o[63&x]);return m.join("")}a[45]=62,a[95]=63},function(r,n){n.read=function(i,o,a,s,c){var l,f,u=8*c-s-1,d=(1<>1,g=-7,p=a?c-1:0,v=a?-1:1,x=i[o+p];for(p+=v,l=x&(1<<-g)-1,x>>=-g,g+=u;g>0;l=256*l+i[o+p],p+=v,g-=8);for(f=l&(1<<-g)-1,l>>=-g,g+=s;g>0;f=256*f+i[o+p],p+=v,g-=8);if(l===0)l=1-h;else{if(l===d)return f?NaN:1/0*(x?-1:1);f+=Math.pow(2,s),l-=h}return(x?-1:1)*f*Math.pow(2,l-s)},n.write=function(i,o,a,s,c,l){var f,u,d,h=8*l-c-1,g=(1<>1,v=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,x=s?0:l-1,m=s?1:-1,y=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(u=isNaN(o)?1:0,f=g):(f=Math.floor(Math.log(o)/Math.LN2),o*(d=Math.pow(2,-f))<1&&(f--,d*=2),(o+=f+p>=1?v/d:v*Math.pow(2,1-p))*d>=2&&(f++,d/=2),f+p>=g?(u=0,f=g):f+p>=1?(u=(o*d-1)*Math.pow(2,c),f+=p):(u=o*Math.pow(2,p-1)*Math.pow(2,c),f=0));c>=8;i[a+x]=255&u,x+=m,u/=256,c-=8);for(f=f<0;i[a+x]=255&f,x+=m,f/=256,h-=8);i[a+x-m]|=128*y}},function(r,n){var i={}.toString;r.exports=Array.isArray||function(o){return i.call(o)=="[object Array]"}},function(r,n,i){var o=this&&this.__values||function(c){var l=typeof Symbol=="function"&&Symbol.iterator,f=l&&c[l],u=0;if(f)return f.call(c);if(c&&typeof c.length=="number")return{next:function(){return c&&u>=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1);function s(c){var l,f;if(c===null||a.isString(c)||a.isNumber(c))return c;if(a.isArray(c)){var u=new Array;try{for(var d=o(c),h=d.next();!h.done;h=d.next()){var g=h.value;u.push(s(g))}}catch(x){l={error:x}}finally{try{h&&!h.done&&(f=d.return)&&f.call(d)}finally{if(l)throw l.error}}return u}if(a.isObject(c)){u=new Map;for(var p in c)if(c.hasOwnProperty(p)){var v=c[p];u.set(p,s(v))}return u}return c}n.parseJSONFromBytes=function(c){var l=a.utf8Decode(c);return JSON.parse.call(void 0,l)},n.serializeJSONToBytes=function(c){var l=JSON.stringify.call(void 0,c);return a.utf8Encode(l)},n.parseJSONIntoInfraValues=function(c){return s(JSON.parse.call(void 0,c))},n.convertAJSONDerivedJavaScriptValueToAnInfraValue=s},function(r,n,i){var o=this&&this.__generator||function(f,u){var d,h,g,p,v={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return p={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function x(m){return function(y){return function(w){if(d)throw new TypeError("Generator is already executing.");for(;v;)try{if(d=1,h&&(g=2&w[0]?h.return:w[0]?h.throw||((g=h.return)&&g.call(h),0):h.next)&&!(g=g.call(h,w[1])).done)return g;switch(h=0,g&&(w=[2&w[0],g.value]),w[0]){case 0:case 1:g=w;break;case 4:return v.label++,{value:w[1],done:!1};case 5:v.label++,h=w[1],w=[0];continue;case 7:w=v.ops.pop(),v.trys.pop();continue;default:if(g=v.trys,!((g=g.length>0&&g[g.length-1])||w[0]!==6&&w[0]!==2)){v=0;continue}if(w[0]===3&&(!g||w[1]>g[0]&&w[1]0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v},s=this&&this.__spread||function(){for(var f=[],u=0;u=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var l=i(1);n.append=function(f,u){f.push(u)},n.extend=function(f,u){f.push.apply(f,s(u))},n.prepend=function(f,u){f.unshift(u)},n.replace=function(f,u,d){var h,g,p=0;try{for(var v=c(f),x=v.next();!x.done;x=v.next()){var m=x.value;if(l.isFunction(u))u.call(null,m)&&(f[p]=d);else if(m===u)return void(f[p]=d);p++}}catch(y){h={error:y}}finally{try{x&&!x.done&&(g=v.return)&&g.call(v)}finally{if(h)throw h.error}}},n.insert=function(f,u,d){f.splice(d,0,u)},n.remove=function(f,u){for(var d=f.length;d--;){var h=f[d];if(l.isFunction(u))u.call(null,h)&&f.splice(d,1);else if(h===u)return void f.splice(d,1)}},n.empty=function(f){f.length=0},n.contains=function(f,u){var d,h;try{for(var g=c(f),p=g.next();!p.done;p=g.next()){var v=p.value;if(l.isFunction(u)){if(u.call(null,v))return!0}else if(v===u)return!0}}catch(x){d={error:x}}finally{try{p&&!p.done&&(h=g.return)&&h.call(g)}finally{if(d)throw d.error}}return!1},n.size=function(f,u){var d,h;if(u===void 0)return f.length;var g=0;try{for(var p=c(f),v=p.next();!v.done;v=p.next()){var x=v.value;u.call(null,x)&&g++}}catch(m){d={error:m}}finally{try{v&&!v.done&&(h=p.return)&&h.call(p)}finally{if(d)throw d.error}}return g},n.isEmpty=function(f){return f.length===0},n.forEach=function(f,u){var d,h,g,p,v,x;return o(this,function(m){switch(m.label){case 0:return u!==void 0?[3,2]:[5,c(f)];case 1:return m.sent(),[3,9];case 2:m.trys.push([2,7,8,9]),d=c(f),h=d.next(),m.label=3;case 3:return h.done?[3,6]:(g=h.value,u.call(null,g)?[4,g]:[3,5]);case 4:m.sent(),m.label=5;case 5:return h=d.next(),[3,3];case 6:return[3,9];case 7:return p=m.sent(),v={error:p},[3,9];case 8:try{h&&!h.done&&(x=d.return)&&x.call(d)}finally{if(v)throw v.error}return[7];case 9:return[2]}})},n.clone=function(f){return new(Array.bind.apply(Array,s([void 0],f)))},n.sortInAscendingOrder=function(f,u){return f.sort(function(d,h){return u.call(null,d,h)?-1:1})},n.sortInDescendingOrder=function(f,u){return f.sort(function(d,h){return u.call(null,d,h)?1:-1})}},function(r,n,i){var o=this&&this.__generator||function(f,u){var d,h,g,p,v={label:0,sent:function(){if(1&g[0])throw g[1];return g[1]},trys:[],ops:[]};return p={next:x(0),throw:x(1),return:x(2)},typeof Symbol=="function"&&(p[Symbol.iterator]=function(){return this}),p;function x(m){return function(y){return function(w){if(d)throw new TypeError("Generator is already executing.");for(;v;)try{if(d=1,h&&(g=2&w[0]?h.return:w[0]?h.throw||((g=h.return)&&g.call(h),0):h.next)&&!(g=g.call(h,w[1])).done)return g;switch(h=0,g&&(w=[2&w[0],g.value]),w[0]){case 0:case 1:g=w;break;case 4:return v.label++,{value:w[1],done:!1};case 5:v.label++,h=w[1],w=[0];continue;case 7:w=v.ops.pop(),v.trys.pop();continue;default:if(g=v.trys,!((g=g.length>0&&g[g.length-1])||w[0]!==6&&w[0]!==2)){v=0;continue}if(w[0]===3&&(!g||w[1]>g[0]&&w[1]=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__read||function(f,u){var d=typeof Symbol=="function"&&f[Symbol.iterator];if(!d)return f;var h,g,p=d.call(f),v=[];try{for(;(u===void 0||u-- >0)&&!(h=p.next()).done;)v.push(h.value)}catch(x){g={error:x}}finally{try{h&&!h.done&&(d=p.return)&&d.call(p)}finally{if(g)throw g.error}}return v},c=this&&this.__spread||function(){for(var f=[],u=0;u0&&p[p.length-1])||C[0]!==6&&C[0]!==2)){x=0;continue}if(C[0]===3&&(!p||C[1]>p[0]&&C[1]=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")},s=this&&this.__read||function(u,d){var h=typeof Symbol=="function"&&u[Symbol.iterator];if(!h)return u;var g,p,v=h.call(u),x=[];try{for(;(d===void 0||d-- >0)&&!(g=v.next()).done;)x.push(g.value)}catch(m){p={error:m}}finally{try{g&&!g.done&&(h=v.return)&&h.call(v)}finally{if(p)throw p.error}}return x},c=this&&this.__spread||function(){for(var u=[],d=0;d=x.length&&(x=void 0),{value:x&&x[w++],done:!x}}};throw new TypeError(m?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(96),s=i(147),c=i(146),l=i(1);function f(x,m){for(var y=0;;){var w=y=65&&_<=90?String.fromCodePoint(_+32):T}}catch(E){m={error:E}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w}function g(x){return x.replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,"")}function p(x,m,y){if(!l.isArray(m))return p(x,Array.from(m),y);for(var w="";y.position=97&&_<=122?String.fromCodePoint(_-32):T}}catch(E){m={error:E}}finally{try{S&&!S.done&&(y=C.return)&&y.call(C)}finally{if(m)throw m.error}}return w},n.asciiCaseInsensitiveMatch=function(x,m){return h(x)===h(m)},n.asciiEncode=function(x){return console.assert(d(x),"asciiEncode requires an ASCII string."),u(x)},n.asciiDecode=function(x){var m,y;try{for(var w=o(x),C=w.next();!C.done;C=w.next()){var S=C.value;console.assert(c.isASCIIByte(S),"asciiDecode requires an ASCII byte sequence.")}}catch(T){m={error:T}}finally{try{C&&!C.done&&(y=w.return)&&y.call(w)}finally{if(m)throw m.error}}return s.isomorphicDecode(x)},n.stripNewlines=function(x){return x.replace(/[\n\r]/g,"")},n.normalizeNewlines=function(x){return x.replace(/\r\n/g,` `).replace(/\r/g,` `)},n.stripLeadingAndTrailingASCIIWhitespace=g,n.stripAndCollapseASCIIWhitespace=function(x){return g(x.replace(/[\t\n\f\r ]{2,}/g," "))},n.collectASequenceOfCodePoints=p,n.skipASCIIWhitespace=v,n.strictlySplit=function x(m,y){if(!l.isArray(m))return x(Array.from(m),y);var w={position:0},C=[],S=p(function(T){return y!==T},m,w);for(C.push(S);w.position=s.length&&(s=void 0),{value:s&&s[f++],done:!s}}};throw new TypeError(c?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(97);n.abort_add=function(s,c){c._abortedFlag||c._abortAlgorithms.add(s)},n.abort_remove=function(s,c){c._abortAlgorithms.delete(s)},n.abort_signalAbort=function(s){var c,l;if(!s._abortedFlag){s._abortedFlag=!0;try{for(var f=o(s._abortAlgorithms),u=f.next();!u.done;u=f.next())u.value.call(s)}catch(d){c={error:d}}finally{try{u&&!u.done&&(l=f.return)&&l.call(f)}finally{if(c)throw c.error}}s._abortAlgorithms.clear(),a.event_fireAnEvent("abort",s)}}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(150),a=function(){function s(){}return s.asNode=function(c){if(o.Guard.isNode(c))return c;throw new Error("Invalid object. Node expected.")},s}();n.Cast=a},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function s(){}return Object.defineProperty(s.prototype,"size",{get:function(){return 0},enumerable:!0,configurable:!0}),s.prototype.add=function(c){throw new Error("Cannot add to an empty set.")},s.prototype.clear=function(){},s.prototype.delete=function(c){return!1},s.prototype.forEach=function(c,l){},s.prototype.has=function(c){return!1},s.prototype[Symbol.iterator]=function(){return new a},s.prototype.entries=function(){return new a},s.prototype.keys=function(){return new a},s.prototype.values=function(){return new a},Object.defineProperty(s.prototype,Symbol.toStringTag,{get:function(){return"EmptySet"},enumerable:!0,configurable:!0}),s}();n.EmptySet=o;var a=function(){function s(){}return s.prototype[Symbol.iterator]=function(){return this},s.prototype.next=function(){return{done:!0,value:null}},s}()},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),function(o){o[o.SchemeStart=0]="SchemeStart",o[o.Scheme=1]="Scheme",o[o.NoScheme=2]="NoScheme",o[o.SpecialRelativeOrAuthority=3]="SpecialRelativeOrAuthority",o[o.PathOrAuthority=4]="PathOrAuthority",o[o.Relative=5]="Relative",o[o.RelativeSlash=6]="RelativeSlash",o[o.SpecialAuthoritySlashes=7]="SpecialAuthoritySlashes",o[o.SpecialAuthorityIgnoreSlashes=8]="SpecialAuthorityIgnoreSlashes",o[o.Authority=9]="Authority",o[o.Host=10]="Host",o[o.Hostname=11]="Hostname",o[o.Port=12]="Port",o[o.File=13]="File",o[o.FileSlash=14]="FileSlash",o[o.FileHost=15]="FileHost",o[o.PathStart=16]="PathStart",o[o.Path=17]="Path",o[o.CannotBeABaseURLPath=18]="CannotBeABaseURLPath",o[o.Query=19]="Query",o[o.Fragment=20]="Fragment"}(n.ParserState||(n.ParserState={})),n.OpaqueOrigin=["","",null,null]},function(r,n,i){var o=i(245),a=i(247);function s(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}n.parse=C,n.resolve=function(S,T){return C(S,!1,!0).resolve(T)},n.resolveObject=function(S,T){return S?C(S,!1,!0).resolveObject(T):T},n.format=function(S){return a.isString(S)&&(S=C(S)),S instanceof s?S.format():s.prototype.format.call(S)},n.Url=s;var c=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",` -`," "]),d=["'"].concat(u),h=["%","/","?",";","#"].concat(d),g=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,v=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=i(248);function C(S,T,_){if(S&&a.isObject(S)&&S instanceof s)return S;var E=new s;return E.parse(S,T,_),E}s.prototype.parse=function(S,T,_){if(!a.isString(S))throw new TypeError("Parameter 'url' must be a string, not "+typeof S);var E=S.indexOf("?"),D=E!==-1&&E127?re+="x":re+=Q[de];if(!re.match(p)){var se=Y.slice(0,V),k=Y.slice(V+1),O=Q.match(v);O&&(se.push(O[1]),k.unshift(O[2])),k.length&&(I="/"+k.join(".")+I),this.hostname=se.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=o.toASCII(this.hostname));var B=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+B,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),I[0]!=="/"&&(I="/"+I))}if(!x[L])for(V=0,te=d.length;V0)&&_.host.split("@"))&&(_.auth=O.shift(),_.host=_.hostname=O.shift())),_.search=S.search,_.query=S.query,a.isNull(_.pathname)&&a.isNull(_.search)||(_.path=(_.pathname?_.pathname:"")+(_.search?_.search:"")),_.href=_.format(),_;if(!Q.length)return _.pathname=null,_.search?_.path="/"+_.search:_.path=null,_.href=_.format(),_;for(var de=Q.slice(-1)[0],fe=(_.host||S.host||Q.length>1)&&(de==="."||de==="..")||de==="",se=0,k=Q.length;k>=0;k--)(de=Q[k])==="."?Q.splice(k,1):de===".."?(Q.splice(k,1),se++):se&&(Q.splice(k,1),se--);if(!Y&&!te)for(;se--;se)Q.unshift("..");!Y||Q[0]===""||Q[0]&&Q[0].charAt(0)==="/"||Q.unshift(""),fe&&Q.join("/").substr(-1)!=="/"&&Q.push("");var O,B=Q[0]===""||Q[0]&&Q[0].charAt(0)==="/";return re&&(_.hostname=_.host=B?"":Q.length?Q.shift():"",(O=!!(_.host&&_.host.indexOf("@")>0)&&_.host.split("@"))&&(_.auth=O.shift(),_.host=_.hostname=O.shift())),(Y=Y||_.host&&Q.length)&&!B&&Q.unshift(""),Q.length?_.pathname=Q.join("/"):(_.pathname=null,_.path=null),a.isNull(_.pathname)&&a.isNull(_.search)||(_.path=(_.pathname?_.pathname:"")+(_.search?_.search:"")),_.auth=S.auth||_.auth,_.slashes=_.slashes||S.slashes,_.href=_.format(),_},s.prototype.parseHost=function(){var S=this.host,T=l.exec(S);T&&((T=T[0])!==":"&&(this.port=T.substr(1)),S=S.substr(0,S.length-T.length)),S&&(this.hostname=S)}},function(r,n,i){(function(o,a){var s;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(c){n&&n.nodeType,o&&o.nodeType;var l=typeof a=="object"&&a;l.global!==l&&l.window!==l&&l.self;var f,u=2147483647,d=/^xn--/,h=/[^\x20-\x7E]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=Math.floor,x=String.fromCharCode;function m(b){throw new RangeError(p[b])}function y(b,I){for(var R=b.length,M=[];R--;)M[R]=I(b[R]);return M}function w(b,I){var R=b.split("@"),M="";return R.length>1&&(M=R[0]+"@",b=R[1]),M+y((b=b.replace(g,".")).split("."),I).join(".")}function C(b){for(var I,R,M=[],L=0,A=b.length;L=55296&&I<=56319&&L65535&&(R+=x((I-=65536)>>>10&1023|55296),I=56320|1023&I),R+=x(I)}).join("")}function T(b,I){return b+22+75*(b<26)-((I!=0)<<5)}function _(b,I,R){var M=0;for(b=R?v(b/700):b>>1,b+=v(b/I);b>455;M+=36)b=v(b/35);return v(M+36*b/(b+38))}function E(b){var I,R,M,L,A,G,P,N,V,$,j,Y=[],te=b.length,Q=0,re=128,de=72;for((R=b.lastIndexOf("-"))<0&&(R=0),M=0;M=128&&m("not-basic"),Y.push(b.charCodeAt(M));for(L=R>0?R+1:0;L=te&&m("invalid-input"),((N=(j=b.charCodeAt(L++))-48<10?j-22:j-65<26?j-65:j-97<26?j-97:36)>=36||N>v((u-Q)/G))&&m("overflow"),Q+=N*G,!(N<(V=P<=de?1:P>=de+26?26:P-de));P+=36)G>v(u/($=36-V))&&m("overflow"),G*=$;de=_(Q-A,I=Y.length+1,A==0),v(Q/I)>u-re&&m("overflow"),re+=v(Q/I),Q%=I,Y.splice(Q++,0,re)}return S(Y)}function D(b){var I,R,M,L,A,G,P,N,V,$,j,Y,te,Q,re,de=[];for(Y=(b=C(b)).length,I=128,R=0,A=72,G=0;G=I&&jv((u-R)/(te=M+1))&&m("overflow"),R+=(P-I)*te,I=P,G=0;Gu&&m("overflow"),j==I){for(N=R,V=36;!(N<($=V<=A?1:V>=A+26?26:V-A));V+=36)re=N-$,Q=36-$,de.push(x(T($+re%Q,0))),N=v(re/Q);de.push(x(T(N,0))),A=_(R,te,M==L),R=0,++M}++R,++I}return de.join("")}f={version:"1.4.1",ucs2:{decode:C,encode:S},decode:E,encode:D,toASCII:function(b){return w(b,function(I){return h.test(I)?"xn--"+D(I):I})},toUnicode:function(b){return w(b,function(I){return d.test(I)?E(I.slice(4).toLowerCase()):I})}},(s=(function(){return f}).call(n,i,n,o))===void 0||(o.exports=s)})()}).call(this,i(246)(r),i(78))},function(r,n){r.exports=function(i){return i.webpackPolyfill||(i.deprecate=function(){},i.paths=[],i.children||(i.children=[]),Object.defineProperty(i,"loaded",{enumerable:!0,get:function(){return i.l}}),Object.defineProperty(i,"id",{enumerable:!0,get:function(){return i.i}}),i.webpackPolyfill=1),i}},function(r,n,i){r.exports={isString:function(o){return typeof o=="string"},isObject:function(o){return typeof o=="object"&&o!==null},isNull:function(o){return o===null},isNullOrUndefined:function(o){return o==null}}},function(r,n,i){n.decode=n.parse=i(249),n.encode=n.stringify=i(250)},function(r,n,i){function o(s,c){return Object.prototype.hasOwnProperty.call(s,c)}r.exports=function(s,c,l,f){c=c||"&",l=l||"=";var u={};if(typeof s!="string"||s.length===0)return u;var d=/\+/g;s=s.split(c);var h=1e3;f&&typeof f.maxKeys=="number"&&(h=f.maxKeys);var g=s.length;h>0&&g>h&&(g=h);for(var p=0;p=0?(v=w.substr(0,C),x=w.substr(C+1)):(v=w,x=""),m=decodeURIComponent(v),y=decodeURIComponent(x),o(u,m)?a(u[m])?u[m].push(y):u[m]=[u[m],y]:u[m]=y}return u};var a=Array.isArray||function(s){return Object.prototype.toString.call(s)==="[object Array]"}},function(r,n,i){var o=function(l){switch(typeof l){case"string":return l;case"boolean":return l?"true":"false";case"number":return isFinite(l)?l:"";default:return""}};r.exports=function(l,f,u,d){return f=f||"&",u=u||"=",l===null&&(l=void 0),typeof l=="object"?s(c(l),function(h){var g=encodeURIComponent(o(h))+u;return a(l[h])?s(l[h],function(p){return g+encodeURIComponent(o(p))}).join(f):g+encodeURIComponent(o(l[h]))}).join(f):d?encodeURIComponent(o(d))+u+encodeURIComponent(o(l)):""};var a=Array.isArray||function(l){return Object.prototype.toString.call(l)==="[object Array]"};function s(l,f){if(l.map)return l.map(f);for(var u=[],d=0;d=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1);function s(c){return a.isBoolean(c)?c:c.capture||!1}n.eventTarget_flatten=s,n.eventTarget_flattenMore=function(c){var l=s(c),f=!1,u=!1;return a.isBoolean(c)||(f=c.once||!1,u=c.passive||!1),[l,u,f]},n.eventTarget_addEventListener=function(c,l){if(l.callback!==null){for(var f=0;f=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1),s=i(29);n.parentNode_convertNodesIntoANode=function(c,l){for(var f,u,d=null,h=0;h=T.length&&(T=void 0),{value:T&&T[D++],done:!T}}};throw new TypeError(_?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(T,_){var E=typeof Symbol=="function"&&T[Symbol.iterator];if(!E)return T;var D,b,I=E.call(T),R=[];try{for(;(_===void 0||_-- >0)&&!(D=I.next()).done;)R.push(D.value)}catch(M){b={error:M}}finally{try{D&&!D.done&&(E=I.return)&&E.call(I)}finally{if(b)throw b.error}}return R},s=this&&this.__spread||function(){for(var T=[],_=0;_0;Q--){var re;if(C(re=te[Q],T)){Y=re;break}}var de,fe,se=[];try{for(var k=o(N._children),O=k.next();!O.done;O=k.next())if(w(ie=O.value,T)){if(f.Guard.isDocumentTypeNode(ie))throw new l.HierarchyRequestError;se.push(ie)}}catch(he){D={error:he}}finally{try{O&&!O.done&&(b=k.return)&&b.call(k)}finally{if(D)throw D.error}}if(d.tree_isAncestorOf(G,L,!0))de=L,fe=A;else{for(var B=L;B._parent!==null&&!d.tree_isAncestorOf(G,B._parent);)B=B._parent;if(B._parent===null)throw new Error("Parent node is null.");de=B._parent,fe=1+d.tree_index(B)}if(f.Guard.isCharacterDataNode(V))(U=p.node_clone(L))._data=g.characterData_substringData(L,A,d.tree_nodeLength(L)-A),v.mutation_append(U,M),g.characterData_replaceData(L,A,d.tree_nodeLength(L)-A,"");else if(V!==null){var U=p.node_clone(V);v.mutation_append(U,M);var z=S(u.create_range([L,A],[V,d.tree_nodeLength(V)]));v.mutation_append(z,U)}try{for(var H=o(se),K=H.next();!K.done;K=H.next()){var ie=K.value;v.mutation_append(ie,M)}}catch(he){I={error:he}}finally{try{K&&!K.done&&(R=H.return)&&R.call(H)}finally{if(I)throw I.error}}return f.Guard.isCharacterDataNode(Y)?((U=p.node_clone(G))._data=g.characterData_substringData(G,0,P),v.mutation_append(U,M),g.characterData_replaceData(G,0,P,"")):Y!==null&&(U=p.node_clone(Y),v.mutation_append(U,M),z=S(u.create_range([Y,0],[G,P])),v.mutation_append(z,U)),T._start=[de,fe],T._end=[de,fe],M}n.range_collapsed=m,n.range_root=y,n.range_isContained=w,n.range_isPartiallyContained=C,n.range_setTheStart=function(T,_,E){if(f.Guard.isDocumentTypeNode(_))throw new l.InvalidNodeTypeError;if(E>d.tree_nodeLength(_))throw new l.IndexSizeError;var D=[_,E];y(T)===d.tree_rootNode(_)&&h.boundaryPoint_position(D,T._end)!==c.BoundaryPosition.After||(T._end=D),T._start=D},n.range_setTheEnd=function(T,_,E){if(f.Guard.isDocumentTypeNode(_))throw new l.InvalidNodeTypeError;if(E>d.tree_nodeLength(_))throw new l.IndexSizeError;var D=[_,E];y(T)===d.tree_rootNode(_)&&h.boundaryPoint_position(D,T._start)!==c.BoundaryPosition.Before||(T._start=D),T._end=D},n.range_select=function(T,_){var E=T._parent;if(E===null)throw new l.InvalidNodeTypeError;var D=d.tree_index(T);_._start=[E,D],_._end=[E,D+1]},n.range_extract=S,n.range_cloneTheContents=function T(_){var E,D,b,I,R,M,L=u.create_documentFragment(_._startNode._nodeDocument);if(m(_))return L;var A=_._startNode,G=_._startOffset,P=_._endNode,N=_._endOffset;A===P&&f.Guard.isCharacterDataNode(A)&&((O=p.node_clone(A))._data=g.characterData_substringData(A,G,N-G),v.mutation_append(O,L));for(var V=A;!d.tree_isAncestorOf(P,V,!0);){if(V._parent===null)throw new Error("Parent node is null.");V=V._parent}var $=null;if(!d.tree_isAncestorOf(P,A,!0))try{for(var j=o(V._children),Y=j.next();!Y.done;Y=j.next())if(C(de=Y.value,_)){$=de;break}}catch(K){E={error:K}}finally{try{Y&&!Y.done&&(D=j.return)&&D.call(j)}finally{if(E)throw E.error}}var te=null;if(!d.tree_isAncestorOf(A,P,!0))for(var Q=s(V._children),re=Q.length-1;re>0;re--){var de;if(C(de=Q[re],_)){te=de;break}}var fe=[];try{for(var se=o(V._children),k=se.next();!k.done;k=se.next())if(w(H=k.value,_)){if(f.Guard.isDocumentTypeNode(H))throw new l.HierarchyRequestError;fe.push(H)}}catch(K){b={error:K}}finally{try{k&&!k.done&&(I=se.return)&&I.call(se)}finally{if(b)throw b.error}}if(f.Guard.isCharacterDataNode($))(O=p.node_clone(A))._data=g.characterData_substringData(A,G,d.tree_nodeLength(A)-G),v.mutation_append(O,L);else if($!==null){var O=p.node_clone($);v.mutation_append(O,L);var B=T(u.create_range([A,G],[$,d.tree_nodeLength($)]));v.mutation_append(B,O)}try{for(var U=o(fe),z=U.next();!z.done;z=U.next()){var H=z.value,O=p.node_clone(H);v.mutation_append(O,L)}}catch(K){R={error:K}}finally{try{z&&!z.done&&(M=U.return)&&M.call(U)}finally{if(R)throw R.error}}return f.Guard.isCharacterDataNode(te)?((O=p.node_clone(P))._data=g.characterData_substringData(P,0,N),v.mutation_append(O,L)):te!==null&&(O=p.node_clone(te),L.append(O),B=S(u.create_range([te,0],[P,N])),v.mutation_append(B,O)),L},n.range_insert=function(T,_){var E,D;if(f.Guard.isProcessingInstructionNode(_._startNode)||f.Guard.isCommentNode(_._startNode)||f.Guard.isTextNode(_._startNode)&&_._startNode._parent===null||_._startNode===T)throw new l.HierarchyRequestError;var b,I=null;if(f.Guard.isTextNode(_._startNode))I=_._startNode;else{var R=0;try{for(var M=o(_._startNode._children),L=M.next();!L.done;L=M.next()){var A=L.value;if(R===_._startOffset){I=A;break}R++}}catch(P){E={error:P}}finally{try{L&&!L.done&&(D=M.return)&&D.call(M)}finally{if(E)throw E.error}}}if(I===null)b=_._startNode;else{if(I._parent===null)throw new Error("Parent node is null.");b=I._parent}v.mutation_ensurePreInsertionValidity(T,b,I),f.Guard.isTextNode(_._startNode)&&(I=x.text_split(_._startNode,_._startOffset)),T===I&&(I=T._nextSibling),T._parent!==null&&v.mutation_remove(T,T._parent);var G=I===null?d.tree_nodeLength(b):d.tree_index(I);f.Guard.isDocumentFragmentNode(T)?G+=d.tree_nodeLength(T):G++,v.mutation_preInsert(T,b,I),m(_)&&(_._end=[b,G])},n.range_getContainedNodes=function(T){var _;return(_={})[Symbol.iterator]=function(){var E=T.commonAncestorContainer,D=d.tree_getFirstDescendantNode(E);return{next:function(){for(;D&&!w(D,T);)D=d.tree_getNextDescendantNode(E,D);if(D===null)return{done:!0,value:null};var b={done:!1,value:D};return D=d.tree_getNextDescendantNode(E,D),b}}},_},n.range_getPartiallyContainedNodes=function(T){var _;return(_={})[Symbol.iterator]=function(){var E=T.commonAncestorContainer,D=d.tree_getFirstDescendantNode(E);return{next:function(){for(;D&&!C(D,T);)D=d.tree_getNextDescendantNode(E,D);if(D===null)return{done:!0,value:null};var b={done:!1,value:D};return D=d.tree_getNextDescendantNode(E,D),b}}},_}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(9);n.selectors_scopeMatchASelectorsString=function(a,s){throw new o.NotSupportedError}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(105);n.treeWalker_traverseChildren=function(s,c){for(var l=c?s._current._firstChild:s._current._lastChild;l!==null;){var f=a.traversal_filter(s,l);if(f===o.FilterResult.Accept)return s._current=l,l;if(f===o.FilterResult.Skip){var u=c?l._firstChild:l._lastChild;if(u!==null){l=u;continue}}for(;l!==null;){var d=c?l._nextSibling:l._previousSibling;if(d!==null){l=d;break}var h=l._parent;if(h===null||h===s._root||h===s._current)return null;l=h}}return null},n.treeWalker_traverseSiblings=function(s,c){var l=s._current;if(l===s._root)return null;for(;;){for(var f=c?l._nextSibling:l._previousSibling;f!==null;){l=f;var u=a.traversal_filter(s,l);if(u===o.FilterResult.Accept)return s._current=l,l;f=c?l._firstChild:l._lastChild,u!==o.FilterResult.Reject&&f!==null||(f=c?l._nextSibling:l._previousSibling)}if((l=l._parent)===null||l===s._root||a.traversal_filter(s,l)===o.FilterResult.Accept)return null}}},function(r,n,i){i(89),i(74);var o,a=this&&this.__extends||(o=function(d,h){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,p){g.__proto__=p}||function(g,p){for(var v in p)p.hasOwnProperty(v)&&(g[v]=p[v])})(d,h)},function(d,h){function g(){this.constructor=d}o(d,h),d.prototype=h===null?Object.create(h):(g.prototype=h.prototype,new g)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=i(2),l=i(50),f=i(3),u=function(d){function h(g,p){var v=d.call(this,g)||this;return v._indentation={},v._lengthToLastNewline=0,v._writerOptions=s.applyDefaults(p,{wellFormed:!1,headless:!1,prettyPrint:!1,indent:" ",newline:` +`," "]),d=["'"].concat(u),h=["%","/","?",";","#"].concat(d),g=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,v=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},w=i(248);function C(S,T,_){if(S&&a.isObject(S)&&S instanceof s)return S;var E=new s;return E.parse(S,T,_),E}s.prototype.parse=function(S,T,_){if(!a.isString(S))throw new TypeError("Parameter 'url' must be a string, not "+typeof S);var E=S.indexOf("?"),D=E!==-1&&E127?ee+="x":ee+=Q[de];if(!ee.match(p)){var le=Y.slice(0,V),k=Y.slice(V+1),O=Q.match(v);O&&(le.push(O[1]),k.unshift(O[2])),k.length&&(I="/"+k.join(".")+I),this.hostname=le.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),H||(this.hostname=o.toASCII(this.hostname));var B=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+B,this.href+=this.host,H&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),I[0]!=="/"&&(I="/"+I))}if(!x[L])for(V=0,ne=d.length;V0)&&_.host.split("@"))&&(_.auth=O.shift(),_.host=_.hostname=O.shift())),_.search=S.search,_.query=S.query,a.isNull(_.pathname)&&a.isNull(_.search)||(_.path=(_.pathname?_.pathname:"")+(_.search?_.search:"")),_.href=_.format(),_;if(!Q.length)return _.pathname=null,_.search?_.path="/"+_.search:_.path=null,_.href=_.format(),_;for(var de=Q.slice(-1)[0],fe=(_.host||S.host||Q.length>1)&&(de==="."||de==="..")||de==="",le=0,k=Q.length;k>=0;k--)(de=Q[k])==="."?Q.splice(k,1):de===".."?(Q.splice(k,1),le++):le&&(Q.splice(k,1),le--);if(!Y&&!ne)for(;le--;le)Q.unshift("..");!Y||Q[0]===""||Q[0]&&Q[0].charAt(0)==="/"||Q.unshift(""),fe&&Q.join("/").substr(-1)!=="/"&&Q.push("");var O,B=Q[0]===""||Q[0]&&Q[0].charAt(0)==="/";return ee&&(_.hostname=_.host=B?"":Q.length?Q.shift():"",(O=!!(_.host&&_.host.indexOf("@")>0)&&_.host.split("@"))&&(_.auth=O.shift(),_.host=_.hostname=O.shift())),(Y=Y||_.host&&Q.length)&&!B&&Q.unshift(""),Q.length?_.pathname=Q.join("/"):(_.pathname=null,_.path=null),a.isNull(_.pathname)&&a.isNull(_.search)||(_.path=(_.pathname?_.pathname:"")+(_.search?_.search:"")),_.auth=S.auth||_.auth,_.slashes=_.slashes||S.slashes,_.href=_.format(),_},s.prototype.parseHost=function(){var S=this.host,T=l.exec(S);T&&((T=T[0])!==":"&&(this.port=T.substr(1)),S=S.substr(0,S.length-T.length)),S&&(this.hostname=S)}},function(r,n,i){(function(o,a){var s;/*! https://mths.be/punycode v1.4.1 by @mathias */(function(c){n&&n.nodeType,o&&o.nodeType;var l=typeof a=="object"&&a;l.global!==l&&l.window!==l&&l.self;var f,u=2147483647,d=/^xn--/,h=/[^\x20-\x7E]/,g=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=Math.floor,x=String.fromCharCode;function m(b){throw new RangeError(p[b])}function y(b,I){for(var R=b.length,M=[];R--;)M[R]=I(b[R]);return M}function w(b,I){var R=b.split("@"),M="";return R.length>1&&(M=R[0]+"@",b=R[1]),M+y((b=b.replace(g,".")).split("."),I).join(".")}function C(b){for(var I,R,M=[],L=0,A=b.length;L=55296&&I<=56319&&L65535&&(R+=x((I-=65536)>>>10&1023|55296),I=56320|1023&I),R+=x(I)}).join("")}function T(b,I){return b+22+75*(b<26)-((I!=0)<<5)}function _(b,I,R){var M=0;for(b=R?v(b/700):b>>1,b+=v(b/I);b>455;M+=36)b=v(b/35);return v(M+36*b/(b+38))}function E(b){var I,R,M,L,A,G,P,N,V,$,H,Y=[],ne=b.length,Q=0,ee=128,de=72;for((R=b.lastIndexOf("-"))<0&&(R=0),M=0;M=128&&m("not-basic"),Y.push(b.charCodeAt(M));for(L=R>0?R+1:0;L=ne&&m("invalid-input"),((N=(H=b.charCodeAt(L++))-48<10?H-22:H-65<26?H-65:H-97<26?H-97:36)>=36||N>v((u-Q)/G))&&m("overflow"),Q+=N*G,!(N<(V=P<=de?1:P>=de+26?26:P-de));P+=36)G>v(u/($=36-V))&&m("overflow"),G*=$;de=_(Q-A,I=Y.length+1,A==0),v(Q/I)>u-ee&&m("overflow"),ee+=v(Q/I),Q%=I,Y.splice(Q++,0,ee)}return S(Y)}function D(b){var I,R,M,L,A,G,P,N,V,$,H,Y,ne,Q,ee,de=[];for(Y=(b=C(b)).length,I=128,R=0,A=72,G=0;G=I&&Hv((u-R)/(ne=M+1))&&m("overflow"),R+=(P-I)*ne,I=P,G=0;Gu&&m("overflow"),H==I){for(N=R,V=36;!(N<($=V<=A?1:V>=A+26?26:V-A));V+=36)ee=N-$,Q=36-$,de.push(x(T($+ee%Q,0))),N=v(ee/Q);de.push(x(T(N,0))),A=_(R,ne,M==L),R=0,++M}++R,++I}return de.join("")}f={version:"1.4.1",ucs2:{decode:C,encode:S},decode:E,encode:D,toASCII:function(b){return w(b,function(I){return h.test(I)?"xn--"+D(I):I})},toUnicode:function(b){return w(b,function(I){return d.test(I)?E(I.slice(4).toLowerCase()):I})}},(s=(function(){return f}).call(n,i,n,o))===void 0||(o.exports=s)})()}).call(this,i(246)(r),i(78))},function(r,n){r.exports=function(i){return i.webpackPolyfill||(i.deprecate=function(){},i.paths=[],i.children||(i.children=[]),Object.defineProperty(i,"loaded",{enumerable:!0,get:function(){return i.l}}),Object.defineProperty(i,"id",{enumerable:!0,get:function(){return i.i}}),i.webpackPolyfill=1),i}},function(r,n,i){r.exports={isString:function(o){return typeof o=="string"},isObject:function(o){return typeof o=="object"&&o!==null},isNull:function(o){return o===null},isNullOrUndefined:function(o){return o==null}}},function(r,n,i){n.decode=n.parse=i(249),n.encode=n.stringify=i(250)},function(r,n,i){function o(s,c){return Object.prototype.hasOwnProperty.call(s,c)}r.exports=function(s,c,l,f){c=c||"&",l=l||"=";var u={};if(typeof s!="string"||s.length===0)return u;var d=/\+/g;s=s.split(c);var h=1e3;f&&typeof f.maxKeys=="number"&&(h=f.maxKeys);var g=s.length;h>0&&g>h&&(g=h);for(var p=0;p=0?(v=w.substr(0,C),x=w.substr(C+1)):(v=w,x=""),m=decodeURIComponent(v),y=decodeURIComponent(x),o(u,m)?a(u[m])?u[m].push(y):u[m]=[u[m],y]:u[m]=y}return u};var a=Array.isArray||function(s){return Object.prototype.toString.call(s)==="[object Array]"}},function(r,n,i){var o=function(l){switch(typeof l){case"string":return l;case"boolean":return l?"true":"false";case"number":return isFinite(l)?l:"";default:return""}};r.exports=function(l,f,u,d){return f=f||"&",u=u||"=",l===null&&(l=void 0),typeof l=="object"?s(c(l),function(h){var g=encodeURIComponent(o(h))+u;return a(l[h])?s(l[h],function(p){return g+encodeURIComponent(o(p))}).join(f):g+encodeURIComponent(o(l[h]))}).join(f):d?encodeURIComponent(o(d))+u+encodeURIComponent(o(l)):""};var a=Array.isArray||function(l){return Object.prototype.toString.call(l)==="[object Array]"};function s(l,f){if(l.map)return l.map(f);for(var u=[],d=0;d=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1);function s(c){return a.isBoolean(c)?c:c.capture||!1}n.eventTarget_flatten=s,n.eventTarget_flattenMore=function(c){var l=s(c),f=!1,u=!1;return a.isBoolean(c)||(f=c.once||!1,u=c.passive||!1),[l,u,f]},n.eventTarget_addEventListener=function(c,l){if(l.callback!==null){for(var f=0;f=c.length&&(c=void 0),{value:c&&c[u++],done:!c}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(1),s=i(29);n.parentNode_convertNodesIntoANode=function(c,l){for(var f,u,d=null,h=0;h=T.length&&(T=void 0),{value:T&&T[D++],done:!T}}};throw new TypeError(_?"Object is not iterable.":"Symbol.iterator is not defined.")},a=this&&this.__read||function(T,_){var E=typeof Symbol=="function"&&T[Symbol.iterator];if(!E)return T;var D,b,I=E.call(T),R=[];try{for(;(_===void 0||_-- >0)&&!(D=I.next()).done;)R.push(D.value)}catch(M){b={error:M}}finally{try{D&&!D.done&&(E=I.return)&&E.call(I)}finally{if(b)throw b.error}}return R},s=this&&this.__spread||function(){for(var T=[],_=0;_0;Q--){var ee;if(C(ee=ne[Q],T)){Y=ee;break}}var de,fe,le=[];try{for(var k=o(N._children),O=k.next();!O.done;O=k.next())if(w(ae=O.value,T)){if(f.Guard.isDocumentTypeNode(ae))throw new l.HierarchyRequestError;le.push(ae)}}catch(he){D={error:he}}finally{try{O&&!O.done&&(b=k.return)&&b.call(k)}finally{if(D)throw D.error}}if(d.tree_isAncestorOf(G,L,!0))de=L,fe=A;else{for(var B=L;B._parent!==null&&!d.tree_isAncestorOf(G,B._parent);)B=B._parent;if(B._parent===null)throw new Error("Parent node is null.");de=B._parent,fe=1+d.tree_index(B)}if(f.Guard.isCharacterDataNode(V))(U=p.node_clone(L))._data=g.characterData_substringData(L,A,d.tree_nodeLength(L)-A),v.mutation_append(U,M),g.characterData_replaceData(L,A,d.tree_nodeLength(L)-A,"");else if(V!==null){var U=p.node_clone(V);v.mutation_append(U,M);var z=S(u.create_range([L,A],[V,d.tree_nodeLength(V)]));v.mutation_append(z,U)}try{for(var j=o(le),K=j.next();!K.done;K=j.next()){var ae=K.value;v.mutation_append(ae,M)}}catch(he){I={error:he}}finally{try{K&&!K.done&&(R=j.return)&&R.call(j)}finally{if(I)throw I.error}}return f.Guard.isCharacterDataNode(Y)?((U=p.node_clone(G))._data=g.characterData_substringData(G,0,P),v.mutation_append(U,M),g.characterData_replaceData(G,0,P,"")):Y!==null&&(U=p.node_clone(Y),v.mutation_append(U,M),z=S(u.create_range([Y,0],[G,P])),v.mutation_append(z,U)),T._start=[de,fe],T._end=[de,fe],M}n.range_collapsed=m,n.range_root=y,n.range_isContained=w,n.range_isPartiallyContained=C,n.range_setTheStart=function(T,_,E){if(f.Guard.isDocumentTypeNode(_))throw new l.InvalidNodeTypeError;if(E>d.tree_nodeLength(_))throw new l.IndexSizeError;var D=[_,E];y(T)===d.tree_rootNode(_)&&h.boundaryPoint_position(D,T._end)!==c.BoundaryPosition.After||(T._end=D),T._start=D},n.range_setTheEnd=function(T,_,E){if(f.Guard.isDocumentTypeNode(_))throw new l.InvalidNodeTypeError;if(E>d.tree_nodeLength(_))throw new l.IndexSizeError;var D=[_,E];y(T)===d.tree_rootNode(_)&&h.boundaryPoint_position(D,T._start)!==c.BoundaryPosition.Before||(T._start=D),T._end=D},n.range_select=function(T,_){var E=T._parent;if(E===null)throw new l.InvalidNodeTypeError;var D=d.tree_index(T);_._start=[E,D],_._end=[E,D+1]},n.range_extract=S,n.range_cloneTheContents=function T(_){var E,D,b,I,R,M,L=u.create_documentFragment(_._startNode._nodeDocument);if(m(_))return L;var A=_._startNode,G=_._startOffset,P=_._endNode,N=_._endOffset;A===P&&f.Guard.isCharacterDataNode(A)&&((O=p.node_clone(A))._data=g.characterData_substringData(A,G,N-G),v.mutation_append(O,L));for(var V=A;!d.tree_isAncestorOf(P,V,!0);){if(V._parent===null)throw new Error("Parent node is null.");V=V._parent}var $=null;if(!d.tree_isAncestorOf(P,A,!0))try{for(var H=o(V._children),Y=H.next();!Y.done;Y=H.next())if(C(de=Y.value,_)){$=de;break}}catch(K){E={error:K}}finally{try{Y&&!Y.done&&(D=H.return)&&D.call(H)}finally{if(E)throw E.error}}var ne=null;if(!d.tree_isAncestorOf(A,P,!0))for(var Q=s(V._children),ee=Q.length-1;ee>0;ee--){var de;if(C(de=Q[ee],_)){ne=de;break}}var fe=[];try{for(var le=o(V._children),k=le.next();!k.done;k=le.next())if(w(j=k.value,_)){if(f.Guard.isDocumentTypeNode(j))throw new l.HierarchyRequestError;fe.push(j)}}catch(K){b={error:K}}finally{try{k&&!k.done&&(I=le.return)&&I.call(le)}finally{if(b)throw b.error}}if(f.Guard.isCharacterDataNode($))(O=p.node_clone(A))._data=g.characterData_substringData(A,G,d.tree_nodeLength(A)-G),v.mutation_append(O,L);else if($!==null){var O=p.node_clone($);v.mutation_append(O,L);var B=T(u.create_range([A,G],[$,d.tree_nodeLength($)]));v.mutation_append(B,O)}try{for(var U=o(fe),z=U.next();!z.done;z=U.next()){var j=z.value,O=p.node_clone(j);v.mutation_append(O,L)}}catch(K){R={error:K}}finally{try{z&&!z.done&&(M=U.return)&&M.call(U)}finally{if(R)throw R.error}}return f.Guard.isCharacterDataNode(ne)?((O=p.node_clone(P))._data=g.characterData_substringData(P,0,N),v.mutation_append(O,L)):ne!==null&&(O=p.node_clone(ne),L.append(O),B=S(u.create_range([ne,0],[P,N])),v.mutation_append(B,O)),L},n.range_insert=function(T,_){var E,D;if(f.Guard.isProcessingInstructionNode(_._startNode)||f.Guard.isCommentNode(_._startNode)||f.Guard.isTextNode(_._startNode)&&_._startNode._parent===null||_._startNode===T)throw new l.HierarchyRequestError;var b,I=null;if(f.Guard.isTextNode(_._startNode))I=_._startNode;else{var R=0;try{for(var M=o(_._startNode._children),L=M.next();!L.done;L=M.next()){var A=L.value;if(R===_._startOffset){I=A;break}R++}}catch(P){E={error:P}}finally{try{L&&!L.done&&(D=M.return)&&D.call(M)}finally{if(E)throw E.error}}}if(I===null)b=_._startNode;else{if(I._parent===null)throw new Error("Parent node is null.");b=I._parent}v.mutation_ensurePreInsertionValidity(T,b,I),f.Guard.isTextNode(_._startNode)&&(I=x.text_split(_._startNode,_._startOffset)),T===I&&(I=T._nextSibling),T._parent!==null&&v.mutation_remove(T,T._parent);var G=I===null?d.tree_nodeLength(b):d.tree_index(I);f.Guard.isDocumentFragmentNode(T)?G+=d.tree_nodeLength(T):G++,v.mutation_preInsert(T,b,I),m(_)&&(_._end=[b,G])},n.range_getContainedNodes=function(T){var _;return(_={})[Symbol.iterator]=function(){var E=T.commonAncestorContainer,D=d.tree_getFirstDescendantNode(E);return{next:function(){for(;D&&!w(D,T);)D=d.tree_getNextDescendantNode(E,D);if(D===null)return{done:!0,value:null};var b={done:!1,value:D};return D=d.tree_getNextDescendantNode(E,D),b}}},_},n.range_getPartiallyContainedNodes=function(T){var _;return(_={})[Symbol.iterator]=function(){var E=T.commonAncestorContainer,D=d.tree_getFirstDescendantNode(E);return{next:function(){for(;D&&!C(D,T);)D=d.tree_getNextDescendantNode(E,D);if(D===null)return{done:!0,value:null};var b={done:!1,value:D};return D=d.tree_getNextDescendantNode(E,D),b}}},_}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(9);n.selectors_scopeMatchASelectorsString=function(a,s){throw new o.NotSupportedError}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(2),a=i(105);n.treeWalker_traverseChildren=function(s,c){for(var l=c?s._current._firstChild:s._current._lastChild;l!==null;){var f=a.traversal_filter(s,l);if(f===o.FilterResult.Accept)return s._current=l,l;if(f===o.FilterResult.Skip){var u=c?l._firstChild:l._lastChild;if(u!==null){l=u;continue}}for(;l!==null;){var d=c?l._nextSibling:l._previousSibling;if(d!==null){l=d;break}var h=l._parent;if(h===null||h===s._root||h===s._current)return null;l=h}}return null},n.treeWalker_traverseSiblings=function(s,c){var l=s._current;if(l===s._root)return null;for(;;){for(var f=c?l._nextSibling:l._previousSibling;f!==null;){l=f;var u=a.traversal_filter(s,l);if(u===o.FilterResult.Accept)return s._current=l,l;f=c?l._firstChild:l._lastChild,u!==o.FilterResult.Reject&&f!==null||(f=c?l._nextSibling:l._previousSibling)}if((l=l._parent)===null||l===s._root||a.traversal_filter(s,l)===o.FilterResult.Accept)return null}}},function(r,n,i){i(89),i(74);var o,a=this&&this.__extends||(o=function(d,h){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,p){g.__proto__=p}||function(g,p){for(var v in p)p.hasOwnProperty(v)&&(g[v]=p[v])})(d,h)},function(d,h){function g(){this.constructor=d}o(d,h),d.prototype=h===null?Object.create(h):(g.prototype=h.prototype,new g)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(1),c=i(2),l=i(50),f=i(3),u=function(d){function h(g,p){var v=d.call(this,g)||this;return v._indentation={},v._lengthToLastNewline=0,v._writerOptions=s.applyDefaults(p,{wellFormed:!1,headless:!1,prettyPrint:!1,indent:" ",newline:` `,offset:0,width:0,allowEmptyTags:!1,indentTextOnlyNodes:!1,spaceBeforeSlash:!1}),v}return a(h,d),h.prototype.serialize=function(g){return this._refs={suppressPretty:!1,emptyNode:!1,markup:""},g.nodeType!==c.NodeType.Document||this._writerOptions.headless||this.declaration(this._builderOptions.version,this._builderOptions.encoding,this._builderOptions.standalone),this.serializeNode(g,this._writerOptions.wellFormed),this._writerOptions.prettyPrint&&this._refs.markup.slice(-this._writerOptions.newline.length)===this._writerOptions.newline&&(this._refs.markup=this._refs.markup.slice(0,-this._writerOptions.newline.length)),this._refs.markup},h.prototype.declaration=function(g,p,v){this._beginLine(),this._refs.markup+='",this._endLine()},h.prototype.docType=function(g,p,v){this._beginLine(),this._refs.markup+=p&&v?"':p?"':v?"':"",this._endLine()},h.prototype.openTagBegin=function(g){this._beginLine(),this._refs.markup+="<"+g},h.prototype.openTagEnd=function(g,p,v){if(this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._writerOptions.prettyPrint&&!p&&!v){for(var x=!0,m=!0,y=this.currentNode.firstChild,w=0,C=0;y;){if(f.Guard.isExclusiveTextNode(y))C++;else{if(!f.Guard.isCDATASectionNode(y)){x=!1,m=!1;break}w++}y.data!==""&&(m=!1),y=y.nextSibling}this._refs.suppressPretty=!this._writerOptions.indentTextOnlyNodes&&x&&(w<=1&&C===0||w===0),this._refs.emptyNode=m}(v||p||this._refs.emptyNode)&&this._writerOptions.allowEmptyTags?this._refs.markup+=">":this._refs.markup+=v?" />":p||this._refs.emptyNode?this._writerOptions.spaceBeforeSlash?" />":"/>":">",this._endLine()},h.prototype.closeTag=function(g){this._refs.emptyNode||(this._beginLine(),this._refs.markup+=""),this._refs.suppressPretty=!1,this._refs.emptyNode=!1,this._endLine()},h.prototype.attribute=function(g,p){var v=g+'="'+p+'"';this._writerOptions.prettyPrint&&this._writerOptions.width>0&&this._refs.markup.length-this._lengthToLastNewline+1+v.length>this._writerOptions.width?(this._endLine(),this._beginLine(),this._refs.markup+=this._indent(1)+v):this._refs.markup+=" "+v},h.prototype.text=function(g){g!==""&&(this._beginLine(),this._refs.markup+=g,this._endLine())},h.prototype.cdata=function(g){g!==""&&(this._beginLine(),this._refs.markup+="",this._endLine())},h.prototype.comment=function(g){this._beginLine(),this._refs.markup+="",this._endLine()},h.prototype.instruction=function(g,p){this._beginLine(),this._refs.markup+="",this._endLine()},h.prototype._beginLine=function(){this._writerOptions.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._indent(this._writerOptions.offset+this.level))},h.prototype._endLine=function(){this._writerOptions.prettyPrint&&!this._refs.suppressPretty&&(this._refs.markup+=this._writerOptions.newline,this._lengthToLastNewline=this._refs.markup.length)},h.prototype._indent=function(g){if(g<=0)return"";if(this._indentation[g]!==void 0)return this._indentation[g];var p=this._writerOptions.indent.repeat(g);return this._indentation[g]=p,p},h}(l.BaseWriter);n.XMLWriter=u},function(r,n,i){var o=i(47),a=i(35);r.exports="".repeat||function(s){var c=String(a(this)),l="",f=o(s);if(f<0||f==1/0)throw RangeError("Wrong number of repetitions");for(;f>0;(f>>>=1)&&(c+=c))1&f&&(l+=c);return l}},function(r,n,i){i(31),i(32),i(33),i(19),i(178),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)}),s=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(67),l=i(1),f=function(u){function d(h,g){var p=u.call(this,h)||this;return p._writerOptions=l.applyDefaults(g,{wellFormed:!1,prettyPrint:!1,indent:" ",newline:` `,offset:0,group:!1,verbose:!1}),p}return a(d,u),d.prototype.serialize=function(h){var g=l.applyDefaults(this._writerOptions,{format:"object",wellFormed:!1}),p=new c.ObjectWriter(this._builderOptions,g).serialize(h);return this._beginLine(this._writerOptions,0)+this._convertObject(p,this._writerOptions)},d.prototype._convertObject=function(h,g,p){var v,x,m=this;p===void 0&&(p=0);var y="",w=this._isLeafNode(h);if(l.isArray(h)){y+="[";var C=h.length,S=0;try{for(var T=s(h),_=T.next();!_.done;_=T.next()){var E=_.value;y+=this._endLine(g,p+1)+this._beginLine(g,p+1)+this._convertObject(E,g,p+1),S0?new Array(p).join(h.indent):""},d.prototype._endLine=function(h,g){return h.prettyPrint?h.newline:""},d.prototype._key=function(h){return'"'+h+'":'},d.prototype._val=function(h){return JSON.stringify(h)},d.prototype._isLeafNode=function(h){return this._descendantCount(h)<=1},d.prototype._descendantCount=function(h,g){var p=this;return g===void 0&&(g=0),l.isArray(h)?l.forEachArray(h,function(v){return g+=p._descendantCount(v,g)},this):l.isObject(h)?l.forEachObject(h,function(v,x){return g+=p._descendantCount(x,g)},this):g++,g},d}(i(50).BaseWriter);n.JSONWriter=f},function(r,n,i){i(31),i(32),i(33),i(19),i(178),i(89),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)}),s=this&&this.__values||function(u){var d=typeof Symbol=="function"&&Symbol.iterator,h=d&&u[d],g=0;if(h)return h.call(u);if(u&&typeof u.length=="number")return{next:function(){return u&&g>=u.length&&(u=void 0),{value:u&&u[g++],done:!u}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var c=i(67),l=i(1),f=function(u){function d(h,g){var p=u.call(this,h)||this;if(p._writerOptions=l.applyDefaults(g,{wellFormed:!1,indent:" ",newline:` -`,offset:0,group:!1,verbose:!1}),p._writerOptions.indent.length<2)throw new Error("YAML indententation string must be at least two characters long.");if(p._writerOptions.offset<0)throw new Error("YAML offset should be zero or a positive number.");return p}return a(d,u),d.prototype.serialize=function(h){var g=l.applyDefaults(this._writerOptions,{format:"object",wellFormed:!1}),p=new c.ObjectWriter(this._builderOptions,g).serialize(h),v=this._beginLine(this._writerOptions,0)+"---"+this._endLine(this._writerOptions)+this._convertObject(p,this._writerOptions,0);return v.slice(-this._writerOptions.newline.length)===this._writerOptions.newline&&(v=v.slice(0,-this._writerOptions.newline.length)),v},d.prototype._convertObject=function(h,g,p,v){var x,m,y=this;v===void 0&&(v=!1);var w="";if(l.isArray(h))try{for(var C=s(h),S=C.next();!S.done;S=C.next()){var T=S.value;w+=this._beginLine(g,p,!0),l.isObject(T)?l.isEmpty(T)?w+='""'+this._endLine(g):w+=this._convertObject(T,g,p,!0):w+=this._val(T)+this._endLine(g)}}catch(_){x={error:_}}finally{try{S&&!S.done&&(m=C.return)&&m.call(C)}finally{if(x)throw x.error}}else l.forEachObject(h,function(_,E){v?(w+=y._key(_),v=!1):w+=y._beginLine(g,p)+y._key(_),l.isObject(E)?l.isEmpty(E)?w+=' ""'+y._endLine(g):w+=y._endLine(g)+y._convertObject(E,g,p+1):w+=" "+y._val(E)+y._endLine(g)},this);return w},d.prototype._beginLine=function(h,g,p){p===void 0&&(p=!1);var v=h.offset+g+1,x=new Array(v).join(h.indent);return p?x.substr(0,x.length-2)+"-"+x.substr(-1,1):x},d.prototype._endLine=function(h){return h.newline},d.prototype._key=function(h){return'"'+h+'":'},d.prototype._val=function(h){return JSON.stringify(h)},d}(i(50).BaseWriter);n.YAMLWriter=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),i(110).dom.setFeatures(!0);var o=i(110);n.DOMImplementation=o.DOMImplementation;var a=i(271);n.DOMParser=a.DOMParser;var s=i(274);n.XMLSerializer=s.XMLSerializer},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=i(0),s=function(){function c(){}return c.prototype.before=function(){for(var l=[],f=0;f=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(7),l=function(){function f(u){this._nodeList=[],this._recordQueue=[],this._callback=u;var d=a.dom.window;c.set.append(d._mutationObservers,this)}return f.prototype.observe=function(u,d){var h,g;if((d=d||{childList:!1,subtree:!1}).attributeOldValue===void 0&&d.attributeFilter===void 0||d.attributes!==void 0||(d.attributes=!0),d.characterDataOldValue!==void 0&&d.characterData===void 0&&(d.characterData=!0),!d.childList&&!d.attributes&&!d.characterData)throw new TypeError;if(d.attributeOldValue&&!d.attributes)throw new TypeError;if(d.attributeFilter!==void 0&&!d.attributes)throw new TypeError;if(d.characterDataOldValue&&!d.characterData)throw new TypeError;var p=!1,v=d,x=function(C){var S,T;if(C.observer===m){p=!0;try{for(var _=(S=void 0,o(m._nodeList)),E=_.next();!E.done;E=_.next()){var D=E.value;c.list.remove(D._registeredObserverList,function(b){return s.Guard.isTransientRegisteredObserver(b)&&b.source===C})}}catch(b){S={error:b}}finally{try{E&&!E.done&&(T=_.return)&&T.call(_)}finally{if(S)throw S.error}}C.options=v}},m=this;try{for(var y=o(u._registeredObserverList),w=y.next();!w.done;w=y.next())x(w.value)}catch(C){h={error:C}}finally{try{w&&!w.done&&(g=y.return)&&g.call(y)}finally{if(h)throw h.error}}p||(u._registeredObserverList.push({observer:this,options:d}),this._nodeList.push(u))},f.prototype.disconnect=function(){var u,d,h=this;try{for(var g=o(this._nodeList),p=g.next();!p.done;p=g.next()){var v=p.value;c.list.remove(v._registeredObserverList,function(x){return x.observer===h})}}catch(x){u={error:x}}finally{try{p&&!p.done&&(d=g.return)&&d.call(g)}finally{if(u)throw u.error}}this._recordQueue=[]},f.prototype.takeRecords=function(){var u=this._recordQueue;return this._recordQueue=[],u},f}();n.MutationObserverImpl=l},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=function(){function s(){}return Object.defineProperty(s.prototype,"previousElementSibling",{get:function(){for(var c=o.Cast.asNode(this)._previousSibling;c;){if(o.Guard.isElementNode(c))return c;c=c._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"nextElementSibling",{get:function(){for(var c=o.Cast.asNode(this)._nextSibling;c;){if(o.Guard.isElementNode(c))return c;c=c._nextSibling}return null},enumerable:!0,configurable:!0}),s}();n.NonDocumentTypeChildNodeImpl=a},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=i(0),s=function(){function c(){}return c.prototype.getElementById=function(l){for(var f=a.tree_getFirstDescendantNode(o.Cast.asNode(this),!1,!1,function(u){return o.Guard.isElementNode(u)});f!==null;){if(f._uniqueIdentifier===l)return f;f=a.tree_getNextDescendantNode(o.Cast.asNode(this),f,!1,!1,function(u){return o.Guard.isElementNode(u)})}return null},c}();n.NonElementParentNodeImpl=s},function(r,n,i){var o=this&&this.__values||function(l){var f=typeof Symbol=="function"&&Symbol.iterator,u=f&&l[f],d=0;if(u)return u.call(l);if(l&&typeof l.length=="number")return{next:function(){return l&&d>=l.length&&(l=void 0),{value:l&&l[d++],done:!l}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(3),s=i(0),c=function(){function l(){}return Object.defineProperty(l.prototype,"children",{get:function(){return s.create_htmlCollection(a.Cast.asNode(this))},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"firstElementChild",{get:function(){for(var f=a.Cast.asNode(this)._firstChild;f;){if(a.Guard.isElementNode(f))return f;f=f._nextSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"lastElementChild",{get:function(){for(var f=a.Cast.asNode(this)._lastChild;f;){if(a.Guard.isElementNode(f))return f;f=f._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"childElementCount",{get:function(){var f,u,d=0;try{for(var h=o(a.Cast.asNode(this)._children),g=h.next();!g.done;g=h.next()){var p=g.value;a.Guard.isElementNode(p)&&d++}}catch(v){f={error:v}}finally{try{g&&!g.done&&(u=h.return)&&u.call(h)}finally{if(f)throw f.error}}return d},enumerable:!0,configurable:!0}),l.prototype.prepend=function(){for(var f=[],u=0;u0)&&!(v=m.next()).done;)y.push(v.value)}catch(w){x={error:w}}finally{try{v&&!v.done&&(p=m.return)&&p.call(m)}finally{if(x)throw x.error}}return y},a=this&&this.__values||function(h){var g=typeof Symbol=="function"&&Symbol.iterator,p=g&&h[g],v=0;if(p)return p.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&v>=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(180),c=i(111),l=i(7),f=i(0),u=i(69),d=function(){function h(){}return h.prototype.parse=function(g){for(var p,v,x,m,y=new s.XMLStringLexer(g,{skipWhitespaceOnlyText:!0}),w=f.create_document(),C=w,S=y.nextToken();S.type!==c.TokenType.EOF;){switch(S.type){case c.TokenType.Declaration:var T=S;if(T.version!=="1.0")throw new Error("Invalid xml version: "+T.version);break;case c.TokenType.DocType:var _=S;if(!f.xml_isPubidChar(_.pubId))throw new Error("DocType public identifier does not match PubidChar construct.");if(!f.xml_isLegalChar(_.sysId)||_.sysId.indexOf('"')!==-1&&_.sysId.indexOf("'")!==-1)throw new Error("DocType system identifier contains invalid characters.");C.appendChild(w.implementation.createDocumentType(_.name,_.pubId,_.sysId));break;case c.TokenType.CDATA:var E=S;if(!f.xml_isLegalChar(E.data)||E.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters.");C.appendChild(w.createCDATASection(E.data));break;case c.TokenType.Comment:var D=S;if(!f.xml_isLegalChar(D.data)||D.data.indexOf("--")!==-1||D.data.endsWith("-"))throw new Error("Comment data contains invalid characters.");C.appendChild(w.createComment(D.data));break;case c.TokenType.PI:var b=S;if(b.target.indexOf(":")!==-1||/^xml$/i.test(b.target))throw new Error("Processing instruction target contains invalid characters.");if(!f.xml_isLegalChar(b.data)||b.data.indexOf("?>")!==-1)throw new Error("Processing instruction data contains invalid characters.");C.appendChild(w.createProcessingInstruction(b.target,b.data));break;case c.TokenType.Text:var I=S;if(!f.xml_isLegalChar(I.data))throw new Error("Text data contains invalid characters.");C.appendChild(w.createTextNode(this._decodeText(I.data)));break;case c.TokenType.Element:var R=S,M=o(f.namespace_extractQName(R.name),2),L=M[0],A=M[1];if(A.indexOf(":")!==-1||!f.xml_isName(A))throw new Error("Node local name contains invalid characters.");if(L==="xmlns")throw new Error("An element cannot have the 'xmlns' prefix.");var G=C.lookupNamespaceURI(L),P={};try{for(var N=(p=void 0,a(R.attributes)),V=N.next();!V.done;V=N.next()){var $=o(V.value,2),j=$[0],Y=$[1];if(j==="xmlns")G=Y;else{var te=o(f.namespace_extractQName(j),2),Q=te[0],re=te[1];Q==="xmlns"&&(re===L&&(G=Y),P[re]=Y)}}}catch(z){p={error:z}}finally{try{V&&!V.done&&(v=N.return)&&v.call(N)}finally{if(p)throw p.error}}var de=G!==null?w.createElementNS(G,R.name):w.createElement(R.name);C.appendChild(de);var fe=new u.LocalNameSet;try{for(var se=(x=void 0,a(R.attributes)),k=se.next();!k.done;k=se.next()){var O=o(k.value,2),B=(j=O[0],Y=O[1],o(f.namespace_extractQName(j),2)),U=(Q=B[0],re=B[1],null);if(Q==="xmlns"||Q===null&&re==="xmlns"?U=l.namespace.XMLNS:(U=de.lookupNamespaceURI(Q))!==null&&de.isDefaultNamespace(U)?U=null:U===null&&Q!==null&&(U=P[Q]||null),fe.has(U,re))throw new Error("Element contains duplicate attributes.");if(fe.set(U,re),U===l.namespace.XMLNS&&Y===l.namespace.XMLNS)throw new Error("XMLNS namespace is reserved.");if(re.indexOf(":")!==-1||!f.xml_isName(re))throw new Error("Attribute local name contains invalid characters.");if(Q==="xmlns"&&Y==="")throw new Error("Empty XML namespace is not allowed.");U!==null?de.setAttributeNS(U,j,this._decodeAttributeValue(Y)):de.setAttribute(j,this._decodeAttributeValue(Y))}}catch(z){x={error:z}}finally{try{k&&!k.done&&(m=se.return)&&m.call(se)}finally{if(x)throw x.error}}R.selfClosing||(C=de);break;case c.TokenType.ClosingTag:if(S.name!==C.nodeName)throw new Error("Closing tag name does not match opening tag name.");C._parent&&(C=C._parent)}S=y.nextToken()}return w},h.prototype._decodeText=function(g){return g==null?g:g.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")},h.prototype._decodeAttributeValue=function(g){return g==null?g:g.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")},h}();n.XMLParserImpl=d},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(275);n.XMLSerializer=o.XMLSerializerImpl},function(r,n,i){var o=this&&this.__values||function(h){var g=typeof Symbol=="function"&&Symbol.iterator,p=g&&h[g],v=0;if(p)return p.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&v>=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(2),s=i(69),c=i(95),l=i(9),f=i(7),u=i(0),d=function(){function h(){}return h.prototype.serializeToString=function(g){return this._xmlSerialization(g,!1)},h.prototype._xmlSerialization=function(g,p){if(g._nodeDocument===void 0||g._nodeDocument._hasNamespaces){var v=new c.NamespacePrefixMap;v.set("xml",f.namespace.XML);try{return this._serializeNodeNS(g,null,v,{value:1},p)}catch{throw new l.InvalidStateError}}else try{return this._serializeNode(g,p)}catch{throw new l.InvalidStateError}},h.prototype._serializeNodeNS=function(g,p,v,x,m){switch(g.nodeType){case a.NodeType.Element:return this._serializeElementNS(g,p,v,x,m);case a.NodeType.Document:return this._serializeDocumentNS(g,p,v,x,m);case a.NodeType.Comment:return this._serializeComment(g,m);case a.NodeType.Text:return this._serializeText(g,m);case a.NodeType.DocumentFragment:return this._serializeDocumentFragmentNS(g,p,v,x,m);case a.NodeType.DocumentType:return this._serializeDocumentType(g,m);case a.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(g,m);case a.NodeType.CData:return this._serializeCData(g,m);default:throw new Error("Unknown node type: "+g.nodeType)}},h.prototype._serializeNode=function(g,p){switch(g.nodeType){case a.NodeType.Element:return this._serializeElement(g,p);case a.NodeType.Document:return this._serializeDocument(g,p);case a.NodeType.Comment:return this._serializeComment(g,p);case a.NodeType.Text:return this._serializeText(g,p);case a.NodeType.DocumentFragment:return this._serializeDocumentFragment(g,p);case a.NodeType.DocumentType:return this._serializeDocumentType(g,p);case a.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(g,p);case a.NodeType.CData:return this._serializeCData(g,p);default:throw new Error("Unknown node type: "+g.nodeType)}},h.prototype._serializeElementNS=function(g,p,v,x,m){var y,w;if(m&&(g.localName.indexOf(":")!==-1||!u.xml_isName(g.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");var C="<",S="",T=!1,_=!1,E=v.copy(),D={},b=this._recordNamespaceInformation(g,E,D),I=p,R=g.namespaceURI;if(I===R)b!==null&&(_=!0),C+=S=R===f.namespace.XML?"xml:"+g.localName:g.localName;else{var M=g.prefix,L=null;if(M===null&&R===b||(L=E.get(M,R)),M==="xmlns"){if(m)throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");L=M}L!==null?(S=L+":"+g.localName,b!==null&&b!==f.namespace.XML&&(I=b||null),C+=S):M!==null?(M in D&&(M=this._generatePrefix(R,E,x)),E.set(M,R),C+=S+=M+":"+g.localName,C+=" xmlns:"+M+'="'+this._serializeAttributeValue(R,m)+'"',b!==null&&(I=b||null)):b===null||b!==null&&b!==R?(_=!0,I=R,C+=S+=g.localName,C+=' xmlns="'+this._serializeAttributeValue(R,m)+'"'):(I=R,C+=S+=g.localName)}C+=this._serializeAttributesNS(g,E,x,D,_,m);var A=R===f.namespace.HTML;if(A&&g.childNodes.length===0&&h._VoidElementNames.has(g.localName)?(C+=" /",T=!0):A||g.childNodes.length!==0||(C+="/",T=!0),C+=">",T)return C;if(!(A&&g.localName==="template"))try{for(var G=o(g._children||g.childNodes),P=G.next();!P.done;P=G.next()){var N=P.value;C+=this._serializeNodeNS(N,I,E,x,m)}}catch(V){y={error:V}}finally{try{P&&!P.done&&(w=G.return)&&w.call(G)}finally{if(y)throw y.error}}return C+=""},h.prototype._serializeDocumentNS=function(g,p,v,x,m){var y,w;if(m&&g.documentElement===null)throw new Error("Missing document element (well-formed required).");var C="";try{for(var S=o(g._children||g.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;C+=this._serializeNodeNS(_,p,v,x,m)}}catch(E){y={error:E}}finally{try{T&&!T.done&&(w=S.return)&&w.call(S)}finally{if(y)throw y.error}}return C},h.prototype._serializeComment=function(g,p){if(p&&(!u.xml_isLegalChar(g.data)||g.data.indexOf("--")!==-1||g.data.endsWith("-")))throw new Error("Comment data contains invalid characters (well-formed required).");return""},h.prototype._serializeText=function(g,p){if(p&&!u.xml_isLegalChar(g.data))throw new Error("Text data contains invalid characters (well-formed required).");for(var v="",x=0;x"?">":m}return v},h.prototype._serializeDocumentFragmentNS=function(g,p,v,x,m){var y,w,C="";try{for(var S=o(g._children||g.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;C+=this._serializeNodeNS(_,p,v,x,m)}}catch(E){y={error:E}}finally{try{T&&!T.done&&(w=S.return)&&w.call(S)}finally{if(y)throw y.error}}return C},h.prototype._serializeDocumentType=function(g,p){if(p&&!u.xml_isPubidChar(g.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(p&&(!u.xml_isLegalChar(g.systemId)||g.systemId.indexOf('"')!==-1&&g.systemId.indexOf("'")!==-1))throw new Error("DocType system identifier contains invalid characters (well-formed required).");return g.publicId&&g.systemId?"':g.publicId?"':g.systemId?"':""},h.prototype._serializeProcessingInstruction=function(g,p){if(p&&(g.target.indexOf(":")!==-1||/^xml$/i.test(g.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(p&&(!u.xml_isLegalChar(g.data)||g.data.indexOf("?>")!==-1))throw new Error("Processing instruction data contains invalid characters (well-formed required).");return""},h.prototype._serializeCData=function(g,p){if(p&&g.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters (well-formed required).");return""},h.prototype._serializeAttributesNS=function(g,p,v,x,m,y){var w,C,S="",T=y?new s.LocalNameSet:void 0;try{for(var _=o(g.attributes),E=_.next();!E.done;E=_.next()){var D=E.value;if(m||y||D.namespaceURI!==null){if(y&&T&&T.has(D.namespaceURI,D.localName))throw new Error("Element contains duplicate attributes (well-formed required).");y&&T&&T.set(D.namespaceURI,D.localName);var b=D.namespaceURI,I=null;if(b!==null)if(I=p.get(D.prefix,b),b===f.namespace.XMLNS){if(D.value===f.namespace.XML||D.prefix===null&&m||D.prefix!==null&&(!(D.localName in x)||x[D.localName]!==D.value)&&p.has(D.localName,D.value))continue;if(y&&D.value===f.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(y&&D.value==="")throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");D.prefix==="xmlns"&&(I="xmlns")}else I===null&&(S+=" xmlns:"+(I=D.prefix===null||p.hasPrefix(D.prefix)&&!p.has(D.prefix,b)?this._generatePrefix(b,p,v):D.prefix)+'="'+this._serializeAttributeValue(b,y)+'"');if(S+=" ",I!==null&&(S+=I+":"),y&&(D.localName.indexOf(":")!==-1||!u.xml_isName(D.localName)||D.localName==="xmlns"&&b===null))throw new Error("Attribute local name contains invalid characters (well-formed required).");S+=D.localName+'="'+this._serializeAttributeValue(D.value,y)+'"'}else S+=" "+D.localName+'="'+this._serializeAttributeValue(D.value,y)+'"'}}catch(R){w={error:R}}finally{try{E&&!E.done&&(C=_.return)&&C.call(_)}finally{if(w)throw w.error}}return S},h.prototype._recordNamespaceInformation=function(g,p,v){var x,m,y=null;try{for(var w=o(g.attributes),C=w.next();!C.done;C=w.next()){var S=C.value,T=S.namespaceURI,_=S.prefix;if(T===f.namespace.XMLNS){if(_===null){y=S.value;continue}var E=S.localName,D=S.value;if(D===f.namespace.XML||(D===""&&(D=null),p.has(E,D)))continue;p.set(E,D),v[E]=D||""}}}catch(b){x={error:b}}finally{try{C&&!C.done&&(m=w.return)&&m.call(w)}finally{if(x)throw x.error}}return y},h.prototype._generatePrefix=function(g,p,v){var x="ns"+v.value;return v.value++,p.set(x,g),x},h.prototype._serializeAttributeValue=function(g,p){if(p&&g!==null&&!u.xml_isLegalChar(g))throw new Error("Invalid characters in attribute value.");if(g===null)return"";for(var v="",x=0;x"?">":m}return v},h.prototype._serializeElement=function(g,p){var v,x;if(p&&(g.localName.indexOf(":")!==-1||!u.xml_isName(g.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");var m=!1,y=g.localName,w="<"+y;if(w+=this._serializeAttributes(g,p),g._children.size===0&&(w+="/",m=!0),w+=">",m)return w;try{for(var C=o(g._children),S=C.next();!S.done;S=C.next()){var T=S.value;w+=this._serializeNode(T,p)}}catch(_){v={error:_}}finally{try{S&&!S.done&&(x=C.return)&&x.call(C)}finally{if(v)throw v.error}}return w+=""},h.prototype._serializeDocument=function(g,p){var v,x;if(p&&g.documentElement===null)throw new Error("Missing document element (well-formed required).");var m="";try{for(var y=o(g._children),w=y.next();!w.done;w=y.next()){var C=w.value;m+=this._serializeNode(C,p)}}catch(S){v={error:S}}finally{try{w&&!w.done&&(x=y.return)&&x.call(y)}finally{if(v)throw v.error}}return m},h.prototype._serializeDocumentFragment=function(g,p){var v,x,m="";try{for(var y=o(g._children),w=y.next();!w.done;w=y.next()){var C=w.value;m+=this._serializeNode(C,p)}}catch(S){v={error:S}}finally{try{w&&!w.done&&(x=y.return)&&x.call(y)}finally{if(v)throw v.error}}return m},h.prototype._serializeAttributes=function(g,p){var v,x,m="",y=p?{}:void 0;try{for(var w=o(g.attributes),C=w.next();!C.done;C=w.next()){var S=C.value;if(p&&y&&S.localName in y)throw new Error("Element contains duplicate attributes (well-formed required).");if(p&&y&&(y[S.localName]=!0),p&&(S.localName.indexOf(":")!==-1||!u.xml_isName(S.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");m+=" "+S.localName+'="'+this._serializeAttributeValue(S.value,p)+'"'}}catch(T){v={error:T}}finally{try{C&&!C.done&&(x=w.return)&&x.call(w)}finally{if(v)throw v.error}}return m},h._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),h}();n.XMLSerializerImpl=d},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(277);n.XMLReader=o.XMLReader;var a=i(112);n.ObjectReader=a.ObjectReader;var s=i(280);n.JSONReader=s.JSONReader;var c=i(281);n.YAMLReader=c.YAMLReader},function(r,n,i){i(31),i(32),i(33),i(19),i(65),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(g,p){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,x){v.__proto__=x}||function(v,x){for(var m in x)x.hasOwnProperty(m)&&(v[m]=x[m])})(g,p)},function(g,p){function v(){this.constructor=g}o(g,p),g.prototype=p===null?Object.create(p):(v.prototype=p.prototype,new v)}),s=this&&this.__read||function(g,p){var v=typeof Symbol=="function"&&g[Symbol.iterator];if(!v)return g;var x,m,y=v.call(g),w=[];try{for(;(p===void 0||p-- >0)&&!(x=y.next()).done;)w.push(x.value)}catch(C){m={error:C}}finally{try{x&&!x.done&&(v=y.return)&&v.call(y)}finally{if(m)throw m.error}}return w},c=this&&this.__values||function(g){var p=typeof Symbol=="function"&&Symbol.iterator,v=p&&g[p],x=0;if(v)return v.call(g);if(g&&typeof g.length=="number")return{next:function(){return g&&x>=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var l=i(180),f=i(111),u=i(7),d=i(0),h=function(g){function p(){return g!==null&&g.apply(this,arguments)||this}return a(p,g),p.prototype._parse=function(v,x){for(var m,y,w,C,S=new l.XMLStringLexer(x,{skipWhitespaceOnlyText:!0}),T=v,_=v,E=S.nextToken();E.type!==f.TokenType.EOF;){switch(E.type){case f.TokenType.Declaration:var D=E,b=this.sanitize(D.version);if(b!=="1.0")throw new Error("Invalid xml version: "+b);var I={version:b};D.encoding&&(I.encoding=this.sanitize(D.encoding)),D.standalone&&(I.standalone=this.sanitize(D.standalone)==="yes"),_.set(I);break;case f.TokenType.DocType:var R=E;_=this.docType(_,this.sanitize(R.name),this.sanitize(R.pubId),this.sanitize(R.sysId))||_;break;case f.TokenType.CDATA:var M=E;_=this.cdata(_,this.sanitize(M.data))||_;break;case f.TokenType.Comment:var L=E;_=this.comment(_,this.sanitize(L.data))||_;break;case f.TokenType.PI:var A=E;_=this.instruction(_,this.sanitize(A.target),this.sanitize(A.data))||_;break;case f.TokenType.Text:var G=E;_=this.text(_,this._decodeText(this.sanitize(G.data)))||_;break;case f.TokenType.Element:var P=E,N=this.sanitize(P.name),V=s(d.namespace_extractQName(N),1)[0],$=_.node.lookupNamespaceURI(V),j={};try{for(var Y=(m=void 0,c(P.attributes)),te=Y.next();!te.done;te=Y.next()){var Q=s(te.value,2),re=Q[0],de=Q[1];if(re=this.sanitize(re),de=this.sanitize(de),re==="xmlns")$=de;else{var fe=s(d.namespace_extractQName(re),2),se=fe[0],k=fe[1];se==="xmlns"&&(k===V&&($=de),j[k]=de)}}}catch(ie){m={error:ie}}finally{try{te&&!te.done&&(y=Y.return)&&y.call(Y)}finally{if(m)throw m.error}}var O=$!==null?this.element(_,$,N):this.element(_,void 0,N);if(O===void 0)break;_.node===v.node&&(T=O);try{for(var B=(w=void 0,c(P.attributes)),U=B.next();!U.done;U=B.next()){var z=s(U.value,2);re=z[0],de=z[1],re=this.sanitize(re),de=this.sanitize(de);var H=s(d.namespace_extractQName(re),2),K=(se=H[0],k=H[1],null);se==="xmlns"||se===null&&k==="xmlns"?K=u.namespace.XMLNS:(K=O.node.lookupNamespaceURI(se))!==null&&O.node.isDefaultNamespace(K)?K=null:K===null&&se!==null&&(K=j[se]||null),K!==null?this.attribute(O,K,re,this._decodeAttributeValue(de)):this.attribute(O,void 0,re,this._decodeAttributeValue(de))}}catch(ie){w={error:ie}}finally{try{U&&!U.done&&(C=B.return)&&C.call(B)}finally{if(w)throw w.error}}P.selfClosing||(_=O);break;case f.TokenType.ClosingTag:_.node.parentNode&&(_=_.up())}E=S.nextToken()}return T},p}(i(75).BaseReader);n.XMLReader=h},function(r,n,i){var o=i(4),a=i(279);o({target:"Object",stat:!0,forced:Object.assign!==a},{assign:a})},function(r,n,i){var o=i(16),a=i(8),s=i(61),c=i(85),l=i(79),f=i(27),u=i(41),d=Object.assign,h=Object.defineProperty;r.exports=!d||a(function(){if(o&&d({b:1},d(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var g={},p={},v=Symbol();return g[v]=7,"abcdefghijklmnopqrst".split("").forEach(function(x){p[x]=x}),d({},g)[v]!=7||s(d({},p)).join("")!="abcdefghijklmnopqrst"})?function(g,p){for(var v=f(g),x=arguments.length,m=1,y=c.f,w=l.f;x>m;)for(var C,S=u(arguments[m++]),T=y?s(S).concat(y(S)):s(S),_=T.length,E=0;_>E;)C=T[E++],o&&!w.call(S,C)||(v[C]=S[C]);return v}:d},function(r,n,i){var o,a=this&&this.__extends||(o=function(l,f){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,d){u.__proto__=d}||function(u,d){for(var h in d)d.hasOwnProperty(h)&&(u[h]=d[h])})(l,f)},function(l,f){function u(){this.constructor=l}o(l,f),l.prototype=f===null?Object.create(f):(u.prototype=f.prototype,new u)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(112),c=function(l){function f(){return l!==null&&l.apply(this,arguments)||this}return a(f,l),f.prototype._parse=function(u,d){return new s.ObjectReader(this._builderOptions).parse(u,JSON.parse(d))},f}(i(75).BaseReader);n.JSONReader=c},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(112),c=i(75),l=i(282),f=function(u){function d(){return u!==null&&u.apply(this,arguments)||this}return a(d,u),d.prototype._parse=function(h,g){var p=l.safeLoad(g);if(p===void 0)throw new Error("Unable to parse YAML document.");return new s.ObjectReader(this._builderOptions).parse(h,p)},d}(c.BaseReader);n.YAMLReader=f},function(r,n,i){var o=i(283);r.exports=o},function(r,n,i){var o=i(284),a=i(303);function s(c){return function(){throw new Error("Function "+c+" is deprecated and cannot be used.")}}r.exports.Type=i(10),r.exports.Schema=i(39),r.exports.FAILSAFE_SCHEMA=i(113),r.exports.JSON_SCHEMA=i(182),r.exports.CORE_SCHEMA=i(181),r.exports.DEFAULT_SAFE_SCHEMA=i(54),r.exports.DEFAULT_FULL_SCHEMA=i(76),r.exports.load=o.load,r.exports.loadAll=o.loadAll,r.exports.safeLoad=o.safeLoad,r.exports.safeLoadAll=o.safeLoadAll,r.exports.dump=a.dump,r.exports.safeDump=a.safeDump,r.exports.YAMLException=i(53),r.exports.MINIMAL_SCHEMA=i(113),r.exports.SAFE_SCHEMA=i(54),r.exports.DEFAULT_SCHEMA=i(76),r.exports.scan=s("scan"),r.exports.parse=s("parse"),r.exports.compose=s("compose"),r.exports.addConstructor=s("addConstructor")},function(r,n,i){var o=i(38),a=i(53),s=i(285),c=i(54),l=i(76),f=Object.prototype.hasOwnProperty,u=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d=/[\x85\u2028\u2029]/,h=/[,\[\]\{\}]/,g=/^(?:!|!!|![a-z\-]+!)$/i,p=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function v(O){return Object.prototype.toString.call(O)}function x(O){return O===10||O===13}function m(O){return O===9||O===32}function y(O){return O===9||O===32||O===10||O===13}function w(O){return O===44||O===91||O===93||O===123||O===125}function C(O){var B;return 48<=O&&O<=57?O-48:97<=(B=32|O)&&B<=102?B-97+10:-1}function S(O){return O===48?"\0":O===97?"\x07":O===98?"\b":O===116||O===9?" ":O===110?` -`:O===118?"\v":O===102?"\f":O===114?"\r":O===101?"\x1B":O===32?" ":O===34?'"':O===47?"/":O===92?"\\":O===78?"…":O===95?" ":O===76?"\u2028":O===80?"\u2029":""}function T(O){return O<=65535?String.fromCharCode(O):String.fromCharCode(55296+(O-65536>>10),56320+(O-65536&1023))}for(var _=new Array(256),E=new Array(256),D=0;D<256;D++)_[D]=S(D)?1:0,E[D]=S(D);function b(O,B){this.input=O,this.filename=B.filename||null,this.schema=B.schema||l,this.onWarning=B.onWarning||null,this.legacy=B.legacy||!1,this.json=B.json||!1,this.listener=B.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=O.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function I(O,B){return new a(B,new s(O.filename,O.input,O.position,O.line,O.position-O.lineStart))}function R(O,B){throw I(O,B)}function M(O,B){O.onWarning&&O.onWarning.call(null,I(O,B))}var L={YAML:function(O,B,U){var z,H,K;O.version!==null&&R(O,"duplication of %YAML directive"),U.length!==1&&R(O,"YAML directive accepts exactly one argument"),(z=/^([0-9]+)\.([0-9]+)$/.exec(U[0]))===null&&R(O,"ill-formed argument of the YAML directive"),H=parseInt(z[1],10),K=parseInt(z[2],10),H!==1&&R(O,"unacceptable YAML version of the document"),O.version=U[0],O.checkLineBreaks=K<2,K!==1&&K!==2&&M(O,"unsupported YAML version of the document")},TAG:function(O,B,U){var z,H;U.length!==2&&R(O,"TAG directive accepts exactly two arguments"),z=U[0],H=U[1],g.test(z)||R(O,"ill-formed tag handle (first argument) of the TAG directive"),f.call(O.tagMap,z)&&R(O,'there is a previously declared suffix for "'+z+'" tag handle'),p.test(H)||R(O,"ill-formed tag prefix (second argument) of the TAG directive"),O.tagMap[z]=H}};function A(O,B,U,z){var H,K,ie,he;if(B1&&(O.result+=o.repeat(` -`,B-1))}function Y(O,B){var U,z,H=O.tag,K=O.anchor,ie=[],he=!1;for(O.anchor!==null&&(O.anchorMap[O.anchor]=ie),z=O.input.charCodeAt(O.position);z!==0&&z===45&&y(O.input.charCodeAt(O.position+1));)if(he=!0,O.position++,V(O,!0,-1)&&O.lineIndent<=B)ie.push(null),z=O.input.charCodeAt(O.position);else if(U=O.line,re(O,B,3,!1,!0),ie.push(O.result),V(O,!0,-1),z=O.input.charCodeAt(O.position),(O.line===U||O.lineIndent>B)&&z!==0)R(O,"bad indentation of a sequence entry");else if(O.lineIndentB?Z=1:O.lineIndent===B?Z=0:O.lineIndentB?Z=1:O.lineIndent===B?Z=0:O.lineIndentAe)&&(re(q,Ae,4,!0,le)&&(zt?Wt=q.result:Sn=q.result),zt||(P(q,ze,st,ht,Wt,Sn,_e,Me),ht=Wt=Sn=null),V(q,!0,-1),Re=q.input.charCodeAt(q.position)),q.lineIndent>Ae&&Re!==0)R(q,"bad indentation of a mapping entry");else if(q.lineIndent=0))break;le===0?R(q,"bad explicit indentation width of a block scalar; it cannot be less than one"):ut?R(q,"repeat of an indentation width identifier"):(ze=Ae+le-1,ut=!0)}if(m(_e)){do _e=q.input.charCodeAt(++q.position);while(m(_e));if(_e===35)do _e=q.input.charCodeAt(++q.position);while(!x(_e)&&_e!==0)}for(;_e!==0;){for(N(q),q.lineIndent=0,_e=q.input.charCodeAt(q.position);(!ut||q.lineIndentze&&(ze=q.lineIndent),x(_e))st++;else{if(q.lineIndent0){for(le=Me,_e=0;le>0;le--)(Me=C(Re=q.input.charCodeAt(++q.position)))>=0?_e=(_e<<4)+Me:R(q,"expected hexadecimal character");q.result+=T(_e),q.position++}else R(q,"unknown escape sequence");Be=ke=q.position}else x(Re)?(A(q,Be,ke,!0),j(q,V(q,!1,Ae)),Be=ke=q.position):q.position===q.lineStart&&$(q)?R(q,"unexpected end of the document within a double quoted scalar"):(q.position++,ke=q.position)}R(q,"unexpected end of the stream within a double quoted scalar")}(O,J)?ve=!0:function(q){var Ae,Be,ke;if((ke=q.input.charCodeAt(q.position))!==42)return!1;for(ke=q.input.charCodeAt(++q.position),Ae=q.position;ke!==0&&!y(ke)&&!w(ke);)ke=q.input.charCodeAt(++q.position);return q.position===Ae&&R(q,"name of an alias node must contain at least one character"),Be=q.input.slice(Ae,q.position),q.anchorMap.hasOwnProperty(Be)||R(q,'unidentified alias "'+Be+'"'),q.result=q.anchorMap[Be],V(q,!0,-1),!0}(O)?(ve=!0,O.tag===null&&O.anchor===null||R(O,"alias node should not have any properties")):function(q,Ae,Be){var ke,le,_e,Me,Re,We,ut,ze,st=q.kind,ht=q.result;if(y(ze=q.input.charCodeAt(q.position))||w(ze)||ze===35||ze===38||ze===42||ze===33||ze===124||ze===62||ze===39||ze===34||ze===37||ze===64||ze===96||(ze===63||ze===45)&&(y(ke=q.input.charCodeAt(q.position+1))||Be&&w(ke)))return!1;for(q.kind="scalar",q.result="",le=_e=q.position,Me=!1;ze!==0;){if(ze===58){if(y(ke=q.input.charCodeAt(q.position+1))||Be&&w(ke))break}else if(ze===35){if(y(q.input.charCodeAt(q.position-1)))break}else{if(q.position===q.lineStart&&$(q)||Be&&w(ze))break;if(x(ze)){if(Re=q.line,We=q.lineStart,ut=q.lineIndent,V(q,!1,-1),q.lineIndent>=Ae){Me=!0,ze=q.input.charCodeAt(q.position);continue}q.position=_e,q.line=Re,q.lineStart=We,q.lineIndent=ut;break}}Me&&(A(q,le,_e,!1),j(q,q.line-Re),le=_e=q.position,Me=!1),m(ze)||(_e=q.position+1),ze=q.input.charCodeAt(++q.position)}return A(q,le,_e,!1),!!q.result||(q.kind=st,q.result=ht,!1)}(O,J,U===1)&&(ve=!0,O.tag===null&&(O.tag="?")),O.anchor!==null&&(O.anchorMap[O.anchor]=O.result)):Z===0&&(ve=he&&Y(O,oe))),O.tag!==null&&O.tag!=="!")if(O.tag==="?"){for(O.result!==null&&O.kind!=="scalar"&&R(O,'unacceptable node kind for ! tag; it should be "scalar", not "'+O.kind+'"'),ye=0,Ee=O.implicitTypes.length;ye tag; it should be "'+X.kind+'", not "'+O.kind+'"'),X.resolve(O.result)?(O.result=X.construct(O.result),O.anchor!==null&&(O.anchorMap[O.anchor]=O.result)):R(O,"cannot resolve a node with !<"+O.tag+"> explicit tag")):R(O,"unknown tag !<"+O.tag+">");return O.listener!==null&&O.listener("close",O),O.tag!==null||O.anchor!==null||ve}function de(O){var B,U,z,H,K=O.position,ie=!1;for(O.version=null,O.checkLineBreaks=O.legacy,O.tagMap={},O.anchorMap={};(H=O.input.charCodeAt(O.position))!==0&&(V(O,!0,-1),H=O.input.charCodeAt(O.position),!(O.lineIndent>0||H!==37));){for(ie=!0,H=O.input.charCodeAt(++O.position),B=O.position;H!==0&&!y(H);)H=O.input.charCodeAt(++O.position);for(z=[],(U=O.input.slice(B,O.position)).length<1&&R(O,"directive name must not be less than one character in length");H!==0;){for(;m(H);)H=O.input.charCodeAt(++O.position);if(H===35){do H=O.input.charCodeAt(++O.position);while(H!==0&&!x(H));break}if(x(H))break;for(B=O.position;H!==0&&!y(H);)H=O.input.charCodeAt(++O.position);z.push(O.input.slice(B,O.position))}H!==0&&N(O),f.call(L,U)?L[U](O,U,z):M(O,'unknown document directive "'+U+'"')}V(O,!0,-1),O.lineIndent===0&&O.input.charCodeAt(O.position)===45&&O.input.charCodeAt(O.position+1)===45&&O.input.charCodeAt(O.position+2)===45?(O.position+=3,V(O,!0,-1)):ie&&R(O,"directives end mark is expected"),re(O,O.lineIndent-1,4,!1,!0),V(O,!0,-1),O.checkLineBreaks&&d.test(O.input.slice(K,O.position))&&M(O,"non-ASCII line breaks are interpreted as content"),O.documents.push(O.result),O.position===O.lineStart&&$(O)?O.input.charCodeAt(O.position)===46&&(O.position+=3,V(O,!0,-1)):O.position0&&`\0\r +`,offset:0,group:!1,verbose:!1}),p._writerOptions.indent.length<2)throw new Error("YAML indententation string must be at least two characters long.");if(p._writerOptions.offset<0)throw new Error("YAML offset should be zero or a positive number.");return p}return a(d,u),d.prototype.serialize=function(h){var g=l.applyDefaults(this._writerOptions,{format:"object",wellFormed:!1}),p=new c.ObjectWriter(this._builderOptions,g).serialize(h),v=this._beginLine(this._writerOptions,0)+"---"+this._endLine(this._writerOptions)+this._convertObject(p,this._writerOptions,0);return v.slice(-this._writerOptions.newline.length)===this._writerOptions.newline&&(v=v.slice(0,-this._writerOptions.newline.length)),v},d.prototype._convertObject=function(h,g,p,v){var x,m,y=this;v===void 0&&(v=!1);var w="";if(l.isArray(h))try{for(var C=s(h),S=C.next();!S.done;S=C.next()){var T=S.value;w+=this._beginLine(g,p,!0),l.isObject(T)?l.isEmpty(T)?w+='""'+this._endLine(g):w+=this._convertObject(T,g,p,!0):w+=this._val(T)+this._endLine(g)}}catch(_){x={error:_}}finally{try{S&&!S.done&&(m=C.return)&&m.call(C)}finally{if(x)throw x.error}}else l.forEachObject(h,function(_,E){v?(w+=y._key(_),v=!1):w+=y._beginLine(g,p)+y._key(_),l.isObject(E)?l.isEmpty(E)?w+=' ""'+y._endLine(g):w+=y._endLine(g)+y._convertObject(E,g,p+1):w+=" "+y._val(E)+y._endLine(g)},this);return w},d.prototype._beginLine=function(h,g,p){p===void 0&&(p=!1);var v=h.offset+g+1,x=new Array(v).join(h.indent);return p?x.substr(0,x.length-2)+"-"+x.substr(-1,1):x},d.prototype._endLine=function(h){return h.newline},d.prototype._key=function(h){return'"'+h+'":'},d.prototype._val=function(h){return JSON.stringify(h)},d}(i(50).BaseWriter);n.YAMLWriter=f},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0}),i(110).dom.setFeatures(!0);var o=i(110);n.DOMImplementation=o.DOMImplementation;var a=i(271);n.DOMParser=a.DOMParser;var s=i(274);n.XMLSerializer=s.XMLSerializer},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=i(0),s=function(){function c(){}return c.prototype.before=function(){for(var l=[],f=0;f=f.length&&(f=void 0),{value:f&&f[h++],done:!f}}};throw new TypeError(u?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(6),s=i(3),c=i(7),l=function(){function f(u){this._nodeList=[],this._recordQueue=[],this._callback=u;var d=a.dom.window;c.set.append(d._mutationObservers,this)}return f.prototype.observe=function(u,d){var h,g;if((d=d||{childList:!1,subtree:!1}).attributeOldValue===void 0&&d.attributeFilter===void 0||d.attributes!==void 0||(d.attributes=!0),d.characterDataOldValue!==void 0&&d.characterData===void 0&&(d.characterData=!0),!d.childList&&!d.attributes&&!d.characterData)throw new TypeError;if(d.attributeOldValue&&!d.attributes)throw new TypeError;if(d.attributeFilter!==void 0&&!d.attributes)throw new TypeError;if(d.characterDataOldValue&&!d.characterData)throw new TypeError;var p=!1,v=d,x=function(C){var S,T;if(C.observer===m){p=!0;try{for(var _=(S=void 0,o(m._nodeList)),E=_.next();!E.done;E=_.next()){var D=E.value;c.list.remove(D._registeredObserverList,function(b){return s.Guard.isTransientRegisteredObserver(b)&&b.source===C})}}catch(b){S={error:b}}finally{try{E&&!E.done&&(T=_.return)&&T.call(_)}finally{if(S)throw S.error}}C.options=v}},m=this;try{for(var y=o(u._registeredObserverList),w=y.next();!w.done;w=y.next())x(w.value)}catch(C){h={error:C}}finally{try{w&&!w.done&&(g=y.return)&&g.call(y)}finally{if(h)throw h.error}}p||(u._registeredObserverList.push({observer:this,options:d}),this._nodeList.push(u))},f.prototype.disconnect=function(){var u,d,h=this;try{for(var g=o(this._nodeList),p=g.next();!p.done;p=g.next()){var v=p.value;c.list.remove(v._registeredObserverList,function(x){return x.observer===h})}}catch(x){u={error:x}}finally{try{p&&!p.done&&(d=g.return)&&d.call(g)}finally{if(u)throw u.error}}this._recordQueue=[]},f.prototype.takeRecords=function(){var u=this._recordQueue;return this._recordQueue=[],u},f}();n.MutationObserverImpl=l},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=function(){function s(){}return Object.defineProperty(s.prototype,"previousElementSibling",{get:function(){for(var c=o.Cast.asNode(this)._previousSibling;c;){if(o.Guard.isElementNode(c))return c;c=c._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"nextElementSibling",{get:function(){for(var c=o.Cast.asNode(this)._nextSibling;c;){if(o.Guard.isElementNode(c))return c;c=c._nextSibling}return null},enumerable:!0,configurable:!0}),s}();n.NonDocumentTypeChildNodeImpl=a},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(3),a=i(0),s=function(){function c(){}return c.prototype.getElementById=function(l){for(var f=a.tree_getFirstDescendantNode(o.Cast.asNode(this),!1,!1,function(u){return o.Guard.isElementNode(u)});f!==null;){if(f._uniqueIdentifier===l)return f;f=a.tree_getNextDescendantNode(o.Cast.asNode(this),f,!1,!1,function(u){return o.Guard.isElementNode(u)})}return null},c}();n.NonElementParentNodeImpl=s},function(r,n,i){var o=this&&this.__values||function(l){var f=typeof Symbol=="function"&&Symbol.iterator,u=f&&l[f],d=0;if(u)return u.call(l);if(l&&typeof l.length=="number")return{next:function(){return l&&d>=l.length&&(l=void 0),{value:l&&l[d++],done:!l}}};throw new TypeError(f?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(3),s=i(0),c=function(){function l(){}return Object.defineProperty(l.prototype,"children",{get:function(){return s.create_htmlCollection(a.Cast.asNode(this))},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"firstElementChild",{get:function(){for(var f=a.Cast.asNode(this)._firstChild;f;){if(a.Guard.isElementNode(f))return f;f=f._nextSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"lastElementChild",{get:function(){for(var f=a.Cast.asNode(this)._lastChild;f;){if(a.Guard.isElementNode(f))return f;f=f._previousSibling}return null},enumerable:!0,configurable:!0}),Object.defineProperty(l.prototype,"childElementCount",{get:function(){var f,u,d=0;try{for(var h=o(a.Cast.asNode(this)._children),g=h.next();!g.done;g=h.next()){var p=g.value;a.Guard.isElementNode(p)&&d++}}catch(v){f={error:v}}finally{try{g&&!g.done&&(u=h.return)&&u.call(h)}finally{if(f)throw f.error}}return d},enumerable:!0,configurable:!0}),l.prototype.prepend=function(){for(var f=[],u=0;u0)&&!(v=m.next()).done;)y.push(v.value)}catch(w){x={error:w}}finally{try{v&&!v.done&&(p=m.return)&&p.call(m)}finally{if(x)throw x.error}}return y},a=this&&this.__values||function(h){var g=typeof Symbol=="function"&&Symbol.iterator,p=g&&h[g],v=0;if(p)return p.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&v>=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var s=i(180),c=i(111),l=i(7),f=i(0),u=i(69),d=function(){function h(){}return h.prototype.parse=function(g){for(var p,v,x,m,y=new s.XMLStringLexer(g,{skipWhitespaceOnlyText:!0}),w=f.create_document(),C=w,S=y.nextToken();S.type!==c.TokenType.EOF;){switch(S.type){case c.TokenType.Declaration:var T=S;if(T.version!=="1.0")throw new Error("Invalid xml version: "+T.version);break;case c.TokenType.DocType:var _=S;if(!f.xml_isPubidChar(_.pubId))throw new Error("DocType public identifier does not match PubidChar construct.");if(!f.xml_isLegalChar(_.sysId)||_.sysId.indexOf('"')!==-1&&_.sysId.indexOf("'")!==-1)throw new Error("DocType system identifier contains invalid characters.");C.appendChild(w.implementation.createDocumentType(_.name,_.pubId,_.sysId));break;case c.TokenType.CDATA:var E=S;if(!f.xml_isLegalChar(E.data)||E.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters.");C.appendChild(w.createCDATASection(E.data));break;case c.TokenType.Comment:var D=S;if(!f.xml_isLegalChar(D.data)||D.data.indexOf("--")!==-1||D.data.endsWith("-"))throw new Error("Comment data contains invalid characters.");C.appendChild(w.createComment(D.data));break;case c.TokenType.PI:var b=S;if(b.target.indexOf(":")!==-1||/^xml$/i.test(b.target))throw new Error("Processing instruction target contains invalid characters.");if(!f.xml_isLegalChar(b.data)||b.data.indexOf("?>")!==-1)throw new Error("Processing instruction data contains invalid characters.");C.appendChild(w.createProcessingInstruction(b.target,b.data));break;case c.TokenType.Text:var I=S;if(!f.xml_isLegalChar(I.data))throw new Error("Text data contains invalid characters.");C.appendChild(w.createTextNode(this._decodeText(I.data)));break;case c.TokenType.Element:var R=S,M=o(f.namespace_extractQName(R.name),2),L=M[0],A=M[1];if(A.indexOf(":")!==-1||!f.xml_isName(A))throw new Error("Node local name contains invalid characters.");if(L==="xmlns")throw new Error("An element cannot have the 'xmlns' prefix.");var G=C.lookupNamespaceURI(L),P={};try{for(var N=(p=void 0,a(R.attributes)),V=N.next();!V.done;V=N.next()){var $=o(V.value,2),H=$[0],Y=$[1];if(H==="xmlns")G=Y;else{var ne=o(f.namespace_extractQName(H),2),Q=ne[0],ee=ne[1];Q==="xmlns"&&(ee===L&&(G=Y),P[ee]=Y)}}}catch(z){p={error:z}}finally{try{V&&!V.done&&(v=N.return)&&v.call(N)}finally{if(p)throw p.error}}var de=G!==null?w.createElementNS(G,R.name):w.createElement(R.name);C.appendChild(de);var fe=new u.LocalNameSet;try{for(var le=(x=void 0,a(R.attributes)),k=le.next();!k.done;k=le.next()){var O=o(k.value,2),B=(H=O[0],Y=O[1],o(f.namespace_extractQName(H),2)),U=(Q=B[0],ee=B[1],null);if(Q==="xmlns"||Q===null&&ee==="xmlns"?U=l.namespace.XMLNS:(U=de.lookupNamespaceURI(Q))!==null&&de.isDefaultNamespace(U)?U=null:U===null&&Q!==null&&(U=P[Q]||null),fe.has(U,ee))throw new Error("Element contains duplicate attributes.");if(fe.set(U,ee),U===l.namespace.XMLNS&&Y===l.namespace.XMLNS)throw new Error("XMLNS namespace is reserved.");if(ee.indexOf(":")!==-1||!f.xml_isName(ee))throw new Error("Attribute local name contains invalid characters.");if(Q==="xmlns"&&Y==="")throw new Error("Empty XML namespace is not allowed.");U!==null?de.setAttributeNS(U,H,this._decodeAttributeValue(Y)):de.setAttribute(H,this._decodeAttributeValue(Y))}}catch(z){x={error:z}}finally{try{k&&!k.done&&(m=le.return)&&m.call(le)}finally{if(x)throw x.error}}R.selfClosing||(C=de);break;case c.TokenType.ClosingTag:if(S.name!==C.nodeName)throw new Error("Closing tag name does not match opening tag name.");C._parent&&(C=C._parent)}S=y.nextToken()}return w},h.prototype._decodeText=function(g){return g==null?g:g.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")},h.prototype._decodeAttributeValue=function(g){return g==null?g:g.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")},h}();n.XMLParserImpl=d},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(275);n.XMLSerializer=o.XMLSerializerImpl},function(r,n,i){var o=this&&this.__values||function(h){var g=typeof Symbol=="function"&&Symbol.iterator,p=g&&h[g],v=0;if(p)return p.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&v>=h.length&&(h=void 0),{value:h&&h[v++],done:!h}}};throw new TypeError(g?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var a=i(2),s=i(69),c=i(95),l=i(9),f=i(7),u=i(0),d=function(){function h(){}return h.prototype.serializeToString=function(g){return this._xmlSerialization(g,!1)},h.prototype._xmlSerialization=function(g,p){if(g._nodeDocument===void 0||g._nodeDocument._hasNamespaces){var v=new c.NamespacePrefixMap;v.set("xml",f.namespace.XML);try{return this._serializeNodeNS(g,null,v,{value:1},p)}catch{throw new l.InvalidStateError}}else try{return this._serializeNode(g,p)}catch{throw new l.InvalidStateError}},h.prototype._serializeNodeNS=function(g,p,v,x,m){switch(g.nodeType){case a.NodeType.Element:return this._serializeElementNS(g,p,v,x,m);case a.NodeType.Document:return this._serializeDocumentNS(g,p,v,x,m);case a.NodeType.Comment:return this._serializeComment(g,m);case a.NodeType.Text:return this._serializeText(g,m);case a.NodeType.DocumentFragment:return this._serializeDocumentFragmentNS(g,p,v,x,m);case a.NodeType.DocumentType:return this._serializeDocumentType(g,m);case a.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(g,m);case a.NodeType.CData:return this._serializeCData(g,m);default:throw new Error("Unknown node type: "+g.nodeType)}},h.prototype._serializeNode=function(g,p){switch(g.nodeType){case a.NodeType.Element:return this._serializeElement(g,p);case a.NodeType.Document:return this._serializeDocument(g,p);case a.NodeType.Comment:return this._serializeComment(g,p);case a.NodeType.Text:return this._serializeText(g,p);case a.NodeType.DocumentFragment:return this._serializeDocumentFragment(g,p);case a.NodeType.DocumentType:return this._serializeDocumentType(g,p);case a.NodeType.ProcessingInstruction:return this._serializeProcessingInstruction(g,p);case a.NodeType.CData:return this._serializeCData(g,p);default:throw new Error("Unknown node type: "+g.nodeType)}},h.prototype._serializeElementNS=function(g,p,v,x,m){var y,w;if(m&&(g.localName.indexOf(":")!==-1||!u.xml_isName(g.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");var C="<",S="",T=!1,_=!1,E=v.copy(),D={},b=this._recordNamespaceInformation(g,E,D),I=p,R=g.namespaceURI;if(I===R)b!==null&&(_=!0),C+=S=R===f.namespace.XML?"xml:"+g.localName:g.localName;else{var M=g.prefix,L=null;if(M===null&&R===b||(L=E.get(M,R)),M==="xmlns"){if(m)throw new Error("An element cannot have the 'xmlns' prefix (well-formed required).");L=M}L!==null?(S=L+":"+g.localName,b!==null&&b!==f.namespace.XML&&(I=b||null),C+=S):M!==null?(M in D&&(M=this._generatePrefix(R,E,x)),E.set(M,R),C+=S+=M+":"+g.localName,C+=" xmlns:"+M+'="'+this._serializeAttributeValue(R,m)+'"',b!==null&&(I=b||null)):b===null||b!==null&&b!==R?(_=!0,I=R,C+=S+=g.localName,C+=' xmlns="'+this._serializeAttributeValue(R,m)+'"'):(I=R,C+=S+=g.localName)}C+=this._serializeAttributesNS(g,E,x,D,_,m);var A=R===f.namespace.HTML;if(A&&g.childNodes.length===0&&h._VoidElementNames.has(g.localName)?(C+=" /",T=!0):A||g.childNodes.length!==0||(C+="/",T=!0),C+=">",T)return C;if(!(A&&g.localName==="template"))try{for(var G=o(g._children||g.childNodes),P=G.next();!P.done;P=G.next()){var N=P.value;C+=this._serializeNodeNS(N,I,E,x,m)}}catch(V){y={error:V}}finally{try{P&&!P.done&&(w=G.return)&&w.call(G)}finally{if(y)throw y.error}}return C+=""},h.prototype._serializeDocumentNS=function(g,p,v,x,m){var y,w;if(m&&g.documentElement===null)throw new Error("Missing document element (well-formed required).");var C="";try{for(var S=o(g._children||g.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;C+=this._serializeNodeNS(_,p,v,x,m)}}catch(E){y={error:E}}finally{try{T&&!T.done&&(w=S.return)&&w.call(S)}finally{if(y)throw y.error}}return C},h.prototype._serializeComment=function(g,p){if(p&&(!u.xml_isLegalChar(g.data)||g.data.indexOf("--")!==-1||g.data.endsWith("-")))throw new Error("Comment data contains invalid characters (well-formed required).");return""},h.prototype._serializeText=function(g,p){if(p&&!u.xml_isLegalChar(g.data))throw new Error("Text data contains invalid characters (well-formed required).");for(var v="",x=0;x"?">":m}return v},h.prototype._serializeDocumentFragmentNS=function(g,p,v,x,m){var y,w,C="";try{for(var S=o(g._children||g.childNodes),T=S.next();!T.done;T=S.next()){var _=T.value;C+=this._serializeNodeNS(_,p,v,x,m)}}catch(E){y={error:E}}finally{try{T&&!T.done&&(w=S.return)&&w.call(S)}finally{if(y)throw y.error}}return C},h.prototype._serializeDocumentType=function(g,p){if(p&&!u.xml_isPubidChar(g.publicId))throw new Error("DocType public identifier does not match PubidChar construct (well-formed required).");if(p&&(!u.xml_isLegalChar(g.systemId)||g.systemId.indexOf('"')!==-1&&g.systemId.indexOf("'")!==-1))throw new Error("DocType system identifier contains invalid characters (well-formed required).");return g.publicId&&g.systemId?"':g.publicId?"':g.systemId?"':""},h.prototype._serializeProcessingInstruction=function(g,p){if(p&&(g.target.indexOf(":")!==-1||/^xml$/i.test(g.target)))throw new Error("Processing instruction target contains invalid characters (well-formed required).");if(p&&(!u.xml_isLegalChar(g.data)||g.data.indexOf("?>")!==-1))throw new Error("Processing instruction data contains invalid characters (well-formed required).");return""},h.prototype._serializeCData=function(g,p){if(p&&g.data.indexOf("]]>")!==-1)throw new Error("CDATA contains invalid characters (well-formed required).");return""},h.prototype._serializeAttributesNS=function(g,p,v,x,m,y){var w,C,S="",T=y?new s.LocalNameSet:void 0;try{for(var _=o(g.attributes),E=_.next();!E.done;E=_.next()){var D=E.value;if(m||y||D.namespaceURI!==null){if(y&&T&&T.has(D.namespaceURI,D.localName))throw new Error("Element contains duplicate attributes (well-formed required).");y&&T&&T.set(D.namespaceURI,D.localName);var b=D.namespaceURI,I=null;if(b!==null)if(I=p.get(D.prefix,b),b===f.namespace.XMLNS){if(D.value===f.namespace.XML||D.prefix===null&&m||D.prefix!==null&&(!(D.localName in x)||x[D.localName]!==D.value)&&p.has(D.localName,D.value))continue;if(y&&D.value===f.namespace.XMLNS)throw new Error("XMLNS namespace is reserved (well-formed required).");if(y&&D.value==="")throw new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required).");D.prefix==="xmlns"&&(I="xmlns")}else I===null&&(S+=" xmlns:"+(I=D.prefix===null||p.hasPrefix(D.prefix)&&!p.has(D.prefix,b)?this._generatePrefix(b,p,v):D.prefix)+'="'+this._serializeAttributeValue(b,y)+'"');if(S+=" ",I!==null&&(S+=I+":"),y&&(D.localName.indexOf(":")!==-1||!u.xml_isName(D.localName)||D.localName==="xmlns"&&b===null))throw new Error("Attribute local name contains invalid characters (well-formed required).");S+=D.localName+'="'+this._serializeAttributeValue(D.value,y)+'"'}else S+=" "+D.localName+'="'+this._serializeAttributeValue(D.value,y)+'"'}}catch(R){w={error:R}}finally{try{E&&!E.done&&(C=_.return)&&C.call(_)}finally{if(w)throw w.error}}return S},h.prototype._recordNamespaceInformation=function(g,p,v){var x,m,y=null;try{for(var w=o(g.attributes),C=w.next();!C.done;C=w.next()){var S=C.value,T=S.namespaceURI,_=S.prefix;if(T===f.namespace.XMLNS){if(_===null){y=S.value;continue}var E=S.localName,D=S.value;if(D===f.namespace.XML||(D===""&&(D=null),p.has(E,D)))continue;p.set(E,D),v[E]=D||""}}}catch(b){x={error:b}}finally{try{C&&!C.done&&(m=w.return)&&m.call(w)}finally{if(x)throw x.error}}return y},h.prototype._generatePrefix=function(g,p,v){var x="ns"+v.value;return v.value++,p.set(x,g),x},h.prototype._serializeAttributeValue=function(g,p){if(p&&g!==null&&!u.xml_isLegalChar(g))throw new Error("Invalid characters in attribute value.");if(g===null)return"";for(var v="",x=0;x"?">":m}return v},h.prototype._serializeElement=function(g,p){var v,x;if(p&&(g.localName.indexOf(":")!==-1||!u.xml_isName(g.localName)))throw new Error("Node local name contains invalid characters (well-formed required).");var m=!1,y=g.localName,w="<"+y;if(w+=this._serializeAttributes(g,p),g._children.size===0&&(w+="/",m=!0),w+=">",m)return w;try{for(var C=o(g._children),S=C.next();!S.done;S=C.next()){var T=S.value;w+=this._serializeNode(T,p)}}catch(_){v={error:_}}finally{try{S&&!S.done&&(x=C.return)&&x.call(C)}finally{if(v)throw v.error}}return w+=""},h.prototype._serializeDocument=function(g,p){var v,x;if(p&&g.documentElement===null)throw new Error("Missing document element (well-formed required).");var m="";try{for(var y=o(g._children),w=y.next();!w.done;w=y.next()){var C=w.value;m+=this._serializeNode(C,p)}}catch(S){v={error:S}}finally{try{w&&!w.done&&(x=y.return)&&x.call(y)}finally{if(v)throw v.error}}return m},h.prototype._serializeDocumentFragment=function(g,p){var v,x,m="";try{for(var y=o(g._children),w=y.next();!w.done;w=y.next()){var C=w.value;m+=this._serializeNode(C,p)}}catch(S){v={error:S}}finally{try{w&&!w.done&&(x=y.return)&&x.call(y)}finally{if(v)throw v.error}}return m},h.prototype._serializeAttributes=function(g,p){var v,x,m="",y=p?{}:void 0;try{for(var w=o(g.attributes),C=w.next();!C.done;C=w.next()){var S=C.value;if(p&&y&&S.localName in y)throw new Error("Element contains duplicate attributes (well-formed required).");if(p&&y&&(y[S.localName]=!0),p&&(S.localName.indexOf(":")!==-1||!u.xml_isName(S.localName)))throw new Error("Attribute local name contains invalid characters (well-formed required).");m+=" "+S.localName+'="'+this._serializeAttributeValue(S.value,p)+'"'}}catch(T){v={error:T}}finally{try{C&&!C.done&&(x=w.return)&&x.call(w)}finally{if(v)throw v.error}}return m},h._VoidElementNames=new Set(["area","base","basefont","bgsound","br","col","embed","frame","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]),h}();n.XMLSerializerImpl=d},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(277);n.XMLReader=o.XMLReader;var a=i(112);n.ObjectReader=a.ObjectReader;var s=i(280);n.JSONReader=s.JSONReader;var c=i(281);n.YAMLReader=c.YAMLReader},function(r,n,i){i(31),i(32),i(33),i(19),i(65),i(20),i(22),i(23);var o,a=this&&this.__extends||(o=function(g,p){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,x){v.__proto__=x}||function(v,x){for(var m in x)x.hasOwnProperty(m)&&(v[m]=x[m])})(g,p)},function(g,p){function v(){this.constructor=g}o(g,p),g.prototype=p===null?Object.create(p):(v.prototype=p.prototype,new v)}),s=this&&this.__read||function(g,p){var v=typeof Symbol=="function"&&g[Symbol.iterator];if(!v)return g;var x,m,y=v.call(g),w=[];try{for(;(p===void 0||p-- >0)&&!(x=y.next()).done;)w.push(x.value)}catch(C){m={error:C}}finally{try{x&&!x.done&&(v=y.return)&&v.call(y)}finally{if(m)throw m.error}}return w},c=this&&this.__values||function(g){var p=typeof Symbol=="function"&&Symbol.iterator,v=p&&g[p],x=0;if(v)return v.call(g);if(g&&typeof g.length=="number")return{next:function(){return g&&x>=g.length&&(g=void 0),{value:g&&g[x++],done:!g}}};throw new TypeError(p?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(n,"__esModule",{value:!0});var l=i(180),f=i(111),u=i(7),d=i(0),h=function(g){function p(){return g!==null&&g.apply(this,arguments)||this}return a(p,g),p.prototype._parse=function(v,x){for(var m,y,w,C,S=new l.XMLStringLexer(x,{skipWhitespaceOnlyText:!0}),T=v,_=v,E=S.nextToken();E.type!==f.TokenType.EOF;){switch(E.type){case f.TokenType.Declaration:var D=E,b=this.sanitize(D.version);if(b!=="1.0")throw new Error("Invalid xml version: "+b);var I={version:b};D.encoding&&(I.encoding=this.sanitize(D.encoding)),D.standalone&&(I.standalone=this.sanitize(D.standalone)==="yes"),_.set(I);break;case f.TokenType.DocType:var R=E;_=this.docType(_,this.sanitize(R.name),this.sanitize(R.pubId),this.sanitize(R.sysId))||_;break;case f.TokenType.CDATA:var M=E;_=this.cdata(_,this.sanitize(M.data))||_;break;case f.TokenType.Comment:var L=E;_=this.comment(_,this.sanitize(L.data))||_;break;case f.TokenType.PI:var A=E;_=this.instruction(_,this.sanitize(A.target),this.sanitize(A.data))||_;break;case f.TokenType.Text:var G=E;_=this.text(_,this._decodeText(this.sanitize(G.data)))||_;break;case f.TokenType.Element:var P=E,N=this.sanitize(P.name),V=s(d.namespace_extractQName(N),1)[0],$=_.node.lookupNamespaceURI(V),H={};try{for(var Y=(m=void 0,c(P.attributes)),ne=Y.next();!ne.done;ne=Y.next()){var Q=s(ne.value,2),ee=Q[0],de=Q[1];if(ee=this.sanitize(ee),de=this.sanitize(de),ee==="xmlns")$=de;else{var fe=s(d.namespace_extractQName(ee),2),le=fe[0],k=fe[1];le==="xmlns"&&(k===V&&($=de),H[k]=de)}}}catch(ae){m={error:ae}}finally{try{ne&&!ne.done&&(y=Y.return)&&y.call(Y)}finally{if(m)throw m.error}}var O=$!==null?this.element(_,$,N):this.element(_,void 0,N);if(O===void 0)break;_.node===v.node&&(T=O);try{for(var B=(w=void 0,c(P.attributes)),U=B.next();!U.done;U=B.next()){var z=s(U.value,2);ee=z[0],de=z[1],ee=this.sanitize(ee),de=this.sanitize(de);var j=s(d.namespace_extractQName(ee),2),K=(le=j[0],k=j[1],null);le==="xmlns"||le===null&&k==="xmlns"?K=u.namespace.XMLNS:(K=O.node.lookupNamespaceURI(le))!==null&&O.node.isDefaultNamespace(K)?K=null:K===null&&le!==null&&(K=H[le]||null),K!==null?this.attribute(O,K,ee,this._decodeAttributeValue(de)):this.attribute(O,void 0,ee,this._decodeAttributeValue(de))}}catch(ae){w={error:ae}}finally{try{U&&!U.done&&(C=B.return)&&C.call(B)}finally{if(w)throw w.error}}P.selfClosing||(_=O);break;case f.TokenType.ClosingTag:_.node.parentNode&&(_=_.up())}E=S.nextToken()}return T},p}(i(75).BaseReader);n.XMLReader=h},function(r,n,i){var o=i(4),a=i(279);o({target:"Object",stat:!0,forced:Object.assign!==a},{assign:a})},function(r,n,i){var o=i(16),a=i(8),s=i(61),c=i(85),l=i(79),f=i(27),u=i(41),d=Object.assign,h=Object.defineProperty;r.exports=!d||a(function(){if(o&&d({b:1},d(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var g={},p={},v=Symbol();return g[v]=7,"abcdefghijklmnopqrst".split("").forEach(function(x){p[x]=x}),d({},g)[v]!=7||s(d({},p)).join("")!="abcdefghijklmnopqrst"})?function(g,p){for(var v=f(g),x=arguments.length,m=1,y=c.f,w=l.f;x>m;)for(var C,S=u(arguments[m++]),T=y?s(S).concat(y(S)):s(S),_=T.length,E=0;_>E;)C=T[E++],o&&!w.call(S,C)||(v[C]=S[C]);return v}:d},function(r,n,i){var o,a=this&&this.__extends||(o=function(l,f){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(u,d){u.__proto__=d}||function(u,d){for(var h in d)d.hasOwnProperty(h)&&(u[h]=d[h])})(l,f)},function(l,f){function u(){this.constructor=l}o(l,f),l.prototype=f===null?Object.create(f):(u.prototype=f.prototype,new u)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(112),c=function(l){function f(){return l!==null&&l.apply(this,arguments)||this}return a(f,l),f.prototype._parse=function(u,d){return new s.ObjectReader(this._builderOptions).parse(u,JSON.parse(d))},f}(i(75).BaseReader);n.JSONReader=c},function(r,n,i){var o,a=this&&this.__extends||(o=function(u,d){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(h,g){h.__proto__=g}||function(h,g){for(var p in g)g.hasOwnProperty(p)&&(h[p]=g[p])})(u,d)},function(u,d){function h(){this.constructor=u}o(u,d),u.prototype=d===null?Object.create(d):(h.prototype=d.prototype,new h)});Object.defineProperty(n,"__esModule",{value:!0});var s=i(112),c=i(75),l=i(282),f=function(u){function d(){return u!==null&&u.apply(this,arguments)||this}return a(d,u),d.prototype._parse=function(h,g){var p=l.safeLoad(g);if(p===void 0)throw new Error("Unable to parse YAML document.");return new s.ObjectReader(this._builderOptions).parse(h,p)},d}(c.BaseReader);n.YAMLReader=f},function(r,n,i){var o=i(283);r.exports=o},function(r,n,i){var o=i(284),a=i(303);function s(c){return function(){throw new Error("Function "+c+" is deprecated and cannot be used.")}}r.exports.Type=i(10),r.exports.Schema=i(39),r.exports.FAILSAFE_SCHEMA=i(113),r.exports.JSON_SCHEMA=i(182),r.exports.CORE_SCHEMA=i(181),r.exports.DEFAULT_SAFE_SCHEMA=i(54),r.exports.DEFAULT_FULL_SCHEMA=i(76),r.exports.load=o.load,r.exports.loadAll=o.loadAll,r.exports.safeLoad=o.safeLoad,r.exports.safeLoadAll=o.safeLoadAll,r.exports.dump=a.dump,r.exports.safeDump=a.safeDump,r.exports.YAMLException=i(53),r.exports.MINIMAL_SCHEMA=i(113),r.exports.SAFE_SCHEMA=i(54),r.exports.DEFAULT_SCHEMA=i(76),r.exports.scan=s("scan"),r.exports.parse=s("parse"),r.exports.compose=s("compose"),r.exports.addConstructor=s("addConstructor")},function(r,n,i){var o=i(38),a=i(53),s=i(285),c=i(54),l=i(76),f=Object.prototype.hasOwnProperty,u=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d=/[\x85\u2028\u2029]/,h=/[,\[\]\{\}]/,g=/^(?:!|!!|![a-z\-]+!)$/i,p=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function v(O){return Object.prototype.toString.call(O)}function x(O){return O===10||O===13}function m(O){return O===9||O===32}function y(O){return O===9||O===32||O===10||O===13}function w(O){return O===44||O===91||O===93||O===123||O===125}function C(O){var B;return 48<=O&&O<=57?O-48:97<=(B=32|O)&&B<=102?B-97+10:-1}function S(O){return O===48?"\0":O===97?"\x07":O===98?"\b":O===116||O===9?" ":O===110?` +`:O===118?"\v":O===102?"\f":O===114?"\r":O===101?"\x1B":O===32?" ":O===34?'"':O===47?"/":O===92?"\\":O===78?"…":O===95?" ":O===76?"\u2028":O===80?"\u2029":""}function T(O){return O<=65535?String.fromCharCode(O):String.fromCharCode(55296+(O-65536>>10),56320+(O-65536&1023))}for(var _=new Array(256),E=new Array(256),D=0;D<256;D++)_[D]=S(D)?1:0,E[D]=S(D);function b(O,B){this.input=O,this.filename=B.filename||null,this.schema=B.schema||l,this.onWarning=B.onWarning||null,this.legacy=B.legacy||!1,this.json=B.json||!1,this.listener=B.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=O.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function I(O,B){return new a(B,new s(O.filename,O.input,O.position,O.line,O.position-O.lineStart))}function R(O,B){throw I(O,B)}function M(O,B){O.onWarning&&O.onWarning.call(null,I(O,B))}var L={YAML:function(O,B,U){var z,j,K;O.version!==null&&R(O,"duplication of %YAML directive"),U.length!==1&&R(O,"YAML directive accepts exactly one argument"),(z=/^([0-9]+)\.([0-9]+)$/.exec(U[0]))===null&&R(O,"ill-formed argument of the YAML directive"),j=parseInt(z[1],10),K=parseInt(z[2],10),j!==1&&R(O,"unacceptable YAML version of the document"),O.version=U[0],O.checkLineBreaks=K<2,K!==1&&K!==2&&M(O,"unsupported YAML version of the document")},TAG:function(O,B,U){var z,j;U.length!==2&&R(O,"TAG directive accepts exactly two arguments"),z=U[0],j=U[1],g.test(z)||R(O,"ill-formed tag handle (first argument) of the TAG directive"),f.call(O.tagMap,z)&&R(O,'there is a previously declared suffix for "'+z+'" tag handle'),p.test(j)||R(O,"ill-formed tag prefix (second argument) of the TAG directive"),O.tagMap[z]=j}};function A(O,B,U,z){var j,K,ae,he;if(B1&&(O.result+=o.repeat(` +`,B-1))}function Y(O,B){var U,z,j=O.tag,K=O.anchor,ae=[],he=!1;for(O.anchor!==null&&(O.anchorMap[O.anchor]=ae),z=O.input.charCodeAt(O.position);z!==0&&z===45&&y(O.input.charCodeAt(O.position+1));)if(he=!0,O.position++,V(O,!0,-1)&&O.lineIndent<=B)ae.push(null),z=O.input.charCodeAt(O.position);else if(U=O.line,ee(O,B,3,!1,!0),ae.push(O.result),V(O,!0,-1),z=O.input.charCodeAt(O.position),(O.line===U||O.lineIndent>B)&&z!==0)R(O,"bad indentation of a sequence entry");else if(O.lineIndentB?Z=1:O.lineIndent===B?Z=0:O.lineIndentB?Z=1:O.lineIndent===B?Z=0:O.lineIndentAe)&&(ee(X,Ae,4,!0,ue)&&(Gt?dn=X.result:Pn=X.result),Gt||(P(X,ze,ft,dt,dn,Pn,Ee,Me),dt=dn=Pn=null),V(X,!0,-1),Re=X.input.charCodeAt(X.position)),X.lineIndent>Ae&&Re!==0)R(X,"bad indentation of a mapping entry");else if(X.lineIndent=0))break;ue===0?R(X,"bad explicit indentation width of a block scalar; it cannot be less than one"):ut?R(X,"repeat of an indentation width identifier"):(ze=Ae+ue-1,ut=!0)}if(m(Ee)){do Ee=X.input.charCodeAt(++X.position);while(m(Ee));if(Ee===35)do Ee=X.input.charCodeAt(++X.position);while(!x(Ee)&&Ee!==0)}for(;Ee!==0;){for(N(X),X.lineIndent=0,Ee=X.input.charCodeAt(X.position);(!ut||X.lineIndentze&&(ze=X.lineIndent),x(Ee))ft++;else{if(X.lineIndent0){for(ue=Me,Ee=0;ue>0;ue--)(Me=C(Re=X.input.charCodeAt(++X.position)))>=0?Ee=(Ee<<4)+Me:R(X,"expected hexadecimal character");X.result+=T(Ee),X.position++}else R(X,"unknown escape sequence");Be=Ve=X.position}else x(Re)?(A(X,Be,Ve,!0),H(X,V(X,!1,Ae)),Be=Ve=X.position):X.position===X.lineStart&&$(X)?R(X,"unexpected end of the document within a double quoted scalar"):(X.position++,Ve=X.position)}R(X,"unexpected end of the stream within a double quoted scalar")}(O,J)?me=!0:function(X){var Ae,Be,Ve;if((Ve=X.input.charCodeAt(X.position))!==42)return!1;for(Ve=X.input.charCodeAt(++X.position),Ae=X.position;Ve!==0&&!y(Ve)&&!w(Ve);)Ve=X.input.charCodeAt(++X.position);return X.position===Ae&&R(X,"name of an alias node must contain at least one character"),Be=X.input.slice(Ae,X.position),X.anchorMap.hasOwnProperty(Be)||R(X,'unidentified alias "'+Be+'"'),X.result=X.anchorMap[Be],V(X,!0,-1),!0}(O)?(me=!0,O.tag===null&&O.anchor===null||R(O,"alias node should not have any properties")):function(X,Ae,Be){var Ve,ue,Ee,Me,Re,We,ut,ze,ft=X.kind,dt=X.result;if(y(ze=X.input.charCodeAt(X.position))||w(ze)||ze===35||ze===38||ze===42||ze===33||ze===124||ze===62||ze===39||ze===34||ze===37||ze===64||ze===96||(ze===63||ze===45)&&(y(Ve=X.input.charCodeAt(X.position+1))||Be&&w(Ve)))return!1;for(X.kind="scalar",X.result="",ue=Ee=X.position,Me=!1;ze!==0;){if(ze===58){if(y(Ve=X.input.charCodeAt(X.position+1))||Be&&w(Ve))break}else if(ze===35){if(y(X.input.charCodeAt(X.position-1)))break}else{if(X.position===X.lineStart&&$(X)||Be&&w(ze))break;if(x(ze)){if(Re=X.line,We=X.lineStart,ut=X.lineIndent,V(X,!1,-1),X.lineIndent>=Ae){Me=!0,ze=X.input.charCodeAt(X.position);continue}X.position=Ee,X.line=Re,X.lineStart=We,X.lineIndent=ut;break}}Me&&(A(X,ue,Ee,!1),H(X,X.line-Re),ue=Ee=X.position,Me=!1),m(ze)||(Ee=X.position+1),ze=X.input.charCodeAt(++X.position)}return A(X,ue,Ee,!1),!!X.result||(X.kind=ft,X.result=dt,!1)}(O,J,U===1)&&(me=!0,O.tag===null&&(O.tag="?")),O.anchor!==null&&(O.anchorMap[O.anchor]=O.result)):Z===0&&(me=he&&Y(O,ie))),O.tag!==null&&O.tag!=="!")if(O.tag==="?"){for(O.result!==null&&O.kind!=="scalar"&&R(O,'unacceptable node kind for ! tag; it should be "scalar", not "'+O.kind+'"'),ye=0,Te=O.implicitTypes.length;ye tag; it should be "'+q.kind+'", not "'+O.kind+'"'),q.resolve(O.result)?(O.result=q.construct(O.result),O.anchor!==null&&(O.anchorMap[O.anchor]=O.result)):R(O,"cannot resolve a node with !<"+O.tag+"> explicit tag")):R(O,"unknown tag !<"+O.tag+">");return O.listener!==null&&O.listener("close",O),O.tag!==null||O.anchor!==null||me}function de(O){var B,U,z,j,K=O.position,ae=!1;for(O.version=null,O.checkLineBreaks=O.legacy,O.tagMap={},O.anchorMap={};(j=O.input.charCodeAt(O.position))!==0&&(V(O,!0,-1),j=O.input.charCodeAt(O.position),!(O.lineIndent>0||j!==37));){for(ae=!0,j=O.input.charCodeAt(++O.position),B=O.position;j!==0&&!y(j);)j=O.input.charCodeAt(++O.position);for(z=[],(U=O.input.slice(B,O.position)).length<1&&R(O,"directive name must not be less than one character in length");j!==0;){for(;m(j);)j=O.input.charCodeAt(++O.position);if(j===35){do j=O.input.charCodeAt(++O.position);while(j!==0&&!x(j));break}if(x(j))break;for(B=O.position;j!==0&&!y(j);)j=O.input.charCodeAt(++O.position);z.push(O.input.slice(B,O.position))}j!==0&&N(O),f.call(L,U)?L[U](O,U,z):M(O,'unknown document directive "'+U+'"')}V(O,!0,-1),O.lineIndent===0&&O.input.charCodeAt(O.position)===45&&O.input.charCodeAt(O.position+1)===45&&O.input.charCodeAt(O.position+2)===45?(O.position+=3,V(O,!0,-1)):ae&&R(O,"directives end mark is expected"),ee(O,O.lineIndent-1,4,!1,!0),V(O,!0,-1),O.checkLineBreaks&&d.test(O.input.slice(K,O.position))&&M(O,"non-ASCII line breaks are interpreted as content"),O.documents.push(O.result),O.position===O.lineStart&&$(O)?O.input.charCodeAt(O.position)===46&&(O.position+=3,V(O,!0,-1)):O.position0&&`\0\r …\u2028\u2029`.indexOf(this.buffer.charAt(f-1))===-1;)if(f-=1,this.position-f>c/2-1){l=" ... ",f+=5;break}for(u="",d=this.position;dc/2-1){u=" ... ",d-=5;break}return h=this.buffer.slice(f,d),o.repeat(" ",s)+l+h+u+` `+o.repeat(" ",s+this.position-f+l.length)+"^"},a.prototype.toString=function(s){var c,l="";return this.name&&(l+='in "'+this.name+'" '),l+="at line "+(this.line+1)+", column "+(this.column+1),s||(c=this.getSnippet())&&(l+=`: `+c),l},r.exports=a},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:str",{kind:"scalar",construct:function(a){return a!==null?a:""}})},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(a){return a!==null?a:[]}})},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:map",{kind:"mapping",construct:function(a){return a!==null?a:{}}})},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(a){if(a===null)return!0;var s=a.length;return s===1&&a==="~"||s===4&&(a==="null"||a==="Null"||a==="NULL")},construct:function(){return null},predicate:function(a){return a===null},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(a){if(a===null)return!1;var s=a.length;return s===4&&(a==="true"||a==="True"||a==="TRUE")||s===5&&(a==="false"||a==="False"||a==="FALSE")},construct:function(a){return a==="true"||a==="True"||a==="TRUE"},predicate:function(a){return Object.prototype.toString.call(a)==="[object Boolean]"},represent:{lowercase:function(a){return a?"true":"false"},uppercase:function(a){return a?"TRUE":"FALSE"},camelcase:function(a){return a?"True":"False"}},defaultStyle:"lowercase"})},function(r,n,i){var o=i(38),a=i(10);function s(l){return 48<=l&&l<=55}function c(l){return 48<=l&&l<=57}r.exports=new a("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(l){if(l===null)return!1;var f,u,d=l.length,h=0,g=!1;if(!d)return!1;if((f=l[h])!=="-"&&f!=="+"||(f=l[++h]),f==="0"){if(h+1===d)return!0;if((f=l[++h])==="b"){for(h++;h=0?"0b"+l.toString(2):"-0b"+l.toString(2).slice(1)},octal:function(l){return l>=0?"0"+l.toString(8):"-0"+l.toString(8).slice(1)},decimal:function(l){return l.toString(10)},hexadecimal:function(l){return l>=0?"0x"+l.toString(16).toUpperCase():"-0x"+l.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(r,n,i){var o=i(38),a=i(10),s=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),c=/^[-+]?[0-9]+e/;r.exports=new a("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(l){return l!==null&&!(!s.test(l)||l[l.length-1]==="_")},construct:function(l){var f,u,d,h;return u=(f=l.replace(/_/g,"").toLowerCase())[0]==="-"?-1:1,h=[],"+-".indexOf(f[0])>=0&&(f=f.slice(1)),f===".inf"?u===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:f===".nan"?NaN:f.indexOf(":")>=0?(f.split(":").forEach(function(g){h.unshift(parseFloat(g,10))}),f=0,d=1,h.forEach(function(g){f+=g*d,d*=60}),u*f):u*parseFloat(f,10)},predicate:function(l){return Object.prototype.toString.call(l)==="[object Number]"&&(l%1!=0||o.isNegativeZero(l))},represent:function(l,f){var u;if(isNaN(l))switch(f){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===l)switch(f){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===l)switch(f){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(o.isNegativeZero(l))return"-0.0";return u=l.toString(10),c.test(u)?u.replace("e",".e"):u},defaultStyle:"lowercase"})},function(r,n,i){var o=i(10),a=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");r.exports=new o("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(c){return c!==null&&(a.exec(c)!==null||s.exec(c)!==null)},construct:function(c){var l,f,u,d,h,g,p,v,x=0,m=null;if((l=a.exec(c))===null&&(l=s.exec(c)),l===null)throw new Error("Date resolve error");if(f=+l[1],u=+l[2]-1,d=+l[3],!l[4])return new Date(Date.UTC(f,u,d));if(h=+l[4],g=+l[5],p=+l[6],l[7]){for(x=l[7].slice(0,3);x.length<3;)x+="0";x=+x}return l[9]&&(m=6e4*(60*+l[10]+ +(l[11]||0)),l[9]==="-"&&(m=-m)),v=new Date(Date.UTC(f,u,d,h,g,p,x)),m&&v.setTime(v.getTime()-m),v},instanceOf:Date,represent:function(c){return c.toISOString()}})},function(r,n,i){var o=i(10);r.exports=new o("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(a){return a==="<<"||a===null}})},function(r,n,i){var o;try{o=i(145).Buffer}catch{}var a=i(10),s=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= \r`;r.exports=new a("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(c){if(c===null)return!1;var l,f,u=0,d=c.length,h=s;for(f=0;f64)){if(l<0)return!1;u+=6}return u%8==0},construct:function(c){var l,f,u=c.replace(/[\r\n=]/g,""),d=u.length,h=s,g=0,p=[];for(l=0;l>16&255),p.push(g>>8&255),p.push(255&g)),g=g<<6|h.indexOf(u.charAt(l));return(f=d%4*6)===0?(p.push(g>>16&255),p.push(g>>8&255),p.push(255&g)):f===18?(p.push(g>>10&255),p.push(g>>2&255)):f===12&&p.push(g>>4&255),o?o.from?o.from(p):new o(p):p},predicate:function(c){return o&&o.isBuffer(c)},represent:function(c){var l,f,u="",d=0,h=c.length,g=s;for(l=0;l>18&63],u+=g[d>>12&63],u+=g[d>>6&63],u+=g[63&d]),d=(d<<8)+c[l];return(f=h%3)===0?(u+=g[d>>18&63],u+=g[d>>12&63],u+=g[d>>6&63],u+=g[63&d]):f===2?(u+=g[d>>10&63],u+=g[d>>4&63],u+=g[d<<2&63],u+=g[64]):f===1&&(u+=g[d>>2&63],u+=g[d<<4&63],u+=g[64],u+=g[64]),u}})},function(r,n,i){var o=i(10),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;r.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(c){if(c===null)return!0;var l,f,u,d,h,g=[],p=c;for(l=0,f=p.length;l3||s[s.length-l.length-1]!=="/"))},construct:function(a){var s=a,c=/\/([gim]*)$/.exec(a),l="";return s[0]==="/"&&(c&&(l=c[1]),s=s.slice(1,s.length-l.length-1)),new RegExp(s,l)},predicate:function(a){return Object.prototype.toString.call(a)==="[object RegExp]"},represent:function(a){var s="/"+a.source+"/";return a.global&&(s+="g"),a.multiline&&(s+="m"),a.ignoreCase&&(s+="i"),s}})},function(r,n,i){var o;try{o=i(302)}catch{typeof window<"u"&&(o=window.esprima)}var a=i(10);r.exports=new a("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(s){if(s===null)return!1;try{var c="("+s+")",l=o.parse(c,{range:!0});return l.type==="Program"&&l.body.length===1&&l.body[0].type==="ExpressionStatement"&&(l.body[0].expression.type==="ArrowFunctionExpression"||l.body[0].expression.type==="FunctionExpression")}catch{return!1}},construct:function(s){var c,l="("+s+")",f=o.parse(l,{range:!0}),u=[];if(f.type!=="Program"||f.body.length!==1||f.body[0].type!=="ExpressionStatement"||f.body[0].expression.type!=="ArrowFunctionExpression"&&f.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return f.body[0].expression.params.forEach(function(d){u.push(d.name)}),c=f.body[0].expression.body.range,f.body[0].expression.body.type==="BlockStatement"?new Function(u,l.slice(c[0]+1,c[1]-1)):new Function(u,"return "+l.slice(c[0],c[1]))},predicate:function(s){return Object.prototype.toString.call(s)==="[object Function]"},represent:function(s){return s.toString()}})},function(r,n,i){var o;o=function(){return function(a){var s={};function c(l){if(s[l])return s[l].exports;var f=s[l]={exports:{},id:l,loaded:!1};return a[l].call(f.exports,f,f.exports,c),f.loaded=!0,f.exports}return c.m=a,c.c=s,c.p="",c(0)}([function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(1),f=c(3),u=c(8),d=c(15);function h(p,v,x){var m=null,y=function(D,b){x&&x(D,b),m&&m.visit(D,b)},w=typeof x=="function"?y:null,C=!1;if(v){C=typeof v.comment=="boolean"&&v.comment;var S=typeof v.attachComment=="boolean"&&v.attachComment;(C||S)&&((m=new l.CommentHandler).attach=S,v.comment=!0,w=y)}var T,_=!1;v&&typeof v.sourceType=="string"&&(_=v.sourceType==="module"),T=v&&typeof v.jsx=="boolean"&&v.jsx?new f.JSXParser(p,v,w):new u.Parser(p,v,w);var E=_?T.parseModule():T.parseScript();return C&&m&&(E.comments=m.comments),T.config.tokens&&(E.tokens=T.tokens),T.config.tolerant&&(E.errors=T.errorHandler.errors),E}s.parse=h,s.parseModule=function(p,v,x){var m=v||{};return m.sourceType="module",h(p,m,x)},s.parseScript=function(p,v,x){var m=v||{};return m.sourceType="script",h(p,m,x)},s.tokenize=function(p,v,x){var m,y=new d.Tokenizer(p,v);m=[];try{for(;;){var w=y.getNextToken();if(!w)break;x&&(w=x(w)),m.push(w)}}catch(C){y.errorHandler.tolerate(C)}return y.errorHandler.tolerant&&(m.errors=y.errors()),m};var g=c(2);s.Syntax=g.Syntax,s.version="4.0.1"},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(2),f=function(){function u(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return u.prototype.insertInnerComments=function(d,h){if(d.type===l.Syntax.BlockStatement&&d.body.length===0){for(var g=[],p=this.leading.length-1;p>=0;--p){var v=this.leading[p];h.end.offset>=v.start&&(g.unshift(v.comment),this.leading.splice(p,1),this.trailing.splice(p,1))}g.length&&(d.innerComments=g)}},u.prototype.findTrailingComments=function(d){var h=[];if(this.trailing.length>0){for(var g=this.trailing.length-1;g>=0;--g){var p=this.trailing[g];p.start>=d.end.offset&&h.unshift(p.comment)}return this.trailing.length=0,h}var v=this.stack[this.stack.length-1];if(v&&v.node.trailingComments){var x=v.node.trailingComments[0];x&&x.range[0]>=d.end.offset&&(h=v.node.trailingComments,delete v.node.trailingComments)}return h},u.prototype.findLeadingComments=function(d){for(var h,g=[];this.stack.length>0&&(x=this.stack[this.stack.length-1])&&x.start>=d.start.offset;)h=x.node,this.stack.pop();if(h){for(var p=(h.leadingComments?h.leadingComments.length:0)-1;p>=0;--p){var v=h.leadingComments[p];v.range[1]<=d.start.offset&&(g.unshift(v),h.leadingComments.splice(p,1))}return h.leadingComments&&h.leadingComments.length===0&&delete h.leadingComments,g}for(p=this.leading.length-1;p>=0;--p){var x;(x=this.leading[p]).start<=d.start.offset&&(g.unshift(x.comment),this.leading.splice(p,1))}return g},u.prototype.visitNode=function(d,h){if(!(d.type===l.Syntax.Program&&d.body.length>0)){this.insertInnerComments(d,h);var g=this.findTrailingComments(h),p=this.findLeadingComments(h);p.length>0&&(d.leadingComments=p),g.length>0&&(d.trailingComments=g),this.stack.push({node:d,start:h.start.offset})}},u.prototype.visitComment=function(d,h){var g=d.type[0]==="L"?"Line":"Block",p={type:g,value:d.value};if(d.range&&(p.range=d.range),d.loc&&(p.loc=d.loc),this.comments.push(p),this.attach){var v={comment:{type:g,value:d.value,range:[h.start.offset,h.end.offset]},start:h.start.offset};d.loc&&(v.comment.loc=d.loc),d.type=g,this.leading.push(v),this.trailing.push(v)}},u.prototype.visit=function(d,h){d.type==="LineComment"||d.type==="BlockComment"?this.visitComment(d,h):this.attach&&this.visitNode(d,h)},u}();s.CommentHandler=f},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(a,s,c){var l,f=this&&this.__extends||(l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(w,C){w.__proto__=C}||function(w,C){for(var S in C)C.hasOwnProperty(S)&&(w[S]=C[S])},function(w,C){function S(){this.constructor=w}l(w,C),w.prototype=C===null?Object.create(C):(S.prototype=C.prototype,new S)});Object.defineProperty(s,"__esModule",{value:!0});var u=c(4),d=c(5),h=c(6),g=c(7),p=c(8),v=c(13),x=c(14);function m(w){var C;switch(w.type){case h.JSXSyntax.JSXIdentifier:C=w.name;break;case h.JSXSyntax.JSXNamespacedName:var S=w;C=m(S.namespace)+":"+m(S.name);break;case h.JSXSyntax.JSXMemberExpression:var T=w;C=m(T.object)+"."+m(T.property)}return C}v.TokenName[100]="JSXIdentifier",v.TokenName[101]="JSXText";var y=function(w){function C(S,T,_){return w.call(this,S,T,_)||this}return f(C,w),C.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():w.prototype.parsePrimaryExpression.call(this)},C.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.line,this.scanner.lineStart=this.startMarker.index-this.startMarker.column},C.prototype.finishJSX=function(){this.nextToken()},C.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},C.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},C.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},C.prototype.scanXHTMLEntity=function(S){for(var T="&",_=!0,E=!1,D=!1,b=!1;!this.scanner.eof()&&_&&!E;){var I=this.scanner.source[this.scanner.index];if(I===S)break;if(E=I===";",T+=I,++this.scanner.index,!E)switch(T.length){case 2:D=I==="#";break;case 3:D&&(_=(b=I==="x")||u.Character.isDecimalDigit(I.charCodeAt(0)),D=D&&!b);break;default:_=(_=_&&!(D&&!u.Character.isDecimalDigit(I.charCodeAt(0))))&&!(b&&!u.Character.isHexDigit(I.charCodeAt(0)))}}if(_&&E&&T.length>2){var R=T.substr(1,T.length-2);D&&R.length>1?T=String.fromCharCode(parseInt(R.substr(1),10)):b&&R.length>2?T=String.fromCharCode(parseInt("0"+R.substr(1),16)):D||b||!x.XHTMLEntities[R]||(T=x.XHTMLEntities[R])}return T},C.prototype.lexJSX=function(){var S=this.scanner.source.charCodeAt(this.scanner.index);if(S===60||S===62||S===47||S===58||S===61||S===123||S===125)return{type:7,value:I=this.scanner.source[this.scanner.index++],lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index};if(S===34||S===39){for(var T=this.scanner.index,_=this.scanner.source[this.scanner.index++],E="";!this.scanner.eof()&&(R=this.scanner.source[this.scanner.index++])!==_;)E+=R==="&"?this.scanXHTMLEntity(_):R;return{type:8,value:E,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:T,end:this.scanner.index}}if(S===46){var D=this.scanner.source.charCodeAt(this.scanner.index+1),b=this.scanner.source.charCodeAt(this.scanner.index+2),I=D===46&&b===46?"...":".";return T=this.scanner.index,this.scanner.index+=I.length,{type:7,value:I,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:T,end:this.scanner.index}}if(S===96)return{type:10,value:"",lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(u.Character.isIdentifierStart(S)&&S!==92){for(T=this.scanner.index,++this.scanner.index;!this.scanner.eof();){var R=this.scanner.source.charCodeAt(this.scanner.index);if(u.Character.isIdentifierPart(R)&&R!==92)++this.scanner.index;else{if(R!==45)break;++this.scanner.index}}return{type:100,value:this.scanner.source.slice(T,this.scanner.index),lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:T,end:this.scanner.index}}return this.scanner.lex()},C.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;var S=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(S)),S},C.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart;for(var S=this.scanner.index,T="";!this.scanner.eof();){var _=this.scanner.source[this.scanner.index];if(_==="{"||_==="<")break;++this.scanner.index,T+=_,u.Character.isLineTerminator(_.charCodeAt(0))&&(++this.scanner.lineNumber,_==="\r"&&this.scanner.source[this.scanner.index]===` -`&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart;var E={type:101,value:T,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:S,end:this.scanner.index};return T.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(E)),E},C.prototype.peekJSXToken=function(){var S=this.scanner.saveState();this.scanner.scanComments();var T=this.lexJSX();return this.scanner.restoreState(S),T},C.prototype.expectJSX=function(S){var T=this.nextJSXToken();T.type===7&&T.value===S||this.throwUnexpectedToken(T)},C.prototype.matchJSX=function(S){var T=this.peekJSXToken();return T.type===7&&T.value===S},C.prototype.parseJSXIdentifier=function(){var S=this.createJSXNode(),T=this.nextJSXToken();return T.type!==100&&this.throwUnexpectedToken(T),this.finalize(S,new d.JSXIdentifier(T.value))},C.prototype.parseJSXElementName=function(){var S=this.createJSXNode(),T=this.parseJSXIdentifier();if(this.matchJSX(":")){var _=T;this.expectJSX(":");var E=this.parseJSXIdentifier();T=this.finalize(S,new d.JSXNamespacedName(_,E))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var D=T;this.expectJSX(".");var b=this.parseJSXIdentifier();T=this.finalize(S,new d.JSXMemberExpression(D,b))}return T},C.prototype.parseJSXAttributeName=function(){var S,T=this.createJSXNode(),_=this.parseJSXIdentifier();if(this.matchJSX(":")){var E=_;this.expectJSX(":");var D=this.parseJSXIdentifier();S=this.finalize(T,new d.JSXNamespacedName(E,D))}else S=_;return S},C.prototype.parseJSXStringLiteralAttribute=function(){var S=this.createJSXNode(),T=this.nextJSXToken();T.type!==8&&this.throwUnexpectedToken(T);var _=this.getTokenRaw(T);return this.finalize(S,new g.Literal(T.value,_))},C.prototype.parseJSXExpressionAttribute=function(){var S=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var T=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(S,new d.JSXExpressionContainer(T))},C.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},C.prototype.parseJSXNameValueAttribute=function(){var S=this.createJSXNode(),T=this.parseJSXAttributeName(),_=null;return this.matchJSX("=")&&(this.expectJSX("="),_=this.parseJSXAttributeValue()),this.finalize(S,new d.JSXAttribute(T,_))},C.prototype.parseJSXSpreadAttribute=function(){var S=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var T=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(S,new d.JSXSpreadAttribute(T))},C.prototype.parseJSXAttributes=function(){for(var S=[];!this.matchJSX("/")&&!this.matchJSX(">");){var T=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();S.push(T)}return S},C.prototype.parseJSXOpeningElement=function(){var S=this.createJSXNode();this.expectJSX("<");var T=this.parseJSXElementName(),_=this.parseJSXAttributes(),E=this.matchJSX("/");return E&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(S,new d.JSXOpeningElement(T,E,_))},C.prototype.parseJSXBoundaryElement=function(){var S=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var T=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(S,new d.JSXClosingElement(T))}var _=this.parseJSXElementName(),E=this.parseJSXAttributes(),D=this.matchJSX("/");return D&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(S,new d.JSXOpeningElement(_,D,E))},C.prototype.parseJSXEmptyExpression=function(){var S=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(S,new d.JSXEmptyExpression)},C.prototype.parseJSXExpressionContainer=function(){var S,T=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(S=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),S=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(T,new d.JSXExpressionContainer(S))},C.prototype.parseJSXChildren=function(){for(var S=[];!this.scanner.eof();){var T=this.createJSXChildNode(),_=this.nextJSXText();if(_.start<_.end){var E=this.getTokenRaw(_),D=this.finalize(T,new d.JSXText(_.value,E));S.push(D)}if(this.scanner.source[this.scanner.index]!=="{")break;var b=this.parseJSXExpressionContainer();S.push(b)}return S},C.prototype.parseComplexJSXElement=function(S){for(var T=[];!this.scanner.eof();){S.children=S.children.concat(this.parseJSXChildren());var _=this.createJSXChildNode(),E=this.parseJSXBoundaryElement();if(E.type===h.JSXSyntax.JSXOpeningElement){var D=E;if(D.selfClosing){var b=this.finalize(_,new d.JSXElement(D,[],null));S.children.push(b)}else T.push(S),S={node:_,opening:D,closing:null,children:[]}}if(E.type===h.JSXSyntax.JSXClosingElement){S.closing=E;var I=m(S.opening.name);if(I!==m(S.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",I),!(T.length>0))break;b=this.finalize(S.node,new d.JSXElement(S.opening,S.children,S.closing)),(S=T[T.length-1]).children.push(b),T.pop()}}return S},C.prototype.parseJSXElement=function(){var S=this.createJSXNode(),T=this.parseJSXOpeningElement(),_=[],E=null;if(!T.selfClosing){var D=this.parseComplexJSXElement({node:S,opening:T,closing:E,children:_});_=D.children,E=D.closing}return this.finalize(S,new d.JSXElement(T,_,E))},C.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var S=this.parseJSXElement();return this.finishJSX(),S},C.prototype.isStartOfExpression=function(){return w.prototype.isStartOfExpression.call(this)||this.match("<")},C}(p.Parser);s.JSXParser=y},function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var c={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};s.Character={fromCodePoint:function(l){return l<65536?String.fromCharCode(l):String.fromCharCode(55296+(l-65536>>10))+String.fromCharCode(56320+(l-65536&1023))},isWhiteSpace:function(l){return l===32||l===9||l===11||l===12||l===160||l>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(l)>=0},isLineTerminator:function(l){return l===10||l===13||l===8232||l===8233},isIdentifierStart:function(l){return l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l===92||l>=128&&c.NonAsciiIdentifierStart.test(s.Character.fromCodePoint(l))},isIdentifierPart:function(l){return l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l>=48&&l<=57||l===92||l>=128&&c.NonAsciiIdentifierPart.test(s.Character.fromCodePoint(l))},isDecimalDigit:function(l){return l>=48&&l<=57},isHexDigit:function(l){return l>=48&&l<=57||l>=65&&l<=70||l>=97&&l<=102},isOctalDigit:function(l){return l>=48&&l<=55}}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(6),f=function(C){this.type=l.JSXSyntax.JSXClosingElement,this.name=C};s.JSXClosingElement=f;var u=function(C,S,T){this.type=l.JSXSyntax.JSXElement,this.openingElement=C,this.children=S,this.closingElement=T};s.JSXElement=u;var d=function(){this.type=l.JSXSyntax.JSXEmptyExpression};s.JSXEmptyExpression=d;var h=function(C){this.type=l.JSXSyntax.JSXExpressionContainer,this.expression=C};s.JSXExpressionContainer=h;var g=function(C){this.type=l.JSXSyntax.JSXIdentifier,this.name=C};s.JSXIdentifier=g;var p=function(C,S){this.type=l.JSXSyntax.JSXMemberExpression,this.object=C,this.property=S};s.JSXMemberExpression=p;var v=function(C,S){this.type=l.JSXSyntax.JSXAttribute,this.name=C,this.value=S};s.JSXAttribute=v;var x=function(C,S){this.type=l.JSXSyntax.JSXNamespacedName,this.namespace=C,this.name=S};s.JSXNamespacedName=x;var m=function(C,S,T){this.type=l.JSXSyntax.JSXOpeningElement,this.name=C,this.selfClosing=S,this.attributes=T};s.JSXOpeningElement=m;var y=function(C){this.type=l.JSXSyntax.JSXSpreadAttribute,this.argument=C};s.JSXSpreadAttribute=y;var w=function(C,S){this.type=l.JSXSyntax.JSXText,this.value=C,this.raw=S};s.JSXText=w},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(2),f=function(we){this.type=l.Syntax.ArrayExpression,this.elements=we};s.ArrayExpression=f;var u=function(we){this.type=l.Syntax.ArrayPattern,this.elements=we};s.ArrayPattern=u;var d=function(we,Le,gt){this.type=l.Syntax.ArrowFunctionExpression,this.id=null,this.params=we,this.body=Le,this.generator=!1,this.expression=gt,this.async=!1};s.ArrowFunctionExpression=d;var h=function(we,Le,gt){this.type=l.Syntax.AssignmentExpression,this.operator=we,this.left=Le,this.right=gt};s.AssignmentExpression=h;var g=function(we,Le){this.type=l.Syntax.AssignmentPattern,this.left=we,this.right=Le};s.AssignmentPattern=g;var p=function(we,Le,gt){this.type=l.Syntax.ArrowFunctionExpression,this.id=null,this.params=we,this.body=Le,this.generator=!1,this.expression=gt,this.async=!0};s.AsyncArrowFunctionExpression=p;var v=function(we,Le,gt){this.type=l.Syntax.FunctionDeclaration,this.id=we,this.params=Le,this.body=gt,this.generator=!1,this.expression=!1,this.async=!0};s.AsyncFunctionDeclaration=v;var x=function(we,Le,gt){this.type=l.Syntax.FunctionExpression,this.id=we,this.params=Le,this.body=gt,this.generator=!1,this.expression=!1,this.async=!0};s.AsyncFunctionExpression=x;var m=function(we){this.type=l.Syntax.AwaitExpression,this.argument=we};s.AwaitExpression=m;var y=function(we,Le,gt){var Sr=we==="||"||we==="&&";this.type=Sr?l.Syntax.LogicalExpression:l.Syntax.BinaryExpression,this.operator=we,this.left=Le,this.right=gt};s.BinaryExpression=y;var w=function(we){this.type=l.Syntax.BlockStatement,this.body=we};s.BlockStatement=w;var C=function(we){this.type=l.Syntax.BreakStatement,this.label=we};s.BreakStatement=C;var S=function(we,Le){this.type=l.Syntax.CallExpression,this.callee=we,this.arguments=Le};s.CallExpression=S;var T=function(we,Le){this.type=l.Syntax.CatchClause,this.param=we,this.body=Le};s.CatchClause=T;var _=function(we){this.type=l.Syntax.ClassBody,this.body=we};s.ClassBody=_;var E=function(we,Le,gt){this.type=l.Syntax.ClassDeclaration,this.id=we,this.superClass=Le,this.body=gt};s.ClassDeclaration=E;var D=function(we,Le,gt){this.type=l.Syntax.ClassExpression,this.id=we,this.superClass=Le,this.body=gt};s.ClassExpression=D;var b=function(we,Le){this.type=l.Syntax.MemberExpression,this.computed=!0,this.object=we,this.property=Le};s.ComputedMemberExpression=b;var I=function(we,Le,gt){this.type=l.Syntax.ConditionalExpression,this.test=we,this.consequent=Le,this.alternate=gt};s.ConditionalExpression=I;var R=function(we){this.type=l.Syntax.ContinueStatement,this.label=we};s.ContinueStatement=R;var M=function(){this.type=l.Syntax.DebuggerStatement};s.DebuggerStatement=M;var L=function(we,Le){this.type=l.Syntax.ExpressionStatement,this.expression=we,this.directive=Le};s.Directive=L;var A=function(we,Le){this.type=l.Syntax.DoWhileStatement,this.body=we,this.test=Le};s.DoWhileStatement=A;var G=function(){this.type=l.Syntax.EmptyStatement};s.EmptyStatement=G;var P=function(we){this.type=l.Syntax.ExportAllDeclaration,this.source=we};s.ExportAllDeclaration=P;var N=function(we){this.type=l.Syntax.ExportDefaultDeclaration,this.declaration=we};s.ExportDefaultDeclaration=N;var V=function(we,Le,gt){this.type=l.Syntax.ExportNamedDeclaration,this.declaration=we,this.specifiers=Le,this.source=gt};s.ExportNamedDeclaration=V;var $=function(we,Le){this.type=l.Syntax.ExportSpecifier,this.exported=Le,this.local=we};s.ExportSpecifier=$;var j=function(we){this.type=l.Syntax.ExpressionStatement,this.expression=we};s.ExpressionStatement=j;var Y=function(we,Le,gt){this.type=l.Syntax.ForInStatement,this.left=we,this.right=Le,this.body=gt,this.each=!1};s.ForInStatement=Y;var te=function(we,Le,gt){this.type=l.Syntax.ForOfStatement,this.left=we,this.right=Le,this.body=gt};s.ForOfStatement=te;var Q=function(we,Le,gt,Sr){this.type=l.Syntax.ForStatement,this.init=we,this.test=Le,this.update=gt,this.body=Sr};s.ForStatement=Q;var re=function(we,Le,gt,Sr){this.type=l.Syntax.FunctionDeclaration,this.id=we,this.params=Le,this.body=gt,this.generator=Sr,this.expression=!1,this.async=!1};s.FunctionDeclaration=re;var de=function(we,Le,gt,Sr){this.type=l.Syntax.FunctionExpression,this.id=we,this.params=Le,this.body=gt,this.generator=Sr,this.expression=!1,this.async=!1};s.FunctionExpression=de;var fe=function(we){this.type=l.Syntax.Identifier,this.name=we};s.Identifier=fe;var se=function(we,Le,gt){this.type=l.Syntax.IfStatement,this.test=we,this.consequent=Le,this.alternate=gt};s.IfStatement=se;var k=function(we,Le){this.type=l.Syntax.ImportDeclaration,this.specifiers=we,this.source=Le};s.ImportDeclaration=k;var O=function(we){this.type=l.Syntax.ImportDefaultSpecifier,this.local=we};s.ImportDefaultSpecifier=O;var B=function(we){this.type=l.Syntax.ImportNamespaceSpecifier,this.local=we};s.ImportNamespaceSpecifier=B;var U=function(we,Le){this.type=l.Syntax.ImportSpecifier,this.local=we,this.imported=Le};s.ImportSpecifier=U;var z=function(we,Le){this.type=l.Syntax.LabeledStatement,this.label=we,this.body=Le};s.LabeledStatement=z;var H=function(we,Le){this.type=l.Syntax.Literal,this.value=we,this.raw=Le};s.Literal=H;var K=function(we,Le){this.type=l.Syntax.MetaProperty,this.meta=we,this.property=Le};s.MetaProperty=K;var ie=function(we,Le,gt,Sr,U0){this.type=l.Syntax.MethodDefinition,this.key=we,this.computed=Le,this.value=gt,this.kind=Sr,this.static=U0};s.MethodDefinition=ie;var he=function(we){this.type=l.Syntax.Program,this.body=we,this.sourceType="module"};s.Module=he;var ye=function(we,Le){this.type=l.Syntax.NewExpression,this.callee=we,this.arguments=Le};s.NewExpression=ye;var Ee=function(we){this.type=l.Syntax.ObjectExpression,this.properties=we};s.ObjectExpression=Ee;var X=function(we){this.type=l.Syntax.ObjectPattern,this.properties=we};s.ObjectPattern=X;var J=function(we,Le,gt,Sr,U0,Fh){this.type=l.Syntax.Property,this.key=Le,this.computed=gt,this.value=Sr,this.kind=we,this.method=U0,this.shorthand=Fh};s.Property=J;var oe=function(we,Le,gt,Sr){this.type=l.Syntax.Literal,this.value=we,this.raw=Le,this.regex={pattern:gt,flags:Sr}};s.RegexLiteral=oe;var Z=function(we){this.type=l.Syntax.RestElement,this.argument=we};s.RestElement=Z;var ee=function(we){this.type=l.Syntax.ReturnStatement,this.argument=we};s.ReturnStatement=ee;var ve=function(we){this.type=l.Syntax.Program,this.body=we,this.sourceType="script"};s.Script=ve;var q=function(we){this.type=l.Syntax.SequenceExpression,this.expressions=we};s.SequenceExpression=q;var Ae=function(we){this.type=l.Syntax.SpreadElement,this.argument=we};s.SpreadElement=Ae;var Be=function(we,Le){this.type=l.Syntax.MemberExpression,this.computed=!1,this.object=we,this.property=Le};s.StaticMemberExpression=Be;var ke=function(){this.type=l.Syntax.Super};s.Super=ke;var le=function(we,Le){this.type=l.Syntax.SwitchCase,this.test=we,this.consequent=Le};s.SwitchCase=le;var _e=function(we,Le){this.type=l.Syntax.SwitchStatement,this.discriminant=we,this.cases=Le};s.SwitchStatement=_e;var Me=function(we,Le){this.type=l.Syntax.TaggedTemplateExpression,this.tag=we,this.quasi=Le};s.TaggedTemplateExpression=Me;var Re=function(we,Le){this.type=l.Syntax.TemplateElement,this.value=we,this.tail=Le};s.TemplateElement=Re;var We=function(we,Le){this.type=l.Syntax.TemplateLiteral,this.quasis=we,this.expressions=Le};s.TemplateLiteral=We;var ut=function(){this.type=l.Syntax.ThisExpression};s.ThisExpression=ut;var ze=function(we){this.type=l.Syntax.ThrowStatement,this.argument=we};s.ThrowStatement=ze;var st=function(we,Le,gt){this.type=l.Syntax.TryStatement,this.block=we,this.handler=Le,this.finalizer=gt};s.TryStatement=st;var ht=function(we,Le){this.type=l.Syntax.UnaryExpression,this.operator=we,this.argument=Le,this.prefix=!0};s.UnaryExpression=ht;var Wt=function(we,Le,gt){this.type=l.Syntax.UpdateExpression,this.operator=we,this.argument=Le,this.prefix=gt};s.UpdateExpression=Wt;var Sn=function(we,Le){this.type=l.Syntax.VariableDeclaration,this.declarations=we,this.kind=Le};s.VariableDeclaration=Sn;var zt=function(we,Le){this.type=l.Syntax.VariableDeclarator,this.id=we,this.init=Le};s.VariableDeclarator=zt;var gr=function(we,Le){this.type=l.Syntax.WhileStatement,this.test=we,this.body=Le};s.WhileStatement=gr;var W2=function(we,Le){this.type=l.Syntax.WithStatement,this.object=we,this.body=Le};s.WithStatement=W2;var z2=function(we,Le){this.type=l.Syntax.YieldExpression,this.argument=we,this.delegate=Le};s.YieldExpression=z2},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(9),f=c(10),u=c(11),d=c(7),h=c(12),g=c(2),p=c(13),v=function(){function x(m,y,w){y===void 0&&(y={}),this.config={range:typeof y.range=="boolean"&&y.range,loc:typeof y.loc=="boolean"&&y.loc,source:null,tokens:typeof y.tokens=="boolean"&&y.tokens,comment:typeof y.comment=="boolean"&&y.comment,tolerant:typeof y.tolerant=="boolean"&&y.tolerant},this.config.loc&&y.source&&y.source!==null&&(this.config.source=String(y.source)),this.delegate=w,this.errorHandler=new f.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new h.Scanner(m,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return x.prototype.throwError=function(m){for(var y=[],w=1;w0&&this.delegate)for(var y=0;y>="||m===">>>="||m==="&="||m==="^="||m==="|="},x.prototype.isolateCoverGrammar=function(m){var y=this.context.isBindingElement,w=this.context.isAssignmentTarget,C=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var S=m.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=y,this.context.isAssignmentTarget=w,this.context.firstCoverInitializedNameError=C,S},x.prototype.inheritCoverGrammar=function(m){var y=this.context.isBindingElement,w=this.context.isAssignmentTarget,C=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var S=m.call(this);return this.context.isBindingElement=this.context.isBindingElement&&y,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&w,this.context.firstCoverInitializedNameError=C||this.context.firstCoverInitializedNameError,S},x.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===2||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},x.prototype.parsePrimaryExpression=function(){var m,y,w,C=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),m=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(C,new d.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,u.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(y.value,w));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(y.value==="true",w));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(null,w));break;case 10:m=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,m=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":m=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":m=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,y=this.nextRegexToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.RegexLiteral(y.regex,w,y.pattern,y.flags));break;default:m=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?m=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?m=this.finalize(C,new d.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?m=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),m=this.finalize(C,new d.ThisExpression)):m=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:m=this.throwUnexpectedToken(this.nextToken())}return m},x.prototype.parseSpreadElement=function(){var m=this.createNode();this.expect("...");var y=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(m,new d.SpreadElement(y))},x.prototype.parseArrayInitializer=function(){var m=this.createNode(),y=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),y.push(null);else if(this.match("...")){var w=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),y.push(w)}else y.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(m,new d.ArrayExpression(y))},x.prototype.parsePropertyMethod=function(m){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var y=this.context.strict,w=this.context.allowStrictDirective;this.context.allowStrictDirective=m.simple;var C=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&m.firstRestricted&&this.tolerateUnexpectedToken(m.firstRestricted,m.message),this.context.strict&&m.stricted&&this.tolerateUnexpectedToken(m.stricted,m.message),this.context.strict=y,this.context.allowStrictDirective=w,C},x.prototype.parsePropertyMethodFunction=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters(),C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parsePropertyMethodAsyncFunction=function(){var m=this.createNode(),y=this.context.allowYield,w=this.context.await;this.context.allowYield=!1,this.context.await=!0;var C=this.parseFormalParameters(),S=this.parsePropertyMethod(C);return this.context.allowYield=y,this.context.await=w,this.finalize(m,new d.AsyncFunctionExpression(null,C.params,S))},x.prototype.parseObjectPropertyKey=function(){var m,y=this.createNode(),w=this.nextToken();switch(w.type){case 8:case 6:this.context.strict&&w.octal&&this.tolerateUnexpectedToken(w,u.Messages.StrictOctalLiteral);var C=this.getTokenRaw(w);m=this.finalize(y,new d.Literal(w.value,C));break;case 3:case 1:case 5:case 4:m=this.finalize(y,new d.Identifier(w.value));break;case 7:w.value==="["?(m=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):m=this.throwUnexpectedToken(w);break;default:m=this.throwUnexpectedToken(w)}return m},x.prototype.isPropertyKey=function(m,y){return m.type===g.Syntax.Identifier&&m.name===y||m.type===g.Syntax.Literal&&m.value===y},x.prototype.parseObjectProperty=function(m){var y,w=this.createNode(),C=this.lookahead,S=null,T=null,_=!1,E=!1,D=!1,b=!1;if(C.type===3){var I=C.value;this.nextToken(),_=this.match("["),S=(b=!(this.hasLineTerminator||I!=="async"||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(w,new d.Identifier(I))}else this.match("*")?this.nextToken():(_=this.match("["),S=this.parseObjectPropertyKey());var R=this.qualifiedPropertyName(this.lookahead);if(C.type===3&&!b&&C.value==="get"&&R)y="get",_=this.match("["),S=this.parseObjectPropertyKey(),this.context.allowYield=!1,T=this.parseGetterMethod();else if(C.type===3&&!b&&C.value==="set"&&R)y="set",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseSetterMethod();else if(C.type===7&&C.value==="*"&&R)y="init",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseGeneratorMethod(),E=!0;else if(S||this.throwUnexpectedToken(this.lookahead),y="init",this.match(":")&&!b)!_&&this.isPropertyKey(S,"__proto__")&&(m.value&&this.tolerateError(u.Messages.DuplicateProtoProperty),m.value=!0),this.nextToken(),T=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))T=b?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),E=!0;else if(C.type===3)if(I=this.finalize(w,new d.Identifier(C.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),D=!0;var M=this.isolateCoverGrammar(this.parseAssignmentExpression);T=this.finalize(w,new d.AssignmentPattern(I,M))}else D=!0,T=I;else this.throwUnexpectedToken(this.nextToken());return this.finalize(w,new d.Property(y,S,_,T,E,D))},x.prototype.parseObjectInitializer=function(){var m=this.createNode();this.expect("{");for(var y=[],w={value:!1};!this.match("}");)y.push(this.parseObjectProperty(w)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(m,new d.ObjectExpression(y))},x.prototype.parseTemplateHead=function(){l.assert(this.lookahead.head,"Template literal must start with a template head");var m=this.createNode(),y=this.nextToken(),w=y.value,C=y.cooked;return this.finalize(m,new d.TemplateElement({raw:w,cooked:C},y.tail))},x.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var m=this.createNode(),y=this.nextToken(),w=y.value,C=y.cooked;return this.finalize(m,new d.TemplateElement({raw:w,cooked:C},y.tail))},x.prototype.parseTemplateLiteral=function(){var m=this.createNode(),y=[],w=[],C=this.parseTemplateHead();for(w.push(C);!C.tail;)y.push(this.parseExpression()),C=this.parseTemplateElement(),w.push(C);return this.finalize(m,new d.TemplateLiteral(w,y))},x.prototype.reinterpretExpressionAsPattern=function(m){switch(m.type){case g.Syntax.Identifier:case g.Syntax.MemberExpression:case g.Syntax.RestElement:case g.Syntax.AssignmentPattern:break;case g.Syntax.SpreadElement:m.type=g.Syntax.RestElement,this.reinterpretExpressionAsPattern(m.argument);break;case g.Syntax.ArrayExpression:m.type=g.Syntax.ArrayPattern;for(var y=0;y")||this.expect("=>"),m={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var y=this.lookahead,w=[];if(this.match("..."))m=this.parseRestElement(w),this.expect(")"),this.match("=>")||this.expect("=>"),m={type:"ArrowParameterPlaceHolder",params:[m],async:!1};else{var C=!1;if(this.context.isBindingElement=!0,m=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var S=[];for(this.context.isAssignmentTarget=!1,S.push(m);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var T=0;T")||this.expect("=>"),this.context.isBindingElement=!1,T=0;T")&&(m.type===g.Syntax.Identifier&&m.name==="yield"&&(C=!0,m={type:"ArrowParameterPlaceHolder",params:[m],async:!1}),!C)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),m.type===g.Syntax.SequenceExpression)for(T=0;T")){for(var E=0;E<_.length;++E)this.reinterpretExpressionAsPattern(_[E]);m={type:"ArrowParameterPlaceHolder",params:_,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),S=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),m=this.finalize(this.startNode(y),new d.ComputedMemberExpression(m,S));else{if(this.lookahead.type!==10||!this.lookahead.head)break;var D=this.parseTemplateLiteral();m=this.finalize(this.startNode(y),new d.TaggedTemplateExpression(m,D))}return this.context.allowIn=C,m},x.prototype.parseSuper=function(){var m=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(m,new d.Super)},x.prototype.parseLeftHandSideExpression=function(){l.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var m=this.startNode(this.lookahead),y=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var w=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),y=this.finalize(m,new d.ComputedMemberExpression(y,w))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),w=this.parseIdentifierName(),y=this.finalize(m,new d.StaticMemberExpression(y,w));else{if(this.lookahead.type!==10||!this.lookahead.head)break;var C=this.parseTemplateLiteral();y=this.finalize(m,new d.TaggedTemplateExpression(y,C))}return y},x.prototype.parseUpdateExpression=function(){var m,y=this.lookahead;if(this.match("++")||this.match("--")){var w=this.startNode(y),C=this.nextToken();m=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&m.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(m.name)&&this.tolerateError(u.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment);var S=!0;m=this.finalize(w,new d.UpdateExpression(C.value,m,S)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(m=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===7&&(this.match("++")||this.match("--"))){this.context.strict&&m.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(m.name)&&this.tolerateError(u.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var T=this.nextToken().value;S=!1,m=this.finalize(this.startNode(y),new d.UpdateExpression(T,m,S))}return m},x.prototype.parseAwaitExpression=function(){var m=this.createNode();this.nextToken();var y=this.parseUnaryExpression();return this.finalize(m,new d.AwaitExpression(y))},x.prototype.parseUnaryExpression=function(){var m;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var y=this.startNode(this.lookahead),w=this.nextToken();m=this.inheritCoverGrammar(this.parseUnaryExpression),m=this.finalize(y,new d.UnaryExpression(w.value,m)),this.context.strict&&m.operator==="delete"&&m.argument.type===g.Syntax.Identifier&&this.tolerateError(u.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else m=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return m},x.prototype.parseExponentiationExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseUnaryExpression);if(y.type!==g.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var w=y,C=this.isolateCoverGrammar(this.parseExponentiationExpression);y=this.finalize(this.startNode(m),new d.BinaryExpression("**",w,C))}return y},x.prototype.binaryPrecedence=function(m){var y=m.value;return m.type===7?this.operatorPrecedence[y]||0:m.type===4&&(y==="instanceof"||this.context.allowIn&&y==="in")?7:0},x.prototype.parseBinaryExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseExponentiationExpression),w=this.lookahead,C=this.binaryPrecedence(w);if(C>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var S=[m,this.lookahead],T=y,_=this.isolateCoverGrammar(this.parseExponentiationExpression),E=[T,w.value,_],D=[C];!((C=this.binaryPrecedence(this.lookahead))<=0);){for(;E.length>2&&C<=D[D.length-1];){_=E.pop();var b=E.pop();D.pop(),T=E.pop(),S.pop();var I=this.startNode(S[S.length-1]);E.push(this.finalize(I,new d.BinaryExpression(b,T,_)))}E.push(this.nextToken().value),D.push(C),S.push(this.lookahead),E.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var R=E.length-1;y=E[R];for(var M=S.pop();R>1;){var L=S.pop(),A=M&&M.lineStart;I=this.startNode(L,A),b=E[R-1],y=this.finalize(I,new d.BinaryExpression(b,E[R-2],y)),R-=2,M=L}}return y},x.prototype.parseConditionalExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var w=this.context.allowIn;this.context.allowIn=!0;var C=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=w,this.expect(":");var S=this.isolateCoverGrammar(this.parseAssignmentExpression);y=this.finalize(this.startNode(m),new d.ConditionalExpression(y,C,S)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return y},x.prototype.checkPatternParam=function(m,y){switch(y.type){case g.Syntax.Identifier:this.validateParam(m,y,y.name);break;case g.Syntax.RestElement:this.checkPatternParam(m,y.argument);break;case g.Syntax.AssignmentPattern:this.checkPatternParam(m,y.left);break;case g.Syntax.ArrayPattern:for(var w=0;w")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var S=m.async,T=this.reinterpretAsCoverFormalsList(m);if(T){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var _=this.context.strict,E=this.context.allowStrictDirective;this.context.allowStrictDirective=T.simple;var D=this.context.allowYield,b=this.context.await;this.context.allowYield=!0,this.context.await=S;var I=this.startNode(y);this.expect("=>");var R=void 0;if(this.match("{")){var M=this.context.allowIn;this.context.allowIn=!0,R=this.parseFunctionSourceElements(),this.context.allowIn=M}else R=this.isolateCoverGrammar(this.parseAssignmentExpression);var L=R.type!==g.Syntax.BlockStatement;this.context.strict&&T.firstRestricted&&this.throwUnexpectedToken(T.firstRestricted,T.message),this.context.strict&&T.stricted&&this.tolerateUnexpectedToken(T.stricted,T.message),m=S?this.finalize(I,new d.AsyncArrowFunctionExpression(T.params,R,L)):this.finalize(I,new d.ArrowFunctionExpression(T.params,R,L)),this.context.strict=_,this.context.allowStrictDirective=E,this.context.allowYield=D,this.context.await=b}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment),this.context.strict&&m.type===g.Syntax.Identifier){var A=m;this.scanner.isRestrictedWord(A.name)&&this.tolerateUnexpectedToken(w,u.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(A.name)&&this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(m):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var G=(w=this.nextToken()).value,P=this.isolateCoverGrammar(this.parseAssignmentExpression);m=this.finalize(this.startNode(y),new d.AssignmentExpression(G,m,P)),this.context.firstCoverInitializedNameError=null}}return m},x.prototype.parseExpression=function(){var m=this.lookahead,y=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var w=[];for(w.push(y);this.lookahead.type!==2&&this.match(",");)this.nextToken(),w.push(this.isolateCoverGrammar(this.parseAssignmentExpression));y=this.finalize(this.startNode(m),new d.SequenceExpression(w))}return y},x.prototype.parseStatementListItem=function(){var m;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,u.Messages.IllegalExportDeclaration),m=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,u.Messages.IllegalImportDeclaration),m=this.parseImportDeclaration();break;case"const":m=this.parseLexicalDeclaration({inFor:!1});break;case"function":m=this.parseFunctionDeclaration();break;case"class":m=this.parseClassDeclaration();break;case"let":m=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:m=this.parseStatement()}else m=this.parseStatement();return m},x.prototype.parseBlock=function(){var m=this.createNode();this.expect("{");for(var y=[];!this.match("}");)y.push(this.parseStatementListItem());return this.expect("}"),this.finalize(m,new d.BlockStatement(y))},x.prototype.parseLexicalBinding=function(m,y){var w=this.createNode(),C=this.parsePattern([],m);this.context.strict&&C.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(C.name)&&this.tolerateError(u.Messages.StrictVarName);var S=null;return m==="const"?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),S=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(u.Messages.DeclarationMissingInitializer,"const")):(!y.inFor&&C.type!==g.Syntax.Identifier||this.match("="))&&(this.expect("="),S=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(w,new d.VariableDeclarator(C,S))},x.prototype.parseBindingList=function(m,y){for(var w=[this.parseLexicalBinding(m,y)];this.match(",");)this.nextToken(),w.push(this.parseLexicalBinding(m,y));return w},x.prototype.isLexicalDeclaration=function(){var m=this.scanner.saveState();this.scanner.scanComments();var y=this.scanner.lex();return this.scanner.restoreState(m),y.type===3||y.type===7&&y.value==="["||y.type===7&&y.value==="{"||y.type===4&&y.value==="let"||y.type===4&&y.value==="yield"},x.prototype.parseLexicalDeclaration=function(m){var y=this.createNode(),w=this.nextToken().value;l.assert(w==="let"||w==="const","Lexical declaration must be either let or const");var C=this.parseBindingList(w,m);return this.consumeSemicolon(),this.finalize(y,new d.VariableDeclaration(C,w))},x.prototype.parseBindingRestElement=function(m,y){var w=this.createNode();this.expect("...");var C=this.parsePattern(m,y);return this.finalize(w,new d.RestElement(C))},x.prototype.parseArrayPattern=function(m,y){var w=this.createNode();this.expect("[");for(var C=[];!this.match("]");)if(this.match(","))this.nextToken(),C.push(null);else{if(this.match("...")){C.push(this.parseBindingRestElement(m,y));break}C.push(this.parsePatternWithDefault(m,y)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(w,new d.ArrayPattern(C))},x.prototype.parsePropertyPattern=function(m,y){var w,C,S=this.createNode(),T=!1,_=!1;if(this.lookahead.type===3){var E=this.lookahead;w=this.parseVariableIdentifier();var D=this.finalize(S,new d.Identifier(E.value));if(this.match("=")){m.push(E),_=!0,this.nextToken();var b=this.parseAssignmentExpression();C=this.finalize(this.startNode(E),new d.AssignmentPattern(D,b))}else this.match(":")?(this.expect(":"),C=this.parsePatternWithDefault(m,y)):(m.push(E),_=!0,C=D)}else T=this.match("["),w=this.parseObjectPropertyKey(),this.expect(":"),C=this.parsePatternWithDefault(m,y);return this.finalize(S,new d.Property("init",w,T,C,!1,_))},x.prototype.parseObjectPattern=function(m,y){var w=this.createNode(),C=[];for(this.expect("{");!this.match("}");)C.push(this.parsePropertyPattern(m,y)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(w,new d.ObjectPattern(C))},x.prototype.parsePattern=function(m,y){var w;return this.match("[")?w=this.parseArrayPattern(m,y):this.match("{")?w=this.parseObjectPattern(m,y):(!this.matchKeyword("let")||y!=="const"&&y!=="let"||this.tolerateUnexpectedToken(this.lookahead,u.Messages.LetInLexicalBinding),m.push(this.lookahead),w=this.parseVariableIdentifier(y)),w},x.prototype.parsePatternWithDefault=function(m,y){var w=this.lookahead,C=this.parsePattern(m,y);if(this.match("=")){this.nextToken();var S=this.context.allowYield;this.context.allowYield=!0;var T=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=S,C=this.finalize(this.startNode(w),new d.AssignmentPattern(C,T))}return C},x.prototype.parseVariableIdentifier=function(m){var y=this.createNode(),w=this.nextToken();return w.type===4&&w.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(w):w.type!==3?this.context.strict&&w.type===4&&this.scanner.isStrictModeReservedWord(w.value)?this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord):(this.context.strict||w.value!=="let"||m!=="var")&&this.throwUnexpectedToken(w):(this.context.isModule||this.context.await)&&w.type===3&&w.value==="await"&&this.tolerateUnexpectedToken(w),this.finalize(y,new d.Identifier(w.value))},x.prototype.parseVariableDeclaration=function(m){var y=this.createNode(),w=this.parsePattern([],"var");this.context.strict&&w.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(w.name)&&this.tolerateError(u.Messages.StrictVarName);var C=null;return this.match("=")?(this.nextToken(),C=this.isolateCoverGrammar(this.parseAssignmentExpression)):w.type===g.Syntax.Identifier||m.inFor||this.expect("="),this.finalize(y,new d.VariableDeclarator(w,C))},x.prototype.parseVariableDeclarationList=function(m){var y={inFor:m.inFor},w=[];for(w.push(this.parseVariableDeclaration(y));this.match(",");)this.nextToken(),w.push(this.parseVariableDeclaration(y));return w},x.prototype.parseVariableStatement=function(){var m=this.createNode();this.expectKeyword("var");var y=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(m,new d.VariableDeclaration(y,"var"))},x.prototype.parseEmptyStatement=function(){var m=this.createNode();return this.expect(";"),this.finalize(m,new d.EmptyStatement)},x.prototype.parseExpressionStatement=function(){var m=this.createNode(),y=this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ExpressionStatement(y))},x.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(u.Messages.StrictFunction),this.parseStatement()},x.prototype.parseIfStatement=function(){var m,y=this.createNode(),w=null;this.expectKeyword("if"),this.expect("(");var C=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement)):(this.expect(")"),m=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),w=this.parseIfClause())),this.finalize(y,new d.IfStatement(C,m,w))},x.prototype.parseDoWhileStatement=function(){var m=this.createNode();this.expectKeyword("do");var y=this.context.inIteration;this.context.inIteration=!0;var w=this.parseStatement();this.context.inIteration=y,this.expectKeyword("while"),this.expect("(");var C=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(m,new d.DoWhileStatement(w,C))},x.prototype.parseWhileStatement=function(){var m,y=this.createNode();this.expectKeyword("while"),this.expect("(");var w=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,m=this.parseStatement(),this.context.inIteration=C}return this.finalize(y,new d.WhileStatement(w,m))},x.prototype.parseForStatement=function(){var m,y,w,C=null,S=null,T=null,_=!0,E=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){C=this.createNode(),this.nextToken();var D=this.context.allowIn;this.context.allowIn=!1;var b=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=D,b.length===1&&this.matchKeyword("in")){var I=b[0];I.init&&(I.id.type===g.Syntax.ArrayPattern||I.id.type===g.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(u.Messages.ForInOfLoopInitializer,"for-in"),C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.nextToken(),m=C,y=this.parseExpression(),C=null}else b.length===1&&b[0].init===null&&this.matchContextualKeyword("of")?(C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.nextToken(),m=C,y=this.parseAssignmentExpression(),C=null,_=!1):(C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){C=this.createNode();var R=this.nextToken().value;this.context.strict||this.lookahead.value!=="in"?(D=this.context.allowIn,this.context.allowIn=!1,b=this.parseBindingList(R,{inFor:!0}),this.context.allowIn=D,b.length===1&&b[0].init===null&&this.matchKeyword("in")?(C=this.finalize(C,new d.VariableDeclaration(b,R)),this.nextToken(),m=C,y=this.parseExpression(),C=null):b.length===1&&b[0].init===null&&this.matchContextualKeyword("of")?(C=this.finalize(C,new d.VariableDeclaration(b,R)),this.nextToken(),m=C,y=this.parseAssignmentExpression(),C=null,_=!1):(this.consumeSemicolon(),C=this.finalize(C,new d.VariableDeclaration(b,R)))):(C=this.finalize(C,new d.Identifier(R)),this.nextToken(),m=C,y=this.parseExpression(),C=null)}else{var M=this.lookahead;if(D=this.context.allowIn,this.context.allowIn=!1,C=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=D,this.matchKeyword("in"))this.context.isAssignmentTarget&&C.type!==g.Syntax.AssignmentExpression||this.tolerateError(u.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(C),m=C,y=this.parseExpression(),C=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&C.type!==g.Syntax.AssignmentExpression||this.tolerateError(u.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(C),m=C,y=this.parseAssignmentExpression(),C=null,_=!1;else{if(this.match(",")){for(var L=[C];this.match(",");)this.nextToken(),L.push(this.isolateCoverGrammar(this.parseAssignmentExpression));C=this.finalize(this.startNode(M),new d.SequenceExpression(L))}this.expect(";")}}if(m===void 0&&(this.match(";")||(S=this.parseExpression()),this.expect(";"),this.match(")")||(T=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),w=this.finalize(this.createNode(),new d.EmptyStatement);else{this.expect(")");var A=this.context.inIteration;this.context.inIteration=!0,w=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=A}return m===void 0?this.finalize(E,new d.ForStatement(C,S,T,w)):_?this.finalize(E,new d.ForInStatement(m,y,w)):this.finalize(E,new d.ForOfStatement(m,y,w))},x.prototype.parseContinueStatement=function(){var m=this.createNode();this.expectKeyword("continue");var y=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier();y=w;var C="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,C)||this.throwError(u.Messages.UnknownLabel,w.name)}return this.consumeSemicolon(),y!==null||this.context.inIteration||this.throwError(u.Messages.IllegalContinue),this.finalize(m,new d.ContinueStatement(y))},x.prototype.parseBreakStatement=function(){var m=this.createNode();this.expectKeyword("break");var y=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier(),C="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,C)||this.throwError(u.Messages.UnknownLabel,w.name),y=w}return this.consumeSemicolon(),y!==null||this.context.inIteration||this.context.inSwitch||this.throwError(u.Messages.IllegalBreak),this.finalize(m,new d.BreakStatement(y))},x.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(u.Messages.IllegalReturn);var m=this.createNode();this.expectKeyword("return");var y=(this.match(";")||this.match("}")||this.hasLineTerminator||this.lookahead.type===2)&&this.lookahead.type!==8&&this.lookahead.type!==10?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ReturnStatement(y))},x.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(u.Messages.StrictModeWith);var m,y=this.createNode();this.expectKeyword("with"),this.expect("(");var w=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement)):(this.expect(")"),m=this.parseStatement()),this.finalize(y,new d.WithStatement(w,m))},x.prototype.parseSwitchCase=function(){var m,y=this.createNode();this.matchKeyword("default")?(this.nextToken(),m=null):(this.expectKeyword("case"),m=this.parseExpression()),this.expect(":");for(var w=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)w.push(this.parseStatementListItem());return this.finalize(y,new d.SwitchCase(m,w))},x.prototype.parseSwitchStatement=function(){var m=this.createNode();this.expectKeyword("switch"),this.expect("(");var y=this.parseExpression();this.expect(")");var w=this.context.inSwitch;this.context.inSwitch=!0;var C=[],S=!1;for(this.expect("{");!this.match("}");){var T=this.parseSwitchCase();T.test===null&&(S&&this.throwError(u.Messages.MultipleDefaultsInSwitch),S=!0),C.push(T)}return this.expect("}"),this.context.inSwitch=w,this.finalize(m,new d.SwitchStatement(y,C))},x.prototype.parseLabelledStatement=function(){var m,y=this.createNode(),w=this.parseExpression();if(w.type===g.Syntax.Identifier&&this.match(":")){this.nextToken();var C=w,S="$"+C.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,S)&&this.throwError(u.Messages.Redeclaration,"Label",C.name),this.context.labelSet[S]=!0;var T=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),T=this.parseClassDeclaration();else if(this.matchKeyword("function")){var _=this.lookahead,E=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(_,u.Messages.StrictFunction):E.generator&&this.tolerateUnexpectedToken(_,u.Messages.GeneratorInLegacyContext),T=E}else T=this.parseStatement();delete this.context.labelSet[S],m=new d.LabeledStatement(C,T)}else this.consumeSemicolon(),m=new d.ExpressionStatement(w);return this.finalize(y,m)},x.prototype.parseThrowStatement=function(){var m=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(u.Messages.NewlineAfterThrow);var y=this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ThrowStatement(y))},x.prototype.parseCatchClause=function(){var m=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var y=[],w=this.parsePattern(y),C={},S=0;S0&&this.tolerateError(u.Messages.BadGetterArity);var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parseSetterMethod=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters();w.params.length!==1?this.tolerateError(u.Messages.BadSetterArity):w.params[0]instanceof d.RestElement&&this.tolerateError(u.Messages.BadSetterRestParameter);var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parseGeneratorMethod=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters();this.context.allowYield=!1;var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!0))},x.prototype.isStartOfExpression=function(){var m=!0,y=this.lookahead.value;switch(this.lookahead.type){case 7:m=y==="["||y==="("||y==="{"||y==="+"||y==="-"||y==="!"||y==="~"||y==="++"||y==="--"||y==="/"||y==="/=";break;case 4:m=y==="class"||y==="delete"||y==="function"||y==="let"||y==="new"||y==="super"||y==="this"||y==="typeof"||y==="void"||y==="yield"}return m},x.prototype.parseYieldExpression=function(){var m=this.createNode();this.expectKeyword("yield");var y=null,w=!1;if(!this.hasLineTerminator){var C=this.context.allowYield;this.context.allowYield=!1,(w=this.match("*"))?(this.nextToken(),y=this.parseAssignmentExpression()):this.isStartOfExpression()&&(y=this.parseAssignmentExpression()),this.context.allowYield=C}return this.finalize(m,new d.YieldExpression(y,w))},x.prototype.parseClassElement=function(m){var y=this.lookahead,w=this.createNode(),C="",S=null,T=null,_=!1,E=!1,D=!1,b=!1;if(this.match("*"))this.nextToken();else if(_=this.match("["),(S=this.parseObjectPropertyKey()).name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(y=this.lookahead,D=!0,_=this.match("["),this.match("*")?this.nextToken():S=this.parseObjectPropertyKey()),y.type===3&&!this.hasLineTerminator&&y.value==="async"){var I=this.lookahead.value;I!==":"&&I!=="("&&I!=="*"&&(b=!0,y=this.lookahead,S=this.parseObjectPropertyKey(),y.type===3&&y.value==="constructor"&&this.tolerateUnexpectedToken(y,u.Messages.ConstructorIsAsync))}var R=this.qualifiedPropertyName(this.lookahead);return y.type===3?y.value==="get"&&R?(C="get",_=this.match("["),S=this.parseObjectPropertyKey(),this.context.allowYield=!1,T=this.parseGetterMethod()):y.value==="set"&&R&&(C="set",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseSetterMethod()):y.type===7&&y.value==="*"&&R&&(C="init",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseGeneratorMethod(),E=!0),!C&&S&&this.match("(")&&(C="init",T=b?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),E=!0),C||this.throwUnexpectedToken(this.lookahead),C==="init"&&(C="method"),_||(D&&this.isPropertyKey(S,"prototype")&&this.throwUnexpectedToken(y,u.Messages.StaticPrototype),!D&&this.isPropertyKey(S,"constructor")&&((C!=="method"||!E||T&&T.generator)&&this.throwUnexpectedToken(y,u.Messages.ConstructorSpecialMethod),m.value?this.throwUnexpectedToken(y,u.Messages.DuplicateConstructor):m.value=!0,C="constructor")),this.finalize(w,new d.MethodDefinition(S,_,T,C,D))},x.prototype.parseClassElementList=function(){var m=[],y={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():m.push(this.parseClassElement(y));return this.expect("}"),m},x.prototype.parseClassBody=function(){var m=this.createNode(),y=this.parseClassElementList();return this.finalize(m,new d.ClassBody(y))},x.prototype.parseClassDeclaration=function(m){var y=this.createNode(),w=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var C=m&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),S=null;this.matchKeyword("extends")&&(this.nextToken(),S=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var T=this.parseClassBody();return this.context.strict=w,this.finalize(y,new d.ClassDeclaration(C,S,T))},x.prototype.parseClassExpression=function(){var m=this.createNode(),y=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var w=this.lookahead.type===3?this.parseVariableIdentifier():null,C=null;this.matchKeyword("extends")&&(this.nextToken(),C=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var S=this.parseClassBody();return this.context.strict=y,this.finalize(m,new d.ClassExpression(w,C,S))},x.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var m=this.createNode(),y=this.parseDirectivePrologues();this.lookahead.type!==2;)y.push(this.parseStatementListItem());return this.finalize(m,new d.Module(y))},x.prototype.parseScript=function(){for(var m=this.createNode(),y=this.parseDirectivePrologues();this.lookahead.type!==2;)y.push(this.parseStatementListItem());return this.finalize(m,new d.Script(y))},x.prototype.parseModuleSpecifier=function(){var m=this.createNode();this.lookahead.type!==8&&this.throwError(u.Messages.InvalidModuleSpecifier);var y=this.nextToken(),w=this.getTokenRaw(y);return this.finalize(m,new d.Literal(y.value,w))},x.prototype.parseImportSpecifier=function(){var m,y,w=this.createNode();return this.lookahead.type===3?(y=m=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),y=this.parseVariableIdentifier())):(y=m=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),y=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(w,new d.ImportSpecifier(y,m))},x.prototype.parseNamedImports=function(){this.expect("{");for(var m=[];!this.match("}");)m.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),m},x.prototype.parseImportDefaultSpecifier=function(){var m=this.createNode(),y=this.parseIdentifierName();return this.finalize(m,new d.ImportDefaultSpecifier(y))},x.prototype.parseImportNamespaceSpecifier=function(){var m=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(u.Messages.NoAsAfterImportNamespace),this.nextToken();var y=this.parseIdentifierName();return this.finalize(m,new d.ImportNamespaceSpecifier(y))},x.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(u.Messages.IllegalImportDeclaration);var m,y=this.createNode();this.expectKeyword("import");var w=[];if(this.lookahead.type===8)m=this.parseModuleSpecifier();else{if(this.match("{")?w=w.concat(this.parseNamedImports()):this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(w.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.match("{")?w=w.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause;this.throwError(C,this.lookahead.value)}this.nextToken(),m=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(y,new d.ImportDeclaration(w,m))},x.prototype.parseExportSpecifier=function(){var m=this.createNode(),y=this.parseIdentifierName(),w=y;return this.matchContextualKeyword("as")&&(this.nextToken(),w=this.parseIdentifierName()),this.finalize(m,new d.ExportSpecifier(y,w))},x.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(u.Messages.IllegalExportDeclaration);var m,y=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var w=this.parseFunctionDeclaration(!0);m=this.finalize(y,new d.ExportDefaultDeclaration(w))}else this.matchKeyword("class")?(w=this.parseClassDeclaration(!0),m=this.finalize(y,new d.ExportDefaultDeclaration(w))):this.matchContextualKeyword("async")?(w=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),m=this.finalize(y,new d.ExportDefaultDeclaration(w))):(this.matchContextualKeyword("from")&&this.throwError(u.Messages.UnexpectedToken,this.lookahead.value),w=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),m=this.finalize(y,new d.ExportDefaultDeclaration(w)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause;this.throwError(C,this.lookahead.value)}this.nextToken();var S=this.parseModuleSpecifier();this.consumeSemicolon(),m=this.finalize(y,new d.ExportAllDeclaration(S))}else if(this.lookahead.type===4){switch(w=void 0,this.lookahead.value){case"let":case"const":w=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":w=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}m=this.finalize(y,new d.ExportNamedDeclaration(w,[],null))}else if(this.matchAsyncFunction())w=this.parseFunctionDeclaration(),m=this.finalize(y,new d.ExportNamedDeclaration(w,[],null));else{var T=[],_=null,E=!1;for(this.expect("{");!this.match("}");)E=E||this.matchKeyword("default"),T.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),_=this.parseModuleSpecifier(),this.consumeSemicolon()):E?(C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause,this.throwError(C,this.lookahead.value)):this.consumeSemicolon(),m=this.finalize(y,new d.ExportNamedDeclaration(null,T,_))}return m},x}();s.Parser=v},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.assert=function(c,l){if(!c)throw new Error("ASSERT: "+l)}},function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var c=function(){function l(){this.errors=[],this.tolerant=!1}return l.prototype.recordError=function(f){this.errors.push(f)},l.prototype.tolerate=function(f){if(!this.tolerant)throw f;this.recordError(f)},l.prototype.constructError=function(f,u){var d=new Error(f);try{throw d}catch(h){Object.create&&Object.defineProperty&&(d=Object.create(h),Object.defineProperty(d,"column",{value:u}))}return d},l.prototype.createError=function(f,u,d,h){var g="Line "+u+": "+h,p=this.constructError(g,d);return p.index=f,p.lineNumber=u,p.description=h,p},l.prototype.throwError=function(f,u,d,h){throw this.createError(f,u,d,h)},l.prototype.tolerateError=function(f,u,d,h){var g=this.createError(f,u,d,h);if(!this.tolerant)throw g;this.recordError(g)},l}();s.ErrorHandler=c},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(9),f=c(4),u=c(11);function d(p){return"0123456789abcdef".indexOf(p.toLowerCase())}function h(p){return"01234567".indexOf(p)}var g=function(){function p(v,x){this.source=v,this.errorHandler=x,this.trackComment=!1,this.isModule=!1,this.length=v.length,this.index=0,this.lineNumber=v.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return p.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},p.prototype.restoreState=function(v){this.index=v.index,this.lineNumber=v.lineNumber,this.lineStart=v.lineStart},p.prototype.eof=function(){return this.index>=this.length},p.prototype.throwUnexpectedToken=function(v){return v===void 0&&(v=u.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,v)},p.prototype.tolerateUnexpectedToken=function(v){v===void 0&&(v=u.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,v)},p.prototype.skipSingleLineComment=function(v){var x,m,y=[];for(this.trackComment&&(y=[],x=this.index-v,m={start:{line:this.lineNumber,column:this.index-this.lineStart-v},end:{}});!this.eof();){var w=this.source.charCodeAt(this.index);if(++this.index,f.Character.isLineTerminator(w)){if(this.trackComment){m.end={line:this.lineNumber,column:this.index-this.lineStart-1};var C={multiLine:!1,slice:[x+v,this.index-1],range:[x,this.index-1],loc:m};y.push(C)}return w===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y}}return this.trackComment&&(m.end={line:this.lineNumber,column:this.index-this.lineStart},C={multiLine:!1,slice:[x+v,this.index],range:[x,this.index],loc:m},y.push(C)),y},p.prototype.skipMultiLineComment=function(){var v,x,m=[];for(this.trackComment&&(m=[],v=this.index-2,x={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var y=this.source.charCodeAt(this.index);if(f.Character.isLineTerminator(y))y===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(y===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){x.end={line:this.lineNumber,column:this.index-this.lineStart};var w={multiLine:!0,slice:[v+2,this.index-2],range:[v,this.index],loc:x};m.push(w)}return m}++this.index}else++this.index}return this.trackComment&&(x.end={line:this.lineNumber,column:this.index-this.lineStart},w={multiLine:!0,slice:[v+2,this.index],range:[v,this.index],loc:x},m.push(w)),this.tolerateUnexpectedToken(),m},p.prototype.scanComments=function(){var v;this.trackComment&&(v=[]);for(var x=this.index===0;!this.eof();){var m=this.source.charCodeAt(this.index);if(f.Character.isWhiteSpace(m))++this.index;else if(f.Character.isLineTerminator(m))++this.index,m===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,x=!0;else if(m===47)if((m=this.source.charCodeAt(this.index+1))===47){this.index+=2;var y=this.skipSingleLineComment(2);this.trackComment&&(v=v.concat(y)),x=!0}else{if(m!==42)break;this.index+=2,y=this.skipMultiLineComment(),this.trackComment&&(v=v.concat(y))}else if(x&&m===45){if(this.source.charCodeAt(this.index+1)!==45||this.source.charCodeAt(this.index+2)!==62)break;this.index+=3,y=this.skipSingleLineComment(3),this.trackComment&&(v=v.concat(y))}else{if(m!==60||this.isModule||this.source.slice(this.index+1,this.index+4)!=="!--")break;this.index+=4,y=this.skipSingleLineComment(4),this.trackComment&&(v=v.concat(y))}}return v},p.prototype.isFutureReservedWord=function(v){switch(v){case"enum":case"export":case"import":case"super":return!0;default:return!1}},p.prototype.isStrictModeReservedWord=function(v){switch(v){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},p.prototype.isRestrictedWord=function(v){return v==="eval"||v==="arguments"},p.prototype.isKeyword=function(v){switch(v.length){case 2:return v==="if"||v==="in"||v==="do";case 3:return v==="var"||v==="for"||v==="new"||v==="try"||v==="let";case 4:return v==="this"||v==="else"||v==="case"||v==="void"||v==="with"||v==="enum";case 5:return v==="while"||v==="break"||v==="catch"||v==="throw"||v==="const"||v==="yield"||v==="class"||v==="super";case 6:return v==="return"||v==="typeof"||v==="delete"||v==="switch"||v==="export"||v==="import";case 7:return v==="default"||v==="finally"||v==="extends";case 8:return v==="function"||v==="continue"||v==="debugger";case 10:return v==="instanceof";default:return!1}},p.prototype.codePointAt=function(v){var x=this.source.charCodeAt(v);if(x>=55296&&x<=56319){var m=this.source.charCodeAt(v+1);m>=56320&&m<=57343&&(x=1024*(x-55296)+m-56320+65536)}return x},p.prototype.scanHexEscape=function(v){for(var x=v==="u"?4:2,m=0,y=0;y1114111||v!=="}")&&this.throwUnexpectedToken(),f.Character.fromCodePoint(x)},p.prototype.getIdentifier=function(){for(var v=this.index++;!this.eof();){var x=this.source.charCodeAt(this.index);if(x===92)return this.index=v,this.getComplexIdentifier();if(x>=55296&&x<57343)return this.index=v,this.getComplexIdentifier();if(!f.Character.isIdentifierPart(x))break;++this.index}return this.source.slice(v,this.index)},p.prototype.getComplexIdentifier=function(){var v,x=this.codePointAt(this.index),m=f.Character.fromCodePoint(x);for(this.index+=m.length,x===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,v=this.scanUnicodeCodePointEscape()):(v=this.scanHexEscape("u"))!==null&&v!=="\\"&&f.Character.isIdentifierStart(v.charCodeAt(0))||this.throwUnexpectedToken(),m=v);!this.eof()&&(x=this.codePointAt(this.index),f.Character.isIdentifierPart(x));)m+=v=f.Character.fromCodePoint(x),this.index+=v.length,x===92&&(m=m.substr(0,m.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,v=this.scanUnicodeCodePointEscape()):(v=this.scanHexEscape("u"))!==null&&v!=="\\"&&f.Character.isIdentifierPart(v.charCodeAt(0))||this.throwUnexpectedToken(),m+=v);return m},p.prototype.octalToDecimal=function(v){var x=v!=="0",m=h(v);return!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(x=!0,m=8*m+h(this.source[this.index++]),"0123".indexOf(v)>=0&&!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(m=8*m+h(this.source[this.index++]))),{code:m,octal:x}},p.prototype.scanIdentifier=function(){var v,x=this.index,m=this.source.charCodeAt(x)===92?this.getComplexIdentifier():this.getIdentifier();if((v=m.length===1?3:this.isKeyword(m)?4:m==="null"?5:m==="true"||m==="false"?1:3)!=3&&x+m.length!==this.index){var y=this.index;this.index=x,this.tolerateUnexpectedToken(u.Messages.InvalidEscapedReservedWord),this.index=y}return{type:v,value:m,lineNumber:this.lineNumber,lineStart:this.lineStart,start:x,end:this.index}},p.prototype.scanPunctuator=function(){var v=this.index,x=this.source[this.index];switch(x){case"(":case"{":x==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,x="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:(x=this.source.substr(this.index,4))===">>>="?this.index+=4:(x=x.substr(0,3))==="==="||x==="!=="||x===">>>"||x==="<<="||x===">>="||x==="**="?this.index+=3:(x=x.substr(0,2))==="&&"||x==="||"||x==="=="||x==="!="||x==="+="||x==="-="||x==="*="||x==="/="||x==="++"||x==="--"||x==="<<"||x===">>"||x==="&="||x==="|="||x==="^="||x==="%="||x==="<="||x===">="||x==="=>"||x==="**"?this.index+=2:(x=this.source[this.index],"<>=!+-*%&|^/".indexOf(x)>=0&&++this.index)}return this.index===v&&this.throwUnexpectedToken(),{type:7,value:x,lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanHexLiteral=function(v){for(var x="";!this.eof()&&f.Character.isHexDigit(this.source.charCodeAt(this.index));)x+=this.source[this.index++];return x.length===0&&this.throwUnexpectedToken(),f.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+x,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanBinaryLiteral=function(v){for(var x,m="";!this.eof()&&((x=this.source[this.index])==="0"||x==="1");)m+=this.source[this.index++];return m.length===0&&this.throwUnexpectedToken(),this.eof()||(x=this.source.charCodeAt(this.index),(f.Character.isIdentifierStart(x)||f.Character.isDecimalDigit(x))&&this.throwUnexpectedToken()),{type:6,value:parseInt(m,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanOctalLiteral=function(v,x){var m="",y=!1;for(f.Character.isOctalDigit(v.charCodeAt(0))?(y=!0,m="0"+this.source[this.index++]):++this.index;!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index));)m+=this.source[this.index++];return y||m.length!==0||this.throwUnexpectedToken(),(f.Character.isIdentifierStart(this.source.charCodeAt(this.index))||f.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(m,8),octal:y,lineNumber:this.lineNumber,lineStart:this.lineStart,start:x,end:this.index}},p.prototype.isImplicitOctalLiteral=function(){for(var v=this.index+1;v0&&this.config.tokens&&this.tokens.push(this.convertToken(E)),E},C.prototype.peekJSXToken=function(){var S=this.scanner.saveState();this.scanner.scanComments();var T=this.lexJSX();return this.scanner.restoreState(S),T},C.prototype.expectJSX=function(S){var T=this.nextJSXToken();T.type===7&&T.value===S||this.throwUnexpectedToken(T)},C.prototype.matchJSX=function(S){var T=this.peekJSXToken();return T.type===7&&T.value===S},C.prototype.parseJSXIdentifier=function(){var S=this.createJSXNode(),T=this.nextJSXToken();return T.type!==100&&this.throwUnexpectedToken(T),this.finalize(S,new d.JSXIdentifier(T.value))},C.prototype.parseJSXElementName=function(){var S=this.createJSXNode(),T=this.parseJSXIdentifier();if(this.matchJSX(":")){var _=T;this.expectJSX(":");var E=this.parseJSXIdentifier();T=this.finalize(S,new d.JSXNamespacedName(_,E))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var D=T;this.expectJSX(".");var b=this.parseJSXIdentifier();T=this.finalize(S,new d.JSXMemberExpression(D,b))}return T},C.prototype.parseJSXAttributeName=function(){var S,T=this.createJSXNode(),_=this.parseJSXIdentifier();if(this.matchJSX(":")){var E=_;this.expectJSX(":");var D=this.parseJSXIdentifier();S=this.finalize(T,new d.JSXNamespacedName(E,D))}else S=_;return S},C.prototype.parseJSXStringLiteralAttribute=function(){var S=this.createJSXNode(),T=this.nextJSXToken();T.type!==8&&this.throwUnexpectedToken(T);var _=this.getTokenRaw(T);return this.finalize(S,new g.Literal(T.value,_))},C.prototype.parseJSXExpressionAttribute=function(){var S=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var T=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(S,new d.JSXExpressionContainer(T))},C.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},C.prototype.parseJSXNameValueAttribute=function(){var S=this.createJSXNode(),T=this.parseJSXAttributeName(),_=null;return this.matchJSX("=")&&(this.expectJSX("="),_=this.parseJSXAttributeValue()),this.finalize(S,new d.JSXAttribute(T,_))},C.prototype.parseJSXSpreadAttribute=function(){var S=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var T=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(S,new d.JSXSpreadAttribute(T))},C.prototype.parseJSXAttributes=function(){for(var S=[];!this.matchJSX("/")&&!this.matchJSX(">");){var T=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();S.push(T)}return S},C.prototype.parseJSXOpeningElement=function(){var S=this.createJSXNode();this.expectJSX("<");var T=this.parseJSXElementName(),_=this.parseJSXAttributes(),E=this.matchJSX("/");return E&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(S,new d.JSXOpeningElement(T,E,_))},C.prototype.parseJSXBoundaryElement=function(){var S=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var T=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(S,new d.JSXClosingElement(T))}var _=this.parseJSXElementName(),E=this.parseJSXAttributes(),D=this.matchJSX("/");return D&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(S,new d.JSXOpeningElement(_,D,E))},C.prototype.parseJSXEmptyExpression=function(){var S=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.line=this.scanner.lineNumber,this.lastMarker.column=this.scanner.index-this.scanner.lineStart,this.finalize(S,new d.JSXEmptyExpression)},C.prototype.parseJSXExpressionContainer=function(){var S,T=this.createJSXNode();return this.expectJSX("{"),this.matchJSX("}")?(S=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),S=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(T,new d.JSXExpressionContainer(S))},C.prototype.parseJSXChildren=function(){for(var S=[];!this.scanner.eof();){var T=this.createJSXChildNode(),_=this.nextJSXText();if(_.start<_.end){var E=this.getTokenRaw(_),D=this.finalize(T,new d.JSXText(_.value,E));S.push(D)}if(this.scanner.source[this.scanner.index]!=="{")break;var b=this.parseJSXExpressionContainer();S.push(b)}return S},C.prototype.parseComplexJSXElement=function(S){for(var T=[];!this.scanner.eof();){S.children=S.children.concat(this.parseJSXChildren());var _=this.createJSXChildNode(),E=this.parseJSXBoundaryElement();if(E.type===h.JSXSyntax.JSXOpeningElement){var D=E;if(D.selfClosing){var b=this.finalize(_,new d.JSXElement(D,[],null));S.children.push(b)}else T.push(S),S={node:_,opening:D,closing:null,children:[]}}if(E.type===h.JSXSyntax.JSXClosingElement){S.closing=E;var I=m(S.opening.name);if(I!==m(S.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",I),!(T.length>0))break;b=this.finalize(S.node,new d.JSXElement(S.opening,S.children,S.closing)),(S=T[T.length-1]).children.push(b),T.pop()}}return S},C.prototype.parseJSXElement=function(){var S=this.createJSXNode(),T=this.parseJSXOpeningElement(),_=[],E=null;if(!T.selfClosing){var D=this.parseComplexJSXElement({node:S,opening:T,closing:E,children:_});_=D.children,E=D.closing}return this.finalize(S,new d.JSXElement(T,_,E))},C.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var S=this.parseJSXElement();return this.finishJSX(),S},C.prototype.isStartOfExpression=function(){return w.prototype.isStartOfExpression.call(this)||this.match("<")},C}(p.Parser);s.JSXParser=y},function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var c={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};s.Character={fromCodePoint:function(l){return l<65536?String.fromCharCode(l):String.fromCharCode(55296+(l-65536>>10))+String.fromCharCode(56320+(l-65536&1023))},isWhiteSpace:function(l){return l===32||l===9||l===11||l===12||l===160||l>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(l)>=0},isLineTerminator:function(l){return l===10||l===13||l===8232||l===8233},isIdentifierStart:function(l){return l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l===92||l>=128&&c.NonAsciiIdentifierStart.test(s.Character.fromCodePoint(l))},isIdentifierPart:function(l){return l===36||l===95||l>=65&&l<=90||l>=97&&l<=122||l>=48&&l<=57||l===92||l>=128&&c.NonAsciiIdentifierPart.test(s.Character.fromCodePoint(l))},isDecimalDigit:function(l){return l>=48&&l<=57},isHexDigit:function(l){return l>=48&&l<=57||l>=65&&l<=70||l>=97&&l<=102},isOctalDigit:function(l){return l>=48&&l<=55}}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(6),f=function(C){this.type=l.JSXSyntax.JSXClosingElement,this.name=C};s.JSXClosingElement=f;var u=function(C,S,T){this.type=l.JSXSyntax.JSXElement,this.openingElement=C,this.children=S,this.closingElement=T};s.JSXElement=u;var d=function(){this.type=l.JSXSyntax.JSXEmptyExpression};s.JSXEmptyExpression=d;var h=function(C){this.type=l.JSXSyntax.JSXExpressionContainer,this.expression=C};s.JSXExpressionContainer=h;var g=function(C){this.type=l.JSXSyntax.JSXIdentifier,this.name=C};s.JSXIdentifier=g;var p=function(C,S){this.type=l.JSXSyntax.JSXMemberExpression,this.object=C,this.property=S};s.JSXMemberExpression=p;var v=function(C,S){this.type=l.JSXSyntax.JSXAttribute,this.name=C,this.value=S};s.JSXAttribute=v;var x=function(C,S){this.type=l.JSXSyntax.JSXNamespacedName,this.namespace=C,this.name=S};s.JSXNamespacedName=x;var m=function(C,S,T){this.type=l.JSXSyntax.JSXOpeningElement,this.name=C,this.selfClosing=S,this.attributes=T};s.JSXOpeningElement=m;var y=function(C){this.type=l.JSXSyntax.JSXSpreadAttribute,this.argument=C};s.JSXSpreadAttribute=y;var w=function(C,S){this.type=l.JSXSyntax.JSXText,this.value=C,this.raw=S};s.JSXText=w},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(2),f=function(xe){this.type=l.Syntax.ArrayExpression,this.elements=xe};s.ArrayExpression=f;var u=function(xe){this.type=l.Syntax.ArrayPattern,this.elements=xe};s.ArrayPattern=u;var d=function(xe,Le,xt){this.type=l.Syntax.ArrowFunctionExpression,this.id=null,this.params=xe,this.body=Le,this.generator=!1,this.expression=xt,this.async=!1};s.ArrowFunctionExpression=d;var h=function(xe,Le,xt){this.type=l.Syntax.AssignmentExpression,this.operator=xe,this.left=Le,this.right=xt};s.AssignmentExpression=h;var g=function(xe,Le){this.type=l.Syntax.AssignmentPattern,this.left=xe,this.right=Le};s.AssignmentPattern=g;var p=function(xe,Le,xt){this.type=l.Syntax.ArrowFunctionExpression,this.id=null,this.params=xe,this.body=Le,this.generator=!1,this.expression=xt,this.async=!0};s.AsyncArrowFunctionExpression=p;var v=function(xe,Le,xt){this.type=l.Syntax.FunctionDeclaration,this.id=xe,this.params=Le,this.body=xt,this.generator=!1,this.expression=!1,this.async=!0};s.AsyncFunctionDeclaration=v;var x=function(xe,Le,xt){this.type=l.Syntax.FunctionExpression,this.id=xe,this.params=Le,this.body=xt,this.generator=!1,this.expression=!1,this.async=!0};s.AsyncFunctionExpression=x;var m=function(xe){this.type=l.Syntax.AwaitExpression,this.argument=xe};s.AwaitExpression=m;var y=function(xe,Le,xt){var ti=xe==="||"||xe==="&&";this.type=ti?l.Syntax.LogicalExpression:l.Syntax.BinaryExpression,this.operator=xe,this.left=Le,this.right=xt};s.BinaryExpression=y;var w=function(xe){this.type=l.Syntax.BlockStatement,this.body=xe};s.BlockStatement=w;var C=function(xe){this.type=l.Syntax.BreakStatement,this.label=xe};s.BreakStatement=C;var S=function(xe,Le){this.type=l.Syntax.CallExpression,this.callee=xe,this.arguments=Le};s.CallExpression=S;var T=function(xe,Le){this.type=l.Syntax.CatchClause,this.param=xe,this.body=Le};s.CatchClause=T;var _=function(xe){this.type=l.Syntax.ClassBody,this.body=xe};s.ClassBody=_;var E=function(xe,Le,xt){this.type=l.Syntax.ClassDeclaration,this.id=xe,this.superClass=Le,this.body=xt};s.ClassDeclaration=E;var D=function(xe,Le,xt){this.type=l.Syntax.ClassExpression,this.id=xe,this.superClass=Le,this.body=xt};s.ClassExpression=D;var b=function(xe,Le){this.type=l.Syntax.MemberExpression,this.computed=!0,this.object=xe,this.property=Le};s.ComputedMemberExpression=b;var I=function(xe,Le,xt){this.type=l.Syntax.ConditionalExpression,this.test=xe,this.consequent=Le,this.alternate=xt};s.ConditionalExpression=I;var R=function(xe){this.type=l.Syntax.ContinueStatement,this.label=xe};s.ContinueStatement=R;var M=function(){this.type=l.Syntax.DebuggerStatement};s.DebuggerStatement=M;var L=function(xe,Le){this.type=l.Syntax.ExpressionStatement,this.expression=xe,this.directive=Le};s.Directive=L;var A=function(xe,Le){this.type=l.Syntax.DoWhileStatement,this.body=xe,this.test=Le};s.DoWhileStatement=A;var G=function(){this.type=l.Syntax.EmptyStatement};s.EmptyStatement=G;var P=function(xe){this.type=l.Syntax.ExportAllDeclaration,this.source=xe};s.ExportAllDeclaration=P;var N=function(xe){this.type=l.Syntax.ExportDefaultDeclaration,this.declaration=xe};s.ExportDefaultDeclaration=N;var V=function(xe,Le,xt){this.type=l.Syntax.ExportNamedDeclaration,this.declaration=xe,this.specifiers=Le,this.source=xt};s.ExportNamedDeclaration=V;var $=function(xe,Le){this.type=l.Syntax.ExportSpecifier,this.exported=Le,this.local=xe};s.ExportSpecifier=$;var H=function(xe){this.type=l.Syntax.ExpressionStatement,this.expression=xe};s.ExpressionStatement=H;var Y=function(xe,Le,xt){this.type=l.Syntax.ForInStatement,this.left=xe,this.right=Le,this.body=xt,this.each=!1};s.ForInStatement=Y;var ne=function(xe,Le,xt){this.type=l.Syntax.ForOfStatement,this.left=xe,this.right=Le,this.body=xt};s.ForOfStatement=ne;var Q=function(xe,Le,xt,ti){this.type=l.Syntax.ForStatement,this.init=xe,this.test=Le,this.update=xt,this.body=ti};s.ForStatement=Q;var ee=function(xe,Le,xt,ti){this.type=l.Syntax.FunctionDeclaration,this.id=xe,this.params=Le,this.body=xt,this.generator=ti,this.expression=!1,this.async=!1};s.FunctionDeclaration=ee;var de=function(xe,Le,xt,ti){this.type=l.Syntax.FunctionExpression,this.id=xe,this.params=Le,this.body=xt,this.generator=ti,this.expression=!1,this.async=!1};s.FunctionExpression=de;var fe=function(xe){this.type=l.Syntax.Identifier,this.name=xe};s.Identifier=fe;var le=function(xe,Le,xt){this.type=l.Syntax.IfStatement,this.test=xe,this.consequent=Le,this.alternate=xt};s.IfStatement=le;var k=function(xe,Le){this.type=l.Syntax.ImportDeclaration,this.specifiers=xe,this.source=Le};s.ImportDeclaration=k;var O=function(xe){this.type=l.Syntax.ImportDefaultSpecifier,this.local=xe};s.ImportDefaultSpecifier=O;var B=function(xe){this.type=l.Syntax.ImportNamespaceSpecifier,this.local=xe};s.ImportNamespaceSpecifier=B;var U=function(xe,Le){this.type=l.Syntax.ImportSpecifier,this.local=xe,this.imported=Le};s.ImportSpecifier=U;var z=function(xe,Le){this.type=l.Syntax.LabeledStatement,this.label=xe,this.body=Le};s.LabeledStatement=z;var j=function(xe,Le){this.type=l.Syntax.Literal,this.value=xe,this.raw=Le};s.Literal=j;var K=function(xe,Le){this.type=l.Syntax.MetaProperty,this.meta=xe,this.property=Le};s.MetaProperty=K;var ae=function(xe,Le,xt,ti,Rl){this.type=l.Syntax.MethodDefinition,this.key=xe,this.computed=Le,this.value=xt,this.kind=ti,this.static=Rl};s.MethodDefinition=ae;var he=function(xe){this.type=l.Syntax.Program,this.body=xe,this.sourceType="module"};s.Module=he;var ye=function(xe,Le){this.type=l.Syntax.NewExpression,this.callee=xe,this.arguments=Le};s.NewExpression=ye;var Te=function(xe){this.type=l.Syntax.ObjectExpression,this.properties=xe};s.ObjectExpression=Te;var q=function(xe){this.type=l.Syntax.ObjectPattern,this.properties=xe};s.ObjectPattern=q;var J=function(xe,Le,xt,ti,Rl,$2){this.type=l.Syntax.Property,this.key=Le,this.computed=xt,this.value=ti,this.kind=xe,this.method=Rl,this.shorthand=$2};s.Property=J;var ie=function(xe,Le,xt,ti){this.type=l.Syntax.Literal,this.value=xe,this.raw=Le,this.regex={pattern:xt,flags:ti}};s.RegexLiteral=ie;var Z=function(xe){this.type=l.Syntax.RestElement,this.argument=xe};s.RestElement=Z;var te=function(xe){this.type=l.Syntax.ReturnStatement,this.argument=xe};s.ReturnStatement=te;var me=function(xe){this.type=l.Syntax.Program,this.body=xe,this.sourceType="script"};s.Script=me;var X=function(xe){this.type=l.Syntax.SequenceExpression,this.expressions=xe};s.SequenceExpression=X;var Ae=function(xe){this.type=l.Syntax.SpreadElement,this.argument=xe};s.SpreadElement=Ae;var Be=function(xe,Le){this.type=l.Syntax.MemberExpression,this.computed=!1,this.object=xe,this.property=Le};s.StaticMemberExpression=Be;var Ve=function(){this.type=l.Syntax.Super};s.Super=Ve;var ue=function(xe,Le){this.type=l.Syntax.SwitchCase,this.test=xe,this.consequent=Le};s.SwitchCase=ue;var Ee=function(xe,Le){this.type=l.Syntax.SwitchStatement,this.discriminant=xe,this.cases=Le};s.SwitchStatement=Ee;var Me=function(xe,Le){this.type=l.Syntax.TaggedTemplateExpression,this.tag=xe,this.quasi=Le};s.TaggedTemplateExpression=Me;var Re=function(xe,Le){this.type=l.Syntax.TemplateElement,this.value=xe,this.tail=Le};s.TemplateElement=Re;var We=function(xe,Le){this.type=l.Syntax.TemplateLiteral,this.quasis=xe,this.expressions=Le};s.TemplateLiteral=We;var ut=function(){this.type=l.Syntax.ThisExpression};s.ThisExpression=ut;var ze=function(xe){this.type=l.Syntax.ThrowStatement,this.argument=xe};s.ThrowStatement=ze;var ft=function(xe,Le,xt){this.type=l.Syntax.TryStatement,this.block=xe,this.handler=Le,this.finalizer=xt};s.TryStatement=ft;var dt=function(xe,Le){this.type=l.Syntax.UnaryExpression,this.operator=xe,this.argument=Le,this.prefix=!0};s.UnaryExpression=dt;var dn=function(xe,Le,xt){this.type=l.Syntax.UpdateExpression,this.operator=xe,this.argument=Le,this.prefix=xt};s.UpdateExpression=dn;var Pn=function(xe,Le){this.type=l.Syntax.VariableDeclaration,this.declarations=xe,this.kind=Le};s.VariableDeclaration=Pn;var Gt=function(xe,Le){this.type=l.Syntax.VariableDeclarator,this.id=xe,this.init=Le};s.VariableDeclarator=Gt;var sr=function(xe,Le){this.type=l.Syntax.WhileStatement,this.test=xe,this.body=Le};s.WhileStatement=sr;var ji=function(xe,Le){this.type=l.Syntax.WithStatement,this.object=xe,this.body=Le};s.WithStatement=ji;var Ml=function(xe,Le){this.type=l.Syntax.YieldExpression,this.argument=xe,this.delegate=Le};s.YieldExpression=Ml},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(9),f=c(10),u=c(11),d=c(7),h=c(12),g=c(2),p=c(13),v=function(){function x(m,y,w){y===void 0&&(y={}),this.config={range:typeof y.range=="boolean"&&y.range,loc:typeof y.loc=="boolean"&&y.loc,source:null,tokens:typeof y.tokens=="boolean"&&y.tokens,comment:typeof y.comment=="boolean"&&y.comment,tolerant:typeof y.tolerant=="boolean"&&y.tolerant},this.config.loc&&y.source&&y.source!==null&&(this.config.source=String(y.source)),this.delegate=w,this.errorHandler=new f.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new h.Scanner(m,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.lookahead={type:2,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.hasLineTerminator=!1,this.context={isModule:!1,await:!1,allowIn:!0,allowStrictDirective:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:!1},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.lastMarker={index:0,line:this.scanner.lineNumber,column:0},this.nextToken(),this.lastMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}return x.prototype.throwError=function(m){for(var y=[],w=1;w0&&this.delegate)for(var y=0;y>="||m===">>>="||m==="&="||m==="^="||m==="|="},x.prototype.isolateCoverGrammar=function(m){var y=this.context.isBindingElement,w=this.context.isAssignmentTarget,C=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var S=m.call(this);return this.context.firstCoverInitializedNameError!==null&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=y,this.context.isAssignmentTarget=w,this.context.firstCoverInitializedNameError=C,S},x.prototype.inheritCoverGrammar=function(m){var y=this.context.isBindingElement,w=this.context.isAssignmentTarget,C=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var S=m.call(this);return this.context.isBindingElement=this.context.isBindingElement&&y,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&w,this.context.firstCoverInitializedNameError=C||this.context.firstCoverInitializedNameError,S},x.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===2||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.line=this.startMarker.line,this.lastMarker.column=this.startMarker.column)},x.prototype.parsePrimaryExpression=function(){var m,y,w,C=this.createNode();switch(this.lookahead.type){case 3:(this.context.isModule||this.context.await)&&this.lookahead.value==="await"&&this.tolerateUnexpectedToken(this.lookahead),m=this.matchAsyncFunction()?this.parseFunctionExpression():this.finalize(C,new d.Identifier(this.nextToken().value));break;case 6:case 8:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,u.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(y.value,w));break;case 1:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(y.value==="true",w));break;case 5:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,y=this.nextToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.Literal(null,w));break;case 10:m=this.parseTemplateLiteral();break;case 7:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,m=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":m=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":m=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,y=this.nextRegexToken(),w=this.getTokenRaw(y),m=this.finalize(C,new d.RegexLiteral(y.regex,w,y.pattern,y.flags));break;default:m=this.throwUnexpectedToken(this.nextToken())}break;case 4:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?m=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?m=this.finalize(C,new d.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?m=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),m=this.finalize(C,new d.ThisExpression)):m=this.matchKeyword("class")?this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:m=this.throwUnexpectedToken(this.nextToken())}return m},x.prototype.parseSpreadElement=function(){var m=this.createNode();this.expect("...");var y=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(m,new d.SpreadElement(y))},x.prototype.parseArrayInitializer=function(){var m=this.createNode(),y=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),y.push(null);else if(this.match("...")){var w=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),y.push(w)}else y.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(m,new d.ArrayExpression(y))},x.prototype.parsePropertyMethod=function(m){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var y=this.context.strict,w=this.context.allowStrictDirective;this.context.allowStrictDirective=m.simple;var C=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&m.firstRestricted&&this.tolerateUnexpectedToken(m.firstRestricted,m.message),this.context.strict&&m.stricted&&this.tolerateUnexpectedToken(m.stricted,m.message),this.context.strict=y,this.context.allowStrictDirective=w,C},x.prototype.parsePropertyMethodFunction=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters(),C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parsePropertyMethodAsyncFunction=function(){var m=this.createNode(),y=this.context.allowYield,w=this.context.await;this.context.allowYield=!1,this.context.await=!0;var C=this.parseFormalParameters(),S=this.parsePropertyMethod(C);return this.context.allowYield=y,this.context.await=w,this.finalize(m,new d.AsyncFunctionExpression(null,C.params,S))},x.prototype.parseObjectPropertyKey=function(){var m,y=this.createNode(),w=this.nextToken();switch(w.type){case 8:case 6:this.context.strict&&w.octal&&this.tolerateUnexpectedToken(w,u.Messages.StrictOctalLiteral);var C=this.getTokenRaw(w);m=this.finalize(y,new d.Literal(w.value,C));break;case 3:case 1:case 5:case 4:m=this.finalize(y,new d.Identifier(w.value));break;case 7:w.value==="["?(m=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):m=this.throwUnexpectedToken(w);break;default:m=this.throwUnexpectedToken(w)}return m},x.prototype.isPropertyKey=function(m,y){return m.type===g.Syntax.Identifier&&m.name===y||m.type===g.Syntax.Literal&&m.value===y},x.prototype.parseObjectProperty=function(m){var y,w=this.createNode(),C=this.lookahead,S=null,T=null,_=!1,E=!1,D=!1,b=!1;if(C.type===3){var I=C.value;this.nextToken(),_=this.match("["),S=(b=!(this.hasLineTerminator||I!=="async"||this.match(":")||this.match("(")||this.match("*")||this.match(",")))?this.parseObjectPropertyKey():this.finalize(w,new d.Identifier(I))}else this.match("*")?this.nextToken():(_=this.match("["),S=this.parseObjectPropertyKey());var R=this.qualifiedPropertyName(this.lookahead);if(C.type===3&&!b&&C.value==="get"&&R)y="get",_=this.match("["),S=this.parseObjectPropertyKey(),this.context.allowYield=!1,T=this.parseGetterMethod();else if(C.type===3&&!b&&C.value==="set"&&R)y="set",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseSetterMethod();else if(C.type===7&&C.value==="*"&&R)y="init",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseGeneratorMethod(),E=!0;else if(S||this.throwUnexpectedToken(this.lookahead),y="init",this.match(":")&&!b)!_&&this.isPropertyKey(S,"__proto__")&&(m.value&&this.tolerateError(u.Messages.DuplicateProtoProperty),m.value=!0),this.nextToken(),T=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))T=b?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),E=!0;else if(C.type===3)if(I=this.finalize(w,new d.Identifier(C.value)),this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),D=!0;var M=this.isolateCoverGrammar(this.parseAssignmentExpression);T=this.finalize(w,new d.AssignmentPattern(I,M))}else D=!0,T=I;else this.throwUnexpectedToken(this.nextToken());return this.finalize(w,new d.Property(y,S,_,T,E,D))},x.prototype.parseObjectInitializer=function(){var m=this.createNode();this.expect("{");for(var y=[],w={value:!1};!this.match("}");)y.push(this.parseObjectProperty(w)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(m,new d.ObjectExpression(y))},x.prototype.parseTemplateHead=function(){l.assert(this.lookahead.head,"Template literal must start with a template head");var m=this.createNode(),y=this.nextToken(),w=y.value,C=y.cooked;return this.finalize(m,new d.TemplateElement({raw:w,cooked:C},y.tail))},x.prototype.parseTemplateElement=function(){this.lookahead.type!==10&&this.throwUnexpectedToken();var m=this.createNode(),y=this.nextToken(),w=y.value,C=y.cooked;return this.finalize(m,new d.TemplateElement({raw:w,cooked:C},y.tail))},x.prototype.parseTemplateLiteral=function(){var m=this.createNode(),y=[],w=[],C=this.parseTemplateHead();for(w.push(C);!C.tail;)y.push(this.parseExpression()),C=this.parseTemplateElement(),w.push(C);return this.finalize(m,new d.TemplateLiteral(w,y))},x.prototype.reinterpretExpressionAsPattern=function(m){switch(m.type){case g.Syntax.Identifier:case g.Syntax.MemberExpression:case g.Syntax.RestElement:case g.Syntax.AssignmentPattern:break;case g.Syntax.SpreadElement:m.type=g.Syntax.RestElement,this.reinterpretExpressionAsPattern(m.argument);break;case g.Syntax.ArrayExpression:m.type=g.Syntax.ArrayPattern;for(var y=0;y")||this.expect("=>"),m={type:"ArrowParameterPlaceHolder",params:[],async:!1};else{var y=this.lookahead,w=[];if(this.match("..."))m=this.parseRestElement(w),this.expect(")"),this.match("=>")||this.expect("=>"),m={type:"ArrowParameterPlaceHolder",params:[m],async:!1};else{var C=!1;if(this.context.isBindingElement=!0,m=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var S=[];for(this.context.isAssignmentTarget=!1,S.push(m);this.lookahead.type!==2&&this.match(",");){if(this.nextToken(),this.match(")")){this.nextToken();for(var T=0;T")||this.expect("=>"),this.context.isBindingElement=!1,T=0;T")&&(m.type===g.Syntax.Identifier&&m.name==="yield"&&(C=!0,m={type:"ArrowParameterPlaceHolder",params:[m],async:!1}),!C)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),m.type===g.Syntax.SequenceExpression)for(T=0;T")){for(var E=0;E<_.length;++E)this.reinterpretExpressionAsPattern(_[E]);m={type:"ArrowParameterPlaceHolder",params:_,async:!0}}}else if(this.match("["))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("["),S=this.isolateCoverGrammar(this.parseExpression),this.expect("]"),m=this.finalize(this.startNode(y),new d.ComputedMemberExpression(m,S));else{if(this.lookahead.type!==10||!this.lookahead.head)break;var D=this.parseTemplateLiteral();m=this.finalize(this.startNode(y),new d.TaggedTemplateExpression(m,D))}return this.context.allowIn=C,m},x.prototype.parseSuper=function(){var m=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(m,new d.Super)},x.prototype.parseLeftHandSideExpression=function(){l.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var m=this.startNode(this.lookahead),y=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var w=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),y=this.finalize(m,new d.ComputedMemberExpression(y,w))}else if(this.match("."))this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("."),w=this.parseIdentifierName(),y=this.finalize(m,new d.StaticMemberExpression(y,w));else{if(this.lookahead.type!==10||!this.lookahead.head)break;var C=this.parseTemplateLiteral();y=this.finalize(m,new d.TaggedTemplateExpression(y,C))}return y},x.prototype.parseUpdateExpression=function(){var m,y=this.lookahead;if(this.match("++")||this.match("--")){var w=this.startNode(y),C=this.nextToken();m=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&m.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(m.name)&&this.tolerateError(u.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment);var S=!0;m=this.finalize(w,new d.UpdateExpression(C.value,m,S)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(m=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===7&&(this.match("++")||this.match("--"))){this.context.strict&&m.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(m.name)&&this.tolerateError(u.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var T=this.nextToken().value;S=!1,m=this.finalize(this.startNode(y),new d.UpdateExpression(T,m,S))}return m},x.prototype.parseAwaitExpression=function(){var m=this.createNode();this.nextToken();var y=this.parseUnaryExpression();return this.finalize(m,new d.AwaitExpression(y))},x.prototype.parseUnaryExpression=function(){var m;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var y=this.startNode(this.lookahead),w=this.nextToken();m=this.inheritCoverGrammar(this.parseUnaryExpression),m=this.finalize(y,new d.UnaryExpression(w.value,m)),this.context.strict&&m.operator==="delete"&&m.argument.type===g.Syntax.Identifier&&this.tolerateError(u.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else m=this.context.await&&this.matchContextualKeyword("await")?this.parseAwaitExpression():this.parseUpdateExpression();return m},x.prototype.parseExponentiationExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseUnaryExpression);if(y.type!==g.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var w=y,C=this.isolateCoverGrammar(this.parseExponentiationExpression);y=this.finalize(this.startNode(m),new d.BinaryExpression("**",w,C))}return y},x.prototype.binaryPrecedence=function(m){var y=m.value;return m.type===7?this.operatorPrecedence[y]||0:m.type===4&&(y==="instanceof"||this.context.allowIn&&y==="in")?7:0},x.prototype.parseBinaryExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseExponentiationExpression),w=this.lookahead,C=this.binaryPrecedence(w);if(C>0){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var S=[m,this.lookahead],T=y,_=this.isolateCoverGrammar(this.parseExponentiationExpression),E=[T,w.value,_],D=[C];!((C=this.binaryPrecedence(this.lookahead))<=0);){for(;E.length>2&&C<=D[D.length-1];){_=E.pop();var b=E.pop();D.pop(),T=E.pop(),S.pop();var I=this.startNode(S[S.length-1]);E.push(this.finalize(I,new d.BinaryExpression(b,T,_)))}E.push(this.nextToken().value),D.push(C),S.push(this.lookahead),E.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var R=E.length-1;y=E[R];for(var M=S.pop();R>1;){var L=S.pop(),A=M&&M.lineStart;I=this.startNode(L,A),b=E[R-1],y=this.finalize(I,new d.BinaryExpression(b,E[R-2],y)),R-=2,M=L}}return y},x.prototype.parseConditionalExpression=function(){var m=this.lookahead,y=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var w=this.context.allowIn;this.context.allowIn=!0;var C=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=w,this.expect(":");var S=this.isolateCoverGrammar(this.parseAssignmentExpression);y=this.finalize(this.startNode(m),new d.ConditionalExpression(y,C,S)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return y},x.prototype.checkPatternParam=function(m,y){switch(y.type){case g.Syntax.Identifier:this.validateParam(m,y,y.name);break;case g.Syntax.RestElement:this.checkPatternParam(m,y.argument);break;case g.Syntax.AssignmentPattern:this.checkPatternParam(m,y.left);break;case g.Syntax.ArrayPattern:for(var w=0;w")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var S=m.async,T=this.reinterpretAsCoverFormalsList(m);if(T){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var _=this.context.strict,E=this.context.allowStrictDirective;this.context.allowStrictDirective=T.simple;var D=this.context.allowYield,b=this.context.await;this.context.allowYield=!0,this.context.await=S;var I=this.startNode(y);this.expect("=>");var R=void 0;if(this.match("{")){var M=this.context.allowIn;this.context.allowIn=!0,R=this.parseFunctionSourceElements(),this.context.allowIn=M}else R=this.isolateCoverGrammar(this.parseAssignmentExpression);var L=R.type!==g.Syntax.BlockStatement;this.context.strict&&T.firstRestricted&&this.throwUnexpectedToken(T.firstRestricted,T.message),this.context.strict&&T.stricted&&this.tolerateUnexpectedToken(T.stricted,T.message),m=S?this.finalize(I,new d.AsyncArrowFunctionExpression(T.params,R,L)):this.finalize(I,new d.ArrowFunctionExpression(T.params,R,L)),this.context.strict=_,this.context.allowStrictDirective=E,this.context.allowYield=D,this.context.await=b}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(u.Messages.InvalidLHSInAssignment),this.context.strict&&m.type===g.Syntax.Identifier){var A=m;this.scanner.isRestrictedWord(A.name)&&this.tolerateUnexpectedToken(w,u.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(A.name)&&this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(m):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1);var G=(w=this.nextToken()).value,P=this.isolateCoverGrammar(this.parseAssignmentExpression);m=this.finalize(this.startNode(y),new d.AssignmentExpression(G,m,P)),this.context.firstCoverInitializedNameError=null}}return m},x.prototype.parseExpression=function(){var m=this.lookahead,y=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var w=[];for(w.push(y);this.lookahead.type!==2&&this.match(",");)this.nextToken(),w.push(this.isolateCoverGrammar(this.parseAssignmentExpression));y=this.finalize(this.startNode(m),new d.SequenceExpression(w))}return y},x.prototype.parseStatementListItem=function(){var m;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===4)switch(this.lookahead.value){case"export":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,u.Messages.IllegalExportDeclaration),m=this.parseExportDeclaration();break;case"import":this.context.isModule||this.tolerateUnexpectedToken(this.lookahead,u.Messages.IllegalImportDeclaration),m=this.parseImportDeclaration();break;case"const":m=this.parseLexicalDeclaration({inFor:!1});break;case"function":m=this.parseFunctionDeclaration();break;case"class":m=this.parseClassDeclaration();break;case"let":m=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:m=this.parseStatement()}else m=this.parseStatement();return m},x.prototype.parseBlock=function(){var m=this.createNode();this.expect("{");for(var y=[];!this.match("}");)y.push(this.parseStatementListItem());return this.expect("}"),this.finalize(m,new d.BlockStatement(y))},x.prototype.parseLexicalBinding=function(m,y){var w=this.createNode(),C=this.parsePattern([],m);this.context.strict&&C.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(C.name)&&this.tolerateError(u.Messages.StrictVarName);var S=null;return m==="const"?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.match("=")?(this.nextToken(),S=this.isolateCoverGrammar(this.parseAssignmentExpression)):this.throwError(u.Messages.DeclarationMissingInitializer,"const")):(!y.inFor&&C.type!==g.Syntax.Identifier||this.match("="))&&(this.expect("="),S=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(w,new d.VariableDeclarator(C,S))},x.prototype.parseBindingList=function(m,y){for(var w=[this.parseLexicalBinding(m,y)];this.match(",");)this.nextToken(),w.push(this.parseLexicalBinding(m,y));return w},x.prototype.isLexicalDeclaration=function(){var m=this.scanner.saveState();this.scanner.scanComments();var y=this.scanner.lex();return this.scanner.restoreState(m),y.type===3||y.type===7&&y.value==="["||y.type===7&&y.value==="{"||y.type===4&&y.value==="let"||y.type===4&&y.value==="yield"},x.prototype.parseLexicalDeclaration=function(m){var y=this.createNode(),w=this.nextToken().value;l.assert(w==="let"||w==="const","Lexical declaration must be either let or const");var C=this.parseBindingList(w,m);return this.consumeSemicolon(),this.finalize(y,new d.VariableDeclaration(C,w))},x.prototype.parseBindingRestElement=function(m,y){var w=this.createNode();this.expect("...");var C=this.parsePattern(m,y);return this.finalize(w,new d.RestElement(C))},x.prototype.parseArrayPattern=function(m,y){var w=this.createNode();this.expect("[");for(var C=[];!this.match("]");)if(this.match(","))this.nextToken(),C.push(null);else{if(this.match("...")){C.push(this.parseBindingRestElement(m,y));break}C.push(this.parsePatternWithDefault(m,y)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(w,new d.ArrayPattern(C))},x.prototype.parsePropertyPattern=function(m,y){var w,C,S=this.createNode(),T=!1,_=!1;if(this.lookahead.type===3){var E=this.lookahead;w=this.parseVariableIdentifier();var D=this.finalize(S,new d.Identifier(E.value));if(this.match("=")){m.push(E),_=!0,this.nextToken();var b=this.parseAssignmentExpression();C=this.finalize(this.startNode(E),new d.AssignmentPattern(D,b))}else this.match(":")?(this.expect(":"),C=this.parsePatternWithDefault(m,y)):(m.push(E),_=!0,C=D)}else T=this.match("["),w=this.parseObjectPropertyKey(),this.expect(":"),C=this.parsePatternWithDefault(m,y);return this.finalize(S,new d.Property("init",w,T,C,!1,_))},x.prototype.parseObjectPattern=function(m,y){var w=this.createNode(),C=[];for(this.expect("{");!this.match("}");)C.push(this.parsePropertyPattern(m,y)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(w,new d.ObjectPattern(C))},x.prototype.parsePattern=function(m,y){var w;return this.match("[")?w=this.parseArrayPattern(m,y):this.match("{")?w=this.parseObjectPattern(m,y):(!this.matchKeyword("let")||y!=="const"&&y!=="let"||this.tolerateUnexpectedToken(this.lookahead,u.Messages.LetInLexicalBinding),m.push(this.lookahead),w=this.parseVariableIdentifier(y)),w},x.prototype.parsePatternWithDefault=function(m,y){var w=this.lookahead,C=this.parsePattern(m,y);if(this.match("=")){this.nextToken();var S=this.context.allowYield;this.context.allowYield=!0;var T=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=S,C=this.finalize(this.startNode(w),new d.AssignmentPattern(C,T))}return C},x.prototype.parseVariableIdentifier=function(m){var y=this.createNode(),w=this.nextToken();return w.type===4&&w.value==="yield"?this.context.strict?this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord):this.context.allowYield||this.throwUnexpectedToken(w):w.type!==3?this.context.strict&&w.type===4&&this.scanner.isStrictModeReservedWord(w.value)?this.tolerateUnexpectedToken(w,u.Messages.StrictReservedWord):(this.context.strict||w.value!=="let"||m!=="var")&&this.throwUnexpectedToken(w):(this.context.isModule||this.context.await)&&w.type===3&&w.value==="await"&&this.tolerateUnexpectedToken(w),this.finalize(y,new d.Identifier(w.value))},x.prototype.parseVariableDeclaration=function(m){var y=this.createNode(),w=this.parsePattern([],"var");this.context.strict&&w.type===g.Syntax.Identifier&&this.scanner.isRestrictedWord(w.name)&&this.tolerateError(u.Messages.StrictVarName);var C=null;return this.match("=")?(this.nextToken(),C=this.isolateCoverGrammar(this.parseAssignmentExpression)):w.type===g.Syntax.Identifier||m.inFor||this.expect("="),this.finalize(y,new d.VariableDeclarator(w,C))},x.prototype.parseVariableDeclarationList=function(m){var y={inFor:m.inFor},w=[];for(w.push(this.parseVariableDeclaration(y));this.match(",");)this.nextToken(),w.push(this.parseVariableDeclaration(y));return w},x.prototype.parseVariableStatement=function(){var m=this.createNode();this.expectKeyword("var");var y=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(m,new d.VariableDeclaration(y,"var"))},x.prototype.parseEmptyStatement=function(){var m=this.createNode();return this.expect(";"),this.finalize(m,new d.EmptyStatement)},x.prototype.parseExpressionStatement=function(){var m=this.createNode(),y=this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ExpressionStatement(y))},x.prototype.parseIfClause=function(){return this.context.strict&&this.matchKeyword("function")&&this.tolerateError(u.Messages.StrictFunction),this.parseStatement()},x.prototype.parseIfStatement=function(){var m,y=this.createNode(),w=null;this.expectKeyword("if"),this.expect("(");var C=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement)):(this.expect(")"),m=this.parseIfClause(),this.matchKeyword("else")&&(this.nextToken(),w=this.parseIfClause())),this.finalize(y,new d.IfStatement(C,m,w))},x.prototype.parseDoWhileStatement=function(){var m=this.createNode();this.expectKeyword("do");var y=this.context.inIteration;this.context.inIteration=!0;var w=this.parseStatement();this.context.inIteration=y,this.expectKeyword("while"),this.expect("(");var C=this.parseExpression();return!this.match(")")&&this.config.tolerant?this.tolerateUnexpectedToken(this.nextToken()):(this.expect(")"),this.match(";")&&this.nextToken()),this.finalize(m,new d.DoWhileStatement(w,C))},x.prototype.parseWhileStatement=function(){var m,y=this.createNode();this.expectKeyword("while"),this.expect("(");var w=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement);else{this.expect(")");var C=this.context.inIteration;this.context.inIteration=!0,m=this.parseStatement(),this.context.inIteration=C}return this.finalize(y,new d.WhileStatement(w,m))},x.prototype.parseForStatement=function(){var m,y,w,C=null,S=null,T=null,_=!0,E=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){C=this.createNode(),this.nextToken();var D=this.context.allowIn;this.context.allowIn=!1;var b=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=D,b.length===1&&this.matchKeyword("in")){var I=b[0];I.init&&(I.id.type===g.Syntax.ArrayPattern||I.id.type===g.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(u.Messages.ForInOfLoopInitializer,"for-in"),C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.nextToken(),m=C,y=this.parseExpression(),C=null}else b.length===1&&b[0].init===null&&this.matchContextualKeyword("of")?(C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.nextToken(),m=C,y=this.parseAssignmentExpression(),C=null,_=!1):(C=this.finalize(C,new d.VariableDeclaration(b,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){C=this.createNode();var R=this.nextToken().value;this.context.strict||this.lookahead.value!=="in"?(D=this.context.allowIn,this.context.allowIn=!1,b=this.parseBindingList(R,{inFor:!0}),this.context.allowIn=D,b.length===1&&b[0].init===null&&this.matchKeyword("in")?(C=this.finalize(C,new d.VariableDeclaration(b,R)),this.nextToken(),m=C,y=this.parseExpression(),C=null):b.length===1&&b[0].init===null&&this.matchContextualKeyword("of")?(C=this.finalize(C,new d.VariableDeclaration(b,R)),this.nextToken(),m=C,y=this.parseAssignmentExpression(),C=null,_=!1):(this.consumeSemicolon(),C=this.finalize(C,new d.VariableDeclaration(b,R)))):(C=this.finalize(C,new d.Identifier(R)),this.nextToken(),m=C,y=this.parseExpression(),C=null)}else{var M=this.lookahead;if(D=this.context.allowIn,this.context.allowIn=!1,C=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=D,this.matchKeyword("in"))this.context.isAssignmentTarget&&C.type!==g.Syntax.AssignmentExpression||this.tolerateError(u.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(C),m=C,y=this.parseExpression(),C=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&C.type!==g.Syntax.AssignmentExpression||this.tolerateError(u.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(C),m=C,y=this.parseAssignmentExpression(),C=null,_=!1;else{if(this.match(",")){for(var L=[C];this.match(",");)this.nextToken(),L.push(this.isolateCoverGrammar(this.parseAssignmentExpression));C=this.finalize(this.startNode(M),new d.SequenceExpression(L))}this.expect(";")}}if(m===void 0&&(this.match(";")||(S=this.parseExpression()),this.expect(";"),this.match(")")||(T=this.parseExpression())),!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),w=this.finalize(this.createNode(),new d.EmptyStatement);else{this.expect(")");var A=this.context.inIteration;this.context.inIteration=!0,w=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=A}return m===void 0?this.finalize(E,new d.ForStatement(C,S,T,w)):_?this.finalize(E,new d.ForInStatement(m,y,w)):this.finalize(E,new d.ForOfStatement(m,y,w))},x.prototype.parseContinueStatement=function(){var m=this.createNode();this.expectKeyword("continue");var y=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier();y=w;var C="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,C)||this.throwError(u.Messages.UnknownLabel,w.name)}return this.consumeSemicolon(),y!==null||this.context.inIteration||this.throwError(u.Messages.IllegalContinue),this.finalize(m,new d.ContinueStatement(y))},x.prototype.parseBreakStatement=function(){var m=this.createNode();this.expectKeyword("break");var y=null;if(this.lookahead.type===3&&!this.hasLineTerminator){var w=this.parseVariableIdentifier(),C="$"+w.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,C)||this.throwError(u.Messages.UnknownLabel,w.name),y=w}return this.consumeSemicolon(),y!==null||this.context.inIteration||this.context.inSwitch||this.throwError(u.Messages.IllegalBreak),this.finalize(m,new d.BreakStatement(y))},x.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(u.Messages.IllegalReturn);var m=this.createNode();this.expectKeyword("return");var y=(this.match(";")||this.match("}")||this.hasLineTerminator||this.lookahead.type===2)&&this.lookahead.type!==8&&this.lookahead.type!==10?null:this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ReturnStatement(y))},x.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(u.Messages.StrictModeWith);var m,y=this.createNode();this.expectKeyword("with"),this.expect("(");var w=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),m=this.finalize(this.createNode(),new d.EmptyStatement)):(this.expect(")"),m=this.parseStatement()),this.finalize(y,new d.WithStatement(w,m))},x.prototype.parseSwitchCase=function(){var m,y=this.createNode();this.matchKeyword("default")?(this.nextToken(),m=null):(this.expectKeyword("case"),m=this.parseExpression()),this.expect(":");for(var w=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)w.push(this.parseStatementListItem());return this.finalize(y,new d.SwitchCase(m,w))},x.prototype.parseSwitchStatement=function(){var m=this.createNode();this.expectKeyword("switch"),this.expect("(");var y=this.parseExpression();this.expect(")");var w=this.context.inSwitch;this.context.inSwitch=!0;var C=[],S=!1;for(this.expect("{");!this.match("}");){var T=this.parseSwitchCase();T.test===null&&(S&&this.throwError(u.Messages.MultipleDefaultsInSwitch),S=!0),C.push(T)}return this.expect("}"),this.context.inSwitch=w,this.finalize(m,new d.SwitchStatement(y,C))},x.prototype.parseLabelledStatement=function(){var m,y=this.createNode(),w=this.parseExpression();if(w.type===g.Syntax.Identifier&&this.match(":")){this.nextToken();var C=w,S="$"+C.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,S)&&this.throwError(u.Messages.Redeclaration,"Label",C.name),this.context.labelSet[S]=!0;var T=void 0;if(this.matchKeyword("class"))this.tolerateUnexpectedToken(this.lookahead),T=this.parseClassDeclaration();else if(this.matchKeyword("function")){var _=this.lookahead,E=this.parseFunctionDeclaration();this.context.strict?this.tolerateUnexpectedToken(_,u.Messages.StrictFunction):E.generator&&this.tolerateUnexpectedToken(_,u.Messages.GeneratorInLegacyContext),T=E}else T=this.parseStatement();delete this.context.labelSet[S],m=new d.LabeledStatement(C,T)}else this.consumeSemicolon(),m=new d.ExpressionStatement(w);return this.finalize(y,m)},x.prototype.parseThrowStatement=function(){var m=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(u.Messages.NewlineAfterThrow);var y=this.parseExpression();return this.consumeSemicolon(),this.finalize(m,new d.ThrowStatement(y))},x.prototype.parseCatchClause=function(){var m=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var y=[],w=this.parsePattern(y),C={},S=0;S0&&this.tolerateError(u.Messages.BadGetterArity);var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parseSetterMethod=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters();w.params.length!==1?this.tolerateError(u.Messages.BadSetterArity):w.params[0]instanceof d.RestElement&&this.tolerateError(u.Messages.BadSetterRestParameter);var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!1))},x.prototype.parseGeneratorMethod=function(){var m=this.createNode(),y=this.context.allowYield;this.context.allowYield=!0;var w=this.parseFormalParameters();this.context.allowYield=!1;var C=this.parsePropertyMethod(w);return this.context.allowYield=y,this.finalize(m,new d.FunctionExpression(null,w.params,C,!0))},x.prototype.isStartOfExpression=function(){var m=!0,y=this.lookahead.value;switch(this.lookahead.type){case 7:m=y==="["||y==="("||y==="{"||y==="+"||y==="-"||y==="!"||y==="~"||y==="++"||y==="--"||y==="/"||y==="/=";break;case 4:m=y==="class"||y==="delete"||y==="function"||y==="let"||y==="new"||y==="super"||y==="this"||y==="typeof"||y==="void"||y==="yield"}return m},x.prototype.parseYieldExpression=function(){var m=this.createNode();this.expectKeyword("yield");var y=null,w=!1;if(!this.hasLineTerminator){var C=this.context.allowYield;this.context.allowYield=!1,(w=this.match("*"))?(this.nextToken(),y=this.parseAssignmentExpression()):this.isStartOfExpression()&&(y=this.parseAssignmentExpression()),this.context.allowYield=C}return this.finalize(m,new d.YieldExpression(y,w))},x.prototype.parseClassElement=function(m){var y=this.lookahead,w=this.createNode(),C="",S=null,T=null,_=!1,E=!1,D=!1,b=!1;if(this.match("*"))this.nextToken();else if(_=this.match("["),(S=this.parseObjectPropertyKey()).name==="static"&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(y=this.lookahead,D=!0,_=this.match("["),this.match("*")?this.nextToken():S=this.parseObjectPropertyKey()),y.type===3&&!this.hasLineTerminator&&y.value==="async"){var I=this.lookahead.value;I!==":"&&I!=="("&&I!=="*"&&(b=!0,y=this.lookahead,S=this.parseObjectPropertyKey(),y.type===3&&y.value==="constructor"&&this.tolerateUnexpectedToken(y,u.Messages.ConstructorIsAsync))}var R=this.qualifiedPropertyName(this.lookahead);return y.type===3?y.value==="get"&&R?(C="get",_=this.match("["),S=this.parseObjectPropertyKey(),this.context.allowYield=!1,T=this.parseGetterMethod()):y.value==="set"&&R&&(C="set",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseSetterMethod()):y.type===7&&y.value==="*"&&R&&(C="init",_=this.match("["),S=this.parseObjectPropertyKey(),T=this.parseGeneratorMethod(),E=!0),!C&&S&&this.match("(")&&(C="init",T=b?this.parsePropertyMethodAsyncFunction():this.parsePropertyMethodFunction(),E=!0),C||this.throwUnexpectedToken(this.lookahead),C==="init"&&(C="method"),_||(D&&this.isPropertyKey(S,"prototype")&&this.throwUnexpectedToken(y,u.Messages.StaticPrototype),!D&&this.isPropertyKey(S,"constructor")&&((C!=="method"||!E||T&&T.generator)&&this.throwUnexpectedToken(y,u.Messages.ConstructorSpecialMethod),m.value?this.throwUnexpectedToken(y,u.Messages.DuplicateConstructor):m.value=!0,C="constructor")),this.finalize(w,new d.MethodDefinition(S,_,T,C,D))},x.prototype.parseClassElementList=function(){var m=[],y={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():m.push(this.parseClassElement(y));return this.expect("}"),m},x.prototype.parseClassBody=function(){var m=this.createNode(),y=this.parseClassElementList();return this.finalize(m,new d.ClassBody(y))},x.prototype.parseClassDeclaration=function(m){var y=this.createNode(),w=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var C=m&&this.lookahead.type!==3?null:this.parseVariableIdentifier(),S=null;this.matchKeyword("extends")&&(this.nextToken(),S=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var T=this.parseClassBody();return this.context.strict=w,this.finalize(y,new d.ClassDeclaration(C,S,T))},x.prototype.parseClassExpression=function(){var m=this.createNode(),y=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var w=this.lookahead.type===3?this.parseVariableIdentifier():null,C=null;this.matchKeyword("extends")&&(this.nextToken(),C=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var S=this.parseClassBody();return this.context.strict=y,this.finalize(m,new d.ClassExpression(w,C,S))},x.prototype.parseModule=function(){this.context.strict=!0,this.context.isModule=!0,this.scanner.isModule=!0;for(var m=this.createNode(),y=this.parseDirectivePrologues();this.lookahead.type!==2;)y.push(this.parseStatementListItem());return this.finalize(m,new d.Module(y))},x.prototype.parseScript=function(){for(var m=this.createNode(),y=this.parseDirectivePrologues();this.lookahead.type!==2;)y.push(this.parseStatementListItem());return this.finalize(m,new d.Script(y))},x.prototype.parseModuleSpecifier=function(){var m=this.createNode();this.lookahead.type!==8&&this.throwError(u.Messages.InvalidModuleSpecifier);var y=this.nextToken(),w=this.getTokenRaw(y);return this.finalize(m,new d.Literal(y.value,w))},x.prototype.parseImportSpecifier=function(){var m,y,w=this.createNode();return this.lookahead.type===3?(y=m=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),y=this.parseVariableIdentifier())):(y=m=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),y=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(w,new d.ImportSpecifier(y,m))},x.prototype.parseNamedImports=function(){this.expect("{");for(var m=[];!this.match("}");)m.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),m},x.prototype.parseImportDefaultSpecifier=function(){var m=this.createNode(),y=this.parseIdentifierName();return this.finalize(m,new d.ImportDefaultSpecifier(y))},x.prototype.parseImportNamespaceSpecifier=function(){var m=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(u.Messages.NoAsAfterImportNamespace),this.nextToken();var y=this.parseIdentifierName();return this.finalize(m,new d.ImportNamespaceSpecifier(y))},x.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(u.Messages.IllegalImportDeclaration);var m,y=this.createNode();this.expectKeyword("import");var w=[];if(this.lookahead.type===8)m=this.parseModuleSpecifier();else{if(this.match("{")?w=w.concat(this.parseNamedImports()):this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(w.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?w.push(this.parseImportNamespaceSpecifier()):this.match("{")?w=w.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause;this.throwError(C,this.lookahead.value)}this.nextToken(),m=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(y,new d.ImportDeclaration(w,m))},x.prototype.parseExportSpecifier=function(){var m=this.createNode(),y=this.parseIdentifierName(),w=y;return this.matchContextualKeyword("as")&&(this.nextToken(),w=this.parseIdentifierName()),this.finalize(m,new d.ExportSpecifier(y,w))},x.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(u.Messages.IllegalExportDeclaration);var m,y=this.createNode();if(this.expectKeyword("export"),this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var w=this.parseFunctionDeclaration(!0);m=this.finalize(y,new d.ExportDefaultDeclaration(w))}else this.matchKeyword("class")?(w=this.parseClassDeclaration(!0),m=this.finalize(y,new d.ExportDefaultDeclaration(w))):this.matchContextualKeyword("async")?(w=this.matchAsyncFunction()?this.parseFunctionDeclaration(!0):this.parseAssignmentExpression(),m=this.finalize(y,new d.ExportDefaultDeclaration(w))):(this.matchContextualKeyword("from")&&this.throwError(u.Messages.UnexpectedToken,this.lookahead.value),w=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression(),this.consumeSemicolon(),m=this.finalize(y,new d.ExportDefaultDeclaration(w)));else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause;this.throwError(C,this.lookahead.value)}this.nextToken();var S=this.parseModuleSpecifier();this.consumeSemicolon(),m=this.finalize(y,new d.ExportAllDeclaration(S))}else if(this.lookahead.type===4){switch(w=void 0,this.lookahead.value){case"let":case"const":w=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":w=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}m=this.finalize(y,new d.ExportNamedDeclaration(w,[],null))}else if(this.matchAsyncFunction())w=this.parseFunctionDeclaration(),m=this.finalize(y,new d.ExportNamedDeclaration(w,[],null));else{var T=[],_=null,E=!1;for(this.expect("{");!this.match("}");)E=E||this.matchKeyword("default"),T.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");this.expect("}"),this.matchContextualKeyword("from")?(this.nextToken(),_=this.parseModuleSpecifier(),this.consumeSemicolon()):E?(C=this.lookahead.value?u.Messages.UnexpectedToken:u.Messages.MissingFromClause,this.throwError(C,this.lookahead.value)):this.consumeSemicolon(),m=this.finalize(y,new d.ExportNamedDeclaration(null,T,_))}return m},x}();s.Parser=v},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.assert=function(c,l){if(!c)throw new Error("ASSERT: "+l)}},function(a,s){Object.defineProperty(s,"__esModule",{value:!0});var c=function(){function l(){this.errors=[],this.tolerant=!1}return l.prototype.recordError=function(f){this.errors.push(f)},l.prototype.tolerate=function(f){if(!this.tolerant)throw f;this.recordError(f)},l.prototype.constructError=function(f,u){var d=new Error(f);try{throw d}catch(h){Object.create&&Object.defineProperty&&(d=Object.create(h),Object.defineProperty(d,"column",{value:u}))}return d},l.prototype.createError=function(f,u,d,h){var g="Line "+u+": "+h,p=this.constructError(g,d);return p.index=f,p.lineNumber=u,p.description=h,p},l.prototype.throwError=function(f,u,d,h){throw this.createError(f,u,d,h)},l.prototype.tolerateError=function(f,u,d,h){var g=this.createError(f,u,d,h);if(!this.tolerant)throw g;this.recordError(g)},l}();s.ErrorHandler=c},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.Messages={BadGetterArity:"Getter must not have any formal parameters",BadSetterArity:"Setter must have exactly one formal parameter",BadSetterRestParameter:"Setter function argument must not be a rest parameter",ConstructorIsAsync:"Class constructor may not be an async method",ConstructorSpecialMethod:"Class constructor may not be an accessor",DeclarationMissingInitializer:"Missing initializer in %0 declaration",DefaultRestParameter:"Unexpected token =",DuplicateBinding:"Duplicate binding %0",DuplicateConstructor:"A class may only have one constructor",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer",GeneratorInLegacyContext:"Generator declarations are not allowed in legacy contexts",IllegalBreak:"Illegal break statement",IllegalContinue:"Illegal continue statement",IllegalExportDeclaration:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list",IllegalReturn:"Illegal return statement",InvalidEscapedReservedWord:"Keyword must not contain escaped characters",InvalidHexEscapeSequence:"Invalid hexadecimal escape sequence",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",InvalidModuleSpecifier:"Unexpected token",InvalidRegExp:"Invalid regular expression",LetInLexicalBinding:"let is disallowed as a lexically bound name",MissingFromClause:"Unexpected token",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NewlineAfterThrow:"Illegal newline after throw",NoAsAfterImportNamespace:"Unexpected token",NoCatchOrFinally:"Missing catch or finally after try",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",Redeclaration:"%0 '%1' has already been declared",StaticPrototype:"Classes may not have static property named prototype",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictModeWith:"Strict mode code may not include a with statement",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",UnexpectedEOS:"Unexpected end of input",UnexpectedIdentifier:"Unexpected identifier",UnexpectedNumber:"Unexpected number",UnexpectedReserved:"Unexpected reserved word",UnexpectedString:"Unexpected string",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnknownLabel:"Undefined label '%0'",UnterminatedRegExp:"Invalid regular expression: missing /"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(9),f=c(4),u=c(11);function d(p){return"0123456789abcdef".indexOf(p.toLowerCase())}function h(p){return"01234567".indexOf(p)}var g=function(){function p(v,x){this.source=v,this.errorHandler=x,this.trackComment=!1,this.isModule=!1,this.length=v.length,this.index=0,this.lineNumber=v.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return p.prototype.saveState=function(){return{index:this.index,lineNumber:this.lineNumber,lineStart:this.lineStart}},p.prototype.restoreState=function(v){this.index=v.index,this.lineNumber=v.lineNumber,this.lineStart=v.lineStart},p.prototype.eof=function(){return this.index>=this.length},p.prototype.throwUnexpectedToken=function(v){return v===void 0&&(v=u.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,v)},p.prototype.tolerateUnexpectedToken=function(v){v===void 0&&(v=u.Messages.UnexpectedTokenIllegal),this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,v)},p.prototype.skipSingleLineComment=function(v){var x,m,y=[];for(this.trackComment&&(y=[],x=this.index-v,m={start:{line:this.lineNumber,column:this.index-this.lineStart-v},end:{}});!this.eof();){var w=this.source.charCodeAt(this.index);if(++this.index,f.Character.isLineTerminator(w)){if(this.trackComment){m.end={line:this.lineNumber,column:this.index-this.lineStart-1};var C={multiLine:!1,slice:[x+v,this.index-1],range:[x,this.index-1],loc:m};y.push(C)}return w===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,y}}return this.trackComment&&(m.end={line:this.lineNumber,column:this.index-this.lineStart},C={multiLine:!1,slice:[x+v,this.index],range:[x,this.index],loc:m},y.push(C)),y},p.prototype.skipMultiLineComment=function(){var v,x,m=[];for(this.trackComment&&(m=[],v=this.index-2,x={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var y=this.source.charCodeAt(this.index);if(f.Character.isLineTerminator(y))y===13&&this.source.charCodeAt(this.index+1)===10&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(y===42){if(this.source.charCodeAt(this.index+1)===47){if(this.index+=2,this.trackComment){x.end={line:this.lineNumber,column:this.index-this.lineStart};var w={multiLine:!0,slice:[v+2,this.index-2],range:[v,this.index],loc:x};m.push(w)}return m}++this.index}else++this.index}return this.trackComment&&(x.end={line:this.lineNumber,column:this.index-this.lineStart},w={multiLine:!0,slice:[v+2,this.index],range:[v,this.index],loc:x},m.push(w)),this.tolerateUnexpectedToken(),m},p.prototype.scanComments=function(){var v;this.trackComment&&(v=[]);for(var x=this.index===0;!this.eof();){var m=this.source.charCodeAt(this.index);if(f.Character.isWhiteSpace(m))++this.index;else if(f.Character.isLineTerminator(m))++this.index,m===13&&this.source.charCodeAt(this.index)===10&&++this.index,++this.lineNumber,this.lineStart=this.index,x=!0;else if(m===47)if((m=this.source.charCodeAt(this.index+1))===47){this.index+=2;var y=this.skipSingleLineComment(2);this.trackComment&&(v=v.concat(y)),x=!0}else{if(m!==42)break;this.index+=2,y=this.skipMultiLineComment(),this.trackComment&&(v=v.concat(y))}else if(x&&m===45){if(this.source.charCodeAt(this.index+1)!==45||this.source.charCodeAt(this.index+2)!==62)break;this.index+=3,y=this.skipSingleLineComment(3),this.trackComment&&(v=v.concat(y))}else{if(m!==60||this.isModule||this.source.slice(this.index+1,this.index+4)!=="!--")break;this.index+=4,y=this.skipSingleLineComment(4),this.trackComment&&(v=v.concat(y))}}return v},p.prototype.isFutureReservedWord=function(v){switch(v){case"enum":case"export":case"import":case"super":return!0;default:return!1}},p.prototype.isStrictModeReservedWord=function(v){switch(v){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},p.prototype.isRestrictedWord=function(v){return v==="eval"||v==="arguments"},p.prototype.isKeyword=function(v){switch(v.length){case 2:return v==="if"||v==="in"||v==="do";case 3:return v==="var"||v==="for"||v==="new"||v==="try"||v==="let";case 4:return v==="this"||v==="else"||v==="case"||v==="void"||v==="with"||v==="enum";case 5:return v==="while"||v==="break"||v==="catch"||v==="throw"||v==="const"||v==="yield"||v==="class"||v==="super";case 6:return v==="return"||v==="typeof"||v==="delete"||v==="switch"||v==="export"||v==="import";case 7:return v==="default"||v==="finally"||v==="extends";case 8:return v==="function"||v==="continue"||v==="debugger";case 10:return v==="instanceof";default:return!1}},p.prototype.codePointAt=function(v){var x=this.source.charCodeAt(v);if(x>=55296&&x<=56319){var m=this.source.charCodeAt(v+1);m>=56320&&m<=57343&&(x=1024*(x-55296)+m-56320+65536)}return x},p.prototype.scanHexEscape=function(v){for(var x=v==="u"?4:2,m=0,y=0;y1114111||v!=="}")&&this.throwUnexpectedToken(),f.Character.fromCodePoint(x)},p.prototype.getIdentifier=function(){for(var v=this.index++;!this.eof();){var x=this.source.charCodeAt(this.index);if(x===92)return this.index=v,this.getComplexIdentifier();if(x>=55296&&x<57343)return this.index=v,this.getComplexIdentifier();if(!f.Character.isIdentifierPart(x))break;++this.index}return this.source.slice(v,this.index)},p.prototype.getComplexIdentifier=function(){var v,x=this.codePointAt(this.index),m=f.Character.fromCodePoint(x);for(this.index+=m.length,x===92&&(this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,v=this.scanUnicodeCodePointEscape()):(v=this.scanHexEscape("u"))!==null&&v!=="\\"&&f.Character.isIdentifierStart(v.charCodeAt(0))||this.throwUnexpectedToken(),m=v);!this.eof()&&(x=this.codePointAt(this.index),f.Character.isIdentifierPart(x));)m+=v=f.Character.fromCodePoint(x),this.index+=v.length,x===92&&(m=m.substr(0,m.length-1),this.source.charCodeAt(this.index)!==117&&this.throwUnexpectedToken(),++this.index,this.source[this.index]==="{"?(++this.index,v=this.scanUnicodeCodePointEscape()):(v=this.scanHexEscape("u"))!==null&&v!=="\\"&&f.Character.isIdentifierPart(v.charCodeAt(0))||this.throwUnexpectedToken(),m+=v);return m},p.prototype.octalToDecimal=function(v){var x=v!=="0",m=h(v);return!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(x=!0,m=8*m+h(this.source[this.index++]),"0123".indexOf(v)>=0&&!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(m=8*m+h(this.source[this.index++]))),{code:m,octal:x}},p.prototype.scanIdentifier=function(){var v,x=this.index,m=this.source.charCodeAt(x)===92?this.getComplexIdentifier():this.getIdentifier();if((v=m.length===1?3:this.isKeyword(m)?4:m==="null"?5:m==="true"||m==="false"?1:3)!=3&&x+m.length!==this.index){var y=this.index;this.index=x,this.tolerateUnexpectedToken(u.Messages.InvalidEscapedReservedWord),this.index=y}return{type:v,value:m,lineNumber:this.lineNumber,lineStart:this.lineStart,start:x,end:this.index}},p.prototype.scanPunctuator=function(){var v=this.index,x=this.source[this.index];switch(x){case"(":case"{":x==="{"&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,this.source[this.index]==="."&&this.source[this.index+1]==="."&&(this.index+=2,x="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:(x=this.source.substr(this.index,4))===">>>="?this.index+=4:(x=x.substr(0,3))==="==="||x==="!=="||x===">>>"||x==="<<="||x===">>="||x==="**="?this.index+=3:(x=x.substr(0,2))==="&&"||x==="||"||x==="=="||x==="!="||x==="+="||x==="-="||x==="*="||x==="/="||x==="++"||x==="--"||x==="<<"||x===">>"||x==="&="||x==="|="||x==="^="||x==="%="||x==="<="||x===">="||x==="=>"||x==="**"?this.index+=2:(x=this.source[this.index],"<>=!+-*%&|^/".indexOf(x)>=0&&++this.index)}return this.index===v&&this.throwUnexpectedToken(),{type:7,value:x,lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanHexLiteral=function(v){for(var x="";!this.eof()&&f.Character.isHexDigit(this.source.charCodeAt(this.index));)x+=this.source[this.index++];return x.length===0&&this.throwUnexpectedToken(),f.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:6,value:parseInt("0x"+x,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanBinaryLiteral=function(v){for(var x,m="";!this.eof()&&((x=this.source[this.index])==="0"||x==="1");)m+=this.source[this.index++];return m.length===0&&this.throwUnexpectedToken(),this.eof()||(x=this.source.charCodeAt(this.index),(f.Character.isIdentifierStart(x)||f.Character.isDecimalDigit(x))&&this.throwUnexpectedToken()),{type:6,value:parseInt(m,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:v,end:this.index}},p.prototype.scanOctalLiteral=function(v,x){var m="",y=!1;for(f.Character.isOctalDigit(v.charCodeAt(0))?(y=!0,m="0"+this.source[this.index++]):++this.index;!this.eof()&&f.Character.isOctalDigit(this.source.charCodeAt(this.index));)m+=this.source[this.index++];return y||m.length!==0||this.throwUnexpectedToken(),(f.Character.isIdentifierStart(this.source.charCodeAt(this.index))||f.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:6,value:parseInt(m,8),octal:y,lineNumber:this.lineNumber,lineStart:this.lineStart,start:x,end:this.index}},p.prototype.isImplicitOctalLiteral=function(){for(var v=this.index+1;v=0&&(m=m.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(w,C,S){var T=parseInt(C||S,16);return T>1114111&&y.throwUnexpectedToken(u.Messages.InvalidRegExp),T<=65535?String.fromCharCode(T):"￿"}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(m)}catch{this.throwUnexpectedToken(u.Messages.InvalidRegExp)}try{return new RegExp(v,x)}catch{return null}},p.prototype.scanRegExpBody=function(){var v=this.source[this.index];l.assert(v==="/","Regular expression literal must start with a slash");for(var x=this.source[this.index++],m=!1,y=!1;!this.eof();)if(x+=v=this.source[this.index++],v==="\\")v=this.source[this.index++],f.Character.isLineTerminator(v.charCodeAt(0))&&this.throwUnexpectedToken(u.Messages.UnterminatedRegExp),x+=v;else if(f.Character.isLineTerminator(v.charCodeAt(0)))this.throwUnexpectedToken(u.Messages.UnterminatedRegExp);else if(m)v==="]"&&(m=!1);else{if(v==="/"){y=!0;break}v==="["&&(m=!0)}return y||this.throwUnexpectedToken(u.Messages.UnterminatedRegExp),x.substr(1,x.length-2)},p.prototype.scanRegExpFlags=function(){for(var v="";!this.eof();){var x=this.source[this.index];if(!f.Character.isIdentifierPart(x.charCodeAt(0)))break;if(++this.index,x!=="\\"||this.eof())v+=x;else if((x=this.source[this.index])==="u"){++this.index;var m=this.index,y=this.scanHexEscape("u");if(y!==null)for(v+=y;m=55296&&v<57343&&f.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},p}();s.Scanner=g},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.TokenName={},s.TokenName[1]="Boolean",s.TokenName[2]="",s.TokenName[3]="Identifier",s.TokenName[4]="Keyword",s.TokenName[5]="Null",s.TokenName[6]="Numeric",s.TokenName[7]="Punctuator",s.TokenName[8]="String",s.TokenName[9]="RegularExpression",s.TokenName[10]="Template"},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(10),f=c(12),u=c(13),d=function(){function g(){this.values=[],this.curly=this.paren=-1}return g.prototype.beforeFunctionExpression=function(p){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(p)>=0},g.prototype.isRegexStart=function(){var p=this.values[this.values.length-1],v=p!==null;switch(p){case"this":case"]":v=!1;break;case")":var x=this.values[this.paren-1];v=x==="if"||x==="while"||x==="for"||x==="with";break;case"}":if(v=!1,this.values[this.curly-3]==="function")v=!!(m=this.values[this.curly-4])&&!this.beforeFunctionExpression(m);else if(this.values[this.curly-4]==="function"){var m;v=!(m=this.values[this.curly-5])||!this.beforeFunctionExpression(m)}}return v},g.prototype.push=function(p){p.type===7||p.type===4?(p.value==="{"?this.curly=this.values.length:p.value==="("&&(this.paren=this.values.length),this.values.push(p.value)):this.values.push(null)},g}(),h=function(){function g(p,v){this.errorHandler=new l.ErrorHandler,this.errorHandler.tolerant=!!v&&typeof v.tolerant=="boolean"&&v.tolerant,this.scanner=new f.Scanner(p,this.errorHandler),this.scanner.trackComment=!!v&&typeof v.comment=="boolean"&&v.comment,this.trackRange=!!v&&typeof v.range=="boolean"&&v.range,this.trackLoc=!!v&&typeof v.loc=="boolean"&&v.loc,this.buffer=[],this.reader=new d}return g.prototype.errors=function(){return this.errorHandler.errors},g.prototype.getNextToken=function(){if(this.buffer.length===0){var p=this.scanner.scanComments();if(this.scanner.trackComment)for(var v=0;v=0&&(m=m.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(w,C,S){var T=parseInt(C||S,16);return T>1114111&&y.throwUnexpectedToken(u.Messages.InvalidRegExp),T<=65535?String.fromCharCode(T):"￿"}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"￿"));try{RegExp(m)}catch{this.throwUnexpectedToken(u.Messages.InvalidRegExp)}try{return new RegExp(v,x)}catch{return null}},p.prototype.scanRegExpBody=function(){var v=this.source[this.index];l.assert(v==="/","Regular expression literal must start with a slash");for(var x=this.source[this.index++],m=!1,y=!1;!this.eof();)if(x+=v=this.source[this.index++],v==="\\")v=this.source[this.index++],f.Character.isLineTerminator(v.charCodeAt(0))&&this.throwUnexpectedToken(u.Messages.UnterminatedRegExp),x+=v;else if(f.Character.isLineTerminator(v.charCodeAt(0)))this.throwUnexpectedToken(u.Messages.UnterminatedRegExp);else if(m)v==="]"&&(m=!1);else{if(v==="/"){y=!0;break}v==="["&&(m=!0)}return y||this.throwUnexpectedToken(u.Messages.UnterminatedRegExp),x.substr(1,x.length-2)},p.prototype.scanRegExpFlags=function(){for(var v="";!this.eof();){var x=this.source[this.index];if(!f.Character.isIdentifierPart(x.charCodeAt(0)))break;if(++this.index,x!=="\\"||this.eof())v+=x;else if((x=this.source[this.index])==="u"){++this.index;var m=this.index,y=this.scanHexEscape("u");if(y!==null)for(v+=y;m=55296&&v<57343&&f.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},p}();s.Scanner=g},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.TokenName={},s.TokenName[1]="Boolean",s.TokenName[2]="",s.TokenName[3]="Identifier",s.TokenName[4]="Keyword",s.TokenName[5]="Null",s.TokenName[6]="Numeric",s.TokenName[7]="Punctuator",s.TokenName[8]="String",s.TokenName[9]="RegularExpression",s.TokenName[10]="Template"},function(a,s){Object.defineProperty(s,"__esModule",{value:!0}),s.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(a,s,c){Object.defineProperty(s,"__esModule",{value:!0});var l=c(10),f=c(12),u=c(13),d=function(){function g(){this.values=[],this.curly=this.paren=-1}return g.prototype.beforeFunctionExpression=function(p){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(p)>=0},g.prototype.isRegexStart=function(){var p=this.values[this.values.length-1],v=p!==null;switch(p){case"this":case"]":v=!1;break;case")":var x=this.values[this.paren-1];v=x==="if"||x==="while"||x==="for"||x==="with";break;case"}":if(v=!1,this.values[this.curly-3]==="function")v=!!(m=this.values[this.curly-4])&&!this.beforeFunctionExpression(m);else if(this.values[this.curly-4]==="function"){var m;v=!(m=this.values[this.curly-5])||!this.beforeFunctionExpression(m)}}return v},g.prototype.push=function(p){p.type===7||p.type===4?(p.value==="{"?this.curly=this.values.length:p.value==="("&&(this.paren=this.values.length),this.values.push(p.value)):this.values.push(null)},g}(),h=function(){function g(p,v){this.errorHandler=new l.ErrorHandler,this.errorHandler.tolerant=!!v&&typeof v.tolerant=="boolean"&&v.tolerant,this.scanner=new f.Scanner(p,this.errorHandler),this.scanner.trackComment=!!v&&typeof v.comment=="boolean"&&v.comment,this.trackRange=!!v&&typeof v.range=="boolean"&&v.range,this.trackLoc=!!v&&typeof v.loc=="boolean"&&v.loc,this.buffer=[],this.reader=new d}return g.prototype.errors=function(){return this.errorHandler.errors},g.prototype.getNextToken=function(){if(this.buffer.length===0){var p=this.scanner.scanComments();if(this.scanner.trackComment)for(var v=0;v0?M.charCodeAt(N-1):null,de=de&&y(V,$)}else{for(N=0;NG&&M[re+1]!==" ",re=N);else if(!m(V))return 5;$=N>0?M.charCodeAt(N-1):null,de=de&&y(V,$)}te=te||Q&&N-re-1>G&&M[re+1]!==" "}return Y||te?A>9&&w(M)?5:te?4:3:de&&!P(M)?1:2}function S(M,L,A,G){M.dump=function(){if(L.length===0)return"''";if(!M.noCompatMode&&d.indexOf(L)!==-1)return"'"+L+"'";var P=M.indent*Math.max(1,A),N=M.lineWidth===-1?-1:Math.max(Math.min(M.lineWidth,40),M.lineWidth-P),V=G||M.flowLevel>-1&&A>=M.flowLevel;switch(C(L,V,M.indent,N,function($){return function(j,Y){var te,Q;for(te=0,Q=j.implicitTypes.length;te"+T(L,M.indent)+_(p(function($,j){for(var Y,te,Q=/(\n+)([^\n]*)/g,re=(fe=$.indexOf(` -`),fe=fe!==-1?fe:$.length,Q.lastIndex=fe,E($.slice(0,fe),j)),de=$[0]===` -`||$[0]===" ",fe;te=Q.exec($);){var se=te[1],k=te[2];Y=k[0]===" ",re+=se+(de||Y||k===""?"":` -`)+E(k,j),de=Y}return re}(L,N),P));case 5:return'"'+function($){for(var j,Y,te,Q="",re=0;re<$.length;re++)(j=$.charCodeAt(re))>=55296&&j<=56319&&(Y=$.charCodeAt(re+1))>=56320&&Y<=57343?(Q+=h(1024*(j-55296)+Y-56320+65536),re++):(te=u[j],Q+=!te&&m(j)?$[re]:te||h(j));return Q}(L)+'"';default:throw new a("impossible error: invalid scalar style")}}()}function T(M,L){var A=w(M)?String(L):"",G=M[M.length-1]===` +`+o.repeat(" ",M.indent*L)}function x(M){return M===32||M===9}function m(M){return 32<=M&&M<=126||161<=M&&M<=55295&&M!==8232&&M!==8233||57344<=M&&M<=65533&&M!==65279||65536<=M&&M<=1114111}function y(M,L){return m(M)&&M!==65279&&M!==44&&M!==91&&M!==93&&M!==123&&M!==125&&M!==58&&(M!==35||L&&function(A){return m(A)&&!x(A)&&A!==65279&&A!==13&&A!==10}(L))}function w(M){return/^\n* /.test(M)}function C(M,L,A,G,P){var N,V,$,H,Y=!1,ne=!1,Q=G!==-1,ee=-1,de=m(H=M.charCodeAt(0))&&H!==65279&&!x(H)&&H!==45&&H!==63&&H!==58&&H!==44&&H!==91&&H!==93&&H!==123&&H!==125&&H!==35&&H!==38&&H!==42&&H!==33&&H!==124&&H!==61&&H!==62&&H!==39&&H!==34&&H!==37&&H!==64&&H!==96&&!x(M.charCodeAt(M.length-1));if(L)for(N=0;N0?M.charCodeAt(N-1):null,de=de&&y(V,$)}else{for(N=0;NG&&M[ee+1]!==" ",ee=N);else if(!m(V))return 5;$=N>0?M.charCodeAt(N-1):null,de=de&&y(V,$)}ne=ne||Q&&N-ee-1>G&&M[ee+1]!==" "}return Y||ne?A>9&&w(M)?5:ne?4:3:de&&!P(M)?1:2}function S(M,L,A,G){M.dump=function(){if(L.length===0)return"''";if(!M.noCompatMode&&d.indexOf(L)!==-1)return"'"+L+"'";var P=M.indent*Math.max(1,A),N=M.lineWidth===-1?-1:Math.max(Math.min(M.lineWidth,40),M.lineWidth-P),V=G||M.flowLevel>-1&&A>=M.flowLevel;switch(C(L,V,M.indent,N,function($){return function(H,Y){var ne,Q;for(ne=0,Q=H.implicitTypes.length;ne"+T(L,M.indent)+_(p(function($,H){for(var Y,ne,Q=/(\n+)([^\n]*)/g,ee=(fe=$.indexOf(` +`),fe=fe!==-1?fe:$.length,Q.lastIndex=fe,E($.slice(0,fe),H)),de=$[0]===` +`||$[0]===" ",fe;ne=Q.exec($);){var le=ne[1],k=ne[2];Y=k[0]===" ",ee+=le+(de||Y||k===""?"":` +`)+E(k,H),de=Y}return ee}(L,N),P));case 5:return'"'+function($){for(var H,Y,ne,Q="",ee=0;ee<$.length;ee++)(H=$.charCodeAt(ee))>=55296&&H<=56319&&(Y=$.charCodeAt(ee+1))>=56320&&Y<=57343?(Q+=h(1024*(H-55296)+Y-56320+65536),ee++):(ne=u[H],Q+=!ne&&m(H)?$[ee]:ne||h(H));return Q}(L)+'"';default:throw new a("impossible error: invalid scalar style")}}()}function T(M,L){var A=w(M)?String(L):"",G=M[M.length-1]===` `;return A+(G&&(M[M.length-2]===` `||M===` `)?"+":G?"":"-")+` `}function _(M){return M[M.length-1]===` -`?M.slice(0,-1):M}function E(M,L){if(M===""||M[0]===" ")return M;for(var A,G,P=/ [^ ]/g,N=0,V=0,$=0,j="";A=P.exec(M);)($=A.index)-N>L&&(G=V>N?V:$,j+=` -`+M.slice(N,G),N=G+1),V=$;return j+=` -`,M.length-N>L&&V>N?j+=M.slice(N,V)+` -`+M.slice(V+1):j+=M.slice(N),j.slice(1)}function D(M,L,A){var G,P,N,V,$,j;for(N=0,V=(P=A?M.explicitTypes:M.implicitTypes).length;N tag resolver accepts not "'+j+'" style');G=$.represent[j](L,j)}M.dump=G}return!0}return!1}function b(M,L,A,G,P,N){M.tag=null,M.dump=A,D(M,A,!1)||D(M,A,!0);var V=l.call(M.dump);G&&(G=M.flowLevel<0||M.flowLevel>L);var $,j,Y=V==="[object Object]"||V==="[object Array]";if(Y&&(j=($=M.duplicates.indexOf(A))!==-1),(M.tag!==null&&M.tag!=="?"||j||M.indent!==2&&L>0)&&(P=!1),j&&M.usedDuplicates[$])M.dump="*ref_"+$;else{if(Y&&j&&!M.usedDuplicates[$]&&(M.usedDuplicates[$]=!0),V==="[object Object]")G&&Object.keys(M.dump).length!==0?(function(Q,re,de,fe){var se,k,O,B,U,z,H="",K=Q.tag,ie=Object.keys(de);if(Q.sortKeys===!0)ie.sort();else if(typeof Q.sortKeys=="function")ie.sort(Q.sortKeys);else if(Q.sortKeys)throw new a("sortKeys must be a boolean or a function");for(se=0,k=ie.length;se1024)&&(Q.dump&&Q.dump.charCodeAt(0)===10?z+="?":z+="? "),z+=Q.dump,U&&(z+=v(Q,re)),b(Q,re+1,B,!0,U)&&(Q.dump&&Q.dump.charCodeAt(0)===10?z+=":":z+=": ",H+=z+=Q.dump));Q.tag=K,Q.dump=H||"{}"}(M,L,M.dump,P),j&&(M.dump="&ref_"+$+M.dump)):(function(Q,re,de){var fe,se,k,O,B,U="",z=Q.tag,H=Object.keys(de);for(fe=0,se=H.length;fe1024&&(B+="? "),B+=Q.dump+(Q.condenseFlow?'"':"")+":"+(Q.condenseFlow?"":" "),b(Q,re,O,!1,!1)&&(U+=B+=Q.dump));Q.tag=z,Q.dump="{"+U+"}"}(M,L,M.dump),j&&(M.dump="&ref_"+$+" "+M.dump));else if(V==="[object Array]"){var te=M.noArrayIndent&&L>0?L-1:L;G&&M.dump.length!==0?(function(Q,re,de,fe){var se,k,O="",B=Q.tag;for(se=0,k=de.length;se "+M.dump)}return!0}function I(M,L){var A,G,P=[],N=[];for(function V($,j,Y){var te,Q,re;if($!==null&&typeof $=="object")if((Q=j.indexOf($))!==-1)Y.indexOf(Q)===-1&&Y.push(Q);else if(j.push($),Array.isArray($))for(Q=0,re=$.length;Q=C.length&&(C=void 0),{value:C&&C[_++],done:!C}}};throw new TypeError(S?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(C,S){var T=typeof Symbol=="function"&&C[Symbol.iterator];if(!T)return C;var _,E,D=T.call(C),b=[];try{for(;(S===void 0||S-- >0)&&!(_=D.next()).done;)b.push(_.value)}catch(I){E={error:I}}finally{try{_&&!_.done&&(T=D.return)&&T.call(D)}finally{if(E)throw E.error}}return b};Object.defineProperty(n,"__esModule",{value:!0});var l=i(91),f=i(1),u=i(183),d=i(0),h=i(7),g=i(95),p=i(69),v=i(3),x=i(305),m=i(306),y=i(307),w=function(C){function S(T,_){_===void 0&&(_=!1);var E=C.call(this)||this;return E._hasDeclaration=!1,E._docTypeName="",E._hasDocumentElement=!1,E._currentElementSerialized=!1,E._openTags=[],E._ended=!1,E._fragment=_,E._options=f.applyDefaults(T||{},l.DefaultXMLBuilderCBOptions),E._builderOptions={defaultNamespace:E._options.defaultNamespace,namespaceAlias:E._options.namespaceAlias},E._options.format==="json"?E._writer=new m.JSONCBWriter(E._options):E._options.format==="yaml"?E._writer=new y.YAMLCBWriter(E._options):E._writer=new x.XMLCBWriter(E._options),E._options.data!==void 0&&E.on("data",E._options.data),E._options.end!==void 0&&E.on("end",E._options.end),E._options.error!==void 0&&E.on("error",E._options.error),E._prefixMap=new g.NamespacePrefixMap,E._prefixMap.set("xml",h.namespace.XML),E._prefixIndex={value:1},E._push(E._writer.frontMatter()),E}return a(S,C),S.prototype.ele=function(T,_,E){var D,b;if(f.isObject(T)||f.isString(T)&&(/^\s*/g,">");return this._push(this._writer.text(E)),this},S.prototype.ins=function(T,_){var E;_===void 0&&(_=""),this._serializeOpenTag(!0);try{E=u.fragment(this._builderOptions).ins(T,_).first().node}catch(D){return this.emit("error",D),this}return this._options.wellFormed&&(E.target.indexOf(":")!==-1||/^xml$/i.test(E.target))?(this.emit("error",new Error("Processing instruction target contains invalid characters (well-formed required).")),this):this._options.wellFormed&&!d.xml_isLegalChar(E.data)?(this.emit("error",Error("Processing instruction data contains invalid characters (well-formed required).")),this):(this._push(this._writer.instruction(E.target,E.data)),this)},S.prototype.dat=function(T){var _;this._serializeOpenTag(!0);try{_=u.fragment(this._builderOptions).dat(T).first().node}catch(E){return this.emit("error",E),this}return this._push(this._writer.cdata(_.data)),this},S.prototype.dec=function(T){return T===void 0&&(T={version:"1.0"}),this._fragment?(this.emit("error",Error("Cannot insert an XML declaration into a document fragment.")),this):this._hasDeclaration?(this.emit("error",Error("XML declaration is already inserted.")),this):(this._push(this._writer.declaration(T.version||"1.0",T.encoding,T.standalone)),this._hasDeclaration=!0,this)},S.prototype.dtd=function(T){if(this._fragment)return this.emit("error",Error("Cannot insert a DocType declaration into a document fragment.")),this;if(this._docTypeName!=="")return this.emit("error",new Error("DocType declaration is already inserted.")),this;if(this._hasDocumentElement)return this.emit("error",new Error("Cannot insert DocType declaration after document element.")),this;var _;try{_=u.create().dtd(T).first().node}catch(E){return this.emit("error",E),this}return this._options.wellFormed&&!d.xml_isPubidChar(_.publicId)?(this.emit("error",new Error("DocType public identifier does not match PubidChar construct (well-formed required).")),this):this._options.wellFormed&&(!d.xml_isLegalChar(_.systemId)||_.systemId.indexOf('"')!==-1&&_.systemId.indexOf("'")!==-1)?(this.emit("error",new Error("DocType system identifier contains invalid characters (well-formed required).")),this):(this._docTypeName=T.name,this._push(this._writer.docType(T.name,_.publicId,_.systemId)),this)},S.prototype.import=function(T){var _,E,D=u.fragment().set(this._options);try{D.import(T)}catch(M){return this.emit("error",M),this}try{for(var b=s(D.node.childNodes),I=b.next();!I.done;I=b.next()){var R=I.value;this._fromNode(R)}}catch(M){_={error:M}}finally{try{I&&!I.done&&(E=b.return)&&E.call(b)}finally{if(_)throw _.error}}return this},S.prototype.up=function(){return this._serializeOpenTag(!1),this._serializeCloseTag(),this},S.prototype.end=function(){for(this._serializeOpenTag(!1);this._openTags.length>0;)this._serializeCloseTag();return this._push(null),this},S.prototype._serializeOpenTag=function(T){if(!this._currentElementSerialized&&this._currentElement!==void 0){var _=this._currentElement.node;if(!this._options.wellFormed||_.localName.indexOf(":")===-1&&d.xml_isName(_.localName)){var E="",D=!1,b=this._prefixMap.copy(),I={},R=this._recordNamespaceInformation(_,b,I),M=this._openTags.length===0?null:this._openTags[this._openTags.length-1][1],L=_.namespaceURI;if(L===null&&(L=M),M===L)R!==null&&(D=!0),E=L===h.namespace.XML?"xml:"+_.localName:_.localName,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E));else{var A=_.prefix,G=null;if(A===null&&L===R||(G=b.get(A,L)),A==="xmlns"){if(this._options.wellFormed)return void this.emit("error",new Error("An element cannot have the 'xmlns' prefix (well-formed required)."));G=A}G!==null?(E=G+":"+_.localName,R!==null&&R!==h.namespace.XML&&(M=R||null),this._writer.beginElement(E),this._push(this._writer.openTagBegin(E))):A!==null?(A in I&&(A=this._generatePrefix(L,b,this._prefixIndex)),b.set(A,L),E+=A+":"+_.localName,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)),this._push(this._writer.attribute("xmlns:"+A,this._serializeAttributeValue(L,this._options.wellFormed))),R!==null&&(M=R||null)):R===null||R!==null&&R!==L?(D=!0,E+=_.localName,M=L,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)),this._push(this._writer.attribute("xmlns",this._serializeAttributeValue(L,this._options.wellFormed)))):(E+=_.localName,M=L,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)))}this._serializeAttributes(_,b,this._prefixIndex,I,D,this._options.wellFormed);var P=L===h.namespace.HTML;P&&!T&&S._VoidElementNames.has(_.localName)?(this._push(this._writer.openTagEnd(E,!0,!0)),this._writer.endElement(E)):P||T?this._push(this._writer.openTagEnd(E,!1,!1)):(this._push(this._writer.openTagEnd(E,!0,!1)),this._writer.endElement(E)),this._currentElementSerialized=!0,this._openTags.push([E,M,this._prefixMap,T]),this._isPrefixMapModified(this._prefixMap,b)&&(this._prefixMap=b),this._writer.level++}else this.emit("error",new Error("Node local name contains invalid characters (well-formed required)."))}},S.prototype._serializeCloseTag=function(){this._writer.level--;var T=this._openTags.pop();if(T!==void 0){var _=c(T,4),E=_[0],D=(_[1],_[2]),b=_[3];this._prefixMap=D,b&&(this._push(this._writer.closeTag(E)),this._writer.endElement(E))}else this.emit("error",new Error("Last element is undefined."))},S.prototype._push=function(T){T===null?(this._ended=!0,this.emit("end")):this._ended?this.emit("error",new Error("Cannot push to ended stream.")):T.length!==0&&(this._writer.hasData=!0,this.emit("data",T,this._writer.level))},S.prototype._fromNode=function(T){var _,E,D,b;if(v.Guard.isElementNode(T)){var I=T.prefix?T.prefix+":"+T.localName:T.localName;T.namespaceURI!==null?this.ele(T.namespaceURI,I):this.ele(I);try{for(var R=s(T.attributes),M=R.next();!M.done;M=R.next()){var L=M.value,A=L.prefix?L.prefix+":"+L.localName:L.localName;L.namespaceURI!==null?this.att(L.namespaceURI,A,L.value):this.att(A,L.value)}}catch(V){_={error:V}}finally{try{M&&!M.done&&(E=R.return)&&E.call(R)}finally{if(_)throw _.error}}try{for(var G=s(T.childNodes),P=G.next();!P.done;P=G.next()){var N=P.value;this._fromNode(N)}}catch(V){D={error:V}}finally{try{P&&!P.done&&(b=G.return)&&b.call(G)}finally{if(D)throw D.error}}this.up()}else v.Guard.isExclusiveTextNode(T)&&T.data?this.txt(T.data):v.Guard.isCommentNode(T)?this.com(T.data):v.Guard.isCDATASectionNode(T)?this.dat(T.data):v.Guard.isProcessingInstructionNode(T)&&this.ins(T.target,T.data)},S.prototype._serializeAttributes=function(T,_,E,D,b,I){var R,M,L=I?new p.LocalNameSet:void 0;try{for(var A=s(T.attributes),G=A.next();!G.done;G=A.next()){var P=G.value;if(I||b||P.namespaceURI!==null){if(I&&L&&L.has(P.namespaceURI,P.localName))return void this.emit("error",new Error("Element contains duplicate attributes (well-formed required)."));I&&L&&L.set(P.namespaceURI,P.localName);var N=P.namespaceURI,V=null;if(N!==null)if(V=_.get(P.prefix,N),N===h.namespace.XMLNS){if(P.value===h.namespace.XML||P.prefix===null&&b||P.prefix!==null&&(!(P.localName in D)||D[P.localName]!==P.value)&&_.has(P.localName,P.value))continue;if(I&&P.value===h.namespace.XMLNS)return void this.emit("error",new Error("XMLNS namespace is reserved (well-formed required)."));if(I&&P.value==="")return void this.emit("error",new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required)."));P.prefix==="xmlns"&&(V="xmlns")}else V===null&&(V=P.prefix===null||_.hasPrefix(P.prefix)&&!_.has(P.prefix,N)?this._generatePrefix(N,_,E):P.prefix,this._push(this._writer.attribute("xmlns:"+V,this._serializeAttributeValue(N,this._options.wellFormed))));if(I&&(P.localName.indexOf(":")!==-1||!d.xml_isName(P.localName)||P.localName==="xmlns"&&N===null))return void this.emit("error",new Error("Attribute local name contains invalid characters (well-formed required)."));this._push(this._writer.attribute((V!==null?V+":":"")+P.localName,this._serializeAttributeValue(P.value,this._options.wellFormed)))}else this._push(this._writer.attribute(P.localName,this._serializeAttributeValue(P.value,this._options.wellFormed)))}}catch($){R={error:$}}finally{try{G&&!G.done&&(M=A.return)&&M.call(A)}finally{if(R)throw R.error}}},S.prototype._serializeAttributeValue=function(T,_){return _&&T!==null&&!d.xml_isLegalChar(T)?(this.emit("error",new Error("Invalid characters in attribute value.")),""):T===null?"":T.replace(/(?!&(lt|gt|amp|apos|quot);)&/g,"&").replace(//g,">").replace(/"/g,""")},S.prototype._recordNamespaceInformation=function(T,_,E){var D,b,I=null;try{for(var R=s(T.attributes),M=R.next();!M.done;M=R.next()){var L=M.value,A=L.namespaceURI,G=L.prefix;if(A===h.namespace.XMLNS){if(G===null){I=L.value;continue}var P=L.localName,N=L.value;if(N===h.namespace.XML||(N===""&&(N=null),_.has(P,N)))continue;_.set(P,N),E[P]=N||""}}}catch(V){D={error:V}}finally{try{M&&!M.done&&(b=R.return)&&b.call(R)}finally{if(D)throw D.error}}return I},S.prototype._generatePrefix=function(T,_,E){var D="ns"+E.value;return E.value++,_.set(D,T),D},S.prototype._isPrefixMapModified=function(T,_){var E=T._items,D=_._items,b=T._nullItems,I=_._nullItems;for(var R in D){var M=E[R];if(M===void 0)return!0;var L=D[R];if(M.length!==L.length)return!0;for(var A=0;A':u?"':d?"':""},l.prototype.comment=function(f){return this._beginLine()+""},l.prototype.text=function(f){return this._beginLine()+f},l.prototype.instruction=function(f,u){return u?this._beginLine()+"":this._beginLine()+""},l.prototype.cdata=function(f){return this._beginLine()+""},l.prototype.openTagBegin=function(f){return this._lineLength+=1+f.length,this._beginLine()+"<"+f},l.prototype.openTagEnd=function(f,u,d){return d?" />":u?this._writerOptions.allowEmptyTags?">":this._writerOptions.spaceBeforeSlash?" />":"/>":">"},l.prototype.closeTag=function(f){return this._beginLine()+""},l.prototype.attribute=function(f,u){var d=f+'="'+u+'"';return this._writerOptions.prettyPrint&&this._writerOptions.width>0&&this._lineLength+1+d.length>this._writerOptions.width?(d=this._beginLine()+this._indent(1)+d,this._lineLength=d.length,d):(this._lineLength+=1+d.length," "+d)},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){},l.prototype._beginLine=function(){if(this._writerOptions.prettyPrint){var f=(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level);return this._lineLength=f.length,f}return""},l.prototype._indent=function(f){return f<=0?"":this._writerOptions.indent.repeat(f)},l}(i(114).BaseCBWriter);n.XMLCBWriter=s},function(r,n,i){i(74);var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(f){var u=c.call(this,f)||this;return u._hasChildren=[],u._additionalLevel=0,u}return a(l,c),l.prototype.frontMatter=function(){return""},l.prototype.declaration=function(f,u,d){return""},l.prototype.docType=function(f,u,d){return""},l.prototype.comment=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.comment)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.text=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.text)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.instruction=function(f,u){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.ins)+this._sep()+this._val(u?f+" "+u:f)+this._sep()+"}"},l.prototype.cdata=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.cdata)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.attribute=function(f,u){return this._comma()+this._beginLine(1)+"{"+this._sep()+this._key(this._builderOptions.convert.att+f)+this._sep()+this._val(u)+this._sep()+"}"},l.prototype.openTagBegin=function(f){var u=this._comma()+this._beginLine()+"{"+this._sep()+this._key(f)+this._sep()+"{";return this._additionalLevel++,this.hasData=!0,u+=this._beginLine()+this._key(this._builderOptions.convert.text)+this._sep()+"[",this._hasChildren.push(!1),u},l.prototype.openTagEnd=function(f,u,d){if(u){var h=this._sep()+"]";return this._additionalLevel--,h+=this._beginLine()+"}"+this._sep()+"}"}return""},l.prototype.closeTag=function(f){var u=this._beginLine()+"]";return this._additionalLevel--,u+=this._beginLine()+"}"+this._sep()+"}"},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){this._hasChildren.pop()},l.prototype._beginLine=function(f){return f===void 0&&(f=0),this._writerOptions.prettyPrint?(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level+f):""},l.prototype._indent=function(f){return f+this._additionalLevel<=0?"":this._writerOptions.indent.repeat(f+this._additionalLevel)},l.prototype._comma=function(){var f=this._hasChildren[this._hasChildren.length-1]?",":"";return this._hasChildren.length>0&&(this._hasChildren[this._hasChildren.length-1]=!0),f},l.prototype._sep=function(){return this._writerOptions.prettyPrint?" ":""},l.prototype._key=function(f){return'"'+f+'":'},l.prototype._val=function(f){return JSON.stringify(f)},l}(i(114).BaseCBWriter);n.JSONCBWriter=s},function(r,n,i){i(74);var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(f){var u=c.call(this,f)||this;if(u._rootWritten=!1,u._additionalLevel=0,f.indent.length<2)throw new Error("YAML indententation string must be at least two characters long.");if(f.offset<0)throw new Error("YAML offset should be zero or a positive number.");return u}return a(l,c),l.prototype.frontMatter=function(){return this._beginLine()+"---"},l.prototype.declaration=function(f,u,d){return""},l.prototype.docType=function(f,u,d){return""},l.prototype.comment=function(f){return this._beginLine()+this._key(this._builderOptions.convert.comment)+" "+this._val(f)},l.prototype.text=function(f){return this._beginLine()+this._key(this._builderOptions.convert.text)+" "+this._val(f)},l.prototype.instruction=function(f,u){return this._beginLine()+this._key(this._builderOptions.convert.ins)+" "+this._val(u?f+" "+u:f)},l.prototype.cdata=function(f){return this._beginLine()+this._key(this._builderOptions.convert.cdata)+" "+this._val(f)},l.prototype.attribute=function(f,u){this._additionalLevel++;var d=this._beginLine()+this._key(this._builderOptions.convert.att+f)+" "+this._val(u);return this._additionalLevel--,d},l.prototype.openTagBegin=function(f){var u=this._beginLine()+this._key(f);return this._rootWritten||(this._rootWritten=!0),this.hasData=!0,this._additionalLevel++,u+=this._beginLine(!0)+this._key(this._builderOptions.convert.text)},l.prototype.openTagEnd=function(f,u,d){return u?" "+this._val(""):""},l.prototype.closeTag=function(f){return this._additionalLevel--,""},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){},l.prototype._beginLine=function(f){return f===void 0&&(f=!1),(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level,f)},l.prototype._indent=function(f,u){if(f+this._additionalLevel<=0)return"";var d=this._writerOptions.indent.repeat(f+this._additionalLevel);return!u&&this._rootWritten?d.substr(0,d.length-2)+"-"+d.substr(-1,1):d},l.prototype._key=function(f){return'"'+f+'":'},l.prototype._val=function(f){return JSON.stringify(f)},l}(i(114).BaseCBWriter);n.YAMLCBWriter=s},function(r,n,i){var o,a=typeof Reflect=="object"?Reflect:null,s=a&&typeof a.apply=="function"?a.apply:function(y,w,C){return Function.prototype.apply.call(y,w,C)};o=a&&typeof a.ownKeys=="function"?a.ownKeys:Object.getOwnPropertySymbols?function(y){return Object.getOwnPropertyNames(y).concat(Object.getOwnPropertySymbols(y))}:function(y){return Object.getOwnPropertyNames(y)};var c=Number.isNaN||function(y){return y!=y};function l(){l.init.call(this)}r.exports=l,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var f=10;function u(y){if(typeof y!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof y)}function d(y){return y._maxListeners===void 0?l.defaultMaxListeners:y._maxListeners}function h(y,w,C,S){var T,_,E,D;if(u(C),(_=y._events)===void 0?(_=y._events=Object.create(null),y._eventsCount=0):(_.newListener!==void 0&&(y.emit("newListener",w,C.listener?C.listener:C),_=y._events),E=_[w]),E===void 0)E=_[w]=C,++y._eventsCount;else if(typeof E=="function"?E=_[w]=S?[C,E]:[E,C]:S?E.unshift(C):E.push(C),(T=d(y))>0&&E.length>T&&!E.warned){E.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+E.length+" "+String(w)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=y,b.type=w,b.count=E.length,D=b,console&&console.warn&&console.warn(D)}return y}function g(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(y,w,C){var S={fired:!1,wrapFn:void 0,target:y,type:w,listener:C},T=g.bind(S);return T.listener=C,S.wrapFn=T,T}function v(y,w,C){var S=y._events;if(S===void 0)return[];var T=S[w];return T===void 0?[]:typeof T=="function"?C?[T.listener||T]:[T]:C?function(_){for(var E=new Array(_.length),D=0;D0&&(_=w[0]),_ instanceof Error)throw _;var E=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw E.context=_,E}var D=T[y];if(D===void 0)return!1;if(typeof D=="function")s(D,this,w);else{var b=D.length,I=m(D,b);for(C=0;C=0;_--)if(C[_]===w||C[_].listener===w){E=C[_].listener,T=_;break}if(T<0)return this;T===0?C.shift():function(D,b){for(;b+1=0;S--)this.removeListener(y,w[S]);return this},l.prototype.listeners=function(y){return v(this,y,!0)},l.prototype.rawListeners=function(y){return v(this,y,!1)},l.listenerCount=function(y,w){return typeof y.listenerCount=="function"?y.listenerCount(w):x.call(y,w)},l.prototype.listenerCount=x,l.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(77);n.createCB=function(a){return new o.XMLBuilderCBImpl(a)},n.fragmentCB=function(a){return new o.XMLBuilderCBImpl(a,!0)}}])})})(zk);var J2e=zk.exports,Li=Uint8Array,Wc=Uint16Array,$k=Uint32Array,jk=new Li([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Hk=new Li([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Z2e=new Li([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Kk=function(t,e){for(var r=new Wc(31),n=0;n<31;++n)r[n]=e+=1<>>1|(Dn&21845)<<1;ds=(ds&52428)>>>2|(ds&13107)<<2,ds=(ds&61680)>>>4|(ds&3855)<<4,W3[Dn]=((ds&65280)>>>8|(ds&255)<<8)>>>1}var nd=function(t,e,r){for(var n=t.length,i=0,o=new Wc(e);i>>c]=l}else for(s=new Wc(n),i=0;i>>15-t[i]);return s},Ph=new Li(288);for(var Dn=0;Dn<144;++Dn)Ph[Dn]=8;for(var Dn=144;Dn<256;++Dn)Ph[Dn]=9;for(var Dn=256;Dn<280;++Dn)Ph[Dn]=7;for(var Dn=280;Dn<288;++Dn)Ph[Dn]=8;var Yk=new Li(32);for(var Dn=0;Dn<32;++Dn)Yk[Dn]=5;var nve=nd(Ph,9,1),rve=nd(Yk,5,1),Ty=function(t){for(var e=t[0],r=1;re&&(e=t[r]);return e},go=function(t,e,r){var n=e/8|0;return(t[n]|t[n+1]<<8)>>(e&7)&r},_y=function(t,e){var r=e/8|0;return(t[r]|t[r+1]<<8|t[r+2]<<16)>>(e&7)},ive=function(t){return(t+7)/8|0},ove=function(t,e,r){(r==null||r>t.length)&&(r=t.length);var n=new(t.BYTES_PER_ELEMENT==2?Wc:t.BYTES_PER_ELEMENT==4?$k:Li)(r-e);return n.set(t.subarray(e,r)),n},ave=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],wo=function(t,e,r){var n=new Error(e||ave[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,wo),!r)throw n;return n},bS=function(t,e,r){var n=t.length;if(!n||r&&r.f&&!r.l)return e||new Li(0);var i=!e||r,o=!r||r.i;r||(r={}),e||(e=new Li(n*3));var a=function(re){var de=e.length;if(re>de){var fe=new Li(Math.max(de*2,re));fe.set(e),e=fe}},s=r.f||0,c=r.p||0,l=r.b||0,f=r.l,u=r.d,d=r.m,h=r.n,g=n*8;do{if(!f){s=go(t,c,1);var p=go(t,c+1,3);if(c+=3,p)if(p==1)f=nve,u=rve,d=9,h=5;else if(p==2){var y=go(t,c,31)+257,w=go(t,c+10,15)+4,C=y+go(t,c+5,31)+1;c+=14;for(var S=new Li(C),T=new Li(19),_=0;_>>4;if(v<16)S[_++]=v;else{var R=0,M=0;for(v==16?(M=3+go(t,c,3),c+=2,R=S[_-1]):v==17?(M=3+go(t,c,7),c+=3):v==18&&(M=11+go(t,c,127),c+=7);M--;)S[_++]=R}}var L=S.subarray(0,y),A=S.subarray(y);d=Ty(L),h=Ty(A),f=nd(L,d,1),u=nd(A,h,1)}else wo(1);else{var v=ive(c)+4,x=t[v-4]|t[v-3]<<8,m=v+x;if(m>n){o&&wo(0);break}i&&a(l+x),e.set(t.subarray(v,m),l),r.b=l+=x,r.p=c=m*8,r.f=s;continue}if(c>g){o&&wo(0);break}}i&&a(l+131072);for(var G=(1<>>4;if(c+=R&15,c>g){o&&wo(0);break}if(R||wo(2),V<256)e[l++]=V;else if(V==256){N=c,f=null;break}else{var $=V-254;if(V>264){var _=V-257,j=jk[_];$=go(t,c,(1<>>4;Y||wo(3),c+=Y&15;var A=tve[te];if(te>3){var j=Hk[te];A+=_y(t,c)&(1<g){o&&wo(0);break}i&&a(l+131072);for(var Q=l+$;l>3&1)+(e>>4&1);n>0;n-=!t[r++]);return r+(e&2)},lve=function(t){var e=t.length;return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0},uve=function(t){((t[0]&15)!=8||t[0]>>>4>7||(t[0]<<8|t[1])%31)&&wo(6,"invalid zlib data"),t[1]&32&&wo(6,"invalid zlib data: preset dictionaries not supported")};function fve(t,e){return bS(t,e)}function dve(t,e){return bS(t.subarray(cve(t),-8),new Li(lve(t)))}function hve(t,e){return bS((uve(t),t.subarray(2,-4)),e)}function gve(t,e){return t[0]==31&&t[1]==139&&t[2]==8?dve(t):(t[0]&15)!=8||t[0]>>4>7||(t[0]<<8|t[1])%31?fve(t,e):hve(t,e)}var pve=typeof TextDecoder<"u"&&new TextDecoder,mve=0;try{pve.decode(sve,{stream:!0}),mve=1}catch{}const IS={};function Jk(t){return!!IS[t]}function vve(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"http",e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return IS[t](e)}function Zk(t,e){IS[t]=e}var yve={get:vve,has:Jk,registerType:Zk};const Oi=[];Oi[45]=62;Oi[95]=63;const uu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let t=0;t>16&255,n[f++]=l>>8&255,n[f++]=l&255}switch(a){case 3:for(;!Go(t[c]);)c++;for(l=Oi[t.charCodeAt(c++)]<<10;!Go(t[c]);)c++;for(l|=Oi[t.charCodeAt(c++)]<<4;!Go(t[c]);)c++;l|=Oi[t.charCodeAt(c++)]>>2,n[f++]=l>>8&255,n[f++]=l&255;break;case 2:for(;!Go(t[c]);)c++;for(l=Oi[t.charCodeAt(c++)]<<2;!Go(t[c]);)c++;l|=Oi[t.charCodeAt(c++)]>>4,n[f++]=l&255;break;case 1:throw new Error("BASE64: remain 1 should not happen")}return f}function Cve(t){const e=xve(t),r=e[e.length-1].end+1,n=(4-r%4)%4,i=(r+n)*3/4-n,o=new ArrayBuffer(i),a=new Uint8Array(o);let s=0;for(let c=0;c>18]+uu[n>>12&63]+uu[n>>6&63]+uu[n&63]}function Sve(t){const e=new Uint8Array(t),r=t.byteLength%3,n=t.byteLength-r,i=Array(n/3);for(let o=0;o0){const o=VE(e[n],e[n+1]||0,e[n+2]||0);r===1?i.push(`${o.substr(0,2)}==`):r===2&&i.push(`${o.substr(0,3)}=`)}return i.join("")}var OS={toArrayBuffer:Cve,fromArrayBuffer:Sve};function Tve(t,e){e.classHierarchy.push("vtkStringArray"),t.getComponent=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.values[r*e.numberOfComponents+n]},t.setComponent=(r,n,i)=>{i!==e.values[r*e.numberOfComponents+n]&&(e.values[r*e.numberOfComponents+n]=i,t.modified())},t.getData=()=>e.values,t.getTuple=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const i=e.numberOfComponents||1;n.length&&(n.length=i);const o=r*i;for(let a=0;a0&&arguments[0]!==void 0?arguments[0]:1)*e.numberOfComponents},t.getNumberOfComponents=()=>e.numberOfComponents,t.getNumberOfValues=()=>e.values.length,t.getNumberOfTuples=()=>e.values.length/e.numberOfComponents,t.getDataType=()=>e.dataType,t.newClone=()=>eV({name:e.name,numberOfComponents:e.numberOfComponents,empty:!0}),t.getName=()=>(e.name||t.setName(`vtkStringArray${t.getMTime()}`),e.name),t.setData=(r,n)=>{e.values=r,e.size=r.length,n&&(e.numberOfComponents=n),e.size%e.numberOfComponents!==0&&(e.numberOfComponents=1),t.modified()}}const _ve={name:"",numberOfComponents:1,size:0,dataType:"string"};function Qk(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,_ve,r),!e.empty&&!e.values&&!e.size)throw new TypeError("Cannot create vtkStringArray object without: size > 0, values");e.values?Array.isArray(e.values)&&(e.values=[...e.values]):e.values=[],e.values&&(e.size=e.values.length),W.obj(t,e),W.set(t,e,["name"]),Tve(t,e)}const eV=W.newInstance(Qk,"vtkStringArray");var Eve={newInstance:eV,extend:Qk};function tV(t){return new TextDecoder("latin1").decode(t)}function Dve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;const n=tV(t),i=e.exec(n);if(!i)return{text:n};const o=i.index+i[0].length,a=n.substring(0,o);let s=null;const c=r?r.exec(n):null;if(c){const l=n.substr(c.index);s={text:a+l,binaryBuffer:t.slice(o,c.index)}}else s={text:a,binaryBuffer:t.slice(o)};return s}var bve={arrayBufferToString:tV,extractBinary:Dve};function nV(){const t=new ArrayBuffer(4),e=new Uint8Array(t),r=new Uint32Array(t);return e[0]=161,e[1]=178,e[2]=195,e[3]=212,r[0]===3569595041?"LittleEndian":r[0]===2712847316?"BigEndian":null}const Ive=nV();function Ove(t,e){if(e<2)return;const r=new Int8Array(t),n=r.length,i=[];for(let o=0;o(rV("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead."),Promise.reject(new Error("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.")));let c0=0;function k2(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=new XMLHttpRequest;return n.open(t,e,!0),r.headers&&Object.entries(r.headers).forEach(i=>{let[o,a]=i;return n.setRequestHeader(o,a)}),r.progressCallback&&n.addEventListener("progress",r.progressCallback),n}function Rve(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((r,n)=>{const i=k2("GET",t,e);i.onreadystatechange=o=>{i.readyState===4&&(i.status===200||i.status===0?r(i.response):n({xhr:i,e:o}))},i.responseType="arraybuffer",i.send()})}function Lve(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return n&&n.compression?MS():r.ref&&!r.ref.pending?new Promise((i,o)=>{const a=[e,r.ref.basepath,r.ref.id].join("/"),s=k2("GET",a,n);s.onreadystatechange=c=>{s.readyState===1&&(r.ref.pending=!0,++c0===1&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!0)),s.readyState===4&&(r.ref.pending=!1,s.status===200||s.status===0?(r.buffer=s.response,r.ref.encode==="JSON"?r.values=JSON.parse(r.buffer):(Ey.ENDIANNESS!==r.ref.encode&&Ey.ENDIANNESS&&(Mve(`Swap bytes of ${r.name}`),Ey.swapBytes(r.buffer,n7[r.dataType])),r.values=W.newTypedArray(r.dataType,r.buffer)),r.values.length!==r.size&&rV(`Error in FetchArray: ${r.name}, does not have the proper array size. Got ${r.values.length}, instead of ${r.size}`),delete r.ref,--c0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),t!=null&&t.modified&&t.modified(),i(r)):o({xhr:s,e:c}))},s.responseType=r.dataType!=="string"?"arraybuffer":"text",s.send()}):Promise.resolve(r)}function Nve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return r&&r.compression?MS():new Promise((n,i)=>{const o=k2("GET",e,r);o.onreadystatechange=a=>{o.readyState===1&&++c0===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),o.readyState===4&&(--c0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),o.status===200||o.status===0?n(JSON.parse(o.responseText)):i({xhr:o,e:a}))},o.responseType="text",o.send()})}function Pve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return r&&r.compression?MS():new Promise((n,i)=>{const o=k2("GET",e,r);o.onreadystatechange=a=>{o.readyState===1&&++c0===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),o.readyState===4&&(--c0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),o.status===200||o.status===0?n(o.responseText):i({xhr:o,e:a}))},o.responseType="text",o.send()})}function Ave(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new Promise((n,i)=>{const o=new Image;r.crossOrigin&&(o.crossOrigin=r.crossOrigin),o.onload=()=>n(o),o.onerror=i,o.src=e})}const kve={fetchArray:Lve,fetchJSON:Nve,fetchText:Pve,fetchBinary:Rve,fetchImage:Ave};Jk("http")||Zk("http",t=>kve);function Vve(t,e){return[...t.getElementsByTagName(e)]}function FE(t,e){return Vve(t,e)[0]}function Fve(t){return J2e.create(t)}function Uve(t){const e=/^\s*\s*_/m,r=/\n\s*<\/AppendedData>/m;return bve.extractBinary(t,e,r)}const Rs={Int8:Int8Array,UInt8:Uint8Array,Int16:Int16Array,UInt16:Uint16Array,Int32:Int32Array,UInt32:Uint32Array,Int64:Int32Array,UInt64:Uint32Array,Float32:Float32Array,Float64:Float64Array},Qd={Int8:1,UInt8:1,Int16:2,UInt16:2,Int32:4,UInt32:4,Int64:8,UInt64:8,Float32:4,Float64:8};function z3(t){const e=t.length-1;return t.filter((r,n)=>n0&&(o===0?a=n*i:a=(n-1)*i+o);const s=new ArrayBuffer(a),c={offset:0,uint8:new Uint8Array(s)};let l=Gve(r);for(;l{d.trim().length&&(f[u++]=Number(d))})}else if(c==="binary"){const u=new Uint8Array(OS.toArrayBuffer(e.firstChild.nodeValue.trim()));if(r==="vtkZLibDataCompressor"){const d=RS(u,i);f=new Rs[a](d.buffer),/^U?Int64$/.test(a)&&(f=z3(f))}else f=new Rs[a](u.buffer,Qd[i]),a.indexOf("Int64")!==-1&&(f=z3(f))}else if(c==="appended"){const u=Number(e.getAttribute("offset"));f=$3(new Uint8Array(o,u),a,i)}else console.error("Format not supported",c);return{name:s,values:f,numberOfComponents:l}}function Dy(t){return new TextDecoder().decode(t).split("\0").slice(0,-1)}function zve(t,e,r,n,i){const o=t.getAttribute("Name"),a=t.getAttribute("format"),s=Number(t.getAttribute("NumberOfComponents")||"1"),l=Number(t.getAttribute("NumberOfTuples")||"1")*s,f=[];if(a==="ascii"){const u=t.firstChild.nodeValue.trim().split(/\s+/);let d=0;const h=[];for(;f.length{const p=g-h;u[d++]=p;for(let v=0;v{const d=e.getAttribute(u);d&&(c[d]=r[`set${u}`])});const l=e.getElementsByTagName("DataArray"),f=l.length;for(let u=0;utt.newInstance(eh(Number(s.getAttribute("NumberOfTuples")),s,e,r,n,i))),a=[...t.getElementsByTagName("Array")].filter(s=>s.getAttribute("type")==="String").map(s=>Eve.newInstance(zve(s,e,r,n,i)));return[...o,...a]}function Kve(t,e){e.classHierarchy.push("vtkXMLReader"),e.dataAccessHelper||(e.dataAccessHelper=yve.get("http"));function r(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e.dataAccessHelper.fetchBinary(n,i)}t.setUrl=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.url=n;const o=n.split("/");return o.pop(),e.baseURL=o.join("/"),t.loadData(i)},t.loadData=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return r(e.url,n).then(t.parseAsArrayBuffer)},t.parseAsArrayBuffer=n=>{if(!n)return!1;if(n!==e.rawDataBuffer)t.modified();else return!0;const{text:i,binaryBuffer:o}=Uve(n);e.rawDataBuffer=n,e.binaryBuffer=o;const s=Fve(i).root(),c=s.node,l=c.getAttribute("type"),f=c.getAttribute("compressor"),u=c.getAttribute("byte_order"),d=c.getAttribute("header_type")||"UInt32";if(f&&f!=="vtkZLibDataCompressor")return console.error("Invalid compressor",f),!1;if(u&&u!=="LittleEndian")return console.error("Only LittleEndian encoding is supported"),!1;if(l!==e.dataType)return console.error("Invalid data type",l,"expecting",e.dataType),!1;if(FE(c,"AppendedData")){const p=FE(c,"AppendedData"),v=p.getAttribute("encoding"),x=s.filter(T=>{const{node:_}=T;return _.nodeType===Node.ELEMENT_NODE&&_.getAttribute("format")==="appended"&&_.hasAttribute("offset")},!1,!0).map(T=>({node:T.node,offset:Number(T.node.getAttribute("offset"))}));x.sort((T,_)=>T.offset-_.offset);let m=e.binaryBuffer;v==="base64"&&(m=p.textContent.trim().substr(1));const y=[];for(let T=0;TT+_.length,0),C=new ArrayBuffer(w),S=new Uint8Array(C);for(let T=0,_=0;T{t.parseAsArrayBuffer(e.rawDataBuffer)}}const qve={};function Xve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,qve,r),W.obj(t,e),W.get(t,e,["url","baseURL"]),W.setGet(t,e,["dataAccessHelper"]),W.algo(t,e,0,1),Kve(t,e)}var th={extend:Xve,processDataArray:eh,processFieldData:jve,processCells:$ve};function Yve(t,e,r,n,i,o,a){const s=Number(r.getAttribute(`NumberOf${e}`));if(s>0){const c=r.getElementsByTagName(e)[0].getElementsByTagName("DataArray")[0],{values:l,numberOfComponents:f}=th.processDataArray(s,c,n,i,o,a);t[`get${e}`]().setData(l,f)}return s}function Jve(t,e,r,n,i,o,a){const s=Number(r.getAttribute(`NumberOf${e}`));if(s>0){const c=th.processCells(s,r.getElementsByTagName(e)[0],n,i,o,a);t[`get${e}`]().setData(c)}return s}function Zve(t,e){e.classHierarchy.push("vtkXMLPolyDataReader"),t.parseXML=(r,n,i,o,a)=>{const c=r.getElementsByTagName(e.dataType)[0].getElementsByTagName("Piece"),l=c.length;for(let f=0;f{g+=Jve(u,p,d,i,o,a,e.binaryBuffer)}),th.processFieldData(h,d.getElementsByTagName("PointData")[0],u.getPointData(),i,o,a,e.binaryBuffer),th.processFieldData(g,d.getElementsByTagName("CellData")[0],u.getCellData(),i,o,a,e.binaryBuffer),e.output[f]=u}}}const Qve={dataType:"PolyData"};function iV(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,Qve,r),th.extend(t,e,r),Zve(t,e)}const eye=W.newInstance(iV,"vtkXMLPolyDataReader");var tye={newInstance:eye,extend:iV},Sm;(function(t){t[t.ANNOTATED_CUBE=1]="ANNOTATED_CUBE",t[t.AXES=2]="AXES",t[t.CUSTOM=3]="CUSTOM"})(Sm||(Sm={}));const zo=class zo extends or{constructor(e={},r={configuration:{orientationWidget:{enabled:!0,viewportCorner:AE.Corners.BOTTOM_RIGHT,viewportSize:.15,minPixelSize:100,maxPixelSize:300},overlayMarkerType:zo.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE,overlayConfiguration:{[zo.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE]:{faceProperties:{xPlus:{text:"L",faceColor:"#ffff00",faceRotation:90},xMinus:{text:"R",faceColor:"#ffff00",faceRotation:270},yPlus:{text:"P",faceColor:"#00ffff",fontColor:"white",faceRotation:180},yMinus:{text:"A",faceColor:"#00ffff",fontColor:"white"},zPlus:{text:"S"},zMinus:{text:"I"}},defaultStyle:{fontStyle:"bold",fontFamily:"Arial",fontColor:"black",fontSizeScale:n=>n/2,faceColor:"#0000ff",edgeThickness:.1,edgeColor:"black",resolution:400}},[zo.OVERLAY_MARKER_TYPES.AXES]:{},[zo.OVERLAY_MARKER_TYPES.CUSTOM]:{polyDataURL:"https://raw.githubusercontent.com/Slicer/Slicer/80ad0a04dacf134754459557bf2638c63f3d1d1b/Base/Logic/Resources/OrientationMarkers/Human.vtp"}}}}){super(e,r),this._resizeObservers=new Map,this.onSetToolEnabled=()=>{this.initViewports(),this._subscribeToViewportEvents()},this.onSetToolActive=()=>{this.initViewports(),this._subscribeToViewportEvents()},this.onSetToolDisabled=()=>{this.cleanUpData(),this._unsubscribeToViewportNewVolumeSet()},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.resize=n=>{const i=this.orientationMarkers[n];if(!i)return;const{orientationWidget:o}=i;o.updateViewport()},this.orientationMarkers={},this.updatingOrientationMarker={}}_unsubscribeToViewportNewVolumeSet(){const e=()=>{this._getViewportsInfo().forEach(({viewportId:n,renderingEngineId:i})=>{const{viewport:o}=fr(n,i),{element:a}=o;a.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this.initViewports.bind(this)),this._resizeObservers.get(n).unobserve(a)})};Ce.removeEventListener(F.TOOLGROUP_VIEWPORT_ADDED,r=>{r.detail.toolGroupId===this.toolGroupId&&(e(),this.initViewports())})}_subscribeToViewportEvents(){const e=()=>{this._getViewportsInfo().forEach(({viewportId:n,renderingEngineId:i})=>{const{viewport:o}=fr(n,i),{element:a}=o;this.initViewports(),a.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this.initViewports.bind(this));const s=new ResizeObserver(()=>{setTimeout(()=>{const c=fr(n,i);if(!c)return;const{viewport:l}=c;this.resize(n),l.render()},100)});s.observe(a),this._resizeObservers.set(n,s)})};e(),Ce.addEventListener(F.TOOLGROUP_VIEWPORT_ADDED,r=>{r.detail.toolGroupId===this.toolGroupId&&(e(),this.initViewports())})}cleanUpData(){_i()[0].getViewports().forEach(i=>{const o=this.orientationMarkers[i.id];if(!o)return;const{actor:a,orientationWidget:s}=o;s==null||s.setEnabled(!1),s==null||s.delete(),a==null||a.delete(),i.getRenderingEngine().offscreenMultiRenderWindow.getRenderWindow().render(),i.getRenderingEngine().render(),delete this.orientationMarkers[i.id]})}initViewports(){const r=_i()[0];if(!r)return;let n=r.getViewports();n=D2(n,this.getToolName()),n.forEach(i=>{const o=i.getWidget(this.getToolName());(!o||o.isDeleted())&&this.addAxisActorInViewport(i)})}async addAxisActorInViewport(e){const r=e.id;if(!this.updatingOrientationMarker[r]){this.updatingOrientationMarker[r]=!0;const n=this.configuration.overlayMarkerType,i=this.configuration.overlayConfiguration[n];if(this.orientationMarkers[r]){const{actor:g,orientationWidget:p}=this.orientationMarkers[r];e.getRenderer().removeActor(g),p.setEnabled(!1)}let o;n===1?o=this.createAnnotationCube(i):n===2?o=Y2e.newInstance():n===3&&(o=await this.createCustomActor());const a=e.getRenderer(),s=e.getRenderingEngine().offscreenMultiRenderWindow.getRenderWindow(),{enabled:c,viewportCorner:l,viewportSize:f,minPixelSize:u,maxPixelSize:d}=this.configuration.orientationWidget,h=AE.newInstance({actor:o,interactor:s.getInteractor(),parentRenderer:a});h.setEnabled(c),h.setViewportCorner(l),h.setViewportSize(f),h.setMinPixelSize(u),h.setMaxPixelSize(d),h.updateMarkerOrientation(),this.orientationMarkers[r]={orientationWidget:h,actor:o},e.addWidget(this.getToolName(),h),s.render(),e.getRenderingEngine().render(),this.updatingOrientationMarker[r]=!1}}async createCustomActor(){const e=this.configuration.overlayConfiguration[Sm.CUSTOM].polyDataURL,n=await(await fetch(e)).arrayBuffer(),i=tye.newInstance();i.parseAsArrayBuffer(n),i.update();const o=dr.newInstance();o.shallowCopy(i.getOutputData()),o.getPointData().setActiveScalars("Color");const a=ia.newInstance();a.setInputData(o),a.setColorModeToDirectScalars();const s=sa.newInstance();return s.setMapper(a),s.rotateZ(180),s}createAnnotationCube(e){const r=kE.newInstance();return r.setDefaultStyle({...e.defaultStyle}),r.setXPlusFaceProperty({...e.faceProperties.xPlus}),r.setXMinusFaceProperty({...e.faceProperties.xMinus}),r.setYPlusFaceProperty({...e.faceProperties.yPlus}),r.setYMinusFaceProperty({...e.faceProperties.yMinus}),r.setZPlusFaceProperty({...e.faceProperties.zPlus}),r.setZMinusFaceProperty({...e.faceProperties.zMinus}),r}async createAnnotatedCubeActor(){const e=kE.newInstance(),{faceProperties:r,defaultStyle:n}=this.configuration.annotatedCube;return e.setDefaultStyle(n),Object.keys(r).forEach(i=>{const o=`set${i.charAt(0).toUpperCase()+i.slice(1)}FaceProperty`;e[o](r[i])}),e}};zo.CUBE=1,zo.AXIS=2,zo.VTPFILE=3,zo.OVERLAY_MARKER_TYPES=Sm;let Tm=zo;Tm.toolName="OrientationMarker";const ad=class ad extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{hoverTimeout:100,mode:ad.SelectMode.Border,searchRadius:6}}){super(e,r),this.mouseMoveCallback=n=>(this.hoverTimer&&clearTimeout(this.hoverTimer),this.hoverTimer=setTimeout(()=>{this._setActiveSegment(n),this.hoverTimer=null},this.configuration.hoverTimeout),!0),this.onSetToolEnabled=()=>{this.onSetToolActive()},this.onSetToolActive=()=>{this.hoverTimer=null},this.onSetToolDisabled=()=>{this.hoverTimer=null},this.hoverTimer=null}_setActiveSegment(e={}){if(me.isInteractingWithTool)return;const{element:r,currentPoints:n}=e.detail,i=n.world,o=ne(r);if(!o)return;const{viewport:a}=o,s=bl(a.id);s&&this._setActiveSegmentForType(s,i,a)}_setActiveSegmentForType(e,r,n){if(!n.getImageData())return;const{segmentationId:o,representationData:a}=e;let s;if(this.configuration.mode===ad.SelectMode.Inside?s=RA(o,r,{viewport:n}):a.Labelmap?s=LA(o,r,{viewport:n,searchRadius:this.configuration.searchRadius}):a.Contour?s=PA(o):a.Surface,!s||s===0)return;xm(o,s);const l=n.getRenderingEngine().getViewports().map(f=>f.id);Di(o),pe(l)}};ad.SelectMode={Inside:"Inside",Border:"Border"};let _m=ad;_m.toolName="SegmentSelectTool";class oV extends ar{constructor(e={}){super(e,{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}}),this.addNewAnnotation=r=>{const n=r.detail,{currentPoints:i,element:o}=n,a=i.world,s=ne(o),{viewport:c,renderingEngine:l}=s;this.isDrawing=!0;const f=c.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(c,a,u,d),g={metadata:{viewPlaneNormal:[0,0,1],viewUp:[0,1,0],FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:h,toolName:this.getToolName()},data:{invalidated:!0,handles:{points:[[...a],[...a],[...a],[...a]],activeHandleIndex:null},cachedStats:{},active:!0}};Ut(g,o);const p=He(o,this.getToolName(),!1);return this.editData={annotation:g,viewportUIDsToRender:p,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(o),Ze(o),r.preventDefault(),pe(p),g},this.getHandleNearImagePoint=(r,n,i,o)=>{const a=ne(r),{viewport:s}=a,{data:c}=n,{points:l}=c.handles;for(let f=0;f{const a=ne(r),{viewport:s}=a,{data:c}=n,{points:l}=c.handles,f=s.worldToCanvas(l[0]),u=s.worldToCanvas(l[3]),d=this._getRectangleImageCoordinates([f,u]),h=[i[0],i[1]],{left:g,top:p,width:v,height:x}=d;if(ZC([g,p,v,x],h)<=o)return!0},this.toolSelectedCallback=(r,n,i="mouse")=>{const o=r.detail,{element:a}=o,{data:s}=n;s.active=!0;const c=He(a,this.getToolName(),!1);this.editData={annotation:n,viewportUIDsToRender:c},this._activateModify(a),Ze(a),pe(c),r.preventDefault()},this.handleSelectedCallback=(r,n,i,o="mouse")=>{const a=r.detail,{element:s}=a,{data:c}=n;c.active=!0;let l;i.worldPosition||(l=c.handles.points.findIndex(u=>u===i));const f=He(s,this.getToolName(),!1);this.editData={annotation:n,viewportUIDsToRender:f,handleIndex:l},this._activateModify(s),Ze(s),pe(f),r.preventDefault()},this._mouseUpCallback=r=>{const n=r.detail,{element:i}=n,{annotation:o,viewportUIDsToRender:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=o;s&&!c||(l.active=!1,l.handles.activeHandleIndex=null,this._deactivateModify(i),this._deactivateDraw(i),lt(i),ne(i),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(o.annotationUID),pe(a))},this._mouseDragCallback=r=>{this.isDrawing=!0;const n=r.detail,{element:i}=n,{annotation:o,viewportUIDsToRender:a,handleIndex:s}=this.editData,{data:c}=o;if(s===void 0){const{deltaPoints:l}=n,f=l.world,{points:u}=c.handles;u.forEach(d=>{d[0]+=f[0],d[1]+=f[1],d[2]+=f[2]}),c.invalidated=!0}else{const{currentPoints:l}=n,f=ne(i),{worldToCanvas:u,canvasToWorld:d}=f.viewport,h=l.world,{points:g}=c.handles;g[s]=[...h];let p,v,x,m,y,w,C,S;switch(s){case 0:case 3:p=u(g[0]),m=u(g[3]),v=[m[0],p[1]],x=[p[0],m[1]],w=d(v),C=d(x),g[1]=w,g[2]=C;break;case 1:case 2:v=u(g[1]),x=u(g[2]),p=[x[0],v[1]],m=[v[0],x[1]],y=d(p),S=d(m),g[0]=y,g[3]=S;break}c.invalidated=!0}this.editData.hasMoved=!0,ne(i),pe(a)},this._activateDraw=r=>{me.isInteractingWithTool=!0,r.addEventListener(F.MOUSE_UP,this._mouseUpCallback),r.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),r.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.addEventListener(F.TOUCH_END,this._mouseUpCallback),r.addEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._deactivateDraw=r=>{me.isInteractingWithTool=!1,r.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),r.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.removeEventListener(F.MOUSE_MOVE,this._mouseDragCallback),r.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.removeEventListener(F.TOUCH_END,this._mouseUpCallback),r.removeEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._activateModify=r=>{me.isInteractingWithTool=!0,r.addEventListener(F.MOUSE_UP,this._mouseUpCallback),r.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.addEventListener(F.TOUCH_END,this._mouseUpCallback),r.addEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._deactivateModify=r=>{me.isInteractingWithTool=!1,r.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),r.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.removeEventListener(F.TOUCH_END,this._mouseUpCallback),r.removeEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this.renderAnnotation=(r,n)=>{const{viewport:o}=r,{element:a}=o;let s=_t(this.getToolName(),a);if(!(s!=null&&s.length)||(s=this.filterInteractableAnnotationsForElement(a,s),!(s!=null&&s.length)))return!1;this.getTargetId(o),o.getRenderingEngine();const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:r.viewport.id};for(let l=0;lo.worldToCanvas(C)),v=this.getStyle("lineWidth",c,f),x=this.getStyle("lineDash",c,f),m=this.getStyle("color",c,f);if(!o.getRenderingEngine()){console.warn("Rendering Engine has been destroyed");return}let y;!this.editData&&g!==null&&(y=[p[g]]),y&&cn(n,u,"0",y,{color:m}),kN(n,u,"0",p[0],p[3],{color:"black",lineDash:x,lineWidth:v})}},this._getRectangleImageCoordinates=r=>{const[n,i]=r;return{left:Math.min(n[0],i[0]),top:Math.min(n[1],i[1]),width:Math.abs(n[0]-i[0]),height:Math.abs(n[1]-i[1])}},this._calculateCachedStats=(r,n,i,o,a)=>{const{data:s}=r,{viewportUID:c,renderingEngineUID:l,sceneUID:f}=a,u=s.handles.points[0],d=s.handles.points[3],{cachedStats:h}=s,g=Object.keys(h);for(let x=0;xOn(r,i)&&On(n,i),this._getTargetVolumeUID=r=>{if(this.configuration.volumeUID)return this.configuration.volumeUID;const n=r.getVolumeActors();if(!(!n&&!n.length))return n[0].uid},this._throttledCalculateCachedStats=ei(this._calculateCachedStats,100,{trailing:!0})}cancel(e){if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(e),this._deactivateModify(e),lt(e);const{annotation:r,viewportUIDsToRender:n}=this.editData,{data:i}=r;return i.active=!1,i.handles.activeHandleIndex=null,pe(n),this.editData=null,r.metadata.annotationUID}_getImageVolumeFromTargetUID(e,r){let n,i;if(e.startsWith("stackTarget")){const o=e.indexOf(":"),a=e.substring(o+1);n=r.getViewport(a).getImageData()}else n=Te.getVolume(e);return{imageVolume:n,viewport:i}}_getTargetStackUID(e){return`stackTarget:${e.uid}`}}oV.toolName="VideoRedaction";const nye=Object.freeze(Object.defineProperty({__proto__:null,AdvancedMagnifyTool:Jd,AngleTool:Sk,AnnotationDisplayTool:lc,AnnotationTool:ar,ArrowAnnotateTool:rc,BaseTool:or,BidirectionalTool:mS,BrushTool:pS,CONSTANTS:ige,CircleROIStartEndThresholdTool:Mk,CircleROITool:_S,CircleScissorsTool:Ik,CobbAngleTool:Tk,CrosshairsTool:Ho,DragProbeTool:vk,ETDRSGridTool:yk,EllipticalROITool:s0,Enums:zR,EraserTool:Ek,HeightTool:mk,KeyImageTool:A2,LengthTool:yl,LivewireContourSegmentationTool:Ck,LivewireContourTool:ES,MIPJumpToClickTool:sk,MagnifyTool:ck,OrientationMarkerTool:Tm,OverlayGridTool:lk,PaintFillTool:Rk,PanTool:n0,PlanarFreehandContourSegmentationTool:Ja,PlanarFreehandROITool:ml,PlanarRotateTool:i0,ProbeTool:nc,RectangleROIStartEndThresholdTool:dS,RectangleROIThresholdTool:hS,RectangleROITool:ec,RectangleScissorsTool:bk,ReferenceCursors:Ri,ReferenceLinesTool:Qc,ScaleOverlayTool:hk,SculptorTool:a0,SegmentSelectTool:_m,SegmentationIntersectionTool:uk,SphereScissorsTool:Ok,SplineContourSegmentationTool:wk,SplineROITool:Zd,StackScrollTool:vl,Synchronizer:rA,SynchronizerManager:ege,ToolGroupManager:$se,TrackballRotateTool:ok,Types:tme,UltrasoundDirectionalTool:_k,VideoRedactionTool:oV,VolumeRotateTool:pk,WindowLevelRegionTool:ak,WindowLevelTool:r0,ZoomTool:o0,addTool:pr,annotation:mfe,cancelActiveManipulations:qhe,cursors:Bse,destroy:tge,drawing:jue,init:iA,removeTool:pce,segmentation:Sme,get state(){return me},synchronizers:_ge,utilities:eme},Symbol.toStringTag,{value:"Module"}));function aV(t,e,r){if(t===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(t.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${t.length} must be divisible by 3`);const n=t.length/3;let i=0,o=0;if(r){for(let a=0;a>e;return n}function Iy(t,e,r){const n=t[`${e}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=Pe("imagePixelModule",t.imageId);return i&&typeof i.then=="function"?i.then(o=>o?o[`${e}PaletteColorLookupTableData`]:r):Promise.resolve(i?i[`${e}PaletteColorLookupTableData`]:r)}function uV(t,e,r){const n=t.columns*t.rows,i=t.pixelData;Promise.all([Iy(t,"red",null),Iy(t,"green",null),Iy(t,"blue",null)]).then(([o,a,s])=>{if(!o||!a||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const c=o.length;let l=0,f=0;const u=t.redPaletteColorLookupTableDescriptor[1],d=t.redPaletteColorLookupTableDescriptor[2]===8?0:8,h=by(o,d),g=by(a,d),p=by(s,d);if(r){for(let v=0;vu+c-1?x=c-1:x-=u,e[f++]=h[x],e[f++]=g[x],e[f++]=p[x],e[f++]=255}return}for(let v=0;vu+c-1?x=c-1:x-=u,e[f++]=h[x],e[f++]=g[x],e[f++]=p[x]}})}function Oy(t,e){if(!(!t.elements[e]||t.elements[e].length!==6))return[t.uint16(e,0),t.uint16(e,1),t.uint16(e,2)]}function My(t,e,r){const n=[],i=t.elements[e];for(let o=0;o0?0:t.uint16("x00280103")}function No(t,e,r){const n=[],i=t.string(e);if(!i)return;const o=i.split("\\");if(!(r&&o.lengthX.byteArray.length-X.position&&(Be=X.byteArray.length-X.position),J.fragments.push({offset:X.position-q-8,position:X.position,length:Be}),X.seek(Be),void(J.length=X.position-J.dataOffset);J.fragments.push({offset:X.position-q-8,position:X.position,length:Be}),X.seek(Be)}oe&&oe.push("pixel data element ".concat(J.tag," missing sequence delimiter tag xfffee0dd"))}function T(X,J){if(X===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var oe=X.byteArray.length-8;X.position<=oe;)if(X.readUint16()===65534){var Z=X.readUint16();if(Z===57565)return X.readUint32()!==0&&X.warnings("encountered non zero length following item delimiter at position ".concat(X.position-4," while reading element of undefined length with tag ").concat(J.tag)),void(J.length=X.position-J.dataOffset)}J.length=X.byteArray.length-J.dataOffset,X.seek(X.byteArray.length-X.position)}function _(X,J,oe){if(oe<0)throw"dicomParser.readFixedString - length cannot be less than 0";if(J+oe>X.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var Z,ee="",ve=0;veJ.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var ee=X.elements;J.positionoe)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function Y(X,J,oe){var Z=3J.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var ee=X.elements;J.positionX.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(X[J]<<8)+X[J+1]},readInt16:function(X,J){if(J<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if(J+2>X.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return J=(X[J]<<8)+X[J+1],J=32768&J?J-65535-1:J},readUint32:function(X,J){if(J<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if(J+4>X.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*X[J]+X[J+1])+X[J+2])+X[J+3]},readInt32:function(X,J){if(J<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if(J+4>X.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(X[J]<<24)+(X[J+1]<<16)+(X[J+2]<<8)+X[J+3]},readFloat:function(X,J){if(J<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if(J+4>X.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var oe=new Uint8Array(4);return oe[3]=X[J],oe[2]=X[J+1],oe[1]=X[J+2],oe[0]=X[J+3],new Float32Array(oe.buffer)[0]},readDouble:function(X,J){if(J<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if(J+8>X.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var oe=new Uint8Array(8);return oe[7]=X[J],oe[6]=X[J+1],oe[5]=X[J+2],oe[4]=X[J+3],oe[3]=X[J+4],oe[2]=X[J+5],oe[1]=X[J+6],oe[0]=X[J+7],new Float64Array(oe.buffer)[0]}};function de(X,J,oe){if(typeof Buffer<"u"&&X instanceof Buffer)return X.slice(J,J+oe);if(X instanceof Uint8Array)return new Uint8Array(X.buffer,X.byteOffset+J,oe);throw"dicomParser.from: unknown type for byteArray"}function fe(X,J){for(var oe=0;oe"u"||!(ee instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(ve<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(ve>=ee.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=Z,this.byteArray=ee,this.position=ve||0,this.warnings=[]}var J,oe;return J=X,(oe=[{key:"seek",value:function(Z){if(this.position+Z<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=Z}},{key:"readByteStream",value:function(Z){if(this.position+Z>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var ee=de(this.byteArray,this.position,Z);return this.position+=Z,new X(this.byteArrayParser,ee)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var Z=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,Z}},{key:"readUint32",value:function(){var Z=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,Z}},{key:"readFixedString",value:function(Z){var ee=_(this.byteArray,this.position,Z);return this.position+=Z,ee}}])&&fe(J.prototype,oe),Object.defineProperty(J,"prototype",{writable:!1}),X}(),k={readUint16:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if(J+2>X.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return X[J]+256*X[J+1]},readInt16:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if(J+2>X.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return J=X[J]+(X[J+1]<<8),J=32768&J?J-65535-1:J},readUint32:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if(J+4>X.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return X[J]+256*X[J+1]+256*X[J+2]*256+256*X[J+3]*256*256},readInt32:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if(J+4>X.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return X[J]+(X[J+1]<<8)+(X[J+2]<<16)+(X[J+3]<<24)},readFloat:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if(J+4>X.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var oe=new Uint8Array(4);return oe[0]=X[J],oe[1]=X[J+1],oe[2]=X[J+2],oe[3]=X[J+3],new Float32Array(oe.buffer)[0]},readDouble:function(X,J){if(J<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if(J+8>X.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var oe=new Uint8Array(8);return oe[0]=X[J],oe[1]=X[J+1],oe[2]=X[J+2],oe[3]=X[J+3],oe[4]=X[J+4],oe[5]=X[J+5],oe[6]=X[J+6],oe[7]=X[J+7],new Float64Array(oe.buffer)[0]}};function O(X){var J=1"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Me=X.slice(le),Re=pako.inflateRaw(Me),(Me=te(X,Re.length+le)).set(X.slice(0,le),0),Me.set(Re,le),new se(k,Me,0)}(Ae,Be.position),Be=new b(Ae.byteArrayParser,Ae.byteArray,{});Be.warnings=Ae.warnings;try{(q?j:Y)(Be,Ae,Ae.byteArray.length,J)}catch(ke){throw{exception:ke,dataSet:Be}}return Be}return function(ve,q){for(var Ae in ve.elements)ve.elements.hasOwnProperty(Ae)&&(q.elements[Ae]=ve.elements[Ae]);return ve.warnings!==void 0&&(q.warnings=ve.warnings.concat(q.warnings)),q}(oe=O(X,J),ee(oe))}var z=function(X,J,oe){for(var Z=0,ee=J;ee= 0";if(oe>=q.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(Z<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(oe+Z>q.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var ve=new se(X.byteArrayParser,X.byteArray,q.dataOffset),q=L(ve);if(q.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";ve.seek(q.length);var Ae=ve.position;if(Z===1)return de(ve.byteArray,Ae+ee[oe].offset+8,ee[oe].length);for(var q=z(ee,oe,Z),Be=te(ve.byteArray,q),ke=0,le=oe;le= 0";if(oe>=Z.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var ve=Z[oe],ve=K(ee,ve);if(ve===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return H(X,J,ve,ie(oe,Z,ee,ve),ee)}var ye=!1;function Ee(X,J,oe){if(ye||(ye=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),X===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if(J===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(oe===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if(J.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if(J.encapsulatedPixelData!==!0||J.hadUndefinedLength!==!0||J.basicOffsetTable===void 0||J.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(oe<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return J.basicOffsetTable.length!==0?he(X,J,oe):H(X,J,0,J.fragments.length)}s.default={isStringVr:f,isPrivateTag:u,parsePN:d,parseTM:h,parseDA:p,explicitElementToString:v,explicitDataSetToJS:x,createJPEGBasicOffsetTable:w,parseDicomDataSetExplicit:j,parseDicomDataSetImplicit:Y,readFixedString:_,alloc:te,version:Q,bigEndianByteArrayParser:re,ByteStream:se,sharedCopy:de,DataSet:b,findAndSetUNElementLength:T,findEndOfEncapsulatedElement:S,findItemDelimitationItemAndSetElementLength:I,littleEndianByteArrayParser:k,parseDicom:U,readDicomElementExplicit:$,readDicomElementImplicit:M,readEncapsulatedImageFrame:he,readEncapsulatedPixelData:Ee,readEncapsulatedPixelDataFromFragments:H,readPart10Header:O,readSequenceItemsExplicit:N,readSequenceItemsImplicit:G,readSequenceItem:L,readTag:C,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],o={},n.m=i,n.c=o,n.d=function(a,s,c){n.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:c})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,s){if(1&s&&(a=n(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var c=Object.create(null);if(n.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var l in a)n.d(c,l,(function(f){return a[f]}).bind(null,l));return c},n.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(s,"a",s),s},n.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},n.p="",n(n.s=1);function n(a){if(o[a])return o[a].exports;var s=o[a]={i:a,l:!1,exports:{}};return i[a].call(s.exports,s,s.exports,n),s.l=!0,s.exports}var i,o})})(hV);var _n=hV.exports;function Ah(t){const e=t.indexOf(":");let r=t.substring(e+1);const n=r.indexOf("frame=");let i;if(n!==-1){const s=r.substring(n+6);i=parseInt(s,10),r=r.substring(0,n-1)}const o=t.substring(0,e),a=i!==void 0?i-1:void 0;return{scheme:o,url:r,frame:i,pixelDataFrame:a}}let H3={open(t,e){t.open("get",e,!0)},beforeSend(){},beforeProcessing(t){return Promise.resolve(t.response)},imageCreated(){},strict:!1};function gV(t){H3=Object.assign(H3,t)}function kh(){return H3}function V2(t,e,r={},n={}){const i=kh(),o=c=>{if(typeof i.errorInterceptor=="function"){const l=new Error("request failed");l.request=c,l.response=c.response,l.status=c.status,i.errorInterceptor(l)}},a=new XMLHttpRequest,s=new Promise((c,l)=>{i.open(a,t,r,n);const f=i.beforeSend(a,e,r,n);a.responseType="arraybuffer";const u=Object.assign({},r,f);Object.keys(u).forEach(function(d){u[d]!==null&&(d==="Accept"&&t.indexOf("accept=")!==-1||a.setRequestHeader(d,u[d]))}),n.deferred={resolve:c,reject:l},n.url=t,n.imageId=e,a.onloadstart=function(d){i.onloadstart&&i.onloadstart(d,n),De(Ce,"cornerstoneimageloadstart",{url:t,imageId:e})},a.onloadend=function(d){i.onloadend&&i.onloadend(d,n),De(Ce,"cornerstoneimageloadend",{url:t,imageId:e})},a.onreadystatechange=function(d){if(i.onreadystatechange){i.onreadystatechange(d,n);return}a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(c).catch(()=>{o(a),l(a)}):(o(a),l(a)))},a.onprogress=function(d){d.loaded,d.lengthComputable&&d.total,i.onprogress&&i.onprogress(d,n)},a.onerror=function(){o(a),l(a)},a.onabort=function(){o(a),l(a)},a.send()});return s.xhr=a,s}function cye(t,e,r){if(r+t.length>e.length)return!1;let n=r;for(let i=0;iL&&(G=V>N?V:$,H+=` +`+M.slice(N,G),N=G+1),V=$;return H+=` +`,M.length-N>L&&V>N?H+=M.slice(N,V)+` +`+M.slice(V+1):H+=M.slice(N),H.slice(1)}function D(M,L,A){var G,P,N,V,$,H;for(N=0,V=(P=A?M.explicitTypes:M.implicitTypes).length;N tag resolver accepts not "'+H+'" style');G=$.represent[H](L,H)}M.dump=G}return!0}return!1}function b(M,L,A,G,P,N){M.tag=null,M.dump=A,D(M,A,!1)||D(M,A,!0);var V=l.call(M.dump);G&&(G=M.flowLevel<0||M.flowLevel>L);var $,H,Y=V==="[object Object]"||V==="[object Array]";if(Y&&(H=($=M.duplicates.indexOf(A))!==-1),(M.tag!==null&&M.tag!=="?"||H||M.indent!==2&&L>0)&&(P=!1),H&&M.usedDuplicates[$])M.dump="*ref_"+$;else{if(Y&&H&&!M.usedDuplicates[$]&&(M.usedDuplicates[$]=!0),V==="[object Object]")G&&Object.keys(M.dump).length!==0?(function(Q,ee,de,fe){var le,k,O,B,U,z,j="",K=Q.tag,ae=Object.keys(de);if(Q.sortKeys===!0)ae.sort();else if(typeof Q.sortKeys=="function")ae.sort(Q.sortKeys);else if(Q.sortKeys)throw new a("sortKeys must be a boolean or a function");for(le=0,k=ae.length;le1024)&&(Q.dump&&Q.dump.charCodeAt(0)===10?z+="?":z+="? "),z+=Q.dump,U&&(z+=v(Q,ee)),b(Q,ee+1,B,!0,U)&&(Q.dump&&Q.dump.charCodeAt(0)===10?z+=":":z+=": ",j+=z+=Q.dump));Q.tag=K,Q.dump=j||"{}"}(M,L,M.dump,P),H&&(M.dump="&ref_"+$+M.dump)):(function(Q,ee,de){var fe,le,k,O,B,U="",z=Q.tag,j=Object.keys(de);for(fe=0,le=j.length;fe1024&&(B+="? "),B+=Q.dump+(Q.condenseFlow?'"':"")+":"+(Q.condenseFlow?"":" "),b(Q,ee,O,!1,!1)&&(U+=B+=Q.dump));Q.tag=z,Q.dump="{"+U+"}"}(M,L,M.dump),H&&(M.dump="&ref_"+$+" "+M.dump));else if(V==="[object Array]"){var ne=M.noArrayIndent&&L>0?L-1:L;G&&M.dump.length!==0?(function(Q,ee,de,fe){var le,k,O="",B=Q.tag;for(le=0,k=de.length;le "+M.dump)}return!0}function I(M,L){var A,G,P=[],N=[];for(function V($,H,Y){var ne,Q,ee;if($!==null&&typeof $=="object")if((Q=H.indexOf($))!==-1)Y.indexOf(Q)===-1&&Y.push(Q);else if(H.push($),Array.isArray($))for(Q=0,ee=$.length;Q=C.length&&(C=void 0),{value:C&&C[_++],done:!C}}};throw new TypeError(S?"Object is not iterable.":"Symbol.iterator is not defined.")},c=this&&this.__read||function(C,S){var T=typeof Symbol=="function"&&C[Symbol.iterator];if(!T)return C;var _,E,D=T.call(C),b=[];try{for(;(S===void 0||S-- >0)&&!(_=D.next()).done;)b.push(_.value)}catch(I){E={error:I}}finally{try{_&&!_.done&&(T=D.return)&&T.call(D)}finally{if(E)throw E.error}}return b};Object.defineProperty(n,"__esModule",{value:!0});var l=i(91),f=i(1),u=i(183),d=i(0),h=i(7),g=i(95),p=i(69),v=i(3),x=i(305),m=i(306),y=i(307),w=function(C){function S(T,_){_===void 0&&(_=!1);var E=C.call(this)||this;return E._hasDeclaration=!1,E._docTypeName="",E._hasDocumentElement=!1,E._currentElementSerialized=!1,E._openTags=[],E._ended=!1,E._fragment=_,E._options=f.applyDefaults(T||{},l.DefaultXMLBuilderCBOptions),E._builderOptions={defaultNamespace:E._options.defaultNamespace,namespaceAlias:E._options.namespaceAlias},E._options.format==="json"?E._writer=new m.JSONCBWriter(E._options):E._options.format==="yaml"?E._writer=new y.YAMLCBWriter(E._options):E._writer=new x.XMLCBWriter(E._options),E._options.data!==void 0&&E.on("data",E._options.data),E._options.end!==void 0&&E.on("end",E._options.end),E._options.error!==void 0&&E.on("error",E._options.error),E._prefixMap=new g.NamespacePrefixMap,E._prefixMap.set("xml",h.namespace.XML),E._prefixIndex={value:1},E._push(E._writer.frontMatter()),E}return a(S,C),S.prototype.ele=function(T,_,E){var D,b;if(f.isObject(T)||f.isString(T)&&(/^\s*/g,">");return this._push(this._writer.text(E)),this},S.prototype.ins=function(T,_){var E;_===void 0&&(_=""),this._serializeOpenTag(!0);try{E=u.fragment(this._builderOptions).ins(T,_).first().node}catch(D){return this.emit("error",D),this}return this._options.wellFormed&&(E.target.indexOf(":")!==-1||/^xml$/i.test(E.target))?(this.emit("error",new Error("Processing instruction target contains invalid characters (well-formed required).")),this):this._options.wellFormed&&!d.xml_isLegalChar(E.data)?(this.emit("error",Error("Processing instruction data contains invalid characters (well-formed required).")),this):(this._push(this._writer.instruction(E.target,E.data)),this)},S.prototype.dat=function(T){var _;this._serializeOpenTag(!0);try{_=u.fragment(this._builderOptions).dat(T).first().node}catch(E){return this.emit("error",E),this}return this._push(this._writer.cdata(_.data)),this},S.prototype.dec=function(T){return T===void 0&&(T={version:"1.0"}),this._fragment?(this.emit("error",Error("Cannot insert an XML declaration into a document fragment.")),this):this._hasDeclaration?(this.emit("error",Error("XML declaration is already inserted.")),this):(this._push(this._writer.declaration(T.version||"1.0",T.encoding,T.standalone)),this._hasDeclaration=!0,this)},S.prototype.dtd=function(T){if(this._fragment)return this.emit("error",Error("Cannot insert a DocType declaration into a document fragment.")),this;if(this._docTypeName!=="")return this.emit("error",new Error("DocType declaration is already inserted.")),this;if(this._hasDocumentElement)return this.emit("error",new Error("Cannot insert DocType declaration after document element.")),this;var _;try{_=u.create().dtd(T).first().node}catch(E){return this.emit("error",E),this}return this._options.wellFormed&&!d.xml_isPubidChar(_.publicId)?(this.emit("error",new Error("DocType public identifier does not match PubidChar construct (well-formed required).")),this):this._options.wellFormed&&(!d.xml_isLegalChar(_.systemId)||_.systemId.indexOf('"')!==-1&&_.systemId.indexOf("'")!==-1)?(this.emit("error",new Error("DocType system identifier contains invalid characters (well-formed required).")),this):(this._docTypeName=T.name,this._push(this._writer.docType(T.name,_.publicId,_.systemId)),this)},S.prototype.import=function(T){var _,E,D=u.fragment().set(this._options);try{D.import(T)}catch(M){return this.emit("error",M),this}try{for(var b=s(D.node.childNodes),I=b.next();!I.done;I=b.next()){var R=I.value;this._fromNode(R)}}catch(M){_={error:M}}finally{try{I&&!I.done&&(E=b.return)&&E.call(b)}finally{if(_)throw _.error}}return this},S.prototype.up=function(){return this._serializeOpenTag(!1),this._serializeCloseTag(),this},S.prototype.end=function(){for(this._serializeOpenTag(!1);this._openTags.length>0;)this._serializeCloseTag();return this._push(null),this},S.prototype._serializeOpenTag=function(T){if(!this._currentElementSerialized&&this._currentElement!==void 0){var _=this._currentElement.node;if(!this._options.wellFormed||_.localName.indexOf(":")===-1&&d.xml_isName(_.localName)){var E="",D=!1,b=this._prefixMap.copy(),I={},R=this._recordNamespaceInformation(_,b,I),M=this._openTags.length===0?null:this._openTags[this._openTags.length-1][1],L=_.namespaceURI;if(L===null&&(L=M),M===L)R!==null&&(D=!0),E=L===h.namespace.XML?"xml:"+_.localName:_.localName,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E));else{var A=_.prefix,G=null;if(A===null&&L===R||(G=b.get(A,L)),A==="xmlns"){if(this._options.wellFormed)return void this.emit("error",new Error("An element cannot have the 'xmlns' prefix (well-formed required)."));G=A}G!==null?(E=G+":"+_.localName,R!==null&&R!==h.namespace.XML&&(M=R||null),this._writer.beginElement(E),this._push(this._writer.openTagBegin(E))):A!==null?(A in I&&(A=this._generatePrefix(L,b,this._prefixIndex)),b.set(A,L),E+=A+":"+_.localName,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)),this._push(this._writer.attribute("xmlns:"+A,this._serializeAttributeValue(L,this._options.wellFormed))),R!==null&&(M=R||null)):R===null||R!==null&&R!==L?(D=!0,E+=_.localName,M=L,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)),this._push(this._writer.attribute("xmlns",this._serializeAttributeValue(L,this._options.wellFormed)))):(E+=_.localName,M=L,this._writer.beginElement(E),this._push(this._writer.openTagBegin(E)))}this._serializeAttributes(_,b,this._prefixIndex,I,D,this._options.wellFormed);var P=L===h.namespace.HTML;P&&!T&&S._VoidElementNames.has(_.localName)?(this._push(this._writer.openTagEnd(E,!0,!0)),this._writer.endElement(E)):P||T?this._push(this._writer.openTagEnd(E,!1,!1)):(this._push(this._writer.openTagEnd(E,!0,!1)),this._writer.endElement(E)),this._currentElementSerialized=!0,this._openTags.push([E,M,this._prefixMap,T]),this._isPrefixMapModified(this._prefixMap,b)&&(this._prefixMap=b),this._writer.level++}else this.emit("error",new Error("Node local name contains invalid characters (well-formed required)."))}},S.prototype._serializeCloseTag=function(){this._writer.level--;var T=this._openTags.pop();if(T!==void 0){var _=c(T,4),E=_[0],D=(_[1],_[2]),b=_[3];this._prefixMap=D,b&&(this._push(this._writer.closeTag(E)),this._writer.endElement(E))}else this.emit("error",new Error("Last element is undefined."))},S.prototype._push=function(T){T===null?(this._ended=!0,this.emit("end")):this._ended?this.emit("error",new Error("Cannot push to ended stream.")):T.length!==0&&(this._writer.hasData=!0,this.emit("data",T,this._writer.level))},S.prototype._fromNode=function(T){var _,E,D,b;if(v.Guard.isElementNode(T)){var I=T.prefix?T.prefix+":"+T.localName:T.localName;T.namespaceURI!==null?this.ele(T.namespaceURI,I):this.ele(I);try{for(var R=s(T.attributes),M=R.next();!M.done;M=R.next()){var L=M.value,A=L.prefix?L.prefix+":"+L.localName:L.localName;L.namespaceURI!==null?this.att(L.namespaceURI,A,L.value):this.att(A,L.value)}}catch(V){_={error:V}}finally{try{M&&!M.done&&(E=R.return)&&E.call(R)}finally{if(_)throw _.error}}try{for(var G=s(T.childNodes),P=G.next();!P.done;P=G.next()){var N=P.value;this._fromNode(N)}}catch(V){D={error:V}}finally{try{P&&!P.done&&(b=G.return)&&b.call(G)}finally{if(D)throw D.error}}this.up()}else v.Guard.isExclusiveTextNode(T)&&T.data?this.txt(T.data):v.Guard.isCommentNode(T)?this.com(T.data):v.Guard.isCDATASectionNode(T)?this.dat(T.data):v.Guard.isProcessingInstructionNode(T)&&this.ins(T.target,T.data)},S.prototype._serializeAttributes=function(T,_,E,D,b,I){var R,M,L=I?new p.LocalNameSet:void 0;try{for(var A=s(T.attributes),G=A.next();!G.done;G=A.next()){var P=G.value;if(I||b||P.namespaceURI!==null){if(I&&L&&L.has(P.namespaceURI,P.localName))return void this.emit("error",new Error("Element contains duplicate attributes (well-formed required)."));I&&L&&L.set(P.namespaceURI,P.localName);var N=P.namespaceURI,V=null;if(N!==null)if(V=_.get(P.prefix,N),N===h.namespace.XMLNS){if(P.value===h.namespace.XML||P.prefix===null&&b||P.prefix!==null&&(!(P.localName in D)||D[P.localName]!==P.value)&&_.has(P.localName,P.value))continue;if(I&&P.value===h.namespace.XMLNS)return void this.emit("error",new Error("XMLNS namespace is reserved (well-formed required)."));if(I&&P.value==="")return void this.emit("error",new Error("Namespace prefix declarations cannot be used to undeclare a namespace (well-formed required)."));P.prefix==="xmlns"&&(V="xmlns")}else V===null&&(V=P.prefix===null||_.hasPrefix(P.prefix)&&!_.has(P.prefix,N)?this._generatePrefix(N,_,E):P.prefix,this._push(this._writer.attribute("xmlns:"+V,this._serializeAttributeValue(N,this._options.wellFormed))));if(I&&(P.localName.indexOf(":")!==-1||!d.xml_isName(P.localName)||P.localName==="xmlns"&&N===null))return void this.emit("error",new Error("Attribute local name contains invalid characters (well-formed required)."));this._push(this._writer.attribute((V!==null?V+":":"")+P.localName,this._serializeAttributeValue(P.value,this._options.wellFormed)))}else this._push(this._writer.attribute(P.localName,this._serializeAttributeValue(P.value,this._options.wellFormed)))}}catch($){R={error:$}}finally{try{G&&!G.done&&(M=A.return)&&M.call(A)}finally{if(R)throw R.error}}},S.prototype._serializeAttributeValue=function(T,_){return _&&T!==null&&!d.xml_isLegalChar(T)?(this.emit("error",new Error("Invalid characters in attribute value.")),""):T===null?"":T.replace(/(?!&(lt|gt|amp|apos|quot);)&/g,"&").replace(//g,">").replace(/"/g,""")},S.prototype._recordNamespaceInformation=function(T,_,E){var D,b,I=null;try{for(var R=s(T.attributes),M=R.next();!M.done;M=R.next()){var L=M.value,A=L.namespaceURI,G=L.prefix;if(A===h.namespace.XMLNS){if(G===null){I=L.value;continue}var P=L.localName,N=L.value;if(N===h.namespace.XML||(N===""&&(N=null),_.has(P,N)))continue;_.set(P,N),E[P]=N||""}}}catch(V){D={error:V}}finally{try{M&&!M.done&&(b=R.return)&&b.call(R)}finally{if(D)throw D.error}}return I},S.prototype._generatePrefix=function(T,_,E){var D="ns"+E.value;return E.value++,_.set(D,T),D},S.prototype._isPrefixMapModified=function(T,_){var E=T._items,D=_._items,b=T._nullItems,I=_._nullItems;for(var R in D){var M=E[R];if(M===void 0)return!0;var L=D[R];if(M.length!==L.length)return!0;for(var A=0;A':u?"':d?"':""},l.prototype.comment=function(f){return this._beginLine()+""},l.prototype.text=function(f){return this._beginLine()+f},l.prototype.instruction=function(f,u){return u?this._beginLine()+"":this._beginLine()+""},l.prototype.cdata=function(f){return this._beginLine()+""},l.prototype.openTagBegin=function(f){return this._lineLength+=1+f.length,this._beginLine()+"<"+f},l.prototype.openTagEnd=function(f,u,d){return d?" />":u?this._writerOptions.allowEmptyTags?">":this._writerOptions.spaceBeforeSlash?" />":"/>":">"},l.prototype.closeTag=function(f){return this._beginLine()+""},l.prototype.attribute=function(f,u){var d=f+'="'+u+'"';return this._writerOptions.prettyPrint&&this._writerOptions.width>0&&this._lineLength+1+d.length>this._writerOptions.width?(d=this._beginLine()+this._indent(1)+d,this._lineLength=d.length,d):(this._lineLength+=1+d.length," "+d)},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){},l.prototype._beginLine=function(){if(this._writerOptions.prettyPrint){var f=(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level);return this._lineLength=f.length,f}return""},l.prototype._indent=function(f){return f<=0?"":this._writerOptions.indent.repeat(f)},l}(i(114).BaseCBWriter);n.XMLCBWriter=s},function(r,n,i){i(74);var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(f){var u=c.call(this,f)||this;return u._hasChildren=[],u._additionalLevel=0,u}return a(l,c),l.prototype.frontMatter=function(){return""},l.prototype.declaration=function(f,u,d){return""},l.prototype.docType=function(f,u,d){return""},l.prototype.comment=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.comment)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.text=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.text)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.instruction=function(f,u){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.ins)+this._sep()+this._val(u?f+" "+u:f)+this._sep()+"}"},l.prototype.cdata=function(f){return this._comma()+this._beginLine()+"{"+this._sep()+this._key(this._builderOptions.convert.cdata)+this._sep()+this._val(f)+this._sep()+"}"},l.prototype.attribute=function(f,u){return this._comma()+this._beginLine(1)+"{"+this._sep()+this._key(this._builderOptions.convert.att+f)+this._sep()+this._val(u)+this._sep()+"}"},l.prototype.openTagBegin=function(f){var u=this._comma()+this._beginLine()+"{"+this._sep()+this._key(f)+this._sep()+"{";return this._additionalLevel++,this.hasData=!0,u+=this._beginLine()+this._key(this._builderOptions.convert.text)+this._sep()+"[",this._hasChildren.push(!1),u},l.prototype.openTagEnd=function(f,u,d){if(u){var h=this._sep()+"]";return this._additionalLevel--,h+=this._beginLine()+"}"+this._sep()+"}"}return""},l.prototype.closeTag=function(f){var u=this._beginLine()+"]";return this._additionalLevel--,u+=this._beginLine()+"}"+this._sep()+"}"},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){this._hasChildren.pop()},l.prototype._beginLine=function(f){return f===void 0&&(f=0),this._writerOptions.prettyPrint?(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level+f):""},l.prototype._indent=function(f){return f+this._additionalLevel<=0?"":this._writerOptions.indent.repeat(f+this._additionalLevel)},l.prototype._comma=function(){var f=this._hasChildren[this._hasChildren.length-1]?",":"";return this._hasChildren.length>0&&(this._hasChildren[this._hasChildren.length-1]=!0),f},l.prototype._sep=function(){return this._writerOptions.prettyPrint?" ":""},l.prototype._key=function(f){return'"'+f+'":'},l.prototype._val=function(f){return JSON.stringify(f)},l}(i(114).BaseCBWriter);n.JSONCBWriter=s},function(r,n,i){i(74);var o,a=this&&this.__extends||(o=function(c,l){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,u){f.__proto__=u}||function(f,u){for(var d in u)u.hasOwnProperty(d)&&(f[d]=u[d])})(c,l)},function(c,l){function f(){this.constructor=c}o(c,l),c.prototype=l===null?Object.create(l):(f.prototype=l.prototype,new f)});Object.defineProperty(n,"__esModule",{value:!0});var s=function(c){function l(f){var u=c.call(this,f)||this;if(u._rootWritten=!1,u._additionalLevel=0,f.indent.length<2)throw new Error("YAML indententation string must be at least two characters long.");if(f.offset<0)throw new Error("YAML offset should be zero or a positive number.");return u}return a(l,c),l.prototype.frontMatter=function(){return this._beginLine()+"---"},l.prototype.declaration=function(f,u,d){return""},l.prototype.docType=function(f,u,d){return""},l.prototype.comment=function(f){return this._beginLine()+this._key(this._builderOptions.convert.comment)+" "+this._val(f)},l.prototype.text=function(f){return this._beginLine()+this._key(this._builderOptions.convert.text)+" "+this._val(f)},l.prototype.instruction=function(f,u){return this._beginLine()+this._key(this._builderOptions.convert.ins)+" "+this._val(u?f+" "+u:f)},l.prototype.cdata=function(f){return this._beginLine()+this._key(this._builderOptions.convert.cdata)+" "+this._val(f)},l.prototype.attribute=function(f,u){this._additionalLevel++;var d=this._beginLine()+this._key(this._builderOptions.convert.att+f)+" "+this._val(u);return this._additionalLevel--,d},l.prototype.openTagBegin=function(f){var u=this._beginLine()+this._key(f);return this._rootWritten||(this._rootWritten=!0),this.hasData=!0,this._additionalLevel++,u+=this._beginLine(!0)+this._key(this._builderOptions.convert.text)},l.prototype.openTagEnd=function(f,u,d){return u?" "+this._val(""):""},l.prototype.closeTag=function(f){return this._additionalLevel--,""},l.prototype.beginElement=function(f){},l.prototype.endElement=function(f){},l.prototype._beginLine=function(f){return f===void 0&&(f=!1),(this.hasData?this._writerOptions.newline:"")+this._indent(this._writerOptions.offset+this.level,f)},l.prototype._indent=function(f,u){if(f+this._additionalLevel<=0)return"";var d=this._writerOptions.indent.repeat(f+this._additionalLevel);return!u&&this._rootWritten?d.substr(0,d.length-2)+"-"+d.substr(-1,1):d},l.prototype._key=function(f){return'"'+f+'":'},l.prototype._val=function(f){return JSON.stringify(f)},l}(i(114).BaseCBWriter);n.YAMLCBWriter=s},function(r,n,i){var o,a=typeof Reflect=="object"?Reflect:null,s=a&&typeof a.apply=="function"?a.apply:function(y,w,C){return Function.prototype.apply.call(y,w,C)};o=a&&typeof a.ownKeys=="function"?a.ownKeys:Object.getOwnPropertySymbols?function(y){return Object.getOwnPropertyNames(y).concat(Object.getOwnPropertySymbols(y))}:function(y){return Object.getOwnPropertyNames(y)};var c=Number.isNaN||function(y){return y!=y};function l(){l.init.call(this)}r.exports=l,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var f=10;function u(y){if(typeof y!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof y)}function d(y){return y._maxListeners===void 0?l.defaultMaxListeners:y._maxListeners}function h(y,w,C,S){var T,_,E,D;if(u(C),(_=y._events)===void 0?(_=y._events=Object.create(null),y._eventsCount=0):(_.newListener!==void 0&&(y.emit("newListener",w,C.listener?C.listener:C),_=y._events),E=_[w]),E===void 0)E=_[w]=C,++y._eventsCount;else if(typeof E=="function"?E=_[w]=S?[C,E]:[E,C]:S?E.unshift(C):E.push(C),(T=d(y))>0&&E.length>T&&!E.warned){E.warned=!0;var b=new Error("Possible EventEmitter memory leak detected. "+E.length+" "+String(w)+" listeners added. Use emitter.setMaxListeners() to increase limit");b.name="MaxListenersExceededWarning",b.emitter=y,b.type=w,b.count=E.length,D=b,console&&console.warn&&console.warn(D)}return y}function g(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(y,w,C){var S={fired:!1,wrapFn:void 0,target:y,type:w,listener:C},T=g.bind(S);return T.listener=C,S.wrapFn=T,T}function v(y,w,C){var S=y._events;if(S===void 0)return[];var T=S[w];return T===void 0?[]:typeof T=="function"?C?[T.listener||T]:[T]:C?function(_){for(var E=new Array(_.length),D=0;D0&&(_=w[0]),_ instanceof Error)throw _;var E=new Error("Unhandled error."+(_?" ("+_.message+")":""));throw E.context=_,E}var D=T[y];if(D===void 0)return!1;if(typeof D=="function")s(D,this,w);else{var b=D.length,I=m(D,b);for(C=0;C=0;_--)if(C[_]===w||C[_].listener===w){E=C[_].listener,T=_;break}if(T<0)return this;T===0?C.shift():function(D,b){for(;b+1=0;S--)this.removeListener(y,w[S]);return this},l.prototype.listeners=function(y){return v(this,y,!0)},l.prototype.rawListeners=function(y){return v(this,y,!1)},l.listenerCount=function(y,w){return typeof y.listenerCount=="function"?y.listenerCount(w):x.call(y,w)},l.prototype.listenerCount=x,l.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}},function(r,n,i){Object.defineProperty(n,"__esModule",{value:!0});var o=i(77);n.createCB=function(a){return new o.XMLBuilderCBImpl(a)},n.fragmentCB=function(a){return new o.XMLBuilderCBImpl(a,!0)}}])})})(qk);var rve=qk.exports,Li=Uint8Array,zc=Uint16Array,Xk=Uint32Array,Yk=new Li([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Jk=new Li([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ive=new Li([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Zk=function(t,e){for(var r=new zc(31),n=0;n<31;++n)r[n]=e+=1<>>1|(En&21845)<<1;hs=(hs&52428)>>>2|(hs&13107)<<2,hs=(hs&61680)>>>4|(hs&3855)<<4,j3[En]=((hs&65280)>>>8|(hs&255)<<8)>>>1}var id=function(t,e,r){for(var n=t.length,i=0,o=new zc(e);i>>c]=l}else for(s=new zc(n),i=0;i>>15-t[i]);return s},kh=new Li(288);for(var En=0;En<144;++En)kh[En]=8;for(var En=144;En<256;++En)kh[En]=9;for(var En=256;En<280;++En)kh[En]=7;for(var En=280;En<288;++En)kh[En]=8;var tV=new Li(32);for(var En=0;En<32;++En)tV[En]=5;var cve=id(kh,9,1),lve=id(tV,5,1),Ey=function(t){for(var e=t[0],r=1;re&&(e=t[r]);return e},po=function(t,e,r){var n=e/8|0;return(t[n]|t[n+1]<<8)>>(e&7)&r},Dy=function(t,e){var r=e/8|0;return(t[r]|t[r+1]<<8|t[r+2]<<16)>>(e&7)},uve=function(t){return(t+7)/8|0},fve=function(t,e,r){(r==null||r>t.length)&&(r=t.length);var n=new(t.BYTES_PER_ELEMENT==2?zc:t.BYTES_PER_ELEMENT==4?Xk:Li)(r-e);return n.set(t.subarray(e,r)),n},dve=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Co=function(t,e,r){var n=new Error(e||dve[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,Co),!r)throw n;return n},OS=function(t,e,r){var n=t.length;if(!n||r&&r.f&&!r.l)return e||new Li(0);var i=!e||r,o=!r||r.i;r||(r={}),e||(e=new Li(n*3));var a=function(ee){var de=e.length;if(ee>de){var fe=new Li(Math.max(de*2,ee));fe.set(e),e=fe}},s=r.f||0,c=r.p||0,l=r.b||0,f=r.l,u=r.d,d=r.m,h=r.n,g=n*8;do{if(!f){s=po(t,c,1);var p=po(t,c+1,3);if(c+=3,p)if(p==1)f=cve,u=lve,d=9,h=5;else if(p==2){var y=po(t,c,31)+257,w=po(t,c+10,15)+4,C=y+po(t,c+5,31)+1;c+=14;for(var S=new Li(C),T=new Li(19),_=0;_>>4;if(v<16)S[_++]=v;else{var R=0,M=0;for(v==16?(M=3+po(t,c,3),c+=2,R=S[_-1]):v==17?(M=3+po(t,c,7),c+=3):v==18&&(M=11+po(t,c,127),c+=7);M--;)S[_++]=R}}var L=S.subarray(0,y),A=S.subarray(y);d=Ey(L),h=Ey(A),f=id(L,d,1),u=id(A,h,1)}else Co(1);else{var v=uve(c)+4,x=t[v-4]|t[v-3]<<8,m=v+x;if(m>n){o&&Co(0);break}i&&a(l+x),e.set(t.subarray(v,m),l),r.b=l+=x,r.p=c=m*8,r.f=s;continue}if(c>g){o&&Co(0);break}}i&&a(l+131072);for(var G=(1<>>4;if(c+=R&15,c>g){o&&Co(0);break}if(R||Co(2),V<256)e[l++]=V;else if(V==256){N=c,f=null;break}else{var $=V-254;if(V>264){var _=V-257,H=Yk[_];$=po(t,c,(1<>>4;Y||Co(3),c+=Y&15;var A=sve[ne];if(ne>3){var H=Jk[ne];A+=Dy(t,c)&(1<g){o&&Co(0);break}i&&a(l+131072);for(var Q=l+$;l>3&1)+(e>>4&1);n>0;n-=!t[r++]);return r+(e&2)},pve=function(t){var e=t.length;return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0},mve=function(t){((t[0]&15)!=8||t[0]>>>4>7||(t[0]<<8|t[1])%31)&&Co(6,"invalid zlib data"),t[1]&32&&Co(6,"invalid zlib data: preset dictionaries not supported")};function vve(t,e){return OS(t,e)}function yve(t,e){return OS(t.subarray(gve(t),-8),new Li(pve(t)))}function xve(t,e){return OS((mve(t),t.subarray(2,-4)),e)}function wve(t,e){return t[0]==31&&t[1]==139&&t[2]==8?yve(t):(t[0]&15)!=8||t[0]>>4>7||(t[0]<<8|t[1])%31?vve(t,e):xve(t,e)}var Cve=typeof TextDecoder<"u"&&new TextDecoder,Sve=0;try{Cve.decode(hve,{stream:!0}),Sve=1}catch{}const MS={};function nV(t){return!!MS[t]}function Tve(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"http",e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return MS[t](e)}function rV(t,e){MS[t]=e}var _ve={get:Tve,has:nV,registerType:rV};const Oi=[];Oi[45]=62;Oi[95]=63;const hu="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(let t=0;t>16&255,n[f++]=l>>8&255,n[f++]=l&255}switch(a){case 3:for(;!Wo(t[c]);)c++;for(l=Oi[t.charCodeAt(c++)]<<10;!Wo(t[c]);)c++;for(l|=Oi[t.charCodeAt(c++)]<<4;!Wo(t[c]);)c++;l|=Oi[t.charCodeAt(c++)]>>2,n[f++]=l>>8&255,n[f++]=l&255;break;case 2:for(;!Wo(t[c]);)c++;for(l=Oi[t.charCodeAt(c++)]<<2;!Wo(t[c]);)c++;l|=Oi[t.charCodeAt(c++)]>>4,n[f++]=l&255;break;case 1:throw new Error("BASE64: remain 1 should not happen")}return f}function bve(t){const e=Eve(t),r=e[e.length-1].end+1,n=(4-r%4)%4,i=(r+n)*3/4-n,o=new ArrayBuffer(i),a=new Uint8Array(o);let s=0;for(let c=0;c>18]+hu[n>>12&63]+hu[n>>6&63]+hu[n&63]}function Ive(t){const e=new Uint8Array(t),r=t.byteLength%3,n=t.byteLength-r,i=Array(n/3);for(let o=0;o0){const o=BE(e[n],e[n+1]||0,e[n+2]||0);r===1?i.push(`${o.substr(0,2)}==`):r===2&&i.push(`${o.substr(0,3)}=`)}return i.join("")}var RS={toArrayBuffer:bve,fromArrayBuffer:Ive};function Ove(t,e){e.classHierarchy.push("vtkStringArray"),t.getComponent=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.values[r*e.numberOfComponents+n]},t.setComponent=(r,n,i)=>{i!==e.values[r*e.numberOfComponents+n]&&(e.values[r*e.numberOfComponents+n]=i,t.modified())},t.getData=()=>e.values,t.getTuple=function(r){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];const i=e.numberOfComponents||1;n.length&&(n.length=i);const o=r*i;for(let a=0;a0&&arguments[0]!==void 0?arguments[0]:1)*e.numberOfComponents},t.getNumberOfComponents=()=>e.numberOfComponents,t.getNumberOfValues=()=>e.values.length,t.getNumberOfTuples=()=>e.values.length/e.numberOfComponents,t.getDataType=()=>e.dataType,t.newClone=()=>oV({name:e.name,numberOfComponents:e.numberOfComponents,empty:!0}),t.getName=()=>(e.name||t.setName(`vtkStringArray${t.getMTime()}`),e.name),t.setData=(r,n)=>{e.values=r,e.size=r.length,n&&(e.numberOfComponents=n),e.size%e.numberOfComponents!==0&&(e.numberOfComponents=1),t.modified()}}const Mve={name:"",numberOfComponents:1,size:0,dataType:"string"};function iV(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Object.assign(e,Mve,r),!e.empty&&!e.values&&!e.size)throw new TypeError("Cannot create vtkStringArray object without: size > 0, values");e.values?Array.isArray(e.values)&&(e.values=[...e.values]):e.values=[],e.values&&(e.size=e.values.length),W.obj(t,e),W.set(t,e,["name"]),Ove(t,e)}const oV=W.newInstance(iV,"vtkStringArray");var Rve={newInstance:oV,extend:iV};function aV(t){return new TextDecoder("latin1").decode(t)}function Lve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;const n=aV(t),i=e.exec(n);if(!i)return{text:n};const o=i.index+i[0].length,a=n.substring(0,o);let s=null;const c=r?r.exec(n):null;if(c){const l=n.substr(c.index);s={text:a+l,binaryBuffer:t.slice(o,c.index)}}else s={text:a,binaryBuffer:t.slice(o)};return s}var Nve={arrayBufferToString:aV,extractBinary:Lve};function sV(){const t=new ArrayBuffer(4),e=new Uint8Array(t),r=new Uint32Array(t);return e[0]=161,e[1]=178,e[2]=195,e[3]=212,r[0]===3569595041?"LittleEndian":r[0]===2712847316?"BigEndian":null}const Pve=sV();function Ave(t,e){if(e<2)return;const r=new Int8Array(t),n=r.length,i=[];for(let o=0;o(cV("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead."),Promise.reject(new Error("LiteHttpDataAccessHelper does not support compression. Need to register HttpDataAccessHelper instead.")));let f0=0;function F2(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=new XMLHttpRequest;return n.open(t,e,!0),r.headers&&Object.entries(r.headers).forEach(i=>{let[o,a]=i;return n.setRequestHeader(o,a)}),r.progressCallback&&n.addEventListener("progress",r.progressCallback),n}function Vve(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new Promise((r,n)=>{const i=F2("GET",t,e);i.onreadystatechange=o=>{i.readyState===4&&(i.status===200||i.status===0?r(i.response):n({xhr:i,e:o}))},i.responseType="arraybuffer",i.send()})}function Fve(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return n&&n.compression?LS():r.ref&&!r.ref.pending?new Promise((i,o)=>{const a=[e,r.ref.basepath,r.ref.id].join("/"),s=F2("GET",a,n);s.onreadystatechange=c=>{s.readyState===1&&(r.ref.pending=!0,++f0===1&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!0)),s.readyState===4&&(r.ref.pending=!1,s.status===200||s.status===0?(r.buffer=s.response,r.ref.encode==="JSON"?r.values=JSON.parse(r.buffer):(by.ENDIANNESS!==r.ref.encode&&by.ENDIANNESS&&(kve(`Swap bytes of ${r.name}`),by.swapBytes(r.buffer,s7[r.dataType])),r.values=W.newTypedArray(r.dataType,r.buffer)),r.values.length!==r.size&&cV(`Error in FetchArray: ${r.name}, does not have the proper array size. Got ${r.values.length}, instead of ${r.size}`),delete r.ref,--f0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),t!=null&&t.modified&&t.modified(),i(r)):o({xhr:s,e:c}))},s.responseType=r.dataType!=="string"?"arraybuffer":"text",s.send()}):Promise.resolve(r)}function Uve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return r&&r.compression?LS():new Promise((n,i)=>{const o=F2("GET",e,r);o.onreadystatechange=a=>{o.readyState===1&&++f0===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),o.readyState===4&&(--f0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),o.status===200||o.status===0?n(JSON.parse(o.responseText)):i({xhr:o,e:a}))},o.responseType="text",o.send()})}function Bve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return r&&r.compression?LS():new Promise((n,i)=>{const o=F2("GET",e,r);o.onreadystatechange=a=>{o.readyState===1&&++f0===1&&t!=null&&t.invokeBusy&&t.invokeBusy(!0),o.readyState===4&&(--f0===0&&(t!=null&&t.invokeBusy)&&t.invokeBusy(!1),o.status===200||o.status===0?n(o.responseText):i({xhr:o,e:a}))},o.responseType="text",o.send()})}function Gve(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new Promise((n,i)=>{const o=new Image;r.crossOrigin&&(o.crossOrigin=r.crossOrigin),o.onload=()=>n(o),o.onerror=i,o.src=e})}const Wve={fetchArray:Fve,fetchJSON:Uve,fetchText:Bve,fetchBinary:Vve,fetchImage:Gve};nV("http")||rV("http",t=>Wve);function zve(t,e){return[...t.getElementsByTagName(e)]}function GE(t,e){return zve(t,e)[0]}function $ve(t){return rve.create(t)}function jve(t){const e=/^\s*\s*_/m,r=/\n\s*<\/AppendedData>/m;return Nve.extractBinary(t,e,r)}const Ls={Int8:Int8Array,UInt8:Uint8Array,Int16:Int16Array,UInt16:Uint16Array,Int32:Int32Array,UInt32:Uint32Array,Int64:Int32Array,UInt64:Uint32Array,Float32:Float32Array,Float64:Float64Array},th={Int8:1,UInt8:1,Int16:2,UInt16:2,Int32:4,UInt32:4,Int64:8,UInt64:8,Float32:4,Float64:8};function H3(t){const e=t.length-1;return t.filter((r,n)=>n0&&(o===0?a=n*i:a=(n-1)*i+o);const s=new ArrayBuffer(a),c={offset:0,uint8:new Uint8Array(s)};let l=Kve(r);for(;l{d.trim().length&&(f[u++]=Number(d))})}else if(c==="binary"){const u=new Uint8Array(RS.toArrayBuffer(e.firstChild.nodeValue.trim()));if(r==="vtkZLibDataCompressor"){const d=NS(u,i);f=new Ls[a](d.buffer),/^U?Int64$/.test(a)&&(f=H3(f))}else f=new Ls[a](u.buffer,th[i]),a.indexOf("Int64")!==-1&&(f=H3(f))}else if(c==="appended"){const u=Number(e.getAttribute("offset"));f=K3(new Uint8Array(o,u),a,i)}else console.error("Format not supported",c);return{name:s,values:f,numberOfComponents:l}}function Iy(t){return new TextDecoder().decode(t).split("\0").slice(0,-1)}function Xve(t,e,r,n,i){const o=t.getAttribute("Name"),a=t.getAttribute("format"),s=Number(t.getAttribute("NumberOfComponents")||"1"),l=Number(t.getAttribute("NumberOfTuples")||"1")*s,f=[];if(a==="ascii"){const u=t.firstChild.nodeValue.trim().split(/\s+/);let d=0;const h=[];for(;f.length{const p=g-h;u[d++]=p;for(let v=0;v{const d=e.getAttribute(u);d&&(c[d]=r[`set${u}`])});const l=e.getElementsByTagName("DataArray"),f=l.length;for(let u=0;utt.newInstance(nh(Number(s.getAttribute("NumberOfTuples")),s,e,r,n,i))),a=[...t.getElementsByTagName("Array")].filter(s=>s.getAttribute("type")==="String").map(s=>Rve.newInstance(Xve(s,e,r,n,i)));return[...o,...a]}function Qve(t,e){e.classHierarchy.push("vtkXMLReader"),e.dataAccessHelper||(e.dataAccessHelper=_ve.get("http"));function r(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e.dataAccessHelper.fetchBinary(n,i)}t.setUrl=function(n){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};e.url=n;const o=n.split("/");return o.pop(),e.baseURL=o.join("/"),t.loadData(i)},t.loadData=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return r(e.url,n).then(t.parseAsArrayBuffer)},t.parseAsArrayBuffer=n=>{if(!n)return!1;if(n!==e.rawDataBuffer)t.modified();else return!0;const{text:i,binaryBuffer:o}=jve(n);e.rawDataBuffer=n,e.binaryBuffer=o;const s=$ve(i).root(),c=s.node,l=c.getAttribute("type"),f=c.getAttribute("compressor"),u=c.getAttribute("byte_order"),d=c.getAttribute("header_type")||"UInt32";if(f&&f!=="vtkZLibDataCompressor")return console.error("Invalid compressor",f),!1;if(u&&u!=="LittleEndian")return console.error("Only LittleEndian encoding is supported"),!1;if(l!==e.dataType)return console.error("Invalid data type",l,"expecting",e.dataType),!1;if(GE(c,"AppendedData")){const p=GE(c,"AppendedData"),v=p.getAttribute("encoding"),x=s.filter(T=>{const{node:_}=T;return _.nodeType===Node.ELEMENT_NODE&&_.getAttribute("format")==="appended"&&_.hasAttribute("offset")},!1,!0).map(T=>({node:T.node,offset:Number(T.node.getAttribute("offset"))}));x.sort((T,_)=>T.offset-_.offset);let m=e.binaryBuffer;v==="base64"&&(m=p.textContent.trim().substr(1));const y=[];for(let T=0;TT+_.length,0),C=new ArrayBuffer(w),S=new Uint8Array(C);for(let T=0,_=0;T{t.parseAsArrayBuffer(e.rawDataBuffer)}}const eye={};function tye(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,eye,r),W.obj(t,e),W.get(t,e,["url","baseURL"]),W.setGet(t,e,["dataAccessHelper"]),W.algo(t,e,0,1),Qve(t,e)}var rh={extend:tye,processDataArray:nh,processFieldData:Jve,processCells:Yve};function nye(t,e,r,n,i,o,a){const s=Number(r.getAttribute(`NumberOf${e}`));if(s>0){const c=r.getElementsByTagName(e)[0].getElementsByTagName("DataArray")[0],{values:l,numberOfComponents:f}=rh.processDataArray(s,c,n,i,o,a);t[`get${e}`]().setData(l,f)}return s}function rye(t,e,r,n,i,o,a){const s=Number(r.getAttribute(`NumberOf${e}`));if(s>0){const c=rh.processCells(s,r.getElementsByTagName(e)[0],n,i,o,a);t[`get${e}`]().setData(c)}return s}function iye(t,e){e.classHierarchy.push("vtkXMLPolyDataReader"),t.parseXML=(r,n,i,o,a)=>{const c=r.getElementsByTagName(e.dataType)[0].getElementsByTagName("Piece"),l=c.length;for(let f=0;f{g+=rye(u,p,d,i,o,a,e.binaryBuffer)}),rh.processFieldData(h,d.getElementsByTagName("PointData")[0],u.getPointData(),i,o,a,e.binaryBuffer),rh.processFieldData(g,d.getElementsByTagName("CellData")[0],u.getCellData(),i,o,a,e.binaryBuffer),e.output[f]=u}}}const oye={dataType:"PolyData"};function lV(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.assign(e,oye,r),rh.extend(t,e,r),iye(t,e)}const aye=W.newInstance(lV,"vtkXMLPolyDataReader");var sye={newInstance:aye,extend:lV},_m;(function(t){t[t.ANNOTATED_CUBE=1]="ANNOTATED_CUBE",t[t.AXES=2]="AXES",t[t.CUSTOM=3]="CUSTOM"})(_m||(_m={}));const $o=class $o extends or{constructor(e={},r={configuration:{orientationWidget:{enabled:!0,viewportCorner:FE.Corners.BOTTOM_RIGHT,viewportSize:.15,minPixelSize:100,maxPixelSize:300},overlayMarkerType:$o.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE,overlayConfiguration:{[$o.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE]:{faceProperties:{xPlus:{text:"L",faceColor:"#ffff00",faceRotation:90},xMinus:{text:"R",faceColor:"#ffff00",faceRotation:270},yPlus:{text:"P",faceColor:"#00ffff",fontColor:"white",faceRotation:180},yMinus:{text:"A",faceColor:"#00ffff",fontColor:"white"},zPlus:{text:"S"},zMinus:{text:"I"}},defaultStyle:{fontStyle:"bold",fontFamily:"Arial",fontColor:"black",fontSizeScale:n=>n/2,faceColor:"#0000ff",edgeThickness:.1,edgeColor:"black",resolution:400}},[$o.OVERLAY_MARKER_TYPES.AXES]:{},[$o.OVERLAY_MARKER_TYPES.CUSTOM]:{polyDataURL:"https://raw.githubusercontent.com/Slicer/Slicer/80ad0a04dacf134754459557bf2638c63f3d1d1b/Base/Logic/Resources/OrientationMarkers/Human.vtp"}}}}){super(e,r),this._resizeObservers=new Map,this.onSetToolEnabled=()=>{this.initViewports(),this._subscribeToViewportEvents()},this.onSetToolActive=()=>{this.initViewports(),this._subscribeToViewportEvents()},this.onSetToolDisabled=()=>{this.cleanUpData(),this._unsubscribeToViewportNewVolumeSet()},this._getViewportsInfo=()=>Wn(this.toolGroupId).viewportsInfo,this.resize=n=>{const i=this.orientationMarkers[n];if(!i)return;const{orientationWidget:o}=i;o.updateViewport()},this.orientationMarkers={},this.updatingOrientationMarker={}}_unsubscribeToViewportNewVolumeSet(){const e=()=>{this._getViewportsInfo().forEach(({viewportId:n,renderingEngineId:i})=>{const{viewport:o}=dr(n,i),{element:a}=o;a.removeEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this.initViewports.bind(this)),this._resizeObservers.get(n).unobserve(a)})};Ce.removeEventListener(F.TOOLGROUP_VIEWPORT_ADDED,r=>{r.detail.toolGroupId===this.toolGroupId&&(e(),this.initViewports())})}_subscribeToViewportEvents(){const e=()=>{this._getViewportsInfo().forEach(({viewportId:n,renderingEngineId:i})=>{const{viewport:o}=dr(n,i),{element:a}=o;this.initViewports(),a.addEventListener(Se.VOLUME_VIEWPORT_NEW_VOLUME,this.initViewports.bind(this));const s=new ResizeObserver(()=>{setTimeout(()=>{const c=dr(n,i);if(!c)return;const{viewport:l}=c;this.resize(n),l.render()},100)});s.observe(a),this._resizeObservers.set(n,s)})};e(),Ce.addEventListener(F.TOOLGROUP_VIEWPORT_ADDED,r=>{r.detail.toolGroupId===this.toolGroupId&&(e(),this.initViewports())})}cleanUpData(){_i()[0].getViewports().forEach(i=>{const o=this.orientationMarkers[i.id];if(!o)return;const{actor:a,orientationWidget:s}=o;s==null||s.setEnabled(!1),s==null||s.delete(),a==null||a.delete(),i.getRenderingEngine().offscreenMultiRenderWindow.getRenderWindow().render(),i.getRenderingEngine().render(),delete this.orientationMarkers[i.id]})}initViewports(){const r=_i()[0];if(!r)return;let n=r.getViewports();n=I2(n,this.getToolName()),n.forEach(i=>{const o=i.getWidget(this.getToolName());(!o||o.isDeleted())&&this.addAxisActorInViewport(i)})}async addAxisActorInViewport(e){const r=e.id;if(!this.updatingOrientationMarker[r]){this.updatingOrientationMarker[r]=!0;const n=this.configuration.overlayMarkerType,i=this.configuration.overlayConfiguration[n];if(this.orientationMarkers[r]){const{actor:g,orientationWidget:p}=this.orientationMarkers[r];e.getRenderer().removeActor(g),p.setEnabled(!1)}let o;n===1?o=this.createAnnotationCube(i):n===2?o=nve.newInstance():n===3&&(o=await this.createCustomActor());const a=e.getRenderer(),s=e.getRenderingEngine().offscreenMultiRenderWindow.getRenderWindow(),{enabled:c,viewportCorner:l,viewportSize:f,minPixelSize:u,maxPixelSize:d}=this.configuration.orientationWidget,h=FE.newInstance({actor:o,interactor:s.getInteractor(),parentRenderer:a});h.setEnabled(c),h.setViewportCorner(l),h.setViewportSize(f),h.setMinPixelSize(u),h.setMaxPixelSize(d),h.updateMarkerOrientation(),this.orientationMarkers[r]={orientationWidget:h,actor:o},e.addWidget(this.getToolName(),h),s.render(),e.getRenderingEngine().render(),this.updatingOrientationMarker[r]=!1}}async createCustomActor(){const e=this.configuration.overlayConfiguration[_m.CUSTOM].polyDataURL,n=await(await fetch(e)).arrayBuffer(),i=sye.newInstance();i.parseAsArrayBuffer(n),i.update();const o=hr.newInstance();o.shallowCopy(i.getOutputData()),o.getPointData().setActiveScalars("Color");const a=oa.newInstance();a.setInputData(o),a.setColorModeToDirectScalars();const s=ca.newInstance();return s.setMapper(a),s.rotateZ(180),s}createAnnotationCube(e){const r=UE.newInstance();return r.setDefaultStyle({...e.defaultStyle}),r.setXPlusFaceProperty({...e.faceProperties.xPlus}),r.setXMinusFaceProperty({...e.faceProperties.xMinus}),r.setYPlusFaceProperty({...e.faceProperties.yPlus}),r.setYMinusFaceProperty({...e.faceProperties.yMinus}),r.setZPlusFaceProperty({...e.faceProperties.zPlus}),r.setZMinusFaceProperty({...e.faceProperties.zMinus}),r}async createAnnotatedCubeActor(){const e=UE.newInstance(),{faceProperties:r,defaultStyle:n}=this.configuration.annotatedCube;return e.setDefaultStyle(n),Object.keys(r).forEach(i=>{const o=`set${i.charAt(0).toUpperCase()+i.slice(1)}FaceProperty`;e[o](r[i])}),e}};$o.CUBE=1,$o.AXIS=2,$o.VTPFILE=3,$o.OVERLAY_MARKER_TYPES=_m;let Em=$o;Em.toolName="OrientationMarker";const cd=class cd extends or{constructor(e={},r={supportedInteractionTypes:["Mouse","Touch"],configuration:{hoverTimeout:100,mode:cd.SelectMode.Border,searchRadius:6}}){super(e,r),this.mouseMoveCallback=n=>(this.hoverTimer&&clearTimeout(this.hoverTimer),this.hoverTimer=setTimeout(()=>{this._setActiveSegment(n),this.hoverTimer=null},this.configuration.hoverTimeout),!0),this.onSetToolEnabled=()=>{this.onSetToolActive()},this.onSetToolActive=()=>{this.hoverTimer=null},this.onSetToolDisabled=()=>{this.hoverTimer=null},this.hoverTimer=null}_setActiveSegment(e={}){if(ve.isInteractingWithTool)return;const{element:r,currentPoints:n}=e.detail,i=n.world,o=re(r);if(!o)return;const{viewport:a}=o,s=Il(a.id);s&&this._setActiveSegmentForType(s,i,a)}_setActiveSegmentForType(e,r,n){if(!n.getImageData())return;const{segmentationId:o,representationData:a}=e;let s;if(this.configuration.mode===cd.SelectMode.Inside?s=kA(o,r,{viewport:n}):a.Labelmap?s=VA(o,r,{viewport:n,searchRadius:this.configuration.searchRadius}):a.Contour?s=UA(o):a.Surface,!s||s===0)return;Cm(o,s);const l=n.getRenderingEngine().getViewports().map(f=>f.id);Di(o),pe(l)}};cd.SelectMode={Inside:"Inside",Border:"Border"};let Dm=cd;Dm.toolName="SegmentSelectTool";class uV extends ar{constructor(e={}){super(e,{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}}),this.addNewAnnotation=r=>{const n=r.detail,{currentPoints:i,element:o}=n,a=i.world,s=re(o),{viewport:c,renderingEngine:l}=s;this.isDrawing=!0;const f=c.getCamera(),{viewPlaneNormal:u,viewUp:d}=f,h=this.getReferencedImageId(c,a,u,d),g={metadata:{viewPlaneNormal:[0,0,1],viewUp:[0,1,0],FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:h,toolName:this.getToolName()},data:{invalidated:!0,handles:{points:[[...a],[...a],[...a],[...a]],activeHandleIndex:null},cachedStats:{},active:!0}};Ut(g,o);const p=He(o,this.getToolName(),!1);return this.editData={annotation:g,viewportUIDsToRender:p,handleIndex:3,newAnnotation:!0,hasMoved:!1},this._activateDraw(o),Qe(o),r.preventDefault(),pe(p),g},this.getHandleNearImagePoint=(r,n,i,o)=>{const a=re(r),{viewport:s}=a,{data:c}=n,{points:l}=c.handles;for(let f=0;f{const a=re(r),{viewport:s}=a,{data:c}=n,{points:l}=c.handles,f=s.worldToCanvas(l[0]),u=s.worldToCanvas(l[3]),d=this._getRectangleImageCoordinates([f,u]),h=[i[0],i[1]],{left:g,top:p,width:v,height:x}=d;if(eS([g,p,v,x],h)<=o)return!0},this.toolSelectedCallback=(r,n,i="mouse")=>{const o=r.detail,{element:a}=o,{data:s}=n;s.active=!0;const c=He(a,this.getToolName(),!1);this.editData={annotation:n,viewportUIDsToRender:c},this._activateModify(a),Qe(a),pe(c),r.preventDefault()},this.handleSelectedCallback=(r,n,i,o="mouse")=>{const a=r.detail,{element:s}=a,{data:c}=n;c.active=!0;let l;i.worldPosition||(l=c.handles.points.findIndex(u=>u===i));const f=He(s,this.getToolName(),!1);this.editData={annotation:n,viewportUIDsToRender:f,handleIndex:l},this._activateModify(s),Qe(s),pe(f),r.preventDefault()},this._mouseUpCallback=r=>{const n=r.detail,{element:i}=n,{annotation:o,viewportUIDsToRender:a,newAnnotation:s,hasMoved:c}=this.editData,{data:l}=o;s&&!c||(l.active=!1,l.handles.activeHandleIndex=null,this._deactivateModify(i),this._deactivateDraw(i),ct(i),re(i),this.editData=null,this.isDrawing=!1,this.isHandleOutsideImage&&this.configuration.preventHandleOutsideImage&&Ot(o.annotationUID),pe(a))},this._mouseDragCallback=r=>{this.isDrawing=!0;const n=r.detail,{element:i}=n,{annotation:o,viewportUIDsToRender:a,handleIndex:s}=this.editData,{data:c}=o;if(s===void 0){const{deltaPoints:l}=n,f=l.world,{points:u}=c.handles;u.forEach(d=>{d[0]+=f[0],d[1]+=f[1],d[2]+=f[2]}),c.invalidated=!0}else{const{currentPoints:l}=n,f=re(i),{worldToCanvas:u,canvasToWorld:d}=f.viewport,h=l.world,{points:g}=c.handles;g[s]=[...h];let p,v,x,m,y,w,C,S;switch(s){case 0:case 3:p=u(g[0]),m=u(g[3]),v=[m[0],p[1]],x=[p[0],m[1]],w=d(v),C=d(x),g[1]=w,g[2]=C;break;case 1:case 2:v=u(g[1]),x=u(g[2]),p=[x[0],v[1]],m=[v[0],x[1]],y=d(p),S=d(m),g[0]=y,g[3]=S;break}c.invalidated=!0}this.editData.hasMoved=!0,re(i),pe(a)},this._activateDraw=r=>{ve.isInteractingWithTool=!0,r.addEventListener(F.MOUSE_UP,this._mouseUpCallback),r.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.addEventListener(F.MOUSE_MOVE,this._mouseDragCallback),r.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.addEventListener(F.TOUCH_END,this._mouseUpCallback),r.addEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._deactivateDraw=r=>{ve.isInteractingWithTool=!1,r.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),r.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.removeEventListener(F.MOUSE_MOVE,this._mouseDragCallback),r.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.removeEventListener(F.TOUCH_END,this._mouseUpCallback),r.removeEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._activateModify=r=>{ve.isInteractingWithTool=!0,r.addEventListener(F.MOUSE_UP,this._mouseUpCallback),r.addEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.addEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.addEventListener(F.TOUCH_END,this._mouseUpCallback),r.addEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this._deactivateModify=r=>{ve.isInteractingWithTool=!1,r.removeEventListener(F.MOUSE_UP,this._mouseUpCallback),r.removeEventListener(F.MOUSE_DRAG,this._mouseDragCallback),r.removeEventListener(F.MOUSE_CLICK,this._mouseUpCallback),r.removeEventListener(F.TOUCH_END,this._mouseUpCallback),r.removeEventListener(F.TOUCH_DRAG,this._mouseDragCallback)},this.renderAnnotation=(r,n)=>{const{viewport:o}=r,{element:a}=o;let s=_t(this.getToolName(),a);if(!(s!=null&&s.length)||(s=this.filterInteractableAnnotationsForElement(a,s),!(s!=null&&s.length)))return!1;this.getTargetId(o),o.getRenderingEngine();const c={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:r.viewport.id};for(let l=0;lo.worldToCanvas(C)),v=this.getStyle("lineWidth",c,f),x=this.getStyle("lineDash",c,f),m=this.getStyle("color",c,f);if(!o.getRenderingEngine()){console.warn("Rendering Engine has been destroyed");return}let y;!this.editData&&g!==null&&(y=[p[g]]),y&&sn(n,u,"0",y,{color:m}),GN(n,u,"0",p[0],p[3],{color:"black",lineDash:x,lineWidth:v})}},this._getRectangleImageCoordinates=r=>{const[n,i]=r;return{left:Math.min(n[0],i[0]),top:Math.min(n[1],i[1]),width:Math.abs(n[0]-i[0]),height:Math.abs(n[1]-i[1])}},this._calculateCachedStats=(r,n,i,o,a)=>{const{data:s}=r,{viewportUID:c,renderingEngineUID:l,sceneUID:f}=a,u=s.handles.points[0],d=s.handles.points[3],{cachedStats:h}=s,g=Object.keys(h);for(let x=0;xIn(r,i)&&In(n,i),this._getTargetVolumeUID=r=>{if(this.configuration.volumeUID)return this.configuration.volumeUID;const n=r.getVolumeActors();if(!(!n&&!n.length))return n[0].uid},this._throttledCalculateCachedStats=Qr(this._calculateCachedStats,100,{trailing:!0})}cancel(e){if(!this.isDrawing)return;this.isDrawing=!1,this._deactivateDraw(e),this._deactivateModify(e),ct(e);const{annotation:r,viewportUIDsToRender:n}=this.editData,{data:i}=r;return i.active=!1,i.handles.activeHandleIndex=null,pe(n),this.editData=null,r.metadata.annotationUID}_getImageVolumeFromTargetUID(e,r){let n,i;if(e.startsWith("stackTarget")){const o=e.indexOf(":"),a=e.substring(o+1);n=r.getViewport(a).getImageData()}else n=_e.getVolume(e);return{imageVolume:n,viewport:i}}_getTargetStackUID(e){return`stackTarget:${e.uid}`}}uV.toolName="VideoRedaction";const cye=Object.freeze(Object.defineProperty({__proto__:null,AdvancedMagnifyTool:Qd,AngleTool:bk,AnnotationDisplayTool:uc,AnnotationTool:ar,ArrowAnnotateTool:ic,BaseTool:or,BidirectionalTool:yS,BrushTool:vS,CONSTANTS:uge,CircleROIStartEndThresholdTool:Ak,CircleROITool:DS,CircleScissorsTool:Nk,CobbAngleTool:Ik,CrosshairsTool:Ko,DragProbeTool:Sk,ETDRSGridTool:Tk,EllipticalROITool:u0,Enums:qR,EraserTool:Mk,HeightTool:Ck,KeyImageTool:V2,LengthTool:xl,LivewireContourSegmentationTool:Dk,LivewireContourTool:bS,MIPJumpToClickTool:dk,MagnifyTool:hk,OrientationMarkerTool:Em,OverlayGridTool:gk,PaintFillTool:kk,PanTool:o0,PlanarFreehandContourSegmentationTool:Za,PlanarFreehandROITool:vl,PlanarRotateTool:s0,ProbeTool:rc,RectangleROIStartEndThresholdTool:gS,RectangleROIThresholdTool:pS,RectangleROITool:tc,RectangleScissorsTool:Lk,ReferenceCursors:Ri,ReferenceLinesTool:el,ScaleOverlayTool:yk,SculptorTool:l0,SegmentSelectTool:Dm,SegmentationIntersectionTool:pk,SphereScissorsTool:Pk,SplineContourSegmentationTool:Ek,SplineROITool:eh,StackScrollTool:yl,Synchronizer:cA,SynchronizerManager:age,ToolGroupManager:Yse,TrackballRotateTool:uk,Types:sme,UltrasoundDirectionalTool:Ok,VideoRedactionTool:uV,VolumeRotateTool:wk,WindowLevelRegionTool:fk,WindowLevelTool:a0,ZoomTool:c0,addTool:pr,annotation:Sfe,cancelActiveManipulations:ege,cursors:Hse,destroy:sge,drawing:Jue,init:lA,removeTool:Cce,segmentation:Ime,get state(){return ve},synchronizers:Mge,utilities:ame},Symbol.toStringTag,{value:"Module"}));function fV(t,e,r){if(t===void 0)throw new Error("decodeRGB: rgbBuffer must be defined");if(t.length%3!==0)throw new Error(`decodeRGB: rgbBuffer length ${t.length} must be divisible by 3`);const n=t.length/3;let i=0,o=0;if(r){for(let a=0;a>e;return n}function My(t,e,r){const n=t[`${e}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const i=Pe("imagePixelModule",t.imageId);return i&&typeof i.then=="function"?i.then(o=>o?o[`${e}PaletteColorLookupTableData`]:r):Promise.resolve(i?i[`${e}PaletteColorLookupTableData`]:r)}function pV(t,e,r){const n=t.columns*t.rows,i=t.pixelData;Promise.all([My(t,"red",null),My(t,"green",null),My(t,"blue",null)]).then(([o,a,s])=>{if(!o||!a||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const c=o.length;let l=0,f=0;const u=t.redPaletteColorLookupTableDescriptor[1],d=t.redPaletteColorLookupTableDescriptor[2]===8?0:8,h=Oy(o,d),g=Oy(a,d),p=Oy(s,d);if(r){for(let v=0;vu+c-1?x=c-1:x-=u,e[f++]=h[x],e[f++]=g[x],e[f++]=p[x],e[f++]=255}return}for(let v=0;vu+c-1?x=c-1:x-=u,e[f++]=h[x],e[f++]=g[x],e[f++]=p[x]}})}function Ry(t,e){if(!(!t.elements[e]||t.elements[e].length!==6))return[t.uint16(e,0),t.uint16(e,1),t.uint16(e,2)]}function Ly(t,e,r){const n=[],i=t.elements[e];for(let o=0;o0?0:t.uint16("x00280103")}function Po(t,e,r){const n=[],i=t.string(e);if(!i)return;const o=i.split("\\");if(!(r&&o.lengthq.byteArray.length-q.position&&(Be=q.byteArray.length-q.position),J.fragments.push({offset:q.position-X-8,position:q.position,length:Be}),q.seek(Be),void(J.length=q.position-J.dataOffset);J.fragments.push({offset:q.position-X-8,position:q.position,length:Be}),q.seek(Be)}ie&&ie.push("pixel data element ".concat(J.tag," missing sequence delimiter tag xfffee0dd"))}function T(q,J){if(q===void 0)throw"dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";for(var ie=q.byteArray.length-8;q.position<=ie;)if(q.readUint16()===65534){var Z=q.readUint16();if(Z===57565)return q.readUint32()!==0&&q.warnings("encountered non zero length following item delimiter at position ".concat(q.position-4," while reading element of undefined length with tag ").concat(J.tag)),void(J.length=q.position-J.dataOffset)}J.length=q.byteArray.length-J.dataOffset,q.seek(q.byteArray.length-q.position)}function _(q,J,ie){if(ie<0)throw"dicomParser.readFixedString - length cannot be less than 0";if(J+ie>q.length)throw"dicomParser.readFixedString: attempt to read past end of buffer";for(var Z,te="",me=0;meJ.byteArray.length)throw"dicomParser.parseDicomDataSetExplicit: invalid value for parameter 'maxP osition'";for(var te=q.elements;J.positionie)throw"dicomParser:parseDicomDataSetExplicit: buffer overrun"}function Y(q,J,ie){var Z=3J.byteArray.length)throw"dicomParser.parseDicomDataSetImplicit: invalid value for parameter 'maxPosition'";for(var te=q.elements;J.positionq.length)throw"bigEndianByteArrayParser.readUint16: attempt to read past end of buffer";return(q[J]<<8)+q[J+1]},readInt16:function(q,J){if(J<0)throw"bigEndianByteArrayParser.readInt16: position cannot be less than 0";if(J+2>q.length)throw"bigEndianByteArrayParser.readInt16: attempt to read past end of buffer";return J=(q[J]<<8)+q[J+1],J=32768&J?J-65535-1:J},readUint32:function(q,J){if(J<0)throw"bigEndianByteArrayParser.readUint32: position cannot be less than 0";if(J+4>q.length)throw"bigEndianByteArrayParser.readUint32: attempt to read past end of buffer";return 256*(256*(256*q[J]+q[J+1])+q[J+2])+q[J+3]},readInt32:function(q,J){if(J<0)throw"bigEndianByteArrayParser.readInt32: position cannot be less than 0";if(J+4>q.length)throw"bigEndianByteArrayParser.readInt32: attempt to read past end of buffer";return(q[J]<<24)+(q[J+1]<<16)+(q[J+2]<<8)+q[J+3]},readFloat:function(q,J){if(J<0)throw"bigEndianByteArrayParser.readFloat: position cannot be less than 0";if(J+4>q.length)throw"bigEndianByteArrayParser.readFloat: attempt to read past end of buffer";var ie=new Uint8Array(4);return ie[3]=q[J],ie[2]=q[J+1],ie[1]=q[J+2],ie[0]=q[J+3],new Float32Array(ie.buffer)[0]},readDouble:function(q,J){if(J<0)throw"bigEndianByteArrayParser.readDouble: position cannot be less than 0";if(J+8>q.length)throw"bigEndianByteArrayParser.readDouble: attempt to read past end of buffer";var ie=new Uint8Array(8);return ie[7]=q[J],ie[6]=q[J+1],ie[5]=q[J+2],ie[4]=q[J+3],ie[3]=q[J+4],ie[2]=q[J+5],ie[1]=q[J+6],ie[0]=q[J+7],new Float64Array(ie.buffer)[0]}};function de(q,J,ie){if(typeof Buffer<"u"&&q instanceof Buffer)return q.slice(J,J+ie);if(q instanceof Uint8Array)return new Uint8Array(q.buffer,q.byteOffset+J,ie);throw"dicomParser.from: unknown type for byteArray"}function fe(q,J){for(var ie=0;ie"u"||!(te instanceof Buffer)))throw"dicomParser.ByteStream: parameter byteArray is not of type Uint8Array or Buffer";if(me<0)throw"dicomParser.ByteStream: parameter 'position' cannot be less than 0";if(me>=te.length)throw"dicomParser.ByteStream: parameter 'position' cannot be greater than or equal to 'byteArray' length";this.byteArrayParser=Z,this.byteArray=te,this.position=me||0,this.warnings=[]}var J,ie;return J=q,(ie=[{key:"seek",value:function(Z){if(this.position+Z<0)throw"dicomParser.ByteStream.prototype.seek: cannot seek to position < 0";this.position+=Z}},{key:"readByteStream",value:function(Z){if(this.position+Z>this.byteArray.length)throw"dicomParser.ByteStream.prototype.readByteStream: readByteStream - buffer overread";var te=de(this.byteArray,this.position,Z);return this.position+=Z,new q(this.byteArrayParser,te)}},{key:"getSize",value:function(){return this.byteArray.length}},{key:"readUint16",value:function(){var Z=this.byteArrayParser.readUint16(this.byteArray,this.position);return this.position+=2,Z}},{key:"readUint32",value:function(){var Z=this.byteArrayParser.readUint32(this.byteArray,this.position);return this.position+=4,Z}},{key:"readFixedString",value:function(Z){var te=_(this.byteArray,this.position,Z);return this.position+=Z,te}}])&&fe(J.prototype,ie),Object.defineProperty(J,"prototype",{writable:!1}),q}(),k={readUint16:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readUint16: position cannot be less than 0";if(J+2>q.length)throw"littleEndianByteArrayParser.readUint16: attempt to read past end of buffer";return q[J]+256*q[J+1]},readInt16:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readInt16: position cannot be less than 0";if(J+2>q.length)throw"littleEndianByteArrayParser.readInt16: attempt to read past end of buffer";return J=q[J]+(q[J+1]<<8),J=32768&J?J-65535-1:J},readUint32:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readUint32: position cannot be less than 0";if(J+4>q.length)throw"littleEndianByteArrayParser.readUint32: attempt to read past end of buffer";return q[J]+256*q[J+1]+256*q[J+2]*256+256*q[J+3]*256*256},readInt32:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readInt32: position cannot be less than 0";if(J+4>q.length)throw"littleEndianByteArrayParser.readInt32: attempt to read past end of buffer";return q[J]+(q[J+1]<<8)+(q[J+2]<<16)+(q[J+3]<<24)},readFloat:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readFloat: position cannot be less than 0";if(J+4>q.length)throw"littleEndianByteArrayParser.readFloat: attempt to read past end of buffer";var ie=new Uint8Array(4);return ie[0]=q[J],ie[1]=q[J+1],ie[2]=q[J+2],ie[3]=q[J+3],new Float32Array(ie.buffer)[0]},readDouble:function(q,J){if(J<0)throw"littleEndianByteArrayParser.readDouble: position cannot be less than 0";if(J+8>q.length)throw"littleEndianByteArrayParser.readDouble: attempt to read past end of buffer";var ie=new Uint8Array(8);return ie[0]=q[J],ie[1]=q[J+1],ie[2]=q[J+2],ie[3]=q[J+3],ie[4]=q[J+4],ie[5]=q[J+5],ie[6]=q[J+6],ie[7]=q[J+7],new Float64Array(ie.buffer)[0]}};function O(q){var J=1"u")throw"dicomParser.parseDicom: no inflater available to handle deflate transfer syntax";return Me=q.slice(ue),Re=pako.inflateRaw(Me),(Me=ne(q,Re.length+ue)).set(q.slice(0,ue),0),Me.set(Re,ue),new le(k,Me,0)}(Ae,Be.position),Be=new b(Ae.byteArrayParser,Ae.byteArray,{});Be.warnings=Ae.warnings;try{(X?H:Y)(Be,Ae,Ae.byteArray.length,J)}catch(Ve){throw{exception:Ve,dataSet:Be}}return Be}return function(me,X){for(var Ae in me.elements)me.elements.hasOwnProperty(Ae)&&(X.elements[Ae]=me.elements[Ae]);return me.warnings!==void 0&&(X.warnings=me.warnings.concat(X.warnings)),X}(ie=O(q,J),te(ie))}var z=function(q,J,ie){for(var Z=0,te=J;te= 0";if(ie>=X.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragmentIndex' must be < number of fragments";if(Z<1)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'numFragments' must be > 0";if(ie+Z>X.fragments.length)throw"dicomParser.readEncapsulatedPixelDataFromFragments: parameter 'startFragment' + 'numFragments' < number of fragments";var me=new le(q.byteArrayParser,q.byteArray,X.dataOffset),X=L(me);if(X.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";me.seek(X.length);var Ae=me.position;if(Z===1)return de(me.byteArray,Ae+te[ie].offset+8,te[ie].length);for(var X=z(te,ie,Z),Be=ne(me.byteArray,X),Ve=0,ue=ie;ue= 0";if(ie>=Z.length)throw"dicomParser.readEncapsulatedImageFrame: parameter 'frameIndex' must be < basicOffsetTable.length";var me=Z[ie],me=K(te,me);if(me===void 0)throw"dicomParser.readEncapsulatedImageFrame: unable to find fragment that matches basic offset table entry";return j(q,J,me,ae(ie,Z,te,me),te)}var ye=!1;function Te(q,J,ie){if(ye||(ye=!0,console&&console.log&&console.log("WARNING: dicomParser.readEncapsulatedPixelData() has been deprecated")),q===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'dataSet'";if(J===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'element'";if(ie===void 0)throw"dicomParser.readEncapsulatedPixelData: missing required parameter 'frame'";if(J.tag!=="x7fe00010")throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to non pixel data tag (expected tag = x7fe00010)";if(J.encapsulatedPixelData!==!0||J.hadUndefinedLength!==!0||J.basicOffsetTable===void 0||J.fragments===void 0)throw"dicomParser.readEncapsulatedPixelData: parameter 'element' refers to pixel data element that does not have encapsulated pixel data";if(ie<0)throw"dicomParser.readEncapsulatedPixelData: parameter 'frame' must be >= 0";return J.basicOffsetTable.length!==0?he(q,J,ie):j(q,J,0,J.fragments.length)}s.default={isStringVr:f,isPrivateTag:u,parsePN:d,parseTM:h,parseDA:p,explicitElementToString:v,explicitDataSetToJS:x,createJPEGBasicOffsetTable:w,parseDicomDataSetExplicit:H,parseDicomDataSetImplicit:Y,readFixedString:_,alloc:ne,version:Q,bigEndianByteArrayParser:ee,ByteStream:le,sharedCopy:de,DataSet:b,findAndSetUNElementLength:T,findEndOfEncapsulatedElement:S,findItemDelimitationItemAndSetElementLength:I,littleEndianByteArrayParser:k,parseDicom:U,readDicomElementExplicit:$,readDicomElementImplicit:M,readEncapsulatedImageFrame:he,readEncapsulatedPixelData:Te,readEncapsulatedPixelDataFromFragments:j,readPart10Header:O,readSequenceItemsExplicit:N,readSequenceItemsImplicit:G,readSequenceItem:L,readTag:C,LEI:"1.2.840.10008.1.2",LEE:"1.2.840.10008.1.2.1"}}],o={},n.m=i,n.c=o,n.d=function(a,s,c){n.o(a,s)||Object.defineProperty(a,s,{enumerable:!0,get:c})},n.r=function(a){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},n.t=function(a,s){if(1&s&&(a=n(a)),8&s||4&s&&typeof a=="object"&&a&&a.__esModule)return a;var c=Object.create(null);if(n.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:a}),2&s&&typeof a!="string")for(var l in a)n.d(c,l,(function(f){return a[f]}).bind(null,l));return c},n.n=function(a){var s=a&&a.__esModule?function(){return a.default}:function(){return a};return n.d(s,"a",s),s},n.o=function(a,s){return Object.prototype.hasOwnProperty.call(a,s)},n.p="",n(n.s=1);function n(a){if(o[a])return o[a].exports;var s=o[a]={i:a,l:!1,exports:{}};return i[a].call(s.exports,s,s.exports,n),s.l=!0,s.exports}var i,o})})(yV);var Tn=yV.exports;function Vh(t){const e=t.indexOf(":");let r=t.substring(e+1);const n=r.indexOf("frame=");let i;if(n!==-1){const s=r.substring(n+6);i=parseInt(s,10),r=r.substring(0,n-1)}const o=t.substring(0,e),a=i!==void 0?i-1:void 0;return{scheme:o,url:r,frame:i,pixelDataFrame:a}}let X3={open(t,e){t.open("get",e,!0)},beforeSend(){},beforeProcessing(t){return Promise.resolve(t.response)},imageCreated(){},strict:!1};function xV(t){X3=Object.assign(X3,t)}function Fh(){return X3}function U2(t,e,r={},n={}){const i=Fh(),o=c=>{if(typeof i.errorInterceptor=="function"){const l=new Error("request failed");l.request=c,l.response=c.response,l.status=c.status,i.errorInterceptor(l)}},a=new XMLHttpRequest,s=new Promise((c,l)=>{i.open(a,t,r,n);const f=i.beforeSend(a,e,r,n);a.responseType="arraybuffer";const u=Object.assign({},r,f);Object.keys(u).forEach(function(d){u[d]!==null&&(d==="Accept"&&t.indexOf("accept=")!==-1||a.setRequestHeader(d,u[d]))}),n.deferred={resolve:c,reject:l},n.url=t,n.imageId=e,a.onloadstart=function(d){i.onloadstart&&i.onloadstart(d,n),De(Ce,"cornerstoneimageloadstart",{url:t,imageId:e})},a.onloadend=function(d){i.onloadend&&i.onloadend(d,n),De(Ce,"cornerstoneimageloadend",{url:t,imageId:e})},a.onreadystatechange=function(d){if(i.onreadystatechange){i.onreadystatechange(d,n);return}a.readyState===4&&(a.status===200||a.status===206?i.beforeProcessing(a).then(c).catch(()=>{o(a),l(a)}):(o(a),l(a)))},a.onprogress=function(d){d.loaded,d.lengthComputable&&d.total,i.onprogress&&i.onprogress(d,n)},a.onerror=function(){o(a),l(a)},a.onabort=function(){o(a),l(a)},a.send()});return s.xhr=a,s}function gye(t,e,r){if(r+t.length>e.length)return!1;let n=r;for(let i=0;i{if(typeof i.errorInterceptor=="function"){const u=new Error("request failed");i.errorInterceptor(u)}},l=new hye("streamRequest");return l.generate(async(f,u)=>{var g,p;const d=(g=i.beforeSend)==null?void 0:g.call(i,null,t,r,{}),h=Object.assign({},r,d);Object.keys(h).forEach(function(v){h[v]===null&&(h[v]=void 0),v==="Accept"&&t.indexOf("accept=")!==-1&&(h[v]=void 0)});try{const v=await fetch(t,{headers:h,signal:void 0});if(v.status!==200)throw new Error(`Couldn't retrieve ${t} got status ${v.status}`);const x=v.body.getReader(),m=v.headers,y=m.get("content-type"),w=Number(m.get("Content-Length"));let C=!1,S=a.encodedData,T=a.lastSize||0;for(a.isPartial=!0;!C;){const{done:_,value:E}=await x.read();if(S=gye(S,E),!S){if(C)throw new Error(`Done but no image frame available ${e}`);continue}if(C=_||S.byteLength===w,!C&&S.lengthr-i&&(console.log(`Truncated fragment, changing fragment length from ${n.length} to ${r-i}`),n.length=r-i)}return t}function vye(t){let e=_n.parseDicom(t,{untilTag:"x7fe00010"});e.elements.x7fe00010||console.warn("Pixel data not found!");let r;try{r=_n.parseDicom(t)}catch(n){console.error(n),console.log("pixel data dataset:",n.dataSet),r=n.dataSet}return e.elements.x7fe00010=r.elements.x7fe00010,e=mye(e),e}async function mV(t,e,r){const n=vye(t),{uri:i,imageId:o,fileTotalLength:a}=r;return n.fetchMore=async function(s){const c=Object.assign({uri:i,imageId:o,fetchedLength:t.length,lengthToFetch:a-t.length},s),{fetchedLength:l,lengthToFetch:f}=c,{arrayBuffer:u}=await e(i,o,{byteRange:`${l}-${l+f}`}),d=new Uint8Array(u),h=new Uint8Array(n.byteArray.length+d.length);return h.set(n.byteArray),h.set(d,n.byteArray.length),mV(h,e,r)},n}function yye(t,e){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i}=yV(t);if(n||r>1){const{shared:o,perFrame:a}=vV(n,i,e);return{NumberOfFrames:r,PerFrameFunctionalInformation:a,SharedFunctionalInformation:o}}return{NumberOfFrames:r}}function vV(t,e,r){const n={};(e?Object.values(e.items[0].dataSet.elements):[]).map(o=>n[o.tag]=o);const i={};return(t?Object.values(t.items[r-1].dataSet.elements):[]).map(o=>i[o.tag]=o),{shared:n,perFrame:i}}function yV(t){if(!t)return;const{elements:e,...r}=t,{x52009230:n,x52009229:i,...o}=e;return{NumberOfFrames:t.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:o,otherAttributtes:r}}function xye(t,e){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:o}=yV(e);if(n||r>1){const{shared:a,perFrame:s}=vV(n,i,t),c={elements:{...o,...a,...s}},l=Object.create(e);return Object.assign(l,c)}return e}let xr={};const wye=()=>{xr={}};function PS(t){if(xr[t])return xr[t]}function Cye(t){const e=PS(t);return xV(e)}function xV(t){if(!t)return!1;const e=t.intString("x00280008");return e&&e>1}function Sye(t){return t.indexOf("&frame=")}function Tye(t){const e=Sye(t),r=e===-1?t:t.slice(0,e),n=parseInt(t.slice(e+7),10)||1;let i;return xr[r]?i=xr[r].dataSet:i=void 0,{dataSet:i,frame:n}}function _ye(t){const e=[],r=PS(t);if(xV(r)){const n=r.intString("x00280008");for(let i=1;i<=n;i++)e.push(`${t}&frame=${i}`)}else e.push(t);return e}const wV={_get:PS,generateMultiframeWADOURIs:_ye,retrieveMultiframeDataset:Tye,isMultiframeDataset:Cye};let l0=0,bc={};function Eye(t){return xr[t]!==void 0}function Dye(t){let e;if(t.includes("&frame=")){const{frame:r,dataSet:n}=wV.retrieveMultiframeDataset(t);e=xye(r,n)}else xr[t]&&(e=xr[t].dataSet);return e}function bye(t,e){const r=xr[t];if(!r){console.error(`No loaded dataSet for uri ${t}`);return}l0-=r.dataSet.byteArray.length,r.dataSet=e,l0+=e.byteArray.length,De(Ce,"datasetscachechanged",{uri:t,action:"updated",cacheInfo:F2()})}function Iye(t,e=V2,r){if(xr[t])return new Promise(o=>{xr[t].cacheCount++,o(xr[t].dataSet)});if(bc[t])return bc[t].cacheCount++,bc[t];const n=e(t,r),i=new Promise((o,a)=>{n.then(async function(s){const c={isPartialContent:!1,fileTotalLength:null};if(!(s instanceof ArrayBuffer)){if(!s.arrayBuffer)return a(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=s.flags.isPartialContent,c.fileTotalLength=s.flags.fileTotalLength,s=s.arrayBuffer}const l=new Uint8Array(s);let f;try{c.isPartialContent?f=await mV(l,e,{uri:t,imageId:r,fileTotalLength:c.fileTotalLength}):f=_n.parseDicom(l)}catch(u){return a(u)}xr[t]={dataSet:f,cacheCount:i.cacheCount},l0+=f.byteArray.length,o(f),De(Ce,"datasetscachechanged",{uri:t,action:"loaded",cacheInfo:F2()})},a).then(()=>{delete bc[t]},()=>{delete bc[t]})});return i.cacheCount=1,bc[t]=i,i}function Oye(t){xr[t]&&(xr[t].cacheCount--,xr[t].cacheCount===0&&(l0-=xr[t].dataSet.byteArray.length,delete xr[t],De(Ce,"datasetscachechanged",{uri:t,action:"unloaded",cacheInfo:F2()})))}function F2(){return{cacheSizeInBytes:l0,numberOfDataSetsCached:Object.keys(xr).length}}function Mye(){wye(),bc={},l0=0}const Lu={isLoaded:Eye,load:Iye,unload:Oye,getInfo:F2,purge:Mye,get:Dye,update:bye};function Rye(t){const e=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;n.length===4&&(n=`x600${r.toString(16)}`);const i=t.elements[`${n}3000`];if(!i)continue;const o=[];for(let a=0;a>s&1}e.push({rows:t.uint16(`${n}0010`),columns:t.uint16(`${n}0011`),type:t.string(`${n}0040`),x:t.int16(`${n}0050`,1)-1,y:t.int16(`${n}0050`,0)-1,pixelData:o,description:t.string(`${n}0022`),label:t.string(`${n}1500`),roiArea:t.string(`${n}1301`),roiMean:t.string(`${n}1302`),roiStandardDeviation:t.string(`${n}1303`)})}return{overlays:e}}function F0(t){return t==="RECON TOMO"||t==="RECON GATED TOMO"}function AS(t,e){const r=t.string("x00080008");if(r){const n=r.split("\\");if(n.length>e)return n[e]}}function Lye(t){let e;const r=t.string("x00080060");if(r!=null&&r.includes("NM")){const n=AS(t,2);n&&F0(n)&&t.elements.x00540022&&(e=No(t.elements.x00540022.items[0].dataSet,"x00200037",6))}return e}function Nye(t){let e;const r=t.string("x00080060");if(r!=null&&r.includes("NM")){const n=AS(t,2);n&&F0(n)&&t.elements.x00540022&&(e=No(t.elements.x00540022.items[0].dataSet,"x00200032",3))}return e}function GE(t){let e=No(t,"x00200037",6);return!e&&t.elements.x00209116&&(e=No(t.elements.x00209116.items[0].dataSet,"x00200037",6)),e||(e=Lye(t)),e}function WE(t){let e=No(t,"x00200032",3);return!e&&t.elements.x00209113&&(e=No(t.elements.x00209113.items[0].dataSet,"x00200032",3)),e||(e=Nye(t)),e}function zE(t){let e=No(t,"x00280030",2);return!e&&t.elements.x00289110&&(e=No(t.elements.x00289110.items[0].dataSet,"x00280030",2)),e}function $E(t){let e;return t.elements.x00180050?e=t.floatString("x00180050"):t.elements.x00289110&&t.elements.x00289110.items.length&&t.elements.x00289110.items[0].dataSet.elements.x00180050&&(e=t.elements.x00289110.items[0].dataSet.floatString("x00180050")),e}function CV(t,e,r){const n={};for(const i of r)try{const o=e(i,t);if(o){const a={};for(const s in o)if(s in o){const c=Pye(s);a[c]=o[s]}Object.assign(n,a)}}catch(o){console.error(`Error retrieving ${i} data:`,o)}return n}const Pye=t=>t.charAt(0).toUpperCase()+t.slice(1),SV=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function jE(t){const e=t.elements.x00186011;return!e||!e.items?[]:e.items.map(n=>{const i=n.dataSet.double("x0018602c"),o=n.dataSet.double("x0018602e"),a=n.dataSet.uint16("x00186024"),s=n.dataSet.uint16("x00186026"),c=n.dataSet.uint16("x0018601a"),l=n.dataSet.uint16("x0018601e"),f=n.dataSet.uint16("x00186018"),u=n.dataSet.uint16("x0018601c"),d=n.dataSet.int32("x00186020")||null,h=n.dataSet.int32("x00186022")||null,g=n.dataSet.uint16("x0018602a"),p=n.dataSet.uint16("x00186028"),v=n.dataSet.uint16("x00186012"),x=n.dataSet.uint16("x00186014"),m=n.dataSet.uint16("x00186016"),y=n.dataSet.uint16("x00186030");return{regionLocationMinY0:c,regionLocationMaxY1:l,regionLocationMinX0:f,regionLocationMaxX1:u,referencePixelX0:d,referencePixelY0:h,physicalDeltaX:i,physicalDeltaY:o,physicalUnitsXDirection:a,physicalUnitsYDirection:s,referencePhysicalPixelValueY:g,referencePhysicalPixelValueX:p,regionSpatialFormat:v,regionDataType:x,regionFlags:m,transducerFrequency:y}})}function kS(t,e){const{MetadataModules:r}=Po;if(Array.isArray(e))return;const n=Ah(e);if(t===r.MULTIFRAME){const a=wV.retrieveMultiframeDataset(n.url);return a.dataSet?yye(a.dataSet,a.frame):void 0}let i=n.url;n.frame&&(i=`${i}&frame=${n.frame}`);const o=Lu.get(i);if(o)return TV(t,e,o)}function TV(t,e,r){const{MetadataModules:n}=Po;if(t===n.GENERAL_STUDY)return{studyDescription:r.string("x00081030"),studyDate:_n.parseDA(r.string("x00080020")),studyTime:_n.parseTM(r.string("x00080030")||""),accessionNumber:r.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:r.string("x00080060"),seriesInstanceUID:r.string("x0020000e"),seriesNumber:r.intString("x00200011"),studyInstanceUID:r.string("x0020000d"),seriesDate:_n.parseDA(r.string("x00080021")),seriesTime:_n.parseTM(r.string("x00080031")||""),acquisitionDate:_n.parseDA(r.string("x00080022")),acquisitionTime:_n.parseTM(r.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:r.string("x00080018"),instanceNumber:r.intString("x00200013"),lossyImageCompression:r.string("x00282110"),lossyImageCompressionRatio:r.floatString("x00282112"),lossyImageCompressionMethod:r.string("x00282114")};if(t===n.PATIENT)return{patientID:r.string("x00100020"),patientName:r.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:r.intString("x00101010"),patientSize:r.floatString("x00101020"),patientSex:r.string("x00100040"),patientWeight:r.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const i=r.string("x00080060"),o=AS(r,2);return{modality:i,imageType:r.string("x00080008"),imageSubType:o,imageOrientationPatient:GE(r),imagePositionPatient:WE(r),sliceThickness:$E(r),pixelSpacing:zE(r),numberOfFrames:r.uint16("x00280008"),isNMReconstructable:F0(o)&&i.includes("NM")}}if(t===n.IMAGE_PLANE){const i=GE(r),o=WE(r),a=zE(r),s=$E(r);let c=null,l=null;a&&(l=a[0],c=a[1]);let f=null,u=null;return i&&(f=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],u=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]),{frameOfReferenceUID:r.string("x00200052"),rows:r.uint16("x00280010"),columns:r.uint16("x00280011"),imageOrientationPatient:i,rowCosines:f,columnCosines:u,imagePositionPatient:o,sliceThickness:s,sliceLocation:r.floatString("x00201041"),pixelSpacing:a,rowPixelSpacing:l,columnPixelSpacing:c}}if(t===n.CINE)return{frameTime:r.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return fV(r);if(t===n.VOI_LUT){const i=dV(r);return{windowCenter:No(r,"x00281050",1),windowWidth:No(r,"x00281051",1),voiLUTSequence:j3(i,r.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:r.floatString("x00281052"),rescaleSlope:r.floatString("x00281053"),rescaleType:r.string("x00281054"),modalityLUTSequence:j3(r.uint16("x00280103"),r.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:r.string("x00080016"),sopInstanceUID:r.string("x00080018")};if(t===n.PET_ISOTOPE){const i=r.elements.x00540016;if(i===void 0)return;const o=i.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:_n.parseTM(o.string("x00181072")||""),radionuclideTotalDose:o.floatString("x00181074"),radionuclideHalfLife:o.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return Rye(r);if(t==="transferSyntax"){let i;try{i=r.string("x00020010")}catch{}return{transferSyntaxUID:i}}if(t===n.PET_SERIES)return{correctedImage:r.string("x00280051"),units:r.string("x00541001"),decayCorrection:r.string("x00541102")};if(t===n.PET_IMAGE)return{frameReferenceTime:r.floatString(r.string("x00541300")||""),actualFrameDuration:r.intString(r.string("x00181242"))};if(t===n.ULTRASOUND_ENHANCED_REGION)return jE(r);if(t===n.CALIBRATION&&r.string("x00080060")==="US")return{sequenceOfUltrasoundRegions:jE(r)};if(t==="instance")return CV(e,kS,SV)}let U2=[];function Aye(t){return`dicomfile:${U2.push(t)-1}`}function kye(t){return U2[t]}function Vye(t){U2[t]=void 0}function Fye(){U2=[]}const _V={add:Aye,get:kye,remove:Vye,purge:Fye};function Uye(t){const e=t.intString("x00280008"),r=t.elements.x7fe00010;return e!==r.fragments.length}function EV(t,e){if(t.elements.x7fe00010&&t.elements.x7fe00010.basicOffsetTable.length)return _n.readEncapsulatedImageFrame(t,t.elements.x7fe00010,e);if(Uye(t)){const l=_n.createJPEGBasicOffsetTable(t,t.elements.x7fe00010);return _n.readEncapsulatedImageFrame(t,t.elements.x7fe00010,e,l)}const r=t.elements.x7fe00010.fragments,n=new _n.ByteStream(t.byteArrayParser,t.byteArray,t.elements.x7fe00010.dataOffset),i=_n.readSequenceItem(n);if(i.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";n.seek(i.length);const o=n.position;if(e+1>r.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=o+r[e].offset+8,c=r[e].length;return new Uint8Array(n.byteArray.buffer.slice(n.byteArray.byteOffset+s,n.byteArray.byteOffset+s+c))}function Bye(t,e){return t&1<=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l))}else if(n===16){if(f=c+e*l*2,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l*2))}else if(n===1){if(f=c+e*l*.125,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return DV(t.byteArray,f,l)}else if(n===32){if(f=c+e*l*4,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l*4))}throw new Error("unsupported pixel format")}function IV(t){const e=Ah(t),r=parseInt(e.url,10),n=_V.get(r);return new Promise((i,o)=>{const a=new FileReader;a.onload=s=>{const c=s.target.result;i(c)},a.onerror=o,a.readAsArrayBuffer(n)})}function VS(t,e=0){const r=t.elements.x7fe00010||t.elements.x7fe00008;return r?r.encapsulatedPixelData?EV(t,e):bV(t,e):null}function FS(t){let e=t[0],r=t[0],n;const i=t.length;for(let o=1;o=0?e<=255?r=Uint8Array:e<=65535&&(r=Uint16Array):t>=-128&&e<=127?r=Int8Array:t>=-32768&&e<=32767&&(r=Int16Array)),r||Float32Array}function Ry(t,e,r){t.planarConfiguration===0?aV(t.pixelData,e,r):sV(t.pixelData,e,r)}function Wye(t,e,r){t.planarConfiguration===0?cV(t.pixelData,e,r):lV(t.pixelData,e,r)}function OV(t,e,r){if(t.photometricInterpretation==="RGB")Ry(t,e,r);else if(t.photometricInterpretation==="YBR_RCT")Ry(t,e,r);else if(t.photometricInterpretation==="YBR_ICT")Ry(t,e,r);else if(t.photometricInterpretation==="PALETTE COLOR")uV(t,e,r);else if(t.photometricInterpretation==="YBR_FULL_422")rye(t.pixelData,e,r);else if(t.photometricInterpretation==="YBR_FULL")Wye(t,e,r);else throw new Error(`No color space conversion for photometric interpretation ${t.photometricInterpretation}`)}function zye(t){if(t===void 0)return!1;const{rows:e,columns:r,photometricInterpretation:n,pixelDataLength:i,planarConfiguration:o}=t;return i===4*r*e?!1:n.endsWith("420")?i===(3*Math.ceil(r/2)+Math.floor(r/2))*e:n.endsWith("422")?i===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(e/2)+Math.floor(e/2)*r:n!=="RGB"||o===1}function $ye(t){return jye(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(t))))}function jye(t){let e;try{return decodeURIComponent(escape(t))}catch(r){if(e=r,e instanceof URIError)return t;throw e}}function MV(t,e,r){const n=new Date().getTime(),i=new Blob([e],{type:"image/jpeg"});return new Promise((o,a)=>{const s=new FileReader;s.readAsBinaryString===void 0?s.readAsArrayBuffer(i):s.readAsBinaryString(i),s.onload=function(){const c=new Image;c.onload=function(){r.height=c.height,r.width=c.width,t.rows=c.height,t.columns=c.width;const l=r.getContext("2d");l.drawImage(this,0,0);const f=l.getImageData(0,0,c.width,c.height),u=new Date().getTime();t.pixelData=new Uint8Array(f.data.buffer),t.imageData=f,t.decodeTimeInMS=u-n;const d=FS(t.pixelData);t.smallestPixelValue=d.min,t.largestPixelValue=d.max,t.pixelDataLength=t.pixelData.length,o(t)},c.onerror=function(l){a(l)},s.readAsBinaryString===void 0?c.src=`data:image/jpeg;base64,${window.btoa($ye(s.result))}`:c.src=`data:image/jpeg;base64,${window.btoa(s.result)}`},s.onerror=c=>{a(c)}})}function mi(t,e,r,n,i){const o={...n};delete o.loader,delete o.streamingData;const a=sc(),s=o.priority||void 0;return o.transferPixelData&&r.buffer,a.executeTask("dicomImageLoader","decodeTask",{imageFrame:t,transferSyntax:e,pixelData:r,options:o,decodeConfig:i},{priority:s,requestType:o==null?void 0:o.requestType})}function Hye(t,e,r,n,i={},o){switch(e){case"1.2.840.10008.1.2":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.1":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.2":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.1.99":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.5":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.50":return t.bitsAllocated===8&&(t.samplesPerPixel===3||t.samplesPerPixel===4)?MV(t,r,n):mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.51":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.57":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.70":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.80":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.81":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.90":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.91":return mi(t,e,r,i,o);case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return mi(t,e,r,i,o)}return Promise.reject(new Error(`No decoder for transfer syntax ${e}`))}function RV(t){const e=Pe("imagePixelModule",t);return{samplesPerPixel:e.samplesPerPixel,photometricInterpretation:e.photometricInterpretation,planarConfiguration:e.planarConfiguration,rows:e.rows,columns:e.columns,bitsAllocated:e.bitsAllocated,bitsStored:e.bitsStored,pixelRepresentation:e.pixelRepresentation,smallestPixelValue:e.smallestPixelValue,largestPixelValue:e.largestPixelValue,redPaletteColorLookupTableDescriptor:e.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:e.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:e.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:e.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:e.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:e.bluePaletteColorLookupTableData,pixelData:void 0,imageId:t}}function Kye(t,e){const r=t.get("modalityLutModule",e)||{},n=t.get("generalSeriesModule",e)||{},{modality:i}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:i},a=t.get("scalingModule",e)||{};return{...o,...i==="PT"&&{suvbw:a.suvbw}}}function LV(t){return t==="RGB"||t==="PALETTE COLOR"||t==="YBR_FULL"||t==="YBR_FULL_422"||t==="YBR_PARTIAL_422"||t==="YBR_PARTIAL_420"||t==="YBR_RCT"||t==="YBR_ICT"}let HE="";function qye(t){return t!=="1.2.840.10008.5.1.4.1.1.12.1"&&t!=="1.2.840.10008.5.1.4.1.1.12.2.1"}function Xye(t){const e=t.smallestPixelValue,r=t.largestPixelValue,n=Gye(e,r);if(n){const i=new n(t.pixelData);t.pixelData=i}else throw new Error("Could not apply a typed array to the pixel data")}function Yye(t,e){const r=t.length/4;let n=0,i=0;for(let o=0;o{(typeof s[u]=="function"||s[u]instanceof Promise)&&delete s[u]});const l=Hye(s,r,e,a,n,c),f=LV(s.photometricInterpretation);return new Promise((u,d)=>{l.then(function(h){let g=!1;if(n.targetBuffer&&n.targetBuffer.type&&!f){const{arrayBuffer:_,type:E,offset:D=0,length:b}=n.targetBuffer,I=h.pixelDataLength,R=D,M=b??I-R,L={Uint8Array,Uint16Array,Int16Array,Float32Array};if(M!==h.pixelDataLength)throw new Error(`target array for image does not have the same length (${M}) as the decoded image length (${h.pixelDataLength}).`);const A=L[E],G=_?new A(_,R,M):new A(h.pixelData);if(M!==h.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");h.pixelData=G,g=!0}g||Xye(h);const p=Pe(o.IMAGE_PLANE,t)||{},v=Pe(o.VOI_LUT,t)||{},x=Pe(o.MODALITY_LUT,t)||{},m=Pe(o.SOP_COMMON,t)||{},y=Pe(o.CALIBRATION,t)||{},{rows:w,columns:C}=h;if(f){if(zye(h)){a.height=h.rows,a.width=h.columns;let D=a.getContext("2d").createImageData(h.columns,h.rows);i||(D={...D,data:new Uint8ClampedArray(3*h.columns*h.rows)}),OV(h,D.data,i),h.imageData=D,h.pixelData=D.data,h.pixelDataLength=D.data.length}else if(!i&&h.pixelDataLength===4*w*C){const E=new Uint8Array(h.pixelData.length/4*3);h.pixelData=Yye(h.pixelData,E),h.pixelDataLength=h.pixelData.length}const _=FS(h.pixelData);h.smallestPixelValue=_.min,h.largestPixelValue=_.max}const S=Qa.createImageVoxelManager({scalarData:h.pixelData,width:h.columns,height:h.rows,numberOfComponents:h.samplesPerPixel}),T={imageId:t,dataType:h.pixelData.constructor.name,color:f,calibration:y,columnPixelSpacing:p.columnPixelSpacing,columns:h.columns,height:h.rows,preScale:h.preScale,intercept:x.rescaleIntercept?x.rescaleIntercept:0,slope:x.rescaleSlope?x.rescaleSlope:1,invert:h.photometricInterpretation==="MONOCHROME1",minPixelValue:h.smallestPixelValue,maxPixelValue:h.largestPixelValue,rowPixelSpacing:p.rowPixelSpacing,rows:h.rows,sizeInBytes:h.pixelData.byteLength,width:h.columns,windowCenter:v.windowCenter?v.windowCenter[0]:void 0,windowWidth:v.windowWidth?v.windowWidth[0]:void 0,voiLUTFunction:v.voiLUTFunction?v.voiLUTFunction:void 0,decodeTimeInMS:h.decodeTimeInMS,floatPixelData:void 0,imageFrame:h,voxelManager:S,rgba:f&&i,getPixelData:()=>h.pixelData,getCanvas:void 0,numberOfComponents:h.samplesPerPixel};if(T.color&&(T.getCanvas=function(){if(HE===t)return a;const _=T.columns,E=T.rows;a.height=E,a.width=_;const D=a.getContext("2d"),b=D.createImageData(_,E),I=h.pixelData;if(I.length===_*E*4)for(let R=0;R0&&qye(m.sopClassUID)&&(T.modalityLUT=x.modalityLUTSequence[0]),v.voiLUTSequence&&v.voiLUTSequence.length>0&&(T.voiLUT=v.voiLUTSequence[0]),T.color&&(T.windowWidth=256,T.windowCenter=128),T.windowCenter===void 0||T.windowWidth===void 0){const _=T.imageFrame.smallestPixelValue,E=T.imageFrame.largestPixelValue;T.windowWidth=E-_,T.windowCenter=(E+_)/2}u(T)},d)})}function Jye(t,e){t.decache=function(){const r=Ah(e);Lu.unload(r.url)}}function NV(t,e,r=0,n,i,o){const a=new Date().getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise((c,l)=>{t.then(f=>{const u=VS(f,r),d=f.string("x00020010"),h=new Date().getTime(),g=B2(e,u,d,i);Jye(s,e),g.then(p=>{p=p,p.data=f,p.sharedCacheKey=n;const v=new Date().getTime();p.loadTimeInMS=h-a,p.totalTimeInMS=v-a,o!==void 0&&o.imageDoneCallback!==void 0&&o.imageDoneCallback(p),c(p)},function(p){l({error:p,dataSet:f})})},function(f){l({error:f})})}),s}function Zye(t,e,r=0,n,i){const o=new Date().getTime();return{promise:new Promise((s,c)=>{const l=new Date().getTime();let f;try{const u=VS(t,r),d=t.string("x00020010");f=B2(e,u,d,i)}catch(u){c({error:u,dataSet:t});return}f.then(u=>{u=u,u.data=t,u.sharedCacheKey=n;const d=new Date().getTime();u.loadTimeInMS=l-o,u.totalTimeInMS=d-o,s(u)},c)}),cancelFn:void 0}}function PV(t){if(t==="dicomweb"||t==="wadouri")return V2;if(t==="dicomfile")return IV}function jp(t,e={}){const r=Ah(t);e=Object.assign({},e),delete e.loader;const n=PV(r.scheme);if(Lu.isLoaded(r.url)){const o=Lu.get(r.url,n,t);return Zye(o,t,r.pixelDataFrame,r.url,e)}const i=Lu.load(r.url,n,t);return NV(i,t,r.frame,r.url,e)}function AV(){Np("dicomweb",jp),Np("wadouri",jp),Np("dicomfile",jp),x0(kS)}const Qye={getImagePixelModule:fV,getLUTs:j3,getModalityLUTOutputPixelRepresentation:dV,getNumberValues:No,metaDataProvider:kS,metadataForDataset:TV},e5e={metaData:Qye,dataSetCacheManager:Lu,fileManager:_V,getEncapsulatedImageFrame:EV,getUncompressedImageFrame:bV,loadFileRequest:IV,loadImageFromPromise:NV,getLoaderForScheme:PV,getPixelData:VS,loadImage:jp,parseImageId:Ah,unpackBinaryFrame:DV,register:AV};function ft(t,e,r){return e=e||0,!t||!t.Value||Array.isArray(t.Value)&&t.Value.length<=e?r:t.Value[e]}function t5e(t,e,r){const n=ft(t,e,r);if(n!==void 0)return parseFloat(String(n))}function $t(t,e){const r=ft(t,e);if(r!==void 0)return parseFloat(r)}function Hr(t,e){if(!t||!t.Value||!Array.isArray(t.Value)||e&&t.Value.length>s&1}e.push({rows:$t(t[`${n}0010`]),columns:$t(t[`${n}0011`]),type:ft(t[`${n}0040`]),x:$t(t[`${n}0050`],1)-1,y:$t(t[`${n}0050`],0)-1,pixelData:o,description:ft(t[`${n}0022`]),label:ft(t[`${n}1500`]),roiArea:ft(t[`${n}1301`]),roiMean:ft(t[`${n}1302`]),roiStandardDeviation:ft(t[`${n}1303`])})}return{overlays:e}}function G2(t){const e=t.indexOf(":");return t.substring(e+1)}function Nu(t,e=!0){return t&&t.Value?t.Value[0]&&e?t.Value[0]:t.Value:t}function kV(t,e,r){const n=(e?Object.values(e[0]):[]).map(o=>o[0]).filter(o=>o!==void 0&&typeof o=="object"),i=(t?Object.values(t[r-1]):[]).map(o=>o.Value[0]).filter(o=>o!==void 0&&typeof o=="object");return{shared:n,perFrame:i}}function VV(t){let{52009230:e,52009229:r,"00280008":n,...i}=t;return e=Nu(e,!1),r=Nu(r,!1),n=Nu(n),{PerFrameFunctionalGroupsSequence:e,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:i}}function r5e(t,e){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:i,rest:o}=VV(e);if(r||i>1){const{shared:a,perFrame:s}=kV(r,n,t),c=Object.assign(e,{frameNumber:t});return[...a,...s].forEach(l=>{Object.entries(l).forEach(([f,u])=>{c[f]=u})}),Object.assign(o,{"00280008":i},c)}return e}let Vh=[],Em={};function FV(t){const e=t.indexOf("/frames/")+8,r=t.slice(0,e),n=parseInt(t.slice(e),10);return{metadata:Vh[`${r}1`],frame:n}}function i5e(t){const e=G2(t);return FV(e)}function o5e(t){const e=ft(t["00280008"]);return e&&e>1}function a5e(t,e){const r=G2(t);Object.defineProperty(e,"isMultiframe",{value:o5e(e),enumerable:!1}),Vh[r]=e}function s5e(t){const e=G2(t),r=Vh[e];if(r&&!(r!=null&&r.isMultiframe))return r;const n=Em[e];if(n)return n;const i=FV(e);if(!i||!i.metadata)return;const{metadata:o,frame:a}=i;if(o){const s=r5e(a,o);return Em[e]=s,s}}function c5e(t){const e=G2(t);Vh[e]=void 0,Em[e]=void 0}function l5e(){Vh=[],Em={}}const US={add:a5e,get:s5e,remove:c5e,purge:l5e};function UV(t){return ft(t["00080060"]).includes("NM")}function BS(t,e){const r=Nu(t["00080008"],!1);if(r)return r[e]}function u5e(t){let e;const r=BS(t,2);if(r&&F0(r)){const n=Nu(t["00540022"]);n&&(e=Hr(n["00200037"],6))}return e}function f5e(t){let e;const r=BS(t,2);if(r&&F0(r)){const n=Nu(t["00540022"]);n&&(e=Hr(n["00200032"],3))}return e}function KE(t){let e=Hr(t["00200037"],6);return!e&&UV(t)&&(e=u5e(t)),e}function qE(t){let e=Hr(t["00200032"],3);return!e&&UV(t)&&(e=f5e(t)),e}function jr(t,e){const r=Hr(t[e]);return r?r[0]:null}function d5e(t){var e;return(e=t==null?void 0:t.Value)!=null&&e.length?Array.isArray(t.Value)?t.Value:typeof t.Value=="object"?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[t.Value]):[]:[]}function XE(t){const e=d5e(t["00186011"]);return!e||!e.length?null:e.map(n=>{const i=jr(n,"0018602C"),o=jr(n,"0018602E"),a=jr(n,"00186024"),s=jr(n,"00186026"),c=jr(n,"0018601A"),l=jr(n,"0018601E"),f=jr(n,"00186018"),u=jr(n,"0018601C"),d=jr(n,"00186020"),h=jr(n,"00186022"),g=jr(n,"0018602A"),p=jr(n,"00186028"),v=jr(n,"00186012"),x=jr(n,"00186014"),m=jr(n,"00186016"),y=jr(n,"00186030");return{regionLocationMinY0:c,regionLocationMaxY1:l,regionLocationMinX0:f,regionLocationMaxX1:u,referencePixelX0:d,referencePixelY0:h,physicalDeltaX:i,physicalDeltaY:o,physicalUnitsXDirection:a,physicalUnitsYDirection:s,referencePhysicalPixelValueY:g,referencePhysicalPixelValueX:p,regionSpatialFormat:v,regionDataType:x,regionFlags:m,transducerFrequency:y}})}function GS(t,e){const{MetadataModules:r}=Po;if(t===r.MULTIFRAME){const{metadata:i,frame:o}=i5e(e);if(!i)return;const{PerFrameFunctionalGroupsSequence:a,SharedFunctionalGroupsSequence:s,NumberOfFrames:c}=VV(i);if(a||c>1){const{shared:l,perFrame:f}=kV(a,s,o);return{NumberOfFrames:c,PerFrameFunctionalInformation:f,SharedFunctionalInformation:l}}return{NumberOfFrames:c}}const n=US.get(e);if(n){if(t===r.GENERAL_STUDY)return{studyDescription:ft(n["00081030"]),studyDate:_n.parseDA(ft(n["00080020"])),studyTime:_n.parseTM(ft(n["00080030"],0,"")),accessionNumber:ft(n["00080050"])};if(t===r.GENERAL_SERIES)return{modality:ft(n["00080060"]),seriesInstanceUID:ft(n["0020000E"]),seriesNumber:$t(n["00200011"]),studyInstanceUID:ft(n["0020000D"]),seriesDate:_n.parseDA(ft(n["00080021"])),seriesTime:_n.parseTM(ft(n["00080031"],0,"")),acquisitionDate:_n.parseDA(ft(n["00080022"])),acquisitionTime:_n.parseTM(ft(n["00080032"],0,""))};if(t===r.GENERAL_IMAGE)return{sopInstanceUID:ft(n["00080018"]),instanceNumber:$t(n["00200013"]),lossyImageCompression:ft(n["00282110"]),lossyImageCompressionRatio:$t(n["00282112"]),lossyImageCompressionMethod:ft(n["00282114"])};if(t===r.PATIENT)return{patientID:ft(n["00100020"]),patientName:ft(n["00100010"])};if(t===r.PATIENT_STUDY)return{patientAge:$t(n["00101010"]),patientSize:$t(n["00101020"]),patientSex:ft(n["00100040"]),patientWeight:$t(n["00101030"])};if(t===r.NM_MULTIFRAME_GEOMETRY){const i=ft(n["00080060"]),o=BS(n,2);return{modality:i,imageType:ft(n["00080008"]),imageSubType:o,imageOrientationPatient:KE(n),imagePositionPatient:qE(n),sliceThickness:$t(n["00180050"]),spacingBetweenSlices:$t(n["00180088"]),pixelSpacing:Hr(n["00280030"],2),numberOfFrames:$t(n["00280008"]),isNMReconstructable:F0(o)&&i.includes("NM")}}if(t===r.IMAGE_PLANE){let i=KE(n),o=qE(n);const a=Hr(n["00280030"],2);let s=null,c=null,l=null,f=null,u=!1;return a?(c=a[0],s=a[1]):(u=!0,c=1,s=1),i?(l=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],f=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]):(l=[0,1,0],f=[0,0,-1],u=!0,i=[...l,...f]),o||(o=[0,0,0],u=!0),{frameOfReferenceUID:ft(n["00200052"]),rows:$t(n["00280010"]),columns:$t(n["00280011"]),imageOrientationPatient:i,rowCosines:l,columnCosines:f,imagePositionPatient:o,sliceThickness:$t(n["00180050"]),sliceLocation:$t(n["00201041"]),pixelSpacing:a,rowPixelSpacing:c,columnPixelSpacing:s,usingDefaultValues:u}}if(t===r.ULTRASOUND_ENHANCED_REGION)return XE(n);if(t===r.CALIBRATION&&ft(n["00080060"])==="US")return{sequenceOfUltrasoundRegions:XE(n)};if(t===r.IMAGE_URL)return h5e(e,n);if(t===r.CINE)return g5e(e,n);if(t===r.IMAGE_PIXEL)return{samplesPerPixel:$t(n["00280002"]),photometricInterpretation:ft(n["00280004"]),rows:$t(n["00280010"]),columns:$t(n["00280011"]),bitsAllocated:$t(n["00280100"]),bitsStored:$t(n["00280101"]),highBit:ft(n["00280102"]),pixelRepresentation:$t(n["00280103"]),planarConfiguration:$t(n["00280006"]),pixelAspectRatio:ft(n["00280034"]),smallestPixelValue:$t(n["00280106"]),largestPixelValue:$t(n["00280107"]),redPaletteColorLookupTableDescriptor:Hr(n["00281101"]),greenPaletteColorLookupTableDescriptor:Hr(n["00281102"]),bluePaletteColorLookupTableDescriptor:Hr(n["00281103"]),redPaletteColorLookupTableData:Hr(n["00281201"]),greenPaletteColorLookupTableData:Hr(n["00281202"]),bluePaletteColorLookupTableData:Hr(n["00281203"])};if(t===r.VOI_LUT)return{windowCenter:Hr(n["00281050"],1),windowWidth:Hr(n["00281051"],1)};if(t===r.MODALITY_LUT)return{rescaleIntercept:$t(n["00281052"]),rescaleSlope:$t(n["00281053"]),rescaleType:ft(n["00281054"])};if(t===r.SOP_COMMON)return{sopClassUID:ft(n["00080016"]),sopInstanceUID:ft(n["00080018"])};if(t===r.PET_ISOTOPE){const i=ft(n["00540016"]);return i===void 0?void 0:{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:_n.parseTM(ft(i["00181072"],0,"")),radiopharmaceuticalStartDateTime:ft(i["00181078"],0,""),radionuclideTotalDose:$t(i["00181074"]),radionuclideHalfLife:$t(i["00181075"])}}}if(t===r.OVERLAY_PLANE)return n5e(n);if(t==="transferSyntax")return BV(e,n);if(t===r.PET_SERIES)return{correctedImage:ft(n["00280051"]),units:ft(n["00541001"]),decayCorrection:ft(n["00541102"])};if(t===r.PET_IMAGE)return{frameReferenceTime:$t(n["00541300"]),actualFrameDuration:$t(n["00181242"])};if(t==="instance")return CV(e,GS,SV)}}function h5e(t,e){const{transferSyntaxUID:r}=BV(t,e),n=fR(r),i=t.substring(7),o=i.replace("/frames/","/thumbnail/");let a=i.replace("/frames/","/rendered/");return n&&(a=a.replace("/rendered/1","/rendered")),{isVideo:n,rendered:a,thumbnail:o}}function g5e(t,e){return{cineRate:ft(e["00180040"]),numberOfFrames:$t(e["00280008"])}}function BV(t,e){return{transferSyntaxUID:ft(e["00020010"])||ft(e["00083002"])}}function p5e(t,e,r={},n={}){const i=kh(),{retrieveOptions:o={},streamingData:a}=n,s=a.chunkSize||v5e(e,o,"chunkSize")||65536,c=f=>{if(typeof i.errorInterceptor=="function"){const u=new Error("request failed");i.errorInterceptor(u)}else console.warn("rangeRequest:Caught",f)};return new Promise(async(f,u)=>{const d=Object.assign({},r);Object.keys(d).forEach(function(h){(d[h]===null||d[h]===void 0)&&delete d[h]});try{a.encodedData||(a.chunkSize=s,a.rangesFetched=0);const h=y5e(a,o),{encodedData:g,responseHeaders:p}=await m5e(t,d,h,a),v=p.get("content-type"),{totalBytes:x}=a,m=x===g.byteLength,y=LS(v,g,{isPartial:!0}),w=NS(o,m||y.extractDone);f({...y,imageQualityStatus:w,percentComplete:y.extractDone?100:s*100/x})}catch(h){c(h),console.error(h),u(h)}})}async function m5e(t,e,r,n){r&&(e=Object.assign(e,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:i}=n;if(r[1]&&(i==null?void 0:i.byteLength)>r[1])return n;const o=await fetch(t,{headers:e,signal:void 0}),a=await o.arrayBuffer(),s=new Uint8Array(a),{status:c}=o;let l;i?(l=new Uint8Array(i.length+s.length),l.set(i,0),l.set(s,i.length),n.rangesFetched=1):(l=new Uint8Array(s.length),l.set(s,0),n.rangesFetched++),n.encodedData=i=l,n.responseHeaders=o.headers;const f=o.headers.get("Content-Range");return f?n.totalBytes=Number(f.split("/")[1]):c!==206||!r?n.totalBytes=i==null?void 0:i.byteLength:r[1]===""||(i==null?void 0:i.length)r-i?[(n==null?void 0:n.byteLength)||0,""]:[(n==null?void 0:n.byteLength)||0,i*(o+1)-1]}function WS(t,e,r="application/octet-stream",n){const{streamingData:i,retrieveOptions:o={}}=n||{},a={Accept:r};let s=o.urlArguments?`${t}${t.indexOf("?")===-1?"?":"&"}${o.urlArguments}`:t;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),(i==null?void 0:i.url)!==s&&(n.streamingData={url:s}),o.rangeIndex!==void 0)return p5e(s,e,a,n);if(o.streaming)return pV(s,e,a,n);const c=V2(s,e,a),{xhr:l}=c;return c.then(function(f){const u=l.getResponseHeader("Content-Type")||"application/octet-stream",d=LS(u,new Uint8Array(f));return d.imageQualityStatus=NS(o,!0),d})}const{ProgressiveIterator:YE}=Jt,{ImageQualityStatus:JE}=Po,x5e=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function w5e(t){const e="1.2.840.10008.1.2";if(!t)return e;const r=t.split(";"),n={};r.forEach(o=>{const a=o.split("=");if(a.length!==2)return;const s=a[1].trim().replace(/"/g,"");n[a[0].trim()]=s});const i={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:t&&!Object.keys(n).length&&i[t]?i[t]:n.type&&i[n.type]?i[n.type]:i[t]?i[t]:e}function C5e(){return Sh}const S5e="multipart/related; type=application/octet-stream; transfer-syntax=*";function GV(t,e={}){const r=C5e(),n=new Date().getTime(),i=new YE("decompress");async function o(f,u,d){i.generate(async h=>{var v;const g=YE.as(WS(f,u,d,e));let p=10;for await(const x of g){const{pixelData:m,imageQualityStatus:y=JE.FULL_RESOLUTION,percentComplete:w,done:C=!0,extractDone:S=!0}=x,T=w5e(x.contentType);if(!S&&!x5e.has(T))continue;const _=x.decodeLevel??(y===JE.FULL_RESOLUTION?0:T5e(w,(v=e.retrieveOptions)==null?void 0:v.decodeLevel));if(!(!C&&p<=_))try{const E={...e,decodeLevel:_},D=await B2(u,m,T,E),b=new Date().getTime();D.loadTimeInMS=b-n,D.transferSyntaxUID=T,D.imageQualityStatus=y,h.add(D,C),p=_}catch(E){if(S)throw console.warn("Couldn't decode",E),E}}})}const a=e.requestType||dt.Interaction,s=e.additionalDetails||{imageId:t},c=e.priority===void 0?5:e.priority,l=t.substring(7);return r.addRequest(o.bind(this,l,t,S5e),a,s,c),{promise:i.getDonePromise(),cancelFn:void 0}}function T5e(t,e=4){const r=t/100-.02;return r>1/4?Math.min(e,0):r>1/16?Math.min(e,1):r>1/64?Math.min(e,2):Math.min(e,3)}function WV(){Np("wadors",GV),x0(GS)}const _5e={getNumberString:t5e,getNumberValue:$t,getNumberValues:Hr,getValue:ft,metaDataProvider:GS},E5e={metaData:_5e,findIndexOfString:K3,getPixelData:WS,loadImage:GV,metaDataManager:US,register:WV};function D5e(){WV(),AV()}const b5e=()=>new Worker(new URL("/static/dv3d/assets/decodeImageFrameWorker-pUTBwvad.js",import.meta.url),{type:"module"});function zV(t){gV(t),D5e();const e=sc(),r=(t==null?void 0:t.maxWebWorkers)||I5e();e.registerWorker("dicomImageLoader",b5e,{maxWorkerInstances:r})}function I5e(){return typeof navigator<"u"&&navigator.hardwareConcurrency?Math.max(1,Math.floor(navigator.hardwareConcurrency/2)):1}function O5e(t,e){if(e=e||t.transferSyntax,t.bitsAllocated===8&&e==="1.2.840.10008.1.2.4.50"&&(t.samplesPerPixel===3||t.samplesPerPixel===4))return!0}const M5e={IMPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2",EXPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2.1",DEFLATED_EXPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2.1.99",EXPLICIT_VR_BIG_ENDIAN:"1.2.840.10008.1.2.2",JPEG_BASELINE_PROCESS_1:"1.2.840.10008.1.2.4.50",JPEG_EXTENDED_PROCESS_2_4:"1.2.840.10008.1.2.4.51",JPEG_EXTENDED_PROCESSES_3_5:"1.2.840.10008.1.2.4.52",JPEG_SPECTRAL_SELECTION_NONHIERARCHICAL_PROCESSES_6_8:"1.2.840.10008.1.2.4.53",JPEG_SPECTRAL_SELECTION_NONHIERARCHICAL_PROCESSES_7_9:"1.2.840.10008.1.2.4.54",JPEG_FULL_PROGRESSION_NONHIERARCHICAL_PROCESSES_10_12:"1.2.840.10008.1.2.4.55",JPEG_FULL_PROGRESSION_NONHIERARCHICAL_PROCESSES_11_13:"1.2.840.10008.1.2.4.56",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_14:"1.2.840.10008.1.2.4.57",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_15:"1.2.840.10008.1.2.4.58",JPEG_EXTENDED_HIERARCHICAL_PROCESSES_16_18:"1.2.840.10008.1.2.4.59",JPEG_EXTENDED_HIERARCHICAL_PROCESSES_17_19:"1.2.840.10008.1.2.4.60",JPEG_SPECTRAL_SELECTION_HIERARCHICAL_PROCESSES_20_22:"1.2.840.10008.1.2.4.61",JPEG_SPECTRAL_SELECTION_HIERARCHICAL_PROCESSES_21_23:"1.2.840.10008.1.2.4.62",JPEG_FULL_PROGRESSION_HIERARCHICAL_PROCESSES_24_26:"1.2.840.10008.1.2.4.63",JPEG_FULL_PROGRESSION_HIERARCHICAL_PROCESSES_25_27:"1.2.840.10008.1.2.4.64",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_28:"1.2.840.10008.1.2.4.65",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_29:"1.2.840.10008.1.2.4.66",JPEG_LOSSLESS_NONHIERARCHICAL_FIRST_ORDER_PREDICTION_PROCESS_14:"1.2.840.10008.1.2.4.70",JPEG_LS_LOSSLESS_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.80",JPEG_LS_LOSSY_NEAR_LOSSLESS_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.81",JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY:"1.2.840.10008.1.2.4.90",JPEG_2000_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.91",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY:"1.2.840.10008.1.2.4.92",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.93",JPIP_REFERENCED:"1.2.840.10008.1.2.4.94",JPIP_REFERENCED_DEFLATE:"1.2.840.10008.1.2.4.95",MPEG2_MAIN_PROFILE_MAIN_LEVEL:"1.2.840.10008.1.2.4.100",MPEG4_AVC_H264_HIGH_PROFILE_LEVEL_4_1:"1.2.840.10008.1.2.4.101",MPEG4_AVC_H264_BD_COMPATIBLE_HIGH_PROFILE_LEVEL_4_1:"1.2.840.10008.1.2.4.102",MPEG4_AVC_H264_HIGH_PROFILE_FOR_2D_VIDEO:"1.2.840.10008.1.2.4.103",MPEG4_AVC_H264_HIGH_PROFILE_FOR_3D_VIDEO:"1.2.840.10008.1.2.4.104",JPIP_LOSSLESS:"1.2.840.10008.1.2.4.96",JPIP_PART2_MULTICOMPONENT_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.97",RFC_2557_MIME_ENCAPSULATION:"1.2.840.10008.1.2.6.1",JPEG_XR_IMAGE_COMPRESSION:"1.2.840.10008.1.2.6.2",JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY_RETIRED:"1.2.840.10008.1.2.4.90R",JPEG_2000_IMAGE_COMPRESSION_RETIRED:"1.2.840.10008.1.2.4.91R",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY_RETIRED:"1.2.840.10008.1.2.4.92R",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_RETIRED:"1.2.840.10008.1.2.4.93R"},R5e=Object.freeze(Object.defineProperty({__proto__:null,transferSyntaxes:M5e},Symbol.toStringTag,{value:"Module"})),ZE={constants:R5e,convertRGBColorByPixel:aV,convertRGBColorByPlane:sV,convertYBRFullByPixel:cV,convertYBRFullByPlane:lV,convertPALETTECOLOR:uV,wadouri:e5e,wadors:E5e,init:zV,convertColorSpace:OV,createImage:B2,decodeJPEGBaseline8BitColor:MV,getImageFrame:RV,getPixelData:WS,getMinMax:FS,isColorImage:LV,isJPEGBaseline8BitColor:O5e,internal:pye};class nh extends rc{}QS(nh,"toolName","NoLabelArrowAnnotate");function QE(t,e){const r=Pe("imagePlaneModule",t);if(!r)return;const{rowCosines:n,columnCosines:i,imagePositionPatient:o,rowPixelSpacing:a,columnPixelSpacing:s}=r;if(!n||!i||!o)return;const c=s||1,l=a||1,f=n,u=i,d=o;return[d[0]+e.x*u[0]*c+e.y*f[0]*l,d[1]+e.x*u[1]*c+e.y*f[1]*l,d[2]+e.x*u[2]*c+e.y*f[2]*l]}window.cornerstone3dTools=nye;const{MouseBindings:df,KeyboardBindings:e6}=zR,{IMAGE_RENDERED:t6}=Se,L5e=[{name:"Soft Tissue",center:40,width:400},{name:"Lung",center:-600,width:1500},{name:"Bone",center:300,width:1500},{name:"Brain",center:40,width:80},{name:"Abdomen",center:60,width:400}],hf=[{label:"Window/Level",value:r0.toolName},{label:"Pan",value:n0.toolName},{label:"Zoom",value:o0.toolName},{label:"Stack Scroll",value:vl.toolName},{label:"Rotate",value:i0.toolName},{label:"Length",value:yl.toolName},{label:"Probe",value:nc.toolName},{label:"Arrow (No Label)",value:nh.toolName},{label:"Arrow Annotate",value:rc.toolName},{label:"Rectangle ROI",value:ec.toolName},{label:"Ellipse ROI",value:s0.toolName},{label:"Freehand ROI",value:ml.toolName},{label:"Freehand Contour Segmentation",value:Ja.toolName},{label:"Sculptor",value:a0.toolName},{label:"Reference Cursors",value:Ri.toolName}],n6=[{label:"Left",value:"Primary"},{label:"Middle",value:"Auxiliary"},{label:"Right",value:"Secondary"}],rp=[{label:"Left",value:"Primary",mask:1},{label:"Middle",value:"Auxiliary",mask:4},{label:"Right",value:"Secondary",mask:2},{label:"Left + Right",value:"Primary_and_Secondary",mask:3},{label:"Left + Middle",value:"Primary_and_Auxiliary",mask:5},{label:"Right + Middle",value:"Secondary_and_Auxiliary",mask:6},{label:"Left + Right + Middle",value:"Primary_and_Secondary_and_Auxiliary",mask:7},{label:"Fourth Button",value:"Fourth_Button",mask:8},{label:"Fifth Button",value:"Fifth_Button",mask:16},{label:"Mouse Wheel",value:"Wheel",mask:524288},{label:"Mouse Wheel + Left",value:"Wheel_Primary",mask:524289}];function $V({container_id:t,imageStacks:e,autoCacheStack:r,...n}){var KS,qS,XS,YS,JS,ZS;const i=Qe.useRef(null),o=Qe.useRef(!1),[a,s]=Qe.useState(!1),[c,l]=Qe.useState(!1),[f,u]=Qe.useState(null),[d,h]=Qe.useState(null),g=9,p="renderingEngine_"+t,v="TOOL_GROUP_"+t,x=Qe.useRef(null),m=Qe.useRef(!1),[y,w]=Qe.useState([]),[C,S]=Qe.useState(0),[T,_]=Qe.useState(()=>Array(g).fill([])),[E,D]=Qe.useState(()=>Array(g).fill(0));Qe.useEffect(()=>{e().then(async ae=>{const Ie=await Promise.all(ae.map(async ge=>{let ue;try{const Oe=ge[0];if(Oe&&Oe.startsWith("wadouri:")){const Ve=Oe.slice(8),$e=await(await fetch(Ve)).arrayBuffer();ue=_n.parseDicom(new Uint8Array($e)).string("x0020000d")}}catch{}return{imageIds:ge,studyInstanceUID:ue}}));w(Ie),await $(ae[0]),_(Array(g).fill(ae[0]||[]))})},[]);const b=async(ae,Ie)=>{const ge=y[Ie];if(!ge)return;const ue=ge.imageIds;ie(Oe=>{const Ve=[...Oe];return Ve[ae]="stack",Ve}),_(Oe=>{const Ve=[...Oe];return Ve[ae]=ue,Ve}),D(Oe=>{const Ve=[...Oe];return Ve[ae]=Ie,Ve}),await $(ue)},[I,R]=Qe.useState(!1),[M,L]=Qe.useState(!0),[A,G]=Qe.useState(!1),[P,N]=Qe.useState(!1),V=()=>{console.log("Sorting viewport imageIds by slice location"),_(ae=>ae.map((ge,ue)=>{if(!ge||ge.length===0)return ge;const Fe=[...ge.map($e=>{const Ue=Pe("imagePlaneModule",$e);let vt=null;return Ue&&(Ue.sliceLocation!==void 0?vt=Number(Ue.sliceLocation):Ue.imagePositionPatient&&Array.isArray(Ue.imagePositionPatient)&&Ue.imagePositionPatient.length===3&&(vt=Number(Ue.imagePositionPatient[2]))),{imageId:$e,sortKey:vt}})].sort(($e,Ue)=>$e.sortKey!==null&&Ue.sortKey!==null?$e.sortKey-Ue.sortKey:$e.imageId.localeCompare(Ue.imageId)).map($e=>$e.imageId);return JSON.stringify(Fe)===JSON.stringify(ge)?ge:Fe}))},$=async ae=>{console.log("Setting loaded imageIds:",ae),console.log("autoCacheStack:",r);const Ie=[];if(r){for(const ge of ae)if(ge.startsWith("wadouri:")){console.log("Caching metadata for imageId:",ge);try{const ue=ge.slice(8);if(ZE.wadouri.dataSetCacheManager){const Oe=ZE.wadouri.dataSetCacheManager.load(ue);Oe&&typeof Oe.then=="function"&&Ie.push(Oe)}else console.warn("MetaDataManager not found. Unable to cache metadata.")}catch(ue){console.warn(`Failed to cache metadata for ${ge}:`,ue)}}await Promise.all(Ie),se&&(console.log("Sorting viewport imageIds by slice location"),V())}},[j,Y]=Qe.useState({rows:1,cols:1}),[te,Q]=Qe.useState(!1),re=Qe.useRef([]),de=Qe.useRef({}),fe=Qe.useRef({}),[se,k]=Qe.useState(!0),[O,B]=Qe.useState(!0),U=[];for(let ae=1;ae<=3;ae++)for(let Ie=1;Ie<=3;Ie++)U.push({rows:ae,cols:Ie});const[z,H]=Qe.useState(()=>Array(j.rows*j.cols).fill({index:0,total:0,windowCenter:"",windowWidth:""})),[K,ie]=Qe.useState(()=>Array(g).fill("stack")),[he,ye]=Qe.useState(()=>Array(j.rows*j.cols).fill(!1)),[Ee,X]=Qe.useState({Primary:vl.toolName,Auxiliary:n0.toolName,Secondary:r0.toolName,Primary_and_Secondary:o0.toolName,Fourth_Button:i0.toolName,Wheel:vl.toolName}),[J,oe]=Qe.useState({Primary:yl.toolName,Auxiliary:nc.toolName,Secondary:rc.toolName}),[Z,ee]=Qe.useState(!1);Qe.useEffect(()=>{const ae=ge=>{ge.ctrlKey&&ee(!0)},Ie=ge=>{ge.ctrlKey||ee(!1)};return window.addEventListener("keydown",ae),window.addEventListener("keyup",Ie),()=>{window.removeEventListener("keydown",ae),window.removeEventListener("keyup",Ie)}},[]);const[ve,q]=Qe.useState(!1),[Ae,Be]=Qe.useState(null),ke=(ae,Ie)=>{Vi&&Vi(Ie),Fh(ge=>{const ue=[...ge];return ue[ae]=Ie,ue})},le=(ae,Ie,ge)=>{const ue=Iu()||[];ue.forEach(Ve=>{Ve.annotationUID===Ie&&(Ve.isSelected=!1)}),Ot(Ie),x.current.render();const Oe=ge.filter(Ve=>Ve.annotationUID!==Ie);Fh(Ve=>{const Fe=[...Ve],$e=Oe.length>0?Oe[0].annotationUID:null;return Fe[ae]=$e,ue.forEach(Ue=>{Ue.isSelected=Ue.annotationUID===$e}),Vi($e),x.current.render(),Fe})},_e=()=>{const ae=T.findIndex(Oe=>Oe&&Oe.length>0);if(ae===-1){Be("No images loaded."),q(!0);return}const Ie=T[ae][0],ge=["imagePlaneModule","generalSeriesModule","generalStudyModule","patientModule","imagePixelModule","voiLutModule","modalityLutModule","sopCommonModule","petIsotopeModule","multiframeModule","cineModule","overlayPlaneModule","generalImageModule","stackModule","voiLutModule","modalityLutModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule"],ue={};ge.forEach(Oe=>{const Ve=Pe(Oe,Ie);Ve!==void 0&&(ue[Oe]=Ve)}),Be(be.jsx("pre",{style:{maxHeight:600,overflow:"auto",fontSize:13,color:"#fff"},children:JSON.stringify(ue,null,2)})),q(!0)};Qe.useEffect(()=>(window.loadDicomStackFromFiles=ae=>{const Ie=Array.from(ae);ht({target:{files:Ie}})},()=>{window.loadDicomStackFromFiles=void 0}),[]);const[Me,Re]=Qe.useState(!1);Qe.useEffect(()=>{const ae=Wn(v);ae&&["ArrowAnnotate","NoLabelArrowAnnotate","Length","RectangleROI","EllipticalROI","PlanarFreehandROI","PlanarFreehandContourSegmentation"].forEach(Ie=>{ae.setToolConfiguration(Ie,{color:"#00e676",selectedColor:"#ffeb3b"})})},[v]),Qe.useEffect(()=>{const ae=ge=>{ge.altKey&&Re(!0)},Ie=ge=>{ge.altKey||Re(!1)};return window.addEventListener("keydown",ae),window.addEventListener("keyup",Ie),()=>{window.removeEventListener("keydown",ae),window.removeEventListener("keyup",Ie)}},[]),Qe.useEffect(()=>{if(!O)return;const ae=Wn(v);ae&&(Me?(ae.hasTool(Ri.toolName)||ae.addTool(Ri.toolName),ae.setToolEnabled(Ri.toolName),ae.setToolActive(Ri.toolName)):ae.hasTool(Ri.toolName)&&ae.setToolDisabled(Ri.toolName))},[Me,O]);const We=Qe.useCallback(()=>{[Wn(v)].forEach(Ie=>{if(Ie){hf.forEach(ue=>{Ie.setToolPassive(ue.value,{removeAllBindings:!0})}),Ie.setToolDisabled(Ri.toolName);const ge={};Object.entries(Ee).forEach(([ue,Oe])=>{ge[Oe]||(ge[Oe]=[]);const Ve=rp.find(Fe=>Fe.value===ue);Ve?ge[Oe].push({mouseButton:Ve.mask}):df[ue]&&ge[Oe].push({mouseButton:df[ue]})}),Object.entries(J).forEach(([ue,Oe])=>{if(!Oe)return;ge[Oe]||(ge[Oe]=[]);const Ve=rp.find(Fe=>Fe.value===ue);Ve?ge[Oe].push({mouseButton:Ve.mask,modifierKey:e6.Ctrl}):df[ue]&&ge[Oe].push({mouseButton:df[ue],modifierKey:e6.Ctrl})}),Object.entries(ge).forEach(([ue,Oe])=>{Ie.setToolActive(ue,{bindings:Oe})})}})},[Ee,J]),[ut,ze]=Qe.useState(!1),st=Qe.useRef(null),ht=async ae=>{const Ie=ae.target.files;if(!Ie||Ie.length===0)return;k(!1);const ge=Array.from(Ie).sort(($e,Ue)=>$e.name.localeCompare(Ue.name));let ue;const Oe=await ge[0].arrayBuffer();ue=_n.parseDicom(new Uint8Array(Oe)).string("x0020000d"),console.log("StudyInstanceUID:",ue);const Fe=ge.map($e=>`wadouri:${URL.createObjectURL($e)}`);w($e=>{const Ue=[...$e,{imageIds:Fe,studyInstanceUID:ue}];return _(vt=>{const Et=[...vt];return Et[0]=Fe,Et}),D(vt=>{const Et=[...vt];return Et[0]=Ue.length-1,Et}),$(Fe),Ue})},Wt=Qe.useCallback((ae,Ie)=>{if(!Ie)return;const ge=typeof Ie.getCurrentImageIdIndex=="function"?Ie.getCurrentImageIdIndex():0,Oe=(typeof Ie.getImageIds=="function"?Ie.getImageIds():[]).length;let Ve="",Fe="";if(typeof Ie.getProperties=="function"){const $e=Ie.getProperties();if($e.voiRange){const{lower:Ue,upper:vt}=$e.voiRange;Ve=((vt+Ue)/2).toFixed(0),Fe=(vt-Ue).toFixed(0)}}H($e=>{const Ue=[...$e];return Ue[ae]={index:ge+1,total:Oe,windowCenter:Ve,windowWidth:Fe},Ue})},[]),[Sn,zt]=Qe.useState(!1);function gr(){for(let ae=0;ae{const ae=async()=>{var Ve;console.log("setup"),o.current||(o.current=!0,await QJ(),await iA({showSVGCursors:!0}),zV({maxWebWorkers:1}));let ge=x.current;ge||(ge=new tR(p),x.current=ge);let ue=Wn(v);ue||(ue=N5e(v)),K.slice(0,j.rows*j.cols).filter(Fe=>Fe==="volume").length,we(ue);for(let Fe=0;Fe{if(vt.offsetWidth>0&&vt.offsetHeight>0){ge.resize();const An=ge.getViewport(Ue);An&&typeof An.resize=="function"&&An.resize(),An&&typeof An.render=="function"&&An.render()}});ct.observe(vt),vt._resizeObserver=ct}if(K[Fe]==="stack")$e&&!m.current&&ln.setStack($e),I?ue.removeViewports(p,Ue):ue.addViewport(Ue,p);else if(K[Fe]==="volume"){ue.addViewport(Ue,p);const ct=`myVolumeId_${Fe}`;(await nC(ct,{imageIds:$e})).load(),ln.setVolumes([{volumeId:ct}]),ln.render();continue}if(ln.render(),!m.current){fe.current[Fe]!==void 0&&typeof ln.setImageIdIndex=="function"&&jo(ln.element,{imageIndex:fe.current[Fe]});const ct=de.current[Fe];if(ct&&typeof ln.setProperties=="function"){const{voiRange:An,invert:Wr,interpolationType:Mr,VOILUTFunction:ko,colormap:ji}=ct,ga={};An&&An.lower!==void 0&&An.upper!==void 0&&(ga.voiRange=An),Wr!==void 0&&(ga.invert=Wr),Mr!==void 0&&(ga.interpolationType=Mr),ko&&(ga.VOILUTFunction=ko),ji!=null&&(typeof ji=="string"||typeof ji=="object"&&!("actor"in ji))&&(ga.colormap=ji),setTimeout(()=>{console.log("Restoring properties (timeout) for viewport",Fe,ga),ln.setProperties(ga),ln.render()},100)}}vt._overlayListener&&ln.element.removeEventListener(t6,vt._overlayListener);const Ht=()=>Wt(Fe,ln);ln.element.addEventListener(t6,Ht),vt._overlayListener=Ht,Wt(Fe,ln)}for(let Fe=0;Fe=2?(ue.hasTool(Ho.toolName)||ue.addTool(Ho.toolName),ue.setToolEnabled(Ho.toolName),ue.setToolConfiguration(Ho.toolName,{}),ue.setToolActive(Ho.toolName,{bindings:[{mouseButton:df.Primary}]})):ue.hasTool(Ho.toolName)&&ue.setToolDisabled(Ho.toolName)),We()},Ie=requestAnimationFrame(()=>{ae()});return()=>{re.current.forEach(ge=>{ge&&ge._resizeObserver&&(ge._resizeObserver.disconnect(),delete ge._resizeObserver)}),cancelAnimationFrame(Ie)}},[i,Wt,j,K,T]);const W2=Qe.useCallback(ae=>{const Ie=`CT_${ae}`,ue=x.current.getViewport(Ie);ue&&typeof ue.resetCamera=="function"&&(ue.resetCamera(),console.log("Restoring viewport properties for viewport",ae),ue.resetProperties(),ue.render())},[]),z2=Qe.useCallback((ae,Ie,ge)=>{const ue=`CT_${ae}`;try{const Oe=x.current;if(Oe){const Ve=Oe.getViewport(ue);Ve&&typeof Ve.setProperties=="function"&&(console.log(`Applying preset to viewport ${ae}: center=${Ie}, width=${ge}`),Ve.setProperties({voiRange:{lower:Ie-ge/2,upper:Ie+ge/2}}),Ve.render(),Wt(ae,Ve))}}catch{}},[Wt]);Qe.useEffect(()=>{H(Array(j.rows*j.cols).fill({index:0,total:0,windowCenter:"",windowWidth:""})),ye(Array(j.rows*j.cols).fill(!1))},[j]),Qe.useEffect(()=>{We()},[Ee,J,Z,We]),Qe.useEffect(()=>{if(!a)return;const ae=Ie=>{const ge=document.querySelector(".preset-menu");ge&&!ge.contains(Ie.target)&&s(!1)};return document.addEventListener("mousedown",ae),()=>document.removeEventListener("mousedown",ae)},[a]),Qe.useEffect(()=>{const ae=Ie=>{Ie.preventDefault()};return document.addEventListener("contextmenu",ae),()=>{document.removeEventListener("contextmenu",ae)}},[]),Qe.useEffect(()=>{if(!M)return;const ae=Wn(v);we(ae)},[C,M]),Qe.useEffect(()=>{st.current&&(st.current.setAttribute("webkitdirectory","true"),st.current.setAttribute("directory","true"))},[]),Qe.useEffect(()=>(window.loadDicomStackFromWadouriList=async ae=>{if(!ae||ae.length===0)return;let Ie;try{const ge=ae[0];if(ge&&ge.startsWith("wadouri:")){const ue=ge.slice(8),Ve=await(await fetch(ue)).arrayBuffer();Ie=_n.parseDicom(new Uint8Array(Ve)).string("x0020000d")}}catch{}w(ge=>{const ue=[...ge,{imageIds:ae,studyInstanceUID:Ie}];return _(Oe=>{const Ve=[...Oe];return Ve[0]=ae,Ve}),D(Oe=>{const Ve=[...Oe];return Ve[0]=ue.length-1,Ve}),$(ae),ue})},()=>{window.loadDicomStackFromWadouriList=void 0}),[w,_,D,$]),Qe.useEffect(()=>{!se||!T.every(Ie=>!Ie||Ie.length===0||Ie.every(ge=>!!Pe("imagePlaneModule",ge)))||_(Ie=>Ie.map(ue=>{if(!ue||ue.length===0)return ue;const Fe=[...ue.map($e=>({imageId:$e,sliceLoc:(()=>{const Ue=Pe("imagePlaneModule",$e);return Ue&&Ue.sliceLocation!==void 0?Number(Ue.sliceLocation):null})()}))].sort(($e,Ue)=>$e.sliceLoc!==null&&Ue.sliceLoc!==null?$e.sliceLoc-Ue.sliceLoc:$e.imageId.localeCompare(Ue.imageId)).map($e=>$e.imageId);return JSON.stringify(Fe)===JSON.stringify(ue)?ue:Fe}))},[se,y]);function we(ae){if(!ae)return;const Ie=`CT_${C}`;M?(ae.setToolEnabled(Qc.toolName),ae.setToolConfiguration(Qc.toolName,{sourceViewportId:Ie})):ae.setToolDisabled(Qc.toolName)}Qe.useEffect(()=>{const ae=t||"default";function Ie(ge,ue){const Oe=x.current;if(!Oe)return;const Ve=Oe.getViewport(`CT_${ge}`);if(!Ve||typeof Ve.getImageIds!="function")return;const $e=Ve.getImageIds().map(Et=>Et.replace(/^wadouri:/,"")),Ue=ue.replace(/^wadouri:/,""),vt=$e.indexOf(Ue);vt!==-1&&typeof Ve.setImageIdIndex=="function"&&(jo(Ve.element,{imageIndex:vt}),Wt(ge,Ve))}return window[`jumpToSliceByImageId_${ae}`]=Ie,window[`exportViewerState_${ae}`]=()=>{const ge=j.rows*j.cols,ue=K.slice(0,ge),Oe=E.slice(0,ge),Ve=y.map(ln=>({i:ln.imageIds,u:ln.studyInstanceUID})),Fe=x.current,$e=[],Ue=[],vt=[];for(let ln=0;ln{try{m.current=!0;const ue=typeof ge=="string"?JSON.parse(ge):ge;if(ue.grid&&Y(ue.grid),ue.modes&&ie(ue.modes),ue.stacks&&w(ue.stacks.map(Oe=>({imageIds:Oe.i,studyInstanceUID:Oe.u}))),ue.stackIdx&&ue.stacks){const Oe=ue.stackIdx.map(Ve=>{var Fe;return((Fe=ue.stacks[Ve])==null?void 0:Fe.i)||[]});_(Oe),D(ue.stackIdx)}setTimeout(()=>{var Fe,$e;const Oe=x.current;if(!Oe){m.current=!1;return}const Ve=((Fe=ue.grid)==null?void 0:Fe.rows)*(($e=ue.grid)==null?void 0:$e.cols)||1;for(let Ue=0;Ue{try{let ge=Iu();if(console.log("Exporting annotations:",ge),Array.isArray(ge)){const ue=[yl.toolName,nh.toolName,rc.toolName,ec.toolName,s0.toolName,ml.toolName,Ja.toolName,nc.toolName,a0.toolName];ge=ge.filter(Oe=>ue.includes(Oe.metadata.toolName))}else return"{}";return JSON.stringify(ge,null,2)}catch(ge){return alert("Failed to export annotations: "+ge),"{}"}},window[`importAnnotations_${ae}`]=ge=>{try{const ue=typeof ge=="string"?JSON.parse(ge):ge;Mf&&Mf(),Array.isArray(ue)&&ue.forEach(Oe=>{Ut(Oe,Oe.annotationUID)}),x.current&&x.current.render()}catch(ue){alert("Failed to import annotations: "+ue)}},window[`importLegacyAnnotations_${ae}`]=ge=>{Mf&&Mf();let ue;try{ue=typeof ge=="string"?JSON.parse(ge):ge}catch{alert("Invalid legacy annotation JSON");return}const Oe={ArrowAnnotate:"ArrowAnnotate"};Object.entries(ue).forEach(([Ve,Fe])=>{console.log("Importing legacy annotations for imageId:",Ve),Object.entries(Fe).forEach(([$e,Ue])=>{const vt=Oe[$e]||$e;Ue.data&&Array.isArray(Ue.data)&&Ue.data.forEach(Et=>{const ln=QE(Ve,{x:Et.handles.start.y,y:Et.handles.start.x}),Ht=QE(Ve,{x:Et.handles.end.y,y:Et.handles.end.x});console.log("Importing legacy annotation:"),console.log(" Image ID:",Ve),console.log(" Start World:",ln),console.log(" End World:",Ht);const ct=Pe("imagePlaneModule",Ve);console.log(IO);let An=Pe("frameOfReferenceUID",Ve);!An&&ct&&ct.frameOfReferenceUID&&(An=ct.frameOfReferenceUID);const Wr=ct!=null&&ct.rowCosines&&(ct!=null&&ct.columnCosines)?[ct.rowCosines[1]*ct.columnCosines[2]-ct.rowCosines[2]*ct.columnCosines[1],ct.rowCosines[2]*ct.columnCosines[0]-ct.rowCosines[0]*ct.columnCosines[2],ct.rowCosines[0]*ct.columnCosines[1]-ct.rowCosines[1]*ct.columnCosines[0]]:void 0;Array.isArray(Wr)&&Wr.length,typeof Et.rotation=="number"&&Et.rotation;const Mr={annotationUID:Et.uuid,metadata:{toolName:vt,referencedImageId:Ve,FrameOfReferenceUID:An,viewPlaneNormal:Wr},data:{handles:{points:[ln,Ht],textBox:Et.handles.textBox},text:Et.text||""},visibility:Et.visible!==!1,active:Et.active||!1};Ut(Mr,Mr.annotationUID)})})}),x.current&&x.current.render()},window[`importLegacyViewport_${ae}`]=ge=>{let ue;try{ue=typeof ge=="string"?JSON.parse(ge):ge}catch{alert("Invalid legacy viewport JSON");return}const Oe=x.current;if(!Oe)return;const Ve=`CT_${C??0}`,Fe=Oe.getViewport(Ve);if(!Fe)return;const $e={};if(ue.voi&&($e.voiRange={lower:ue.voi.windowCenter-ue.voi.windowWidth/2,upper:ue.voi.windowCenter+ue.voi.windowWidth/2}),typeof ue.invert=="boolean"&&($e.invert=ue.invert),typeof ue.pixelReplication=="boolean"&&($e.interpolationType=ue.pixelReplication?0:1),typeof ue.hflip=="boolean"&&($e.hflip=ue.hflip),typeof ue.vflip=="boolean"&&($e.vflip=ue.vflip),typeof Fe.setProperties=="function"&&Fe.setProperties($e),ue.translation||ue.scale){const Ue=Fe.getCamera?Fe.getCamera():{};ue.translation&&(Ue.translation={...Ue.translation,...ue.translation}),ue.scale&&(Ue.parallelScale=200/ue.scale),console.log("Applying legacy camera properties:",Ue),typeof Fe.setCamera=="function"&&Fe.setCamera(Ue)}typeof ue.rotation=="number"&&Fe.setRotation(ue.rotation),Fe.render(),Wt(C??0,Fe)},()=>{window[`exportViewerState_${ae}`]=void 0,window[`importViewerState_${ae}`]=void 0,window[`exportAnnotations_${ae}`]=void 0,window[`importAnnotations_${ae}`]=void 0,window[`importLegacyAnnotations_${ae}`]=void 0,window[`importLegacyViewport_${ae}`]=void 0,window[`jumpToSliceByImageId_${ae}`]=void 0}},[j,K,E,y,T,Y,ie,D,w,_]);const Le=C!==null?E[C]:0,gt=y[Le],Sr=gt==null?void 0:gt.studyInstanceUID,[U0,Fh]=Qe.useState(()=>Array(g).fill(null)),jV=j.rows*j.cols,HS=[];for(let ae=0;aere.current[ae]=ge,style:{flex:1,border:Ie?"1px solid #222":"none",background:"#000",minWidth:0,minHeight:0,position:"relative",overflow:"hidden",flexDirection:"column",gridRow:Math.floor(ae/j.cols)+1,gridColumn:ae%j.cols+1,height:"100%",boxShadow:C===ae?"0 0 0 4px #1976d2, 0 0 16px 4px #1976d2cc":void 0,zIndex:C===ae?10:1},onClick:()=>S(ae),onDoubleClick:()=>W2(ae),children:[be.jsx("button",{style:{position:"absolute",top:8,left:8,zIndex:20,background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 8px",cursor:"pointer",fontSize:"12px",opacity:.85},onClick:()=>{ie(ge=>{const ue=[...ge];return ue[ae]=ge[ae]==="stack"?"volume":"stack",ue})},children:K[ae]==="stack"?"Volume":"Stack"}),K[ae]==="volume"&&be.jsxs("div",{style:{position:"absolute",top:8,left:70,zIndex:21,display:"flex",gap:"6px",background:"rgba(34,34,34,0.85)",borderRadius:"4px",padding:"2px 6px",alignItems:"center"},children:[be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px",marginRight:"2px"},onClick:()=>{const ge=x.current,ue=ge==null?void 0:ge.getViewport(`CT_${ae}`);ue&&ue.setOrientation&&(ue.setOrientation("axial"),ue.render())},children:"Axial"}),be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px",marginRight:"2px"},onClick:()=>{const ge=x.current,ue=ge==null?void 0:ge.getViewport(`CT_${ae}`);ue&&ue.setOrientation&&(ue.setOrientation("sagittal"),ue.render())},children:"Sagittal"}),be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px"},onClick:()=>{const ge=x.current,ue=ge==null?void 0:ge.getViewport(`CT_${ae}`);ue&&ue.setOrientation&&(ue.setOrientation("coronal"),ue.render())},children:"Coronal"})]}),be.jsxs("button",{style:{position:"absolute",top:40,left:8,zIndex:20,background:"#111",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 8px",cursor:"pointer",fontSize:"13px",opacity:.85,marginTop:"4px",display:"flex",alignItems:"center",gap:"6px"},title:"Toggle Fullscreen",onClick:ge=>{ge.stopPropagation();const ue=re.current[ae];document.fullscreenElement===ue?document.exitFullscreen():ue!=null&&ue.requestFullscreen?ue.requestFullscreen():ue!=null&&ue.webkitRequestFullscreen?ue.webkitRequestFullscreen():ue!=null&&ue.msRequestFullscreen&&ue.msRequestFullscreen()},onMouseEnter:()=>u(ae),onMouseLeave:()=>u(null),children:[be.jsx("span",{style:{fontSize:"18px",lineHeight:1},children:"⛶"}),f===ae&&be.jsx("span",{style:{marginLeft:6},children:document.fullscreenElement===re.current[ae]?"Exit Fullscreen":"Fullscreen"})]}),"// Annotations buttons",K[ae]==="stack"&&(()=>{var ln;const ge=T[ae],Oe=(Iu()||[]).filter(Ht=>Ht.metadata&&Ht.metadata.referencedImageId&&ge.includes(Ht.metadata.referencedImageId)&&Ht.metadata.toolName!==Ri.toolName);if(!Oe.length)return null;const Ve=x.current,Fe=Ve==null?void 0:Ve.getViewport(`CT_${ae}`),$e=((ln=Fe==null?void 0:Fe.getCurrentImageIdIndex)==null?void 0:ln.call(Fe))??0,Ue=ge[$e],vt=Oe.filter(Ht=>Ht.metadata.referencedImageId===Ue),Et=U0[ae];return be.jsxs("div",{style:{position:"absolute",left:"50%",bottom:60,transform:"translateX(-50%)",zIndex:30,display:"flex",gap:4,pointerEvents:"auto",alignItems:"center"},children:[be.jsx("button",{style:{background:"rgba(30,30,30,0.7)",color:"#fff",border:"none",borderRadius:"50%",width:28,height:28,fontSize:"16px",fontWeight:"bold",cursor:"pointer",opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 4px rgba(0,0,0,0.18)",transition:"opacity 0.2s"},title:"Previous Annotation","aria-label":"Previous Annotation",onClick:()=>{const Ht=x.current,ct=Ht==null?void 0:Ht.getViewport(`CT_${ae}`);if(!ct||typeof ct.getCurrentImageIdIndex!="function")return;const An=ct.getCurrentImageIdIndex(),Wr=r6(An,ge,Oe,-1);if(Wr!==null&&typeof ct.setImageIdIndex=="function"){jo(ct.element,{imageIndex:Wr}),Wt(ae,ct);const Mr=ge[Wr],ko=Oe.filter(ji=>ji.metadata.referencedImageId===Mr);ke(ae,ko.length>0?ko[0].annotationUID:null)}},children:be.jsx("span",{"aria-hidden":"true",children:"◀"})}),be.jsx("button",{style:{background:"rgba(30,30,30,0.7)",color:"#fff",border:"none",borderRadius:"50%",width:28,height:28,fontSize:"16px",fontWeight:"bold",cursor:"pointer",opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 4px rgba(0,0,0,0.18)",transition:"opacity 0.2s"},title:"Next Annotation","aria-label":"Next Annotation",onClick:()=>{const Ht=x.current,ct=Ht==null?void 0:Ht.getViewport(`CT_${ae}`);if(!ct||typeof ct.getCurrentImageIdIndex!="function")return;const An=ct.getCurrentImageIdIndex(),Wr=r6(An,ge,Oe,1);if(Wr!==null&&typeof ct.setImageIdIndex=="function"){jo(ct.element,{imageIndex:Wr}),Wt(ae,ct);const Mr=ge[Wr],ko=Oe.filter(ji=>ji.metadata.referencedImageId===Mr);ke(ae,ko.length>0?ko[0].annotationUID:null)}},children:be.jsx("span",{"aria-hidden":"true",children:"▶"})}),vt.length>0&&be.jsx("div",{style:{display:"flex",gap:2,alignItems:"center"},children:vt.map(Ht=>be.jsxs("div",{style:{display:"flex",alignItems:"center",background:Et===Ht.annotationUID?"rgb(4, 225, 0)":"#444",color:Et===Ht.annotationUID?"#222":"#fff",borderRadius:"4px",padding:"2px 6px",marginRight:2,cursor:"pointer",border:Et===Ht.annotationUID?"2px solid #1976d2":"none",fontWeight:Et===Ht.annotationUID?"bold":"normal"},onClick:()=>ke(ae,Ht.annotationUID),children:[be.jsxs("span",{style:{marginRight:4},children:[Et===Ht.annotationUID?"★ ":"",Ht.metadata.toolName||"Annotation"]}),be.jsx("button",{style:{background:"#b71c1c",color:"#fff",border:"none",borderRadius:"50%",width:20,height:20,fontSize:"13px",fontWeight:"bold",cursor:"pointer",marginLeft:2,display:"flex",alignItems:"center",justifyContent:"center",opacity:.85},title:"Delete this annotation","aria-label":"Delete annotation",onClick:ct=>{ct.stopPropagation(),le(ae,Ht.annotationUID,vt)},children:"🗑️"})]},Ht.annotationUID))})]})})(),"// ...existing code...",be.jsx("div",{style:{position:"absolute",left:8,bottom:8,background:"rgba(0,0,0,0.7)",color:"#fff",padding:"6px 12px",borderRadius:"4px",fontSize:"14px",zIndex:10,pointerEvents:"none",minWidth:"120px",userSelect:"none"},children:K[ae]==="stack"?be.jsxs(be.Fragment,{children:[be.jsxs("div",{children:["Image: ",(KS=z[ae])==null?void 0:KS.index," / ",(qS=z[ae])==null?void 0:qS.total]}),be.jsxs("div",{children:["WC: ",(XS=z[ae])==null?void 0:XS.windowCenter,"   WW: ",(YS=z[ae])==null?void 0:YS.windowWidth]})]}):be.jsxs("div",{children:["WC: ",(JS=z[ae])==null?void 0:JS.windowCenter,"   WW: ",(ZS=z[ae])==null?void 0:ZS.windowWidth]})}),be.jsx("div",{style:{position:"absolute",right:8,bottom:8,zIndex:10},children:be.jsxs("div",{className:"preset-menu",style:{background:"rgba(0,0,0,0.7)",color:"#fff",borderRadius:"4px",fontSize:"14px",minWidth:"120px",overflow:"hidden",cursor:"pointer",position:"relative",boxShadow:he[ae]?"0 2px 8px rgba(0,0,0,0.3)":void 0},children:[be.jsxs("div",{style:{padding:"6px 12px",fontWeight:"bold",userSelect:"none"},onClick:()=>ye(ge=>{const ue=[...ge];return ue[ae]=!ue[ae],ue}),children:["Presets",be.jsx("span",{style:{float:"right",fontWeight:"normal"},children:he[ae]?"▲":"▼"})]}),he[ae]&&be.jsx("div",{className:"preset-menu-content",style:{background:"rgba(0,0,0,0.95)",borderRadius:"0 0 4px 4px",padding:"6px 0 6px 0",display:"flex",flexDirection:"column",zIndex:11},children:L5e.map(ge=>be.jsx("button",{style:{display:"block",width:"100%",margin:"2px 0",background:"#333",color:"#fff",border:"none",borderRadius:"3px",cursor:"pointer",padding:"4px 0",fontSize:"13px",opacity:.9},onClick:()=>{z2(ae,ge.center,ge.width),ye(ue=>{const Oe=[...ue];return Oe[ae]=!1,Oe})},children:ge.name},ge.name))})]})}),K[ae]==="stack"&&T[ae]&&be.jsx("div",{style:{position:"absolute",top:"10%",right:8,width:"12px",height:"80%",maxHeight:"100%",minHeight:0,zIndex:30,display:T[ae].length>0?"flex":"none",alignItems:"flex-start",justifyContent:"center",pointerEvents:"none",flexDirection:"column",padding:0},children:be.jsx("div",{style:{width:"8px",height:"100%",maxHeight:"100%",minHeight:0,borderRadius:"6px",background:"#222",position:"relative",display:"flex",flexDirection:"column",justifyContent:"flex-start",boxShadow:"0 0 8px #2196f3cc",overflow:"hidden"},children:T[ae].map((ge,ue)=>{const Oe=!!Pe("imagePlaneModule",ge),Ve=x.current;let Fe=-1;if(Ve&&typeof Ve.getViewport=="function"){const Ue=Ve.getViewport(`CT_${ae}`);Ue&&typeof Ue.getCurrentImageIdIndex=="function"&&(Fe=Ue.getCurrentImageIdIndex())}const $e=ue===Fe;return be.jsx("div",{style:{width:"100%",height:`${100/T[ae].length}%`,background:$e?"linear-gradient(to right, #ffeb3b 60%, #ff9800 100%)":Oe?"linear-gradient(to right, #4caf50 60%, #2196f3 100%)":"#444",opacity:Oe?.95:.4,transition:"background 0.3s, opacity 0.3s",borderBottom:ue{const Ue=x.current,vt=Ue==null?void 0:Ue.getViewport(`CT_${ae}`);vt&&typeof vt.setImageIdIndex=="function"&&K[ae]==="stack"&&(jo(vt.element,{imageIndex:ue}),Wt(ae,vt))}},ge)})})}),Ie&&y.length>1&&be.jsx("div",{style:{position:"absolute",left:0,right:0,bottom:8,zIndex:20,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",width:"100%",background:"none",borderRadius:"0",padding:0},children:be.jsxs("div",{style:{position:"relative"},children:[be.jsxs("button",{style:{background:"#222",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"2px 8px",fontSize:"13px",marginRight:"6px",minWidth:120,textAlign:"left",cursor:"pointer"},onClick:()=>h(d===ae?null:ae),"aria-haspopup":"listbox","aria-expanded":d===ae,children:[(()=>{const ge=y[E[ae]||0],ue=ge==null?void 0:ge.studyInstanceUID,Ve=Sr&&ue&&Sr===ue?"#4caf50":"#888";return be.jsxs("span",{children:[be.jsx("span",{style:{color:Ve,fontWeight:"bold",marginRight:6,fontSize:"16px",verticalAlign:"middle"},children:"●"}),"Stack ",E[ae]+1," (",(ge==null?void 0:ge.imageIds.length)||0," images)"]})})(),be.jsx("span",{style:{float:"right",fontSize:"12px"},children:"▼"})]}),d===ae&&be.jsx("div",{ref:ge=>{ge&&ge.focus()},tabIndex:0,style:{position:"absolute",left:0,bottom:"110%",background:"#222",border:"1px solid #444",borderRadius:"4px",boxShadow:"0 2px 8px rgba(0,0,0,0.3)",zIndex:100,minWidth:180,maxHeight:220,overflowY:"auto",overscrollBehavior:"contain",scrollbarWidth:"thin"},role:"listbox",onMouseDown:ge=>ge.stopPropagation(),onWheel:ge=>{const ue=ge.currentTarget,{scrollTop:Oe,scrollHeight:Ve,clientHeight:Fe}=ue,$e=Oe===0,Ue=Oe+Fe>=Ve-1;ge.deltaY<0&&$e||ge.deltaY>0&&Ue||(ge.stopPropagation(),ge.preventDefault(),ue.scrollTop+=ge.deltaY)},onBlur:ge=>{const ue=ge.relatedTarget,Oe=ge.currentTarget.parentElement;Oe!=null&&Oe.contains(ue)||setTimeout(()=>h(null),100)},children:y.map((ge,ue)=>{const Oe=ge.studyInstanceUID,Fe=Sr&&Oe&&Sr===Oe?"#4caf50":"#888",$e=ge.imageIds.length===0;return be.jsxs("div",{role:"option","aria-selected":E[ae]===ue,style:{padding:"6px 12px",background:E[ae]===ue?"#444":"#222",color:$e?"#aaa":"#fff",cursor:$e?"not-allowed":"pointer",display:"flex",alignItems:"center",fontWeight:E[ae]===ue?"bold":"normal",borderBottom:"1px solid #333",userSelect:"none",opacity:$e?.6:1},tabIndex:-1,onMouseDown:Ue=>{Ue.preventDefault(),$e||(b(ae,ue),h(null))},children:[be.jsx("span",{style:{color:Fe,fontWeight:"bold",marginRight:8,fontSize:"16px",verticalAlign:"middle"},children:"●"}),"Stack ",ue+1," (",ge.imageIds.length," images",$e&&be.jsx("span",{style:{color:"#f44336",marginLeft:6},children:"(empty)"}),")"]},ue)})})]})})]},ae))}return be.jsxs("div",{style:{position:"relative",inset:0,width:"100%",height:"100%",boxSizing:"border-box",background:"#222",padding:"12px",overflow:"hidden"},children:[be.jsxs("div",{children:[be.jsx("button",{style:{position:"absolute",top:"50%",transform:"translateY(-50%)",left:ut?250:-20,zIndex:200,width:40,height:40,background:"#222",color:"#fff",border:"none",borderRadius:"50%",fontWeight:"bold",cursor:"pointer",fontSize:"22px",boxShadow:"0 2px 8px rgba(0,0,0,0.2)",transition:"left 0.25s cubic-bezier(.4,2,.6,1), background 0.2s"},onClick:()=>ze(ae=>!ae),"aria-label":"Open menu",children:"☰"}),ut&&be.jsx("div",{style:{position:"absolute",top:0,left:0,width:220,height:"100%",background:"#222",color:"#fff",zIndex:199,boxShadow:"2px 0 12px rgba(0,0,0,0.3)",flexDirection:"column",padding:"24px 16px 16px 16px",display:"flex",overflow:"hidden"},children:be.jsxs("div",{style:{flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column"},children:[be.jsxs("div",{style:{fontWeight:"bold",fontSize:18,marginBottom:24},children:["Menu",be.jsx("button",{style:{float:"right",background:"transparent",color:"#fff",border:"none",fontSize:"22px",cursor:"pointer"},onClick:()=>ze(!1),"aria-label":"Close menu",children:"×"})]}),be.jsx("button",{style:{padding:"10px 18px",background:"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>{var ae;return(ae=st.current)==null?void 0:ae.click()},children:"Load DICOM Folder"}),be.jsx("input",{ref:st,type:"file",style:{display:"none"},multiple:!0,onChange:ht,accept:".dcm,application/dicom"}),be.jsxs("div",{style:{marginBottom:"18px",display:"flex",alignItems:"center",gap:"8px"},children:[be.jsx("input",{type:"checkbox",id:"orderBySliceLocation",checked:se,onChange:ae=>k(ae.target.checked),style:{accentColor:"#666"}}),be.jsx("label",{htmlFor:"orderBySliceLocation",style:{fontSize:"15px",cursor:"pointer"},children:"Order by Slice Location"})]}),be.jsx("button",{style:{padding:"10px 18px",background:"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:_e,children:"Show DICOM Metadata"}),be.jsxs("button",{style:{padding:"10px 18px",background:I?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>R(ae=>!ae),children:[I?"Disable":"Enable"," Cross Reference Lines"]}),be.jsxs("button",{style:{padding:"10px 18px",background:M?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>L(ae=>!ae),children:[M?"Disable":"Enable"," Reference Lines"]}),be.jsx("button",{onClick:V,style:{margin:8,padding:8},children:"Sort All Viewports by Slice Location"}),be.jsx("button",{style:{padding:"10px 18px",background:O?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>B(ae=>!ae),children:O?"Disable Alt Key for Reference Cursors":"Enable Alt Key for Reference Cursors"})]})})]}),be.jsxs("div",{className:"grid-menu-hover-container",style:{position:"absolute",top:0,left:"50%",transform:"translateX(-50%)",zIndex:100,display:"flex",flexDirection:"column",alignItems:"center",width:"auto",height:"48px",pointerEvents:"none"},children:[be.jsx("div",{style:{position:"absolute",top:0,left:"50%",transform:"translateX(-50%)",width:80,height:14,zIndex:1,pointerEvents:"auto",background:"transparent"},onMouseEnter:()=>zt(!0),onFocus:()=>zt(!0),tabIndex:-1}),be.jsxs("button",{className:"grid-menu-btn",style:{position:"relative",top:Sn?"0":"-22px",opacity:Sn?1:.5,transition:"top 0.25s cubic-bezier(.4,2,.6,1), opacity 0.2s",padding:"6px 16px",background:"#222",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginRight:"8px",boxShadow:"0 2px 8px rgba(0,0,0,0.2)",pointerEvents:Sn?"auto":"none",zIndex:2,display:Sn?"block":"none"},onMouseLeave:()=>zt(!1),onBlur:()=>zt(!1),onClick:()=>Q(ae=>!ae),tabIndex:0,children:["Grid: ",j.rows,"x",j.cols," ▼"]}),te&&be.jsx("div",{style:{position:"absolute",top:"110%",left:"50%",transform:"translateX(-50%)",background:"#222",color:"#fff",borderRadius:"6px",boxShadow:"0 2px 12px rgba(0,0,0,0.4)",padding:"12px",display:"grid",gridTemplateColumns:"repeat(3, 40px)",gap:"8px",zIndex:200,pointerEvents:"auto"},children:U.map(ae=>be.jsxs("button",{style:{width:"40px",height:"40px",background:ae.rows===j.rows&&ae.cols===j.cols?"#444":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px"},onClick:()=>{gr(),Y({rows:ae.rows,cols:ae.cols}),Q(!1)},children:[ae.rows,"x",ae.cols]},`${ae.rows}x${ae.cols}`))})]}),be.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"grid",margin:3,gridTemplateRows:`repeat(${j.rows}, 1fr)`,gridTemplateColumns:`repeat(${j.cols}, 1fr)`,gap:"5px",zIndex:1},children:HS}),be.jsx("button",{style:{position:"absolute",top:8,right:8,zIndex:20,padding:"6px 12px",background:"#222",color:"#fff",border:"none",borderRadius:"4px",cursor:"pointer",opacity:.85,userSelect:"none"},onClick:()=>l(!0),children:"Settings"}),c&&be.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"rgba(0,0,0,0.4)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>l(!1),children:be.jsxs("div",{style:{background:"#222",color:"#fff",borderRadius:"8px",minWidth:"320px",minHeight:"180px",padding:"24px",boxShadow:"0 4px 24px rgba(0,0,0,0.4)",position:"relative"},onClick:ae=>ae.stopPropagation(),children:[be.jsx("div",{style:{fontSize:"20px",marginBottom:"16px"},children:"Settings"}),be.jsxs("div",{style:{marginBottom:"24px"},children:[be.jsx("div",{style:{marginBottom:12,fontWeight:"bold"},children:"Mouse Button Tool Bindings"}),n6.map(ae=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[ae.label," Button:"]}),be.jsx("select",{value:Ee[ae.value],onChange:Ie=>X(ge=>({...ge,[ae.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:hf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))})]},ae.value)),be.jsxs("div",{style:{margin:"12px 0"},children:[be.jsxs("button",{style:{background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",fontSize:"14px",marginBottom:"8px"},onClick:()=>G(ae=>!ae),children:[A?"Hide":"Show"," Advanced Mouse Bindings"]}),A&&be.jsx("div",{style:{marginTop:8},children:rp.slice(3).map(ae=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[ae.label,":"]}),be.jsxs("select",{value:Ee[ae.value]||"",onChange:Ie=>X(ge=>({...ge,[ae.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),hf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},ae.value))})]}),be.jsx("div",{style:{margin:"18px 0 8px 0",fontWeight:"bold"},children:"Ctrl + Mouse Button Tool Bindings"}),n6.map(ae=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[ae.label," + Ctrl:"]}),be.jsxs("select",{value:J[ae.value]||"",onChange:Ie=>oe(ge=>({...ge,[ae.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),hf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},ae.value+"_ctrl")),be.jsxs("div",{style:{margin:"12px 0"},children:[be.jsxs("button",{style:{background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",fontSize:"14px",marginBottom:"8px"},onClick:()=>N(ae=>!ae),children:[P?"Hide":"Show"," Advanced Ctrl + Mouse Bindings"]}),P&&be.jsx("div",{style:{marginTop:8},children:rp.slice(3).map(ae=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[ae.label," + Ctrl:"]}),be.jsxs("select",{value:J[ae.value]||"",onChange:Ie=>oe(ge=>({...ge,[ae.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),hf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},ae.value+"_ctrl"))})]})]}),be.jsx("button",{style:{position:"absolute",top:12,right:12,background:"transparent",color:"#fff",border:"none",fontSize:"20px",cursor:"pointer"},onClick:()=>l(!1),"aria-label":"Close",children:"×"})]})}),ve&&be.jsx("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0,0,0,0.5)",zIndex:2e3,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>q(!1),children:be.jsxs("div",{style:{background:"#222",color:"#fff",borderRadius:"8px",minWidth:"320px",maxWidth:"80vw",maxHeight:"80vh",padding:"24px",boxShadow:"0 4px 24px rgba(0,0,0,0.4)",position:"relative",overflow:"auto"},onClick:ae=>ae.stopPropagation(),children:[be.jsx("div",{style:{fontSize:"20px",marginBottom:"16px"},children:"DICOM Metadata"}),Ae,be.jsx("button",{style:{position:"absolute",top:12,right:12,background:"transparent",color:"#fff",border:"none",fontSize:"20px",cursor:"pointer"},onClick:()=>q(!1),"aria-label":"Close",children:"×"})]})})]})}function N5e(t){console.log("Setting up tools...",t),pr(n0),pr(r0),pr(vl),pr(o0),pr(i0),pr(yl),pr(nc),pr(rc),pr(ec),pr(s0),pr(ml),pr(Ja),pr(a0),pr(Ri),pr(Ho),pr(Qc),pr(nh);let e=Wn(t);return e||(e=eL(t),e.addTool(r0.toolName),e.addTool(n0.toolName),e.addTool(o0.toolName),e.addTool(vl.toolName,{loop:!1}),e.addTool(i0.toolName),e.addTool(yl.toolName),e.addTool(nh.toolName,{getTextCallback:()=>""}),e.addTool(rc.toolName),e.addTool(nc.toolName,{statsCalculator:()=>null}),e.addTool(ec.toolName,{calculateStats:!1,getTextCallback:()=>""}),e.addTool(s0.toolName,{getTextCallback:()=>""}),e.addTool(ml.toolName,{calculateStats:!1}),e.addTool(Ja.toolName,{}),e.addTool(a0.toolName,{}),e.addTool(Qc.toolName),e.addTool(Ri.toolName)),e}function r6(t,e,r,n){if(!r.length||!e.length)return null;const i=r.map(o=>e.findIndex(a=>a===o.metadata.referencedImageId)).filter(o=>o!==-1).sort((o,a)=>o-a);if(!i.length)return null;if(n===1){for(let o of i)if(o>t)return o;return i[0]}else{for(let o=i.length-1;o>=0;o--)if(i[o]`wadouri:/test_images/stack2/IMG${r+1}.dcm`),Array.from({length:25},(e,r)=>`wadouri:/test_images/stack5/IMG${r+1}.dcm`),Array.from({length:26},(e,r)=>`wadouri:/test_images/stack3/IMG${r+1}.dcm`)]}const A5e=document.querySelectorAll(".dicom-viewer-test-root");A5e.forEach(t=>{const e=t.id||"",r=()=>P5e();Wx(t).render(be.jsx($V,{container_id:e,imageStacks:r}))});const k5e=document.querySelectorAll(".dicom-viewer-root");k5e.forEach(t=>{const e=t.id||"";let r;const n=s=>s.map(c=>c.startsWith("wadouri:")?c:`wadouri:${c}`),i=t.getAttribute("data-images");if(i){let s;try{s=JSON.parse(i)}catch(c){console.error("Invalid data-images JSON:",c),s=[]}Array.isArray(s)&&s.length>0&&typeof s[0]=="string"?r=()=>Promise.resolve([n(s)]):Array.isArray(s)?r=()=>Promise.resolve(s.map(c=>Array.isArray(c)?n(c):[])):r=()=>Promise.resolve([[]])}else r=()=>Promise.resolve([[]]);const o=t.getAttribute("data-auto-cache-stack"),a=o==="true"||o==="1";Wx(t).render(be.jsx($V,{container_id:e,imageStacks:r,autoCacheStack:a}))}); +`)),o===-1)throw new Error("invalid response - no multipart mime header");if(!s&&(a=yye(n,0,o).split(`\r +`),s=mye(a),!s))throw new Error("invalid response - no boundary marker");const l=o+4,f=Y3(n,s,l);if(f===-1&&!i)throw new Error("invalid response - terminating boundary not found");return c||(c=vye(a)),r.tokenIndex=o,r.boundary=s,r.responseHeaders=a,r.multipartContentType=c,r.isPartial=f===-1,{contentType:c,extractDone:!i||f!==-1,tokenIndex:o,responseHeaders:a,boundary:s,multipartContentType:c,pixelData:e.slice(l,f-2)}}function mye(t){for(let e=0;e{if(typeof i.errorInterceptor=="function"){const u=new Error("request failed");i.errorInterceptor(u)}},l=new xye("streamRequest");return l.generate(async(f,u)=>{var g,p;const d=(g=i.beforeSend)==null?void 0:g.call(i,null,t,r,{}),h=Object.assign({},r,d);Object.keys(h).forEach(function(v){h[v]===null&&(h[v]=void 0),v==="Accept"&&t.indexOf("accept=")!==-1&&(h[v]=void 0)});try{const v=await fetch(t,{headers:h,signal:void 0});if(v.status!==200)throw new Error(`Couldn't retrieve ${t} got status ${v.status}`);const x=v.body.getReader(),m=v.headers,y=m.get("content-type"),w=Number(m.get("Content-Length"));let C=!1,S=a.encodedData,T=a.lastSize||0;for(a.isPartial=!0;!C;){const{done:_,value:E}=await x.read();if(S=wye(S,E),!S){if(C)throw new Error(`Done but no image frame available ${e}`);continue}if(C=_||S.byteLength===w,!C&&S.lengthr-i&&(console.log(`Truncated fragment, changing fragment length from ${n.length} to ${r-i}`),n.length=r-i)}return t}function Tye(t){let e=Tn.parseDicom(t,{untilTag:"x7fe00010"});e.elements.x7fe00010||console.warn("Pixel data not found!");let r;try{r=Tn.parseDicom(t)}catch(n){console.error(n),console.log("pixel data dataset:",n.dataSet),r=n.dataSet}return e.elements.x7fe00010=r.elements.x7fe00010,e=Sye(e),e}async function CV(t,e,r){const n=Tye(t),{uri:i,imageId:o,fileTotalLength:a}=r;return n.fetchMore=async function(s){const c=Object.assign({uri:i,imageId:o,fetchedLength:t.length,lengthToFetch:a-t.length},s),{fetchedLength:l,lengthToFetch:f}=c,{arrayBuffer:u}=await e(i,o,{byteRange:`${l}-${l+f}`}),d=new Uint8Array(u),h=new Uint8Array(n.byteArray.length+d.length);return h.set(n.byteArray),h.set(d,n.byteArray.length),CV(h,e,r)},n}function _ye(t,e){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i}=TV(t);if(n||r>1){const{shared:o,perFrame:a}=SV(n,i,e);return{NumberOfFrames:r,PerFrameFunctionalInformation:a,SharedFunctionalInformation:o}}return{NumberOfFrames:r}}function SV(t,e,r){const n={};(e?Object.values(e.items[0].dataSet.elements):[]).map(o=>n[o.tag]=o);const i={};return(t?Object.values(t.items[r-1].dataSet.elements):[]).map(o=>i[o.tag]=o),{shared:n,perFrame:i}}function TV(t){if(!t)return;const{elements:e,...r}=t,{x52009230:n,x52009229:i,...o}=e;return{NumberOfFrames:t.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:o,otherAttributtes:r}}function Eye(t,e){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:i,otherElements:o}=TV(e);if(n||r>1){const{shared:a,perFrame:s}=SV(n,i,t),c={elements:{...o,...a,...s}},l=Object.create(e);return Object.assign(l,c)}return e}let xr={};const Dye=()=>{xr={}};function kS(t){if(xr[t])return xr[t]}function bye(t){const e=kS(t);return _V(e)}function _V(t){if(!t)return!1;const e=t.intString("x00280008");return e&&e>1}function Iye(t){return t.indexOf("&frame=")}function Oye(t){const e=Iye(t),r=e===-1?t:t.slice(0,e),n=parseInt(t.slice(e+7),10)||1;let i;return xr[r]?i=xr[r].dataSet:i=void 0,{dataSet:i,frame:n}}function Mye(t){const e=[],r=kS(t);if(_V(r)){const n=r.intString("x00280008");for(let i=1;i<=n;i++)e.push(`${t}&frame=${i}`)}else e.push(t);return e}const EV={_get:kS,generateMultiframeWADOURIs:Mye,retrieveMultiframeDataset:Oye,isMultiframeDataset:bye};let d0=0,Ic={};function Rye(t){return xr[t]!==void 0}function Lye(t){let e;if(t.includes("&frame=")){const{frame:r,dataSet:n}=EV.retrieveMultiframeDataset(t);e=Eye(r,n)}else xr[t]&&(e=xr[t].dataSet);return e}function Nye(t,e){const r=xr[t];if(!r){console.error(`No loaded dataSet for uri ${t}`);return}d0-=r.dataSet.byteArray.length,r.dataSet=e,d0+=e.byteArray.length,De(Ce,"datasetscachechanged",{uri:t,action:"updated",cacheInfo:B2()})}function Pye(t,e=U2,r){if(xr[t])return new Promise(o=>{xr[t].cacheCount++,o(xr[t].dataSet)});if(Ic[t])return Ic[t].cacheCount++,Ic[t];const n=e(t,r),i=new Promise((o,a)=>{n.then(async function(s){const c={isPartialContent:!1,fileTotalLength:null};if(!(s instanceof ArrayBuffer)){if(!s.arrayBuffer)return a(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=s.flags.isPartialContent,c.fileTotalLength=s.flags.fileTotalLength,s=s.arrayBuffer}const l=new Uint8Array(s);let f;try{c.isPartialContent?f=await CV(l,e,{uri:t,imageId:r,fileTotalLength:c.fileTotalLength}):f=Tn.parseDicom(l)}catch(u){return a(u)}xr[t]={dataSet:f,cacheCount:i.cacheCount},d0+=f.byteArray.length,o(f),De(Ce,"datasetscachechanged",{uri:t,action:"loaded",cacheInfo:B2()})},a).then(()=>{delete Ic[t]},()=>{delete Ic[t]})});return i.cacheCount=1,Ic[t]=i,i}function Aye(t){xr[t]&&(xr[t].cacheCount--,xr[t].cacheCount===0&&(d0-=xr[t].dataSet.byteArray.length,delete xr[t],De(Ce,"datasetscachechanged",{uri:t,action:"unloaded",cacheInfo:B2()})))}function B2(){return{cacheSizeInBytes:d0,numberOfDataSetsCached:Object.keys(xr).length}}function kye(){Dye(),Ic={},d0=0}const Au={isLoaded:Rye,load:Pye,unload:Aye,getInfo:B2,purge:kye,get:Lye,update:Nye};function Vye(t){const e=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;n.length===4&&(n=`x600${r.toString(16)}`);const i=t.elements[`${n}3000`];if(!i)continue;const o=[];for(let a=0;a>s&1}e.push({rows:t.uint16(`${n}0010`),columns:t.uint16(`${n}0011`),type:t.string(`${n}0040`),x:t.int16(`${n}0050`,1)-1,y:t.int16(`${n}0050`,0)-1,pixelData:o,description:t.string(`${n}0022`),label:t.string(`${n}1500`),roiArea:t.string(`${n}1301`),roiMean:t.string(`${n}1302`),roiStandardDeviation:t.string(`${n}1303`)})}return{overlays:e}}function G0(t){return t==="RECON TOMO"||t==="RECON GATED TOMO"}function VS(t,e){const r=t.string("x00080008");if(r){const n=r.split("\\");if(n.length>e)return n[e]}}function Fye(t){let e;const r=t.string("x00080060");if(r!=null&&r.includes("NM")){const n=VS(t,2);n&&G0(n)&&t.elements.x00540022&&(e=Po(t.elements.x00540022.items[0].dataSet,"x00200037",6))}return e}function Uye(t){let e;const r=t.string("x00080060");if(r!=null&&r.includes("NM")){const n=VS(t,2);n&&G0(n)&&t.elements.x00540022&&(e=Po(t.elements.x00540022.items[0].dataSet,"x00200032",3))}return e}function $E(t){let e=Po(t,"x00200037",6);return!e&&t.elements.x00209116&&(e=Po(t.elements.x00209116.items[0].dataSet,"x00200037",6)),e||(e=Fye(t)),e}function jE(t){let e=Po(t,"x00200032",3);return!e&&t.elements.x00209113&&(e=Po(t.elements.x00209113.items[0].dataSet,"x00200032",3)),e||(e=Uye(t)),e}function HE(t){let e=Po(t,"x00280030",2);return!e&&t.elements.x00289110&&(e=Po(t.elements.x00289110.items[0].dataSet,"x00280030",2)),e}function KE(t){let e;return t.elements.x00180050?e=t.floatString("x00180050"):t.elements.x00289110&&t.elements.x00289110.items.length&&t.elements.x00289110.items[0].dataSet.elements.x00180050&&(e=t.elements.x00289110.items[0].dataSet.floatString("x00180050")),e}function DV(t,e,r){const n={};for(const i of r)try{const o=e(i,t);if(o){const a={};for(const s in o)if(s in o){const c=Bye(s);a[c]=o[s]}Object.assign(n,a)}}catch(o){console.error(`Error retrieving ${i} data:`,o)}return n}const Bye=t=>t.charAt(0).toUpperCase()+t.slice(1),bV=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function qE(t){const e=t.elements.x00186011;return!e||!e.items?[]:e.items.map(n=>{const i=n.dataSet.double("x0018602c"),o=n.dataSet.double("x0018602e"),a=n.dataSet.uint16("x00186024"),s=n.dataSet.uint16("x00186026"),c=n.dataSet.uint16("x0018601a"),l=n.dataSet.uint16("x0018601e"),f=n.dataSet.uint16("x00186018"),u=n.dataSet.uint16("x0018601c"),d=n.dataSet.int32("x00186020")||null,h=n.dataSet.int32("x00186022")||null,g=n.dataSet.uint16("x0018602a"),p=n.dataSet.uint16("x00186028"),v=n.dataSet.uint16("x00186012"),x=n.dataSet.uint16("x00186014"),m=n.dataSet.uint16("x00186016"),y=n.dataSet.uint16("x00186030");return{regionLocationMinY0:c,regionLocationMaxY1:l,regionLocationMinX0:f,regionLocationMaxX1:u,referencePixelX0:d,referencePixelY0:h,physicalDeltaX:i,physicalDeltaY:o,physicalUnitsXDirection:a,physicalUnitsYDirection:s,referencePhysicalPixelValueY:g,referencePhysicalPixelValueX:p,regionSpatialFormat:v,regionDataType:x,regionFlags:m,transducerFrequency:y}})}function FS(t,e){const{MetadataModules:r}=Ao;if(Array.isArray(e))return;const n=Vh(e);if(t===r.MULTIFRAME){const a=EV.retrieveMultiframeDataset(n.url);return a.dataSet?_ye(a.dataSet,a.frame):void 0}let i=n.url;n.frame&&(i=`${i}&frame=${n.frame}`);const o=Au.get(i);if(o)return IV(t,e,o)}function IV(t,e,r){const{MetadataModules:n}=Ao;if(t===n.GENERAL_STUDY)return{studyDescription:r.string("x00081030"),studyDate:Tn.parseDA(r.string("x00080020")),studyTime:Tn.parseTM(r.string("x00080030")||""),accessionNumber:r.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:r.string("x00080060"),seriesInstanceUID:r.string("x0020000e"),seriesNumber:r.intString("x00200011"),studyInstanceUID:r.string("x0020000d"),seriesDate:Tn.parseDA(r.string("x00080021")),seriesTime:Tn.parseTM(r.string("x00080031")||""),acquisitionDate:Tn.parseDA(r.string("x00080022")),acquisitionTime:Tn.parseTM(r.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:r.string("x00080018"),instanceNumber:r.intString("x00200013"),lossyImageCompression:r.string("x00282110"),lossyImageCompressionRatio:r.floatString("x00282112"),lossyImageCompressionMethod:r.string("x00282114")};if(t===n.PATIENT)return{patientID:r.string("x00100020"),patientName:r.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:r.intString("x00101010"),patientSize:r.floatString("x00101020"),patientSex:r.string("x00100040"),patientWeight:r.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const i=r.string("x00080060"),o=VS(r,2);return{modality:i,imageType:r.string("x00080008"),imageSubType:o,imageOrientationPatient:$E(r),imagePositionPatient:jE(r),sliceThickness:KE(r),pixelSpacing:HE(r),numberOfFrames:r.uint16("x00280008"),isNMReconstructable:G0(o)&&i.includes("NM")}}if(t===n.IMAGE_PLANE){const i=$E(r),o=jE(r),a=HE(r),s=KE(r);let c=null,l=null;a&&(l=a[0],c=a[1]);let f=null,u=null;return i&&(f=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],u=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]),{frameOfReferenceUID:r.string("x00200052"),rows:r.uint16("x00280010"),columns:r.uint16("x00280011"),imageOrientationPatient:i,rowCosines:f,columnCosines:u,imagePositionPatient:o,sliceThickness:s,sliceLocation:r.floatString("x00201041"),pixelSpacing:a,rowPixelSpacing:l,columnPixelSpacing:c}}if(t===n.CINE)return{frameTime:r.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return mV(r);if(t===n.VOI_LUT){const i=vV(r);return{windowCenter:Po(r,"x00281050",1),windowWidth:Po(r,"x00281051",1),voiLUTSequence:q3(i,r.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:r.floatString("x00281052"),rescaleSlope:r.floatString("x00281053"),rescaleType:r.string("x00281054"),modalityLUTSequence:q3(r.uint16("x00280103"),r.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:r.string("x00080016"),sopInstanceUID:r.string("x00080018")};if(t===n.PET_ISOTOPE){const i=r.elements.x00540016;if(i===void 0)return;const o=i.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:Tn.parseTM(o.string("x00181072")||""),radionuclideTotalDose:o.floatString("x00181074"),radionuclideHalfLife:o.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return Vye(r);if(t==="transferSyntax"){let i;try{i=r.string("x00020010")}catch{}return{transferSyntaxUID:i}}if(t===n.PET_SERIES)return{correctedImage:r.string("x00280051"),units:r.string("x00541001"),decayCorrection:r.string("x00541102")};if(t===n.PET_IMAGE)return{frameReferenceTime:r.floatString(r.string("x00541300")||""),actualFrameDuration:r.intString(r.string("x00181242"))};if(t===n.ULTRASOUND_ENHANCED_REGION)return qE(r);if(t===n.CALIBRATION&&r.string("x00080060")==="US")return{sequenceOfUltrasoundRegions:qE(r)};if(t==="instance")return DV(e,FS,bV)}let G2=[];function Gye(t){return`dicomfile:${G2.push(t)-1}`}function Wye(t){return G2[t]}function zye(t){G2[t]=void 0}function $ye(){G2=[]}const OV={add:Gye,get:Wye,remove:zye,purge:$ye};function jye(t){const e=t.intString("x00280008"),r=t.elements.x7fe00010;return e!==r.fragments.length}function MV(t,e){if(t.elements.x7fe00010&&t.elements.x7fe00010.basicOffsetTable.length)return Tn.readEncapsulatedImageFrame(t,t.elements.x7fe00010,e);if(jye(t)){const l=Tn.createJPEGBasicOffsetTable(t,t.elements.x7fe00010);return Tn.readEncapsulatedImageFrame(t,t.elements.x7fe00010,e,l)}const r=t.elements.x7fe00010.fragments,n=new Tn.ByteStream(t.byteArrayParser,t.byteArray,t.elements.x7fe00010.dataOffset),i=Tn.readSequenceItem(n);if(i.tag!=="xfffee000")throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";n.seek(i.length);const o=n.position;if(e+1>r.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=o+r[e].offset+8,c=r[e].length;return new Uint8Array(n.byteArray.buffer.slice(n.byteArray.byteOffset+s,n.byteArray.byteOffset+s+c))}function Hye(t,e){return t&1<=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l))}else if(n===16){if(f=c+e*l*2,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l*2))}else if(n===1){if(f=c+e*l*.125,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return RV(t.byteArray,f,l)}else if(n===32){if(f=c+e*l*4,f>=t.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(t.byteArray.buffer.slice(f,f+l*4))}throw new Error("unsupported pixel format")}function NV(t){const e=Vh(t),r=parseInt(e.url,10),n=OV.get(r);return new Promise((i,o)=>{const a=new FileReader;a.onload=s=>{const c=s.target.result;i(c)},a.onerror=o,a.readAsArrayBuffer(n)})}function US(t,e=0){const r=t.elements.x7fe00010||t.elements.x7fe00008;return r?r.encapsulatedPixelData?MV(t,e):LV(t,e):null}function BS(t){let e=t[0],r=t[0],n;const i=t.length;for(let o=1;o=0?e<=255?r=Uint8Array:e<=65535&&(r=Uint16Array):t>=-128&&e<=127?r=Int8Array:t>=-32768&&e<=32767&&(r=Int16Array)),r||Float32Array}function Ny(t,e,r){t.planarConfiguration===0?fV(t.pixelData,e,r):dV(t.pixelData,e,r)}function qye(t,e,r){t.planarConfiguration===0?hV(t.pixelData,e,r):gV(t.pixelData,e,r)}function PV(t,e,r){if(t.photometricInterpretation==="RGB")Ny(t,e,r);else if(t.photometricInterpretation==="YBR_RCT")Ny(t,e,r);else if(t.photometricInterpretation==="YBR_ICT")Ny(t,e,r);else if(t.photometricInterpretation==="PALETTE COLOR")pV(t,e,r);else if(t.photometricInterpretation==="YBR_FULL_422")lye(t.pixelData,e,r);else if(t.photometricInterpretation==="YBR_FULL")qye(t,e,r);else throw new Error(`No color space conversion for photometric interpretation ${t.photometricInterpretation}`)}function Xye(t){if(t===void 0)return!1;const{rows:e,columns:r,photometricInterpretation:n,pixelDataLength:i,planarConfiguration:o}=t;return i===4*r*e?!1:n.endsWith("420")?i===(3*Math.ceil(r/2)+Math.floor(r/2))*e:n.endsWith("422")?i===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(e/2)+Math.floor(e/2)*r:n!=="RGB"||o===1}function Yye(t){return Jye(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(t))))}function Jye(t){let e;try{return decodeURIComponent(escape(t))}catch(r){if(e=r,e instanceof URIError)return t;throw e}}function AV(t,e,r){const n=new Date().getTime(),i=new Blob([e],{type:"image/jpeg"});return new Promise((o,a)=>{const s=new FileReader;s.readAsBinaryString===void 0?s.readAsArrayBuffer(i):s.readAsBinaryString(i),s.onload=function(){const c=new Image;c.onload=function(){r.height=c.height,r.width=c.width,t.rows=c.height,t.columns=c.width;const l=r.getContext("2d");l.drawImage(this,0,0);const f=l.getImageData(0,0,c.width,c.height),u=new Date().getTime();t.pixelData=new Uint8Array(f.data.buffer),t.imageData=f,t.decodeTimeInMS=u-n;const d=BS(t.pixelData);t.smallestPixelValue=d.min,t.largestPixelValue=d.max,t.pixelDataLength=t.pixelData.length,o(t)},c.onerror=function(l){a(l)},s.readAsBinaryString===void 0?c.src=`data:image/jpeg;base64,${window.btoa(Yye(s.result))}`:c.src=`data:image/jpeg;base64,${window.btoa(s.result)}`},s.onerror=c=>{a(c)}})}function mi(t,e,r,n,i){const o={...n};delete o.loader,delete o.streamingData;const a=cc(),s=o.priority||void 0;return o.transferPixelData&&r.buffer,a.executeTask("dicomImageLoader","decodeTask",{imageFrame:t,transferSyntax:e,pixelData:r,options:o,decodeConfig:i},{priority:s,requestType:o==null?void 0:o.requestType})}function Zye(t,e,r,n,i={},o){switch(e){case"1.2.840.10008.1.2":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.1":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.2":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.1.99":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.5":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.50":return t.bitsAllocated===8&&(t.samplesPerPixel===3||t.samplesPerPixel===4)?AV(t,r,n):mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.51":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.57":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.70":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.80":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.81":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.90":return mi(t,e,r,i,o);case"1.2.840.10008.1.2.4.91":return mi(t,e,r,i,o);case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return mi(t,e,r,i,o)}return Promise.reject(new Error(`No decoder for transfer syntax ${e}`))}function kV(t){const e=Pe("imagePixelModule",t);return{samplesPerPixel:e.samplesPerPixel,photometricInterpretation:e.photometricInterpretation,planarConfiguration:e.planarConfiguration,rows:e.rows,columns:e.columns,bitsAllocated:e.bitsAllocated,bitsStored:e.bitsStored,pixelRepresentation:e.pixelRepresentation,smallestPixelValue:e.smallestPixelValue,largestPixelValue:e.largestPixelValue,redPaletteColorLookupTableDescriptor:e.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:e.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:e.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:e.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:e.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:e.bluePaletteColorLookupTableData,pixelData:void 0,imageId:t}}function Qye(t,e){const r=t.get("modalityLutModule",e)||{},n=t.get("generalSeriesModule",e)||{},{modality:i}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:i},a=t.get("scalingModule",e)||{};return{...o,...i==="PT"&&{suvbw:a.suvbw}}}function VV(t){return t==="RGB"||t==="PALETTE COLOR"||t==="YBR_FULL"||t==="YBR_FULL_422"||t==="YBR_PARTIAL_422"||t==="YBR_PARTIAL_420"||t==="YBR_RCT"||t==="YBR_ICT"}let XE="";function e5e(t){return t!=="1.2.840.10008.5.1.4.1.1.12.1"&&t!=="1.2.840.10008.5.1.4.1.1.12.2.1"}function t5e(t){const e=t.smallestPixelValue,r=t.largestPixelValue,n=Kye(e,r);if(n){const i=new n(t.pixelData);t.pixelData=i}else throw new Error("Could not apply a typed array to the pixel data")}function n5e(t,e){const r=t.length/4;let n=0,i=0;for(let o=0;o{(typeof s[u]=="function"||s[u]instanceof Promise)&&delete s[u]});const l=Zye(s,r,e,a,n,c),f=VV(s.photometricInterpretation);return new Promise((u,d)=>{l.then(function(h){let g=!1;if(n.targetBuffer&&n.targetBuffer.type&&!f){const{arrayBuffer:_,type:E,offset:D=0,length:b}=n.targetBuffer,I=h.pixelDataLength,R=D,M=b??I-R,L={Uint8Array,Uint16Array,Int16Array,Float32Array};if(M!==h.pixelDataLength)throw new Error(`target array for image does not have the same length (${M}) as the decoded image length (${h.pixelDataLength}).`);const A=L[E],G=_?new A(_,R,M):new A(h.pixelData);if(M!==h.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");h.pixelData=G,g=!0}g||t5e(h);const p=Pe(o.IMAGE_PLANE,t)||{},v=Pe(o.VOI_LUT,t)||{},x=Pe(o.MODALITY_LUT,t)||{},m=Pe(o.SOP_COMMON,t)||{},y=Pe(o.CALIBRATION,t)||{},{rows:w,columns:C}=h;if(f){if(Xye(h)){a.height=h.rows,a.width=h.columns;let D=a.getContext("2d").createImageData(h.columns,h.rows);i||(D={...D,data:new Uint8ClampedArray(3*h.columns*h.rows)}),PV(h,D.data,i),h.imageData=D,h.pixelData=D.data,h.pixelDataLength=D.data.length}else if(!i&&h.pixelDataLength===4*w*C){const E=new Uint8Array(h.pixelData.length/4*3);h.pixelData=n5e(h.pixelData,E),h.pixelDataLength=h.pixelData.length}const _=BS(h.pixelData);h.smallestPixelValue=_.min,h.largestPixelValue=_.max}const S=es.createImageVoxelManager({scalarData:h.pixelData,width:h.columns,height:h.rows,numberOfComponents:h.samplesPerPixel}),T={imageId:t,dataType:h.pixelData.constructor.name,color:f,calibration:y,columnPixelSpacing:p.columnPixelSpacing,columns:h.columns,height:h.rows,preScale:h.preScale,intercept:x.rescaleIntercept?x.rescaleIntercept:0,slope:x.rescaleSlope?x.rescaleSlope:1,invert:h.photometricInterpretation==="MONOCHROME1",minPixelValue:h.smallestPixelValue,maxPixelValue:h.largestPixelValue,rowPixelSpacing:p.rowPixelSpacing,rows:h.rows,sizeInBytes:h.pixelData.byteLength,width:h.columns,windowCenter:v.windowCenter?v.windowCenter[0]:void 0,windowWidth:v.windowWidth?v.windowWidth[0]:void 0,voiLUTFunction:v.voiLUTFunction?v.voiLUTFunction:void 0,decodeTimeInMS:h.decodeTimeInMS,floatPixelData:void 0,imageFrame:h,voxelManager:S,rgba:f&&i,getPixelData:()=>h.pixelData,getCanvas:void 0,numberOfComponents:h.samplesPerPixel};if(T.color&&(T.getCanvas=function(){if(XE===t)return a;const _=T.columns,E=T.rows;a.height=E,a.width=_;const D=a.getContext("2d"),b=D.createImageData(_,E),I=h.pixelData;if(I.length===_*E*4)for(let R=0;R0&&e5e(m.sopClassUID)&&(T.modalityLUT=x.modalityLUTSequence[0]),v.voiLUTSequence&&v.voiLUTSequence.length>0&&(T.voiLUT=v.voiLUTSequence[0]),T.color&&(T.windowWidth=256,T.windowCenter=128),T.windowCenter===void 0||T.windowWidth===void 0){const _=T.imageFrame.smallestPixelValue,E=T.imageFrame.largestPixelValue;T.windowWidth=E-_,T.windowCenter=(E+_)/2}u(T)},d)})}function r5e(t,e){t.decache=function(){const r=Vh(e);Au.unload(r.url)}}function FV(t,e,r=0,n,i,o){const a=new Date().getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise((c,l)=>{t.then(f=>{const u=US(f,r),d=f.string("x00020010"),h=new Date().getTime(),g=W2(e,u,d,i);r5e(s,e),g.then(p=>{p=p,p.data=f,p.sharedCacheKey=n;const v=new Date().getTime();p.loadTimeInMS=h-a,p.totalTimeInMS=v-a,o!==void 0&&o.imageDoneCallback!==void 0&&o.imageDoneCallback(p),c(p)},function(p){l({error:p,dataSet:f})})},function(f){l({error:f})})}),s}function i5e(t,e,r=0,n,i){const o=new Date().getTime();return{promise:new Promise((s,c)=>{const l=new Date().getTime();let f;try{const u=US(t,r),d=t.string("x00020010");f=W2(e,u,d,i)}catch(u){c({error:u,dataSet:t});return}f.then(u=>{u=u,u.data=t,u.sharedCacheKey=n;const d=new Date().getTime();u.loadTimeInMS=l-o,u.totalTimeInMS=d-o,s(u)},c)}),cancelFn:void 0}}function UV(t){if(t==="dicomweb"||t==="wadouri")return U2;if(t==="dicomfile")return NV}function Kp(t,e={}){const r=Vh(t);e=Object.assign({},e),delete e.loader;const n=UV(r.scheme);if(Au.isLoaded(r.url)){const o=Au.get(r.url,n,t);return i5e(o,t,r.pixelDataFrame,r.url,e)}const i=Au.load(r.url,n,t);return FV(i,t,r.frame,r.url,e)}function BV(){Ap("dicomweb",Kp),Ap("wadouri",Kp),Ap("dicomfile",Kp),S0(FS)}const o5e={getImagePixelModule:mV,getLUTs:q3,getModalityLUTOutputPixelRepresentation:vV,getNumberValues:Po,metaDataProvider:FS,metadataForDataset:IV},a5e={metaData:o5e,dataSetCacheManager:Au,fileManager:OV,getEncapsulatedImageFrame:MV,getUncompressedImageFrame:LV,loadFileRequest:NV,loadImageFromPromise:FV,getLoaderForScheme:UV,getPixelData:US,loadImage:Kp,parseImageId:Vh,unpackBinaryFrame:RV,register:BV};function lt(t,e,r){return e=e||0,!t||!t.Value||Array.isArray(t.Value)&&t.Value.length<=e?r:t.Value[e]}function s5e(t,e,r){const n=lt(t,e,r);if(n!==void 0)return parseFloat(String(n))}function zt(t,e){const r=lt(t,e);if(r!==void 0)return parseFloat(r)}function jr(t,e){if(!t||!t.Value||!Array.isArray(t.Value)||e&&t.Value.length>s&1}e.push({rows:zt(t[`${n}0010`]),columns:zt(t[`${n}0011`]),type:lt(t[`${n}0040`]),x:zt(t[`${n}0050`],1)-1,y:zt(t[`${n}0050`],0)-1,pixelData:o,description:lt(t[`${n}0022`]),label:lt(t[`${n}1500`]),roiArea:lt(t[`${n}1301`]),roiMean:lt(t[`${n}1302`]),roiStandardDeviation:lt(t[`${n}1303`])})}return{overlays:e}}function z2(t){const e=t.indexOf(":");return t.substring(e+1)}function ku(t,e=!0){return t&&t.Value?t.Value[0]&&e?t.Value[0]:t.Value:t}function GV(t,e,r){const n=(e?Object.values(e[0]):[]).map(o=>o[0]).filter(o=>o!==void 0&&typeof o=="object"),i=(t?Object.values(t[r-1]):[]).map(o=>o.Value[0]).filter(o=>o!==void 0&&typeof o=="object");return{shared:n,perFrame:i}}function WV(t){let{52009230:e,52009229:r,"00280008":n,...i}=t;return e=ku(e,!1),r=ku(r,!1),n=ku(n),{PerFrameFunctionalGroupsSequence:e,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:i}}function l5e(t,e){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:i,rest:o}=WV(e);if(r||i>1){const{shared:a,perFrame:s}=GV(r,n,t),c=Object.assign(e,{frameNumber:t});return[...a,...s].forEach(l=>{Object.entries(l).forEach(([f,u])=>{c[f]=u})}),Object.assign(o,{"00280008":i},c)}return e}let Uh=[],bm={};function zV(t){const e=t.indexOf("/frames/")+8,r=t.slice(0,e),n=parseInt(t.slice(e),10);return{metadata:Uh[`${r}1`],frame:n}}function u5e(t){const e=z2(t);return zV(e)}function f5e(t){const e=lt(t["00280008"]);return e&&e>1}function d5e(t,e){const r=z2(t);Object.defineProperty(e,"isMultiframe",{value:f5e(e),enumerable:!1}),Uh[r]=e}function h5e(t){const e=z2(t),r=Uh[e];if(r&&!(r!=null&&r.isMultiframe))return r;const n=bm[e];if(n)return n;const i=zV(e);if(!i||!i.metadata)return;const{metadata:o,frame:a}=i;if(o){const s=l5e(a,o);return bm[e]=s,s}}function g5e(t){const e=z2(t);Uh[e]=void 0,bm[e]=void 0}function p5e(){Uh=[],bm={}}const GS={add:d5e,get:h5e,remove:g5e,purge:p5e};function $V(t){return lt(t["00080060"]).includes("NM")}function WS(t,e){const r=ku(t["00080008"],!1);if(r)return r[e]}function m5e(t){let e;const r=WS(t,2);if(r&&G0(r)){const n=ku(t["00540022"]);n&&(e=jr(n["00200037"],6))}return e}function v5e(t){let e;const r=WS(t,2);if(r&&G0(r)){const n=ku(t["00540022"]);n&&(e=jr(n["00200032"],3))}return e}function YE(t){let e=jr(t["00200037"],6);return!e&&$V(t)&&(e=m5e(t)),e}function JE(t){let e=jr(t["00200032"],3);return!e&&$V(t)&&(e=v5e(t)),e}function $r(t,e){const r=jr(t[e]);return r?r[0]:null}function y5e(t){var e;return(e=t==null?void 0:t.Value)!=null&&e.length?Array.isArray(t.Value)?t.Value:typeof t.Value=="object"?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[t.Value]):[]:[]}function ZE(t){const e=y5e(t["00186011"]);return!e||!e.length?null:e.map(n=>{const i=$r(n,"0018602C"),o=$r(n,"0018602E"),a=$r(n,"00186024"),s=$r(n,"00186026"),c=$r(n,"0018601A"),l=$r(n,"0018601E"),f=$r(n,"00186018"),u=$r(n,"0018601C"),d=$r(n,"00186020"),h=$r(n,"00186022"),g=$r(n,"0018602A"),p=$r(n,"00186028"),v=$r(n,"00186012"),x=$r(n,"00186014"),m=$r(n,"00186016"),y=$r(n,"00186030");return{regionLocationMinY0:c,regionLocationMaxY1:l,regionLocationMinX0:f,regionLocationMaxX1:u,referencePixelX0:d,referencePixelY0:h,physicalDeltaX:i,physicalDeltaY:o,physicalUnitsXDirection:a,physicalUnitsYDirection:s,referencePhysicalPixelValueY:g,referencePhysicalPixelValueX:p,regionSpatialFormat:v,regionDataType:x,regionFlags:m,transducerFrequency:y}})}function zS(t,e){const{MetadataModules:r}=Ao;if(t===r.MULTIFRAME){const{metadata:i,frame:o}=u5e(e);if(!i)return;const{PerFrameFunctionalGroupsSequence:a,SharedFunctionalGroupsSequence:s,NumberOfFrames:c}=WV(i);if(a||c>1){const{shared:l,perFrame:f}=GV(a,s,o);return{NumberOfFrames:c,PerFrameFunctionalInformation:f,SharedFunctionalInformation:l}}return{NumberOfFrames:c}}const n=GS.get(e);if(n){if(t===r.GENERAL_STUDY)return{studyDescription:lt(n["00081030"]),studyDate:Tn.parseDA(lt(n["00080020"])),studyTime:Tn.parseTM(lt(n["00080030"],0,"")),accessionNumber:lt(n["00080050"])};if(t===r.GENERAL_SERIES)return{modality:lt(n["00080060"]),seriesInstanceUID:lt(n["0020000E"]),seriesNumber:zt(n["00200011"]),studyInstanceUID:lt(n["0020000D"]),seriesDate:Tn.parseDA(lt(n["00080021"])),seriesTime:Tn.parseTM(lt(n["00080031"],0,"")),acquisitionDate:Tn.parseDA(lt(n["00080022"])),acquisitionTime:Tn.parseTM(lt(n["00080032"],0,""))};if(t===r.GENERAL_IMAGE)return{sopInstanceUID:lt(n["00080018"]),instanceNumber:zt(n["00200013"]),lossyImageCompression:lt(n["00282110"]),lossyImageCompressionRatio:zt(n["00282112"]),lossyImageCompressionMethod:lt(n["00282114"])};if(t===r.PATIENT)return{patientID:lt(n["00100020"]),patientName:lt(n["00100010"])};if(t===r.PATIENT_STUDY)return{patientAge:zt(n["00101010"]),patientSize:zt(n["00101020"]),patientSex:lt(n["00100040"]),patientWeight:zt(n["00101030"])};if(t===r.NM_MULTIFRAME_GEOMETRY){const i=lt(n["00080060"]),o=WS(n,2);return{modality:i,imageType:lt(n["00080008"]),imageSubType:o,imageOrientationPatient:YE(n),imagePositionPatient:JE(n),sliceThickness:zt(n["00180050"]),spacingBetweenSlices:zt(n["00180088"]),pixelSpacing:jr(n["00280030"],2),numberOfFrames:zt(n["00280008"]),isNMReconstructable:G0(o)&&i.includes("NM")}}if(t===r.IMAGE_PLANE){let i=YE(n),o=JE(n);const a=jr(n["00280030"],2);let s=null,c=null,l=null,f=null,u=!1;return a?(c=a[0],s=a[1]):(u=!0,c=1,s=1),i?(l=[parseFloat(i[0]),parseFloat(i[1]),parseFloat(i[2])],f=[parseFloat(i[3]),parseFloat(i[4]),parseFloat(i[5])]):(l=[0,1,0],f=[0,0,-1],u=!0,i=[...l,...f]),o||(o=[0,0,0],u=!0),{frameOfReferenceUID:lt(n["00200052"]),rows:zt(n["00280010"]),columns:zt(n["00280011"]),imageOrientationPatient:i,rowCosines:l,columnCosines:f,imagePositionPatient:o,sliceThickness:zt(n["00180050"]),sliceLocation:zt(n["00201041"]),pixelSpacing:a,rowPixelSpacing:c,columnPixelSpacing:s,usingDefaultValues:u}}if(t===r.ULTRASOUND_ENHANCED_REGION)return ZE(n);if(t===r.CALIBRATION&<(n["00080060"])==="US")return{sequenceOfUltrasoundRegions:ZE(n)};if(t===r.IMAGE_URL)return x5e(e,n);if(t===r.CINE)return w5e(e,n);if(t===r.IMAGE_PIXEL)return{samplesPerPixel:zt(n["00280002"]),photometricInterpretation:lt(n["00280004"]),rows:zt(n["00280010"]),columns:zt(n["00280011"]),bitsAllocated:zt(n["00280100"]),bitsStored:zt(n["00280101"]),highBit:lt(n["00280102"]),pixelRepresentation:zt(n["00280103"]),planarConfiguration:zt(n["00280006"]),pixelAspectRatio:lt(n["00280034"]),smallestPixelValue:zt(n["00280106"]),largestPixelValue:zt(n["00280107"]),redPaletteColorLookupTableDescriptor:jr(n["00281101"]),greenPaletteColorLookupTableDescriptor:jr(n["00281102"]),bluePaletteColorLookupTableDescriptor:jr(n["00281103"]),redPaletteColorLookupTableData:jr(n["00281201"]),greenPaletteColorLookupTableData:jr(n["00281202"]),bluePaletteColorLookupTableData:jr(n["00281203"])};if(t===r.VOI_LUT)return{windowCenter:jr(n["00281050"],1),windowWidth:jr(n["00281051"],1)};if(t===r.MODALITY_LUT)return{rescaleIntercept:zt(n["00281052"]),rescaleSlope:zt(n["00281053"]),rescaleType:lt(n["00281054"])};if(t===r.SOP_COMMON)return{sopClassUID:lt(n["00080016"]),sopInstanceUID:lt(n["00080018"])};if(t===r.PET_ISOTOPE){const i=lt(n["00540016"]);return i===void 0?void 0:{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:Tn.parseTM(lt(i["00181072"],0,"")),radiopharmaceuticalStartDateTime:lt(i["00181078"],0,""),radionuclideTotalDose:zt(i["00181074"]),radionuclideHalfLife:zt(i["00181075"])}}}if(t===r.OVERLAY_PLANE)return c5e(n);if(t==="transferSyntax")return jV(e,n);if(t===r.PET_SERIES)return{correctedImage:lt(n["00280051"]),units:lt(n["00541001"]),decayCorrection:lt(n["00541102"])};if(t===r.PET_IMAGE)return{frameReferenceTime:zt(n["00541300"]),actualFrameDuration:zt(n["00181242"])};if(t==="instance")return DV(e,zS,bV)}}function x5e(t,e){const{transferSyntaxUID:r}=jV(t,e),n=mR(r),i=t.substring(7),o=i.replace("/frames/","/thumbnail/");let a=i.replace("/frames/","/rendered/");return n&&(a=a.replace("/rendered/1","/rendered")),{isVideo:n,rendered:a,thumbnail:o}}function w5e(t,e){return{cineRate:lt(e["00180040"]),numberOfFrames:zt(e["00280008"])}}function jV(t,e){return{transferSyntaxUID:lt(e["00020010"])||lt(e["00083002"])}}function C5e(t,e,r={},n={}){const i=Fh(),{retrieveOptions:o={},streamingData:a}=n,s=a.chunkSize||T5e(e,o,"chunkSize")||65536,c=f=>{if(typeof i.errorInterceptor=="function"){const u=new Error("request failed");i.errorInterceptor(u)}else console.warn("rangeRequest:Caught",f)};return new Promise(async(f,u)=>{const d=Object.assign({},r);Object.keys(d).forEach(function(h){(d[h]===null||d[h]===void 0)&&delete d[h]});try{a.encodedData||(a.chunkSize=s,a.rangesFetched=0);const h=_5e(a,o),{encodedData:g,responseHeaders:p}=await S5e(t,d,h,a),v=p.get("content-type"),{totalBytes:x}=a,m=x===g.byteLength,y=PS(v,g,{isPartial:!0}),w=AS(o,m||y.extractDone);f({...y,imageQualityStatus:w,percentComplete:y.extractDone?100:s*100/x})}catch(h){c(h),console.error(h),u(h)}})}async function S5e(t,e,r,n){r&&(e=Object.assign(e,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:i}=n;if(r[1]&&(i==null?void 0:i.byteLength)>r[1])return n;const o=await fetch(t,{headers:e,signal:void 0}),a=await o.arrayBuffer(),s=new Uint8Array(a),{status:c}=o;let l;i?(l=new Uint8Array(i.length+s.length),l.set(i,0),l.set(s,i.length),n.rangesFetched=1):(l=new Uint8Array(s.length),l.set(s,0),n.rangesFetched++),n.encodedData=i=l,n.responseHeaders=o.headers;const f=o.headers.get("Content-Range");return f?n.totalBytes=Number(f.split("/")[1]):c!==206||!r?n.totalBytes=i==null?void 0:i.byteLength:r[1]===""||(i==null?void 0:i.length)r-i?[(n==null?void 0:n.byteLength)||0,""]:[(n==null?void 0:n.byteLength)||0,i*(o+1)-1]}function $S(t,e,r="application/octet-stream",n){const{streamingData:i,retrieveOptions:o={}}=n||{},a={Accept:r};let s=o.urlArguments?`${t}${t.indexOf("?")===-1?"?":"&"}${o.urlArguments}`:t;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),(i==null?void 0:i.url)!==s&&(n.streamingData={url:s}),o.rangeIndex!==void 0)return C5e(s,e,a,n);if(o.streaming)return wV(s,e,a,n);const c=U2(s,e,a),{xhr:l}=c;return c.then(function(f){const u=l.getResponseHeader("Content-Type")||"application/octet-stream",d=PS(u,new Uint8Array(f));return d.imageQualityStatus=AS(o,!0),d})}const{ProgressiveIterator:QE}=Yt,{ImageQualityStatus:e6}=Ao,E5e=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function D5e(t){const e="1.2.840.10008.1.2";if(!t)return e;const r=t.split(";"),n={};r.forEach(o=>{const a=o.split("=");if(a.length!==2)return;const s=a[1].trim().replace(/"/g,"");n[a[0].trim()]=s});const i={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:t&&!Object.keys(n).length&&i[t]?i[t]:n.type&&i[n.type]?i[n.type]:i[t]?i[t]:e}function b5e(){return _h}const I5e="multipart/related; type=application/octet-stream; transfer-syntax=*";function HV(t,e={}){const r=b5e(),n=new Date().getTime(),i=new QE("decompress");async function o(f,u,d){i.generate(async h=>{var v;const g=QE.as($S(f,u,d,e));let p=10;for await(const x of g){const{pixelData:m,imageQualityStatus:y=e6.FULL_RESOLUTION,percentComplete:w,done:C=!0,extractDone:S=!0}=x,T=D5e(x.contentType);if(!S&&!E5e.has(T))continue;const _=x.decodeLevel??(y===e6.FULL_RESOLUTION?0:O5e(w,(v=e.retrieveOptions)==null?void 0:v.decodeLevel));if(!(!C&&p<=_))try{const E={...e,decodeLevel:_},D=await W2(u,m,T,E),b=new Date().getTime();D.loadTimeInMS=b-n,D.transferSyntaxUID=T,D.imageQualityStatus=y,h.add(D,C),p=_}catch(E){if(S)throw console.warn("Couldn't decode",E),E}}})}const a=e.requestType||ht.Interaction,s=e.additionalDetails||{imageId:t},c=e.priority===void 0?5:e.priority,l=t.substring(7);return r.addRequest(o.bind(this,l,t,I5e),a,s,c),{promise:i.getDonePromise(),cancelFn:void 0}}function O5e(t,e=4){const r=t/100-.02;return r>1/4?Math.min(e,0):r>1/16?Math.min(e,1):r>1/64?Math.min(e,2):Math.min(e,3)}function KV(){Ap("wadors",HV),S0(zS)}const M5e={getNumberString:s5e,getNumberValue:zt,getNumberValues:jr,getValue:lt,metaDataProvider:zS},R5e={metaData:M5e,findIndexOfString:Y3,getPixelData:$S,loadImage:HV,metaDataManager:GS,register:KV};function L5e(){KV(),BV()}const N5e=()=>new Worker(new URL("/static/dv3d/assets/decodeImageFrameWorker-pUTBwvad.js",import.meta.url),{type:"module"});function qV(t){xV(t),L5e();const e=cc(),r=(t==null?void 0:t.maxWebWorkers)||P5e();e.registerWorker("dicomImageLoader",N5e,{maxWorkerInstances:r})}function P5e(){return typeof navigator<"u"&&navigator.hardwareConcurrency?Math.max(1,Math.floor(navigator.hardwareConcurrency/2)):1}function A5e(t,e){if(e=e||t.transferSyntax,t.bitsAllocated===8&&e==="1.2.840.10008.1.2.4.50"&&(t.samplesPerPixel===3||t.samplesPerPixel===4))return!0}const k5e={IMPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2",EXPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2.1",DEFLATED_EXPLICIT_VR_LITTLE_ENDIAN:"1.2.840.10008.1.2.1.99",EXPLICIT_VR_BIG_ENDIAN:"1.2.840.10008.1.2.2",JPEG_BASELINE_PROCESS_1:"1.2.840.10008.1.2.4.50",JPEG_EXTENDED_PROCESS_2_4:"1.2.840.10008.1.2.4.51",JPEG_EXTENDED_PROCESSES_3_5:"1.2.840.10008.1.2.4.52",JPEG_SPECTRAL_SELECTION_NONHIERARCHICAL_PROCESSES_6_8:"1.2.840.10008.1.2.4.53",JPEG_SPECTRAL_SELECTION_NONHIERARCHICAL_PROCESSES_7_9:"1.2.840.10008.1.2.4.54",JPEG_FULL_PROGRESSION_NONHIERARCHICAL_PROCESSES_10_12:"1.2.840.10008.1.2.4.55",JPEG_FULL_PROGRESSION_NONHIERARCHICAL_PROCESSES_11_13:"1.2.840.10008.1.2.4.56",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_14:"1.2.840.10008.1.2.4.57",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_15:"1.2.840.10008.1.2.4.58",JPEG_EXTENDED_HIERARCHICAL_PROCESSES_16_18:"1.2.840.10008.1.2.4.59",JPEG_EXTENDED_HIERARCHICAL_PROCESSES_17_19:"1.2.840.10008.1.2.4.60",JPEG_SPECTRAL_SELECTION_HIERARCHICAL_PROCESSES_20_22:"1.2.840.10008.1.2.4.61",JPEG_SPECTRAL_SELECTION_HIERARCHICAL_PROCESSES_21_23:"1.2.840.10008.1.2.4.62",JPEG_FULL_PROGRESSION_HIERARCHICAL_PROCESSES_24_26:"1.2.840.10008.1.2.4.63",JPEG_FULL_PROGRESSION_HIERARCHICAL_PROCESSES_25_27:"1.2.840.10008.1.2.4.64",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_28:"1.2.840.10008.1.2.4.65",JPEG_LOSSLESS_NONHIERARCHICAL_PROCESS_29:"1.2.840.10008.1.2.4.66",JPEG_LOSSLESS_NONHIERARCHICAL_FIRST_ORDER_PREDICTION_PROCESS_14:"1.2.840.10008.1.2.4.70",JPEG_LS_LOSSLESS_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.80",JPEG_LS_LOSSY_NEAR_LOSSLESS_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.81",JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY:"1.2.840.10008.1.2.4.90",JPEG_2000_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.91",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY:"1.2.840.10008.1.2.4.92",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.93",JPIP_REFERENCED:"1.2.840.10008.1.2.4.94",JPIP_REFERENCED_DEFLATE:"1.2.840.10008.1.2.4.95",MPEG2_MAIN_PROFILE_MAIN_LEVEL:"1.2.840.10008.1.2.4.100",MPEG4_AVC_H264_HIGH_PROFILE_LEVEL_4_1:"1.2.840.10008.1.2.4.101",MPEG4_AVC_H264_BD_COMPATIBLE_HIGH_PROFILE_LEVEL_4_1:"1.2.840.10008.1.2.4.102",MPEG4_AVC_H264_HIGH_PROFILE_FOR_2D_VIDEO:"1.2.840.10008.1.2.4.103",MPEG4_AVC_H264_HIGH_PROFILE_FOR_3D_VIDEO:"1.2.840.10008.1.2.4.104",JPIP_LOSSLESS:"1.2.840.10008.1.2.4.96",JPIP_PART2_MULTICOMPONENT_IMAGE_COMPRESSION:"1.2.840.10008.1.2.4.97",RFC_2557_MIME_ENCAPSULATION:"1.2.840.10008.1.2.6.1",JPEG_XR_IMAGE_COMPRESSION:"1.2.840.10008.1.2.6.2",JPEG_2000_IMAGE_COMPRESSION_LOSSLESS_ONLY_RETIRED:"1.2.840.10008.1.2.4.90R",JPEG_2000_IMAGE_COMPRESSION_RETIRED:"1.2.840.10008.1.2.4.91R",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_LOSSLESS_ONLY_RETIRED:"1.2.840.10008.1.2.4.92R",JPEG_2000_PART_2_MULTICOMPONENT_IMAGE_COMPRESSION_RETIRED:"1.2.840.10008.1.2.4.93R"},V5e=Object.freeze(Object.defineProperty({__proto__:null,transferSyntaxes:k5e},Symbol.toStringTag,{value:"Module"})),t6={constants:V5e,convertRGBColorByPixel:fV,convertRGBColorByPlane:dV,convertYBRFullByPixel:hV,convertYBRFullByPlane:gV,convertPALETTECOLOR:pV,wadouri:a5e,wadors:R5e,init:qV,convertColorSpace:PV,createImage:W2,decodeJPEGBaseline8BitColor:AV,getImageFrame:kV,getPixelData:$S,getMinMax:BS,isColorImage:VV,isJPEGBaseline8BitColor:A5e,internal:Cye};class ih extends ic{}n4(ih,"toolName","NoLabelArrowAnnotate");function n6(t,e){const r=Pe("imagePlaneModule",t);if(!r)return;const{rowCosines:n,columnCosines:i,imagePositionPatient:o,rowPixelSpacing:a,columnPixelSpacing:s}=r;if(!n||!i||!o)return;const c=s||1,l=a||1,f=n,u=i,d=o;return[d[0]+e.x*u[0]*c+e.y*f[0]*l,d[1]+e.x*u[1]*c+e.y*f[1]*l,d[2]+e.x*u[2]*c+e.y*f[2]*l]}window.cornerstone3dTools=cye;const{MouseBindings:gf,KeyboardBindings:r6}=qR,{IMAGE_RENDERED:i6}=Se,F5e=[{name:"Soft Tissue",center:40,width:400},{name:"Lung",center:-600,width:1500},{name:"Bone",center:300,width:1500},{name:"Brain",center:40,width:80},{name:"Abdomen",center:60,width:400}],pf=[{label:"Window/Level",value:a0.toolName},{label:"Pan",value:o0.toolName},{label:"Zoom",value:c0.toolName},{label:"Stack Scroll",value:yl.toolName},{label:"Rotate",value:s0.toolName},{label:"Length",value:xl.toolName},{label:"Probe",value:rc.toolName},{label:"Arrow (No Label)",value:ih.toolName},{label:"Arrow Annotate",value:ic.toolName},{label:"Rectangle ROI",value:tc.toolName},{label:"Ellipse ROI",value:u0.toolName},{label:"Freehand ROI",value:vl.toolName},{label:"Freehand Contour Segmentation",value:Za.toolName},{label:"Sculptor",value:l0.toolName},{label:"Reference Cursors",value:Ri.toolName}],o6=[{label:"Left",value:"Primary"},{label:"Middle",value:"Auxiliary"},{label:"Right",value:"Secondary"}],op=[{label:"Left",value:"Primary",mask:1},{label:"Middle",value:"Auxiliary",mask:4},{label:"Right",value:"Secondary",mask:2},{label:"Left + Right",value:"Primary_and_Secondary",mask:3},{label:"Left + Middle",value:"Primary_and_Auxiliary",mask:5},{label:"Right + Middle",value:"Secondary_and_Auxiliary",mask:6},{label:"Left + Right + Middle",value:"Primary_and_Secondary_and_Auxiliary",mask:7},{label:"Fourth Button",value:"Fourth_Button",mask:8},{label:"Fifth Button",value:"Fifth_Button",mask:16},{label:"Mouse Wheel",value:"Wheel",mask:524288},{label:"Mouse Wheel + Left",value:"Wheel_Primary",mask:524289}];function a6({container_id:t,imageStacks:e,autoCacheStack:r,annotationJson:n,viewerState:i,...o}){var YS,JS,ZS,QS,e4,t4;const a=Ze.useRef(null),s=Ze.useRef(!1),[c,l]=Ze.useState(!1),[f,u]=Ze.useState(!1),[d,h]=Ze.useState(null),[g,p]=Ze.useState(null),v=9,x="renderingEngine_"+t,m="TOOL_GROUP_"+t,y=Ze.useRef(null),w=Ze.useRef(!1),[C,S]=Ze.useState([]),[T,_]=Ze.useState(0),[E,D]=Ze.useState(()=>Array(v).fill([])),[b,I]=Ze.useState(()=>Array(v).fill(0)),[R,M]=Ze.useState(null);Ze.useEffect(()=>{let oe=!1;if(n||i){M(n?"annotations":"viewerState");const Ie=setTimeout(()=>{if(oe)return;const ge=t||"default";if(n)try{const se=window[`importAnnotations_${ge}`]||window.importAnnotations;typeof se=="function"&&se(n)}catch(se){console.error("Failed to import annotations from prop:",se)}if(i)try{const se=window[`importViewerState_${ge}`]||window.importViewerState;typeof se=="function"&&se(i)}catch(se){console.error("Failed to import viewer state from prop:",se)}M(null)},800);return()=>{oe=!0,clearTimeout(Ie),M(null)}}},[n,i,t]),Ze.useEffect(()=>{e().then(async oe=>{const Ie=await Promise.all(oe.map(async ge=>{let se;try{const Oe=ge[0];if(Oe&&Oe.startsWith("wadouri:")){const ke=Oe.slice(8),$e=await(await fetch(ke)).arrayBuffer();se=Tn.parseDicom(new Uint8Array($e)).string("x0020000d")}}catch{}return{imageIds:ge,studyInstanceUID:se}}));S(Ie),await Q(oe[0]),D(Array(v).fill(oe[0]||[]))})},[]);const L=async(oe,Ie)=>{const ge=C[Ie];if(!ge)return;const se=ge.imageIds;q(Oe=>{const ke=[...Oe];return ke[oe]="stack",ke}),D(Oe=>{const ke=[...Oe];return ke[oe]=se,ke}),I(Oe=>{const ke=[...Oe];return ke[oe]=Ie,ke}),await Q(se)},[A,G]=Ze.useState(!1),[P,N]=Ze.useState(!0),[V,$]=Ze.useState(!1),[H,Y]=Ze.useState(!1),ne=()=>{console.log("Sorting viewport imageIds by slice location"),D(oe=>oe.map((ge,se)=>{if(!ge||ge.length===0)return ge;const Fe=[...ge.map($e=>{const Ue=Pe("imagePlaneModule",$e);let mt=null;return Ue&&(Ue.sliceLocation!==void 0?mt=Number(Ue.sliceLocation):Ue.imagePositionPatient&&Array.isArray(Ue.imagePositionPatient)&&Ue.imagePositionPatient.length===3&&(mt=Number(Ue.imagePositionPatient[2]))),{imageId:$e,sortKey:mt}})].sort(($e,Ue)=>$e.sortKey!==null&&Ue.sortKey!==null?$e.sortKey-Ue.sortKey:$e.imageId.localeCompare(Ue.imageId)).map($e=>$e.imageId);return JSON.stringify(Fe)===JSON.stringify(ge)?ge:Fe}))},Q=async oe=>{console.log("Setting loaded imageIds:",oe),console.log("autoCacheStack:",r);const Ie=[];if(r){for(const ge of oe)if(ge.startsWith("wadouri:")){console.log("Caching metadata for imageId:",ge);try{const se=ge.slice(8);if(t6.wadouri.dataSetCacheManager){const Oe=t6.wadouri.dataSetCacheManager.load(se);Oe&&typeof Oe.then=="function"&&Ie.push(Oe)}else console.warn("MetaDataManager not found. Unable to cache metadata.")}catch(se){console.warn(`Failed to cache metadata for ${ge}:`,se)}}await Promise.all(Ie),U&&(console.log("Sorting viewport imageIds by slice location"),ne())}},[ee,de]=Ze.useState({rows:1,cols:1}),[fe,le]=Ze.useState(!1),k=Ze.useRef([]),O=Ze.useRef({}),B=Ze.useRef({}),[U,z]=Ze.useState(!0),[j,K]=Ze.useState(!0),ae=[];for(let oe=1;oe<=3;oe++)for(let Ie=1;Ie<=3;Ie++)ae.push({rows:oe,cols:Ie});const[he,ye]=Ze.useState(()=>Array(ee.rows*ee.cols).fill({index:0,total:0,windowCenter:"",windowWidth:""})),[Te,q]=Ze.useState(()=>Array(v).fill("stack")),[J,ie]=Ze.useState(()=>Array(ee.rows*ee.cols).fill(!1)),[Z,te]=Ze.useState({Primary:yl.toolName,Auxiliary:o0.toolName,Secondary:a0.toolName,Primary_and_Secondary:c0.toolName,Fourth_Button:s0.toolName,Wheel:yl.toolName}),[me,X]=Ze.useState({Primary:xl.toolName,Auxiliary:rc.toolName,Secondary:ic.toolName}),[Ae,Be]=Ze.useState(!1);Ze.useEffect(()=>{const oe=ge=>{ge.ctrlKey&&Be(!0)},Ie=ge=>{ge.ctrlKey||Be(!1)};return window.addEventListener("keydown",oe),window.addEventListener("keyup",Ie),()=>{window.removeEventListener("keydown",oe),window.removeEventListener("keyup",Ie)}},[]);const[Ve,ue]=Ze.useState(!1),[Ee,Me]=Ze.useState(null),Re=(oe,Ie)=>{Vi&&Vi(Ie),qS(ge=>{const se=[...ge];return se[oe]=Ie,se})},We=(oe,Ie,ge)=>{const se=Ru()||[];se.forEach(ke=>{ke.annotationUID===Ie&&(ke.isSelected=!1)}),Ot(Ie),y.current.render();const Oe=ge.filter(ke=>ke.annotationUID!==Ie);qS(ke=>{const Fe=[...ke],$e=Oe.length>0?Oe[0].annotationUID:null;return Fe[oe]=$e,se.forEach(Ue=>{Ue.isSelected=Ue.annotationUID===$e}),Vi($e),y.current.render(),Fe})},ut=()=>{const oe=E.findIndex(Oe=>Oe&&Oe.length>0);if(oe===-1){Me("No images loaded."),ue(!0);return}const Ie=E[oe][0],ge=["imagePlaneModule","generalSeriesModule","generalStudyModule","patientModule","imagePixelModule","voiLutModule","modalityLutModule","sopCommonModule","petIsotopeModule","multiframeModule","cineModule","overlayPlaneModule","generalImageModule","stackModule","voiLutModule","modalityLutModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule","petSeriesModule","petImageModule","petIsotopeModule"],se={};ge.forEach(Oe=>{const ke=Pe(Oe,Ie);ke!==void 0&&(se[Oe]=ke)}),Me(be.jsx("pre",{style:{maxHeight:600,overflow:"auto",fontSize:13,color:"#fff"},children:JSON.stringify(se,null,2)})),ue(!0)};Ze.useEffect(()=>(window.loadDicomStackFromFiles=oe=>{const Ie=Array.from(oe);sr({target:{files:Ie}})},()=>{window.loadDicomStackFromFiles=void 0}),[]);const[ze,ft]=Ze.useState(!1);Ze.useEffect(()=>{const oe=Wn(m);oe&&["ArrowAnnotate","NoLabelArrowAnnotate","Length","RectangleROI","EllipticalROI","PlanarFreehandROI","PlanarFreehandContourSegmentation"].forEach(Ie=>{oe.setToolConfiguration(Ie,{color:"#00e676",selectedColor:"#ffeb3b"})})},[m]),Ze.useEffect(()=>{const oe=ge=>{ge.altKey&&ft(!0)},Ie=ge=>{ge.altKey||ft(!1)};return window.addEventListener("keydown",oe),window.addEventListener("keyup",Ie),()=>{window.removeEventListener("keydown",oe),window.removeEventListener("keyup",Ie)}},[]),Ze.useEffect(()=>{if(!j)return;const oe=Wn(m);oe&&(ze?(oe.hasTool(Ri.toolName)||oe.addTool(Ri.toolName),oe.setToolEnabled(Ri.toolName),oe.setToolActive(Ri.toolName)):oe.hasTool(Ri.toolName)&&oe.setToolDisabled(Ri.toolName))},[ze,j]);const dt=Ze.useCallback(()=>{[Wn(m)].forEach(Ie=>{if(Ie){pf.forEach(se=>{Ie.setToolPassive(se.value,{removeAllBindings:!0})}),Ie.setToolDisabled(Ri.toolName);const ge={};Object.entries(Z).forEach(([se,Oe])=>{ge[Oe]||(ge[Oe]=[]);const ke=op.find(Fe=>Fe.value===se);ke?ge[Oe].push({mouseButton:ke.mask}):gf[se]&&ge[Oe].push({mouseButton:gf[se]})}),Object.entries(me).forEach(([se,Oe])=>{if(!Oe)return;ge[Oe]||(ge[Oe]=[]);const ke=op.find(Fe=>Fe.value===se);ke?ge[Oe].push({mouseButton:ke.mask,modifierKey:r6.Ctrl}):gf[se]&&ge[Oe].push({mouseButton:gf[se],modifierKey:r6.Ctrl})}),Object.entries(ge).forEach(([se,Oe])=>{Ie.setToolActive(se,{bindings:Oe})})}})},[Z,me]),[dn,Pn]=Ze.useState(!1),Gt=Ze.useRef(null),sr=async oe=>{const Ie=oe.target.files;if(!Ie||Ie.length===0)return;z(!1);const ge=Array.from(Ie).sort(($e,Ue)=>$e.name.localeCompare(Ue.name));let se;const Oe=await ge[0].arrayBuffer();se=Tn.parseDicom(new Uint8Array(Oe)).string("x0020000d"),console.log("StudyInstanceUID:",se);const Fe=ge.map($e=>`wadouri:${URL.createObjectURL($e)}`);S($e=>{const Ue=[...$e,{imageIds:Fe,studyInstanceUID:se}];return D(mt=>{const Et=[...mt];return Et[0]=Fe,Et}),I(mt=>{const Et=[...mt];return Et[0]=Ue.length-1,Et}),Q(Fe),Ue})},ji=Ze.useCallback((oe,Ie)=>{if(!Ie)return;const ge=typeof Ie.getCurrentImageIdIndex=="function"?Ie.getCurrentImageIdIndex():0,Oe=(typeof Ie.getImageIds=="function"?Ie.getImageIds():[]).length;let ke="",Fe="";if(typeof Ie.getProperties=="function"){const $e=Ie.getProperties();if($e.voiRange){const{lower:Ue,upper:mt}=$e.voiRange;ke=((mt+Ue)/2).toFixed(0),Fe=(mt-Ue).toFixed(0)}}ye($e=>{const Ue=[...$e];return Ue[oe]={index:ge+1,total:Oe,windowCenter:ke,windowWidth:Fe},Ue})},[]),[Ml,xe]=Ze.useState(!1);function Le(){for(let oe=0;oe{const oe=async()=>{var ke;console.log("setup"),s.current||(s.current=!0,await oZ(),await lA({showSVGCursors:!0}),qV({maxWebWorkers:1}));let ge=y.current;ge||(ge=new aR(x),y.current=ge);let se=Wn(m);se||(se=U5e(m)),Te.slice(0,ee.rows*ee.cols).filter(Fe=>Fe==="volume").length,Rl(se);for(let Fe=0;Fe{if(mt.offsetWidth>0&&mt.offsetHeight>0){ge.resize();const An=ge.getViewport(Ue);An&&typeof An.resize=="function"&&An.resize(),An&&typeof An.render=="function"&&An.render()}});st.observe(mt),mt._resizeObserver=st}if(Te[Fe]==="stack")$e&&!w.current&&cn.setStack($e),A?se.removeViewports(x,Ue):se.addViewport(Ue,x);else if(Te[Fe]==="volume"){se.addViewport(Ue,x);const st=`myVolumeId_${Fe}`;(await iC(st,{imageIds:$e})).load(),cn.setVolumes([{volumeId:st}]),cn.render();continue}if(cn.render(),!w.current){B.current[Fe]!==void 0&&typeof cn.setImageIdIndex=="function"&&Ho(cn.element,{imageIndex:B.current[Fe]});const st=O.current[Fe];if(st&&typeof cn.setProperties=="function"){const{voiRange:An,invert:Gr,interpolationType:Or,VOILUTFunction:Vo,colormap:Hi}=st,pa={};An&&An.lower!==void 0&&An.upper!==void 0&&(pa.voiRange=An),Gr!==void 0&&(pa.invert=Gr),Or!==void 0&&(pa.interpolationType=Or),Vo&&(pa.VOILUTFunction=Vo),Hi!=null&&(typeof Hi=="string"||typeof Hi=="object"&&!("actor"in Hi))&&(pa.colormap=Hi),setTimeout(()=>{console.log("Restoring properties (timeout) for viewport",Fe,pa),cn.setProperties(pa),cn.render()},100)}}mt._overlayListener&&cn.element.removeEventListener(i6,mt._overlayListener);const jt=()=>ji(Fe,cn);cn.element.addEventListener(i6,jt),mt._overlayListener=jt,ji(Fe,cn)}for(let Fe=0;Fe=2?(se.hasTool(Ko.toolName)||se.addTool(Ko.toolName),se.setToolEnabled(Ko.toolName),se.setToolConfiguration(Ko.toolName,{}),se.setToolActive(Ko.toolName,{bindings:[{mouseButton:gf.Primary}]})):se.hasTool(Ko.toolName)&&se.setToolDisabled(Ko.toolName)),dt()},Ie=requestAnimationFrame(()=>{oe()});return()=>{k.current.forEach(ge=>{ge&&ge._resizeObserver&&(ge._resizeObserver.disconnect(),delete ge._resizeObserver)}),cancelAnimationFrame(Ie)}},[a,ji,ee,Te,E]);const xt=Ze.useCallback(oe=>{const Ie=`CT_${oe}`,se=y.current.getViewport(Ie);se&&typeof se.resetCamera=="function"&&(se.resetCamera(),console.log("Restoring viewport properties for viewport",oe),se.resetProperties(),se.render())},[]),ti=Ze.useCallback((oe,Ie,ge)=>{const se=`CT_${oe}`;try{const Oe=y.current;if(Oe){const ke=Oe.getViewport(se);ke&&typeof ke.setProperties=="function"&&(console.log(`Applying preset to viewport ${oe}: center=${Ie}, width=${ge}`),ke.setProperties({voiRange:{lower:Ie-ge/2,upper:Ie+ge/2}}),ke.render(),ji(oe,ke))}}catch{}},[ji]);Ze.useEffect(()=>{ye(Array(ee.rows*ee.cols).fill({index:0,total:0,windowCenter:"",windowWidth:""})),ie(Array(ee.rows*ee.cols).fill(!1))},[ee]),Ze.useEffect(()=>{dt()},[Z,me,Ae,dt]),Ze.useEffect(()=>{if(!c)return;const oe=Ie=>{const ge=document.querySelector(".preset-menu");ge&&!ge.contains(Ie.target)&&l(!1)};return document.addEventListener("mousedown",oe),()=>document.removeEventListener("mousedown",oe)},[c]),Ze.useEffect(()=>{const oe=Ie=>{Ie.preventDefault()};return document.addEventListener("contextmenu",oe),()=>{document.removeEventListener("contextmenu",oe)}},[]),Ze.useEffect(()=>{if(!P)return;const oe=Wn(m);Rl(oe)},[T,P]),Ze.useEffect(()=>{Gt.current&&(Gt.current.setAttribute("webkitdirectory","true"),Gt.current.setAttribute("directory","true"))},[]),Ze.useEffect(()=>(window.loadDicomStackFromWadouriList=async oe=>{if(!oe||oe.length===0)return;let Ie;try{const ge=oe[0];if(ge&&ge.startsWith("wadouri:")){const se=ge.slice(8),ke=await(await fetch(se)).arrayBuffer();Ie=Tn.parseDicom(new Uint8Array(ke)).string("x0020000d")}}catch{}S(ge=>{const se=[...ge,{imageIds:oe,studyInstanceUID:Ie}];return D(Oe=>{const ke=[...Oe];return ke[0]=oe,ke}),I(Oe=>{const ke=[...Oe];return ke[0]=se.length-1,ke}),Q(oe),se})},()=>{window.loadDicomStackFromWadouriList=void 0}),[S,D,I,Q]),Ze.useEffect(()=>{!U||!E.every(Ie=>!Ie||Ie.length===0||Ie.every(ge=>!!Pe("imagePlaneModule",ge)))||D(Ie=>Ie.map(se=>{if(!se||se.length===0)return se;const Fe=[...se.map($e=>({imageId:$e,sliceLoc:(()=>{const Ue=Pe("imagePlaneModule",$e);return Ue&&Ue.sliceLocation!==void 0?Number(Ue.sliceLocation):null})()}))].sort(($e,Ue)=>$e.sliceLoc!==null&&Ue.sliceLoc!==null?$e.sliceLoc-Ue.sliceLoc:$e.imageId.localeCompare(Ue.imageId)).map($e=>$e.imageId);return JSON.stringify(Fe)===JSON.stringify(se)?se:Fe}))},[U,C]);function Rl(oe){if(!oe)return;const Ie=`CT_${T}`;P?(oe.setToolEnabled(el.toolName),oe.setToolConfiguration(el.toolName,{sourceViewportId:Ie})):oe.setToolDisabled(el.toolName)}Ze.useEffect(()=>{const oe=t||"default";function Ie(ge,se){const Oe=y.current;if(!Oe)return;const ke=Oe.getViewport(`CT_${ge}`);if(!ke||typeof ke.getImageIds!="function")return;const $e=ke.getImageIds().map(Et=>Et.replace(/^wadouri:/,"")),Ue=se.replace(/^wadouri:/,""),mt=$e.indexOf(Ue);mt!==-1&&typeof ke.setImageIdIndex=="function"&&(Ho(ke.element,{imageIndex:mt}),ji(ge,ke))}return window[`jumpToSliceByImageId_${oe}`]=Ie,window[`exportViewerState_${oe}`]=()=>{const ge=ee.rows*ee.cols,se=Te.slice(0,ge),Oe=b.slice(0,ge),ke=C.map(cn=>({i:cn.imageIds,u:cn.studyInstanceUID})),Fe=y.current,$e=[],Ue=[],mt=[];for(let cn=0;cn{try{w.current=!0;const se=typeof ge=="string"?JSON.parse(ge):ge;if(se.grid&&de(se.grid),se.modes&&q(se.modes),se.stacks&&S(se.stacks.map(Oe=>({imageIds:Oe.i,studyInstanceUID:Oe.u}))),se.stackIdx&&se.stacks){const Oe=se.stackIdx.map(ke=>{var Fe;return((Fe=se.stacks[ke])==null?void 0:Fe.i)||[]});D(Oe),I(se.stackIdx)}setTimeout(()=>{var Fe,$e;const Oe=y.current;if(!Oe){w.current=!1;return}const ke=((Fe=se.grid)==null?void 0:Fe.rows)*(($e=se.grid)==null?void 0:$e.cols)||1;for(let Ue=0;Ue{try{let ge=Ru();if(console.log("Exporting annotations:",ge),Array.isArray(ge)){const se=[xl.toolName,ih.toolName,ic.toolName,tc.toolName,u0.toolName,vl.toolName,Za.toolName,rc.toolName,l0.toolName];ge=ge.filter(Oe=>se.includes(Oe.metadata.toolName))}else return"{}";return JSON.stringify(ge,null,2)}catch(ge){return alert("Failed to export annotations: "+ge),"{}"}},window[`importAnnotations_${oe}`]=ge=>{try{const se=typeof ge=="string"?JSON.parse(ge):ge;Lf&&Lf(),Array.isArray(se)&&se.forEach(Oe=>{Ut(Oe,Oe.annotationUID)}),y.current&&y.current.render()}catch(se){alert("Failed to import annotations: "+se)}},window[`importLegacyAnnotations_${oe}`]=ge=>{Lf&&Lf();let se;try{se=typeof ge=="string"?JSON.parse(ge):ge}catch{alert("Invalid legacy annotation JSON");return}const Oe={ArrowAnnotate:"ArrowAnnotate"};Object.entries(se).forEach(([ke,Fe])=>{console.log("Importing legacy annotations for imageId:",ke),Object.entries(Fe).forEach(([$e,Ue])=>{const mt=Oe[$e]||$e;Ue.data&&Array.isArray(Ue.data)&&Ue.data.forEach(Et=>{const cn=n6(ke,{x:Et.handles.start.y,y:Et.handles.start.x}),jt=n6(ke,{x:Et.handles.end.y,y:Et.handles.end.x});console.log("Importing legacy annotation:"),console.log(" Image ID:",ke),console.log(" Start World:",cn),console.log(" End World:",jt);const st=Pe("imagePlaneModule",ke);console.log(NO);let An=Pe("frameOfReferenceUID",ke);!An&&st&&st.frameOfReferenceUID&&(An=st.frameOfReferenceUID);const Gr=st!=null&&st.rowCosines&&(st!=null&&st.columnCosines)?[st.rowCosines[1]*st.columnCosines[2]-st.rowCosines[2]*st.columnCosines[1],st.rowCosines[2]*st.columnCosines[0]-st.rowCosines[0]*st.columnCosines[2],st.rowCosines[0]*st.columnCosines[1]-st.rowCosines[1]*st.columnCosines[0]]:void 0;Array.isArray(Gr)&&Gr.length,typeof Et.rotation=="number"&&Et.rotation;const Or={annotationUID:Et.uuid,metadata:{toolName:mt,referencedImageId:ke,FrameOfReferenceUID:An,viewPlaneNormal:Gr},data:{handles:{points:[cn,jt],textBox:Et.handles.textBox},text:Et.text||""},visibility:Et.visible!==!1,active:Et.active||!1};Ut(Or,Or.annotationUID)})})}),y.current&&y.current.render()},window[`importLegacyViewport_${oe}`]=ge=>{let se;try{se=typeof ge=="string"?JSON.parse(ge):ge}catch{alert("Invalid legacy viewport JSON");return}const Oe=y.current;if(!Oe)return;const ke=`CT_${T??0}`,Fe=Oe.getViewport(ke);if(!Fe)return;const $e={};if(se.voi&&($e.voiRange={lower:se.voi.windowCenter-se.voi.windowWidth/2,upper:se.voi.windowCenter+se.voi.windowWidth/2}),typeof se.invert=="boolean"&&($e.invert=se.invert),typeof se.pixelReplication=="boolean"&&($e.interpolationType=se.pixelReplication?0:1),typeof se.hflip=="boolean"&&($e.hflip=se.hflip),typeof se.vflip=="boolean"&&($e.vflip=se.vflip),typeof Fe.setProperties=="function"&&Fe.setProperties($e),se.translation||se.scale){const Ue=Fe.getCamera?Fe.getCamera():{};se.translation&&(Ue.translation={...Ue.translation,...se.translation}),se.scale&&(Ue.parallelScale=200/se.scale),console.log("Applying legacy camera properties:",Ue),typeof Fe.setCamera=="function"&&Fe.setCamera(Ue)}typeof se.rotation=="number"&&Fe.setRotation(se.rotation),Fe.render(),ji(T??0,Fe)},()=>{window[`exportViewerState_${oe}`]=void 0,window[`importViewerState_${oe}`]=void 0,window[`exportAnnotations_${oe}`]=void 0,window[`importAnnotations_${oe}`]=void 0,window[`importLegacyAnnotations_${oe}`]=void 0,window[`importLegacyViewport_${oe}`]=void 0,window[`jumpToSliceByImageId_${oe}`]=void 0}},[ee,Te,b,C,E,de,q,I,S,D]);const $2=T!==null?b[T]:0,j2=C[$2],Bh=j2==null?void 0:j2.studyInstanceUID,[YV,qS]=Ze.useState(()=>Array(v).fill(null)),JV=ee.rows*ee.cols,XS=[];for(let oe=0;oek.current[oe]=ge,style:{flex:1,border:Ie?"1px solid #222":"none",background:"#000",minWidth:0,minHeight:0,position:"relative",overflow:"hidden",flexDirection:"column",gridRow:Math.floor(oe/ee.cols)+1,gridColumn:oe%ee.cols+1,height:"100%",boxShadow:T===oe?"0 0 0 4px #1976d2, 0 0 16px 4px #1976d2cc":void 0,zIndex:T===oe?10:1},onClick:()=>_(oe),onDoubleClick:()=>xt(oe),children:[be.jsx("button",{style:{position:"absolute",top:8,left:8,zIndex:20,background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 8px",cursor:"pointer",fontSize:"12px",opacity:.85},onClick:()=>{q(ge=>{const se=[...ge];return se[oe]=ge[oe]==="stack"?"volume":"stack",se})},children:Te[oe]==="stack"?"Volume":"Stack"}),Te[oe]==="volume"&&be.jsxs("div",{style:{position:"absolute",top:8,left:70,zIndex:21,display:"flex",gap:"6px",background:"rgba(34,34,34,0.85)",borderRadius:"4px",padding:"2px 6px",alignItems:"center"},children:[be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px",marginRight:"2px"},onClick:()=>{const ge=y.current,se=ge==null?void 0:ge.getViewport(`CT_${oe}`);se&&se.setOrientation&&(se.setOrientation("axial"),se.render())},children:"Axial"}),be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px",marginRight:"2px"},onClick:()=>{const ge=y.current,se=ge==null?void 0:ge.getViewport(`CT_${oe}`);se&&se.setOrientation&&(se.setOrientation("sagittal"),se.render())},children:"Sagittal"}),be.jsx("button",{style:{background:"#444",color:"#fff",border:"none",borderRadius:"3px",padding:"2px 8px",cursor:"pointer",fontSize:"12px"},onClick:()=>{const ge=y.current,se=ge==null?void 0:ge.getViewport(`CT_${oe}`);se&&se.setOrientation&&(se.setOrientation("coronal"),se.render())},children:"Coronal"})]}),be.jsxs("button",{style:{position:"absolute",top:40,left:8,zIndex:20,background:"#111",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 8px",cursor:"pointer",fontSize:"13px",opacity:.85,marginTop:"4px",display:"flex",alignItems:"center",gap:"6px"},title:"Toggle Fullscreen",onClick:ge=>{ge.stopPropagation();const se=k.current[oe];document.fullscreenElement===se?document.exitFullscreen():se!=null&&se.requestFullscreen?se.requestFullscreen():se!=null&&se.webkitRequestFullscreen?se.webkitRequestFullscreen():se!=null&&se.msRequestFullscreen&&se.msRequestFullscreen()},onMouseEnter:()=>h(oe),onMouseLeave:()=>h(null),children:[be.jsx("span",{style:{fontSize:"18px",lineHeight:1},children:"⛶"}),d===oe&&be.jsx("span",{style:{marginLeft:6},children:document.fullscreenElement===k.current[oe]?"Exit Fullscreen":"Fullscreen"})]}),"// Annotations buttons",Te[oe]==="stack"&&(()=>{var cn;const ge=E[oe],Oe=(Ru()||[]).filter(jt=>jt.metadata&&jt.metadata.referencedImageId&&ge.includes(jt.metadata.referencedImageId)&&jt.metadata.toolName!==Ri.toolName);if(!Oe.length)return null;const ke=y.current,Fe=ke==null?void 0:ke.getViewport(`CT_${oe}`),$e=((cn=Fe==null?void 0:Fe.getCurrentImageIdIndex)==null?void 0:cn.call(Fe))??0,Ue=ge[$e],mt=Oe.filter(jt=>jt.metadata.referencedImageId===Ue),Et=YV[oe];return be.jsxs("div",{style:{position:"absolute",left:"50%",bottom:60,transform:"translateX(-50%)",zIndex:30,display:"flex",gap:4,pointerEvents:"auto",alignItems:"center"},children:[be.jsx("button",{style:{background:"rgba(30,30,30,0.7)",color:"#fff",border:"none",borderRadius:"50%",width:28,height:28,fontSize:"16px",fontWeight:"bold",cursor:"pointer",opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 4px rgba(0,0,0,0.18)",transition:"opacity 0.2s"},title:"Previous Annotation","aria-label":"Previous Annotation",onClick:()=>{const jt=y.current,st=jt==null?void 0:jt.getViewport(`CT_${oe}`);if(!st||typeof st.getCurrentImageIdIndex!="function")return;const An=st.getCurrentImageIdIndex(),Gr=s6(An,ge,Oe,-1);if(Gr!==null&&typeof st.setImageIdIndex=="function"){Ho(st.element,{imageIndex:Gr}),ji(oe,st);const Or=ge[Gr],Vo=Oe.filter(Hi=>Hi.metadata.referencedImageId===Or);Re(oe,Vo.length>0?Vo[0].annotationUID:null)}},children:be.jsx("span",{"aria-hidden":"true",children:"◀"})}),be.jsx("button",{style:{background:"rgba(30,30,30,0.7)",color:"#fff",border:"none",borderRadius:"50%",width:28,height:28,fontSize:"16px",fontWeight:"bold",cursor:"pointer",opacity:.7,display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 1px 4px rgba(0,0,0,0.18)",transition:"opacity 0.2s"},title:"Next Annotation","aria-label":"Next Annotation",onClick:()=>{const jt=y.current,st=jt==null?void 0:jt.getViewport(`CT_${oe}`);if(!st||typeof st.getCurrentImageIdIndex!="function")return;const An=st.getCurrentImageIdIndex(),Gr=s6(An,ge,Oe,1);if(Gr!==null&&typeof st.setImageIdIndex=="function"){Ho(st.element,{imageIndex:Gr}),ji(oe,st);const Or=ge[Gr],Vo=Oe.filter(Hi=>Hi.metadata.referencedImageId===Or);Re(oe,Vo.length>0?Vo[0].annotationUID:null)}},children:be.jsx("span",{"aria-hidden":"true",children:"▶"})}),mt.length>0&&be.jsx("div",{style:{display:"flex",gap:2,alignItems:"center"},children:mt.map(jt=>be.jsxs("div",{style:{display:"flex",alignItems:"center",background:Et===jt.annotationUID?"rgb(4, 225, 0)":"#444",color:Et===jt.annotationUID?"#222":"#fff",borderRadius:"4px",padding:"2px 6px",marginRight:2,cursor:"pointer",border:Et===jt.annotationUID?"2px solid #1976d2":"none",fontWeight:Et===jt.annotationUID?"bold":"normal"},onClick:()=>Re(oe,jt.annotationUID),children:[be.jsxs("span",{style:{marginRight:4},children:[Et===jt.annotationUID?"★ ":"",jt.metadata.toolName||"Annotation"]}),be.jsx("button",{style:{background:"#b71c1c",color:"#fff",border:"none",borderRadius:"50%",width:20,height:20,fontSize:"13px",fontWeight:"bold",cursor:"pointer",marginLeft:2,display:"flex",alignItems:"center",justifyContent:"center",opacity:.85},title:"Delete this annotation","aria-label":"Delete annotation",onClick:st=>{st.stopPropagation(),We(oe,jt.annotationUID,mt)},children:"🗑️"})]},jt.annotationUID))})]})})(),"// ...existing code...",be.jsx("div",{style:{position:"absolute",left:8,bottom:8,background:"rgba(0,0,0,0.7)",color:"#fff",padding:"6px 12px",borderRadius:"4px",fontSize:"14px",zIndex:10,pointerEvents:"none",minWidth:"120px",userSelect:"none"},children:Te[oe]==="stack"?be.jsxs(be.Fragment,{children:[be.jsxs("div",{children:["Image: ",(YS=he[oe])==null?void 0:YS.index," / ",(JS=he[oe])==null?void 0:JS.total]}),be.jsxs("div",{children:["WC: ",(ZS=he[oe])==null?void 0:ZS.windowCenter,"   WW: ",(QS=he[oe])==null?void 0:QS.windowWidth]})]}):be.jsxs("div",{children:["WC: ",(e4=he[oe])==null?void 0:e4.windowCenter,"   WW: ",(t4=he[oe])==null?void 0:t4.windowWidth]})}),be.jsx("div",{style:{position:"absolute",right:8,bottom:8,zIndex:10},children:be.jsxs("div",{className:"preset-menu",style:{background:"rgba(0,0,0,0.7)",color:"#fff",borderRadius:"4px",fontSize:"14px",minWidth:"120px",overflow:"hidden",cursor:"pointer",position:"relative",boxShadow:J[oe]?"0 2px 8px rgba(0,0,0,0.3)":void 0},children:[be.jsxs("div",{style:{padding:"6px 12px",fontWeight:"bold",userSelect:"none"},onClick:()=>ie(ge=>{const se=[...ge];return se[oe]=!se[oe],se}),children:["Presets",be.jsx("span",{style:{float:"right",fontWeight:"normal"},children:J[oe]?"▲":"▼"})]}),J[oe]&&be.jsx("div",{className:"preset-menu-content",style:{background:"rgba(0,0,0,0.95)",borderRadius:"0 0 4px 4px",padding:"6px 0 6px 0",display:"flex",flexDirection:"column",zIndex:11},children:F5e.map(ge=>be.jsx("button",{style:{display:"block",width:"100%",margin:"2px 0",background:"#333",color:"#fff",border:"none",borderRadius:"3px",cursor:"pointer",padding:"4px 0",fontSize:"13px",opacity:.9},onClick:()=>{ti(oe,ge.center,ge.width),ie(se=>{const Oe=[...se];return Oe[oe]=!1,Oe})},children:ge.name},ge.name))})]})}),Te[oe]==="stack"&&E[oe]&&be.jsx("div",{style:{position:"absolute",top:"10%",right:8,width:"12px",height:"80%",maxHeight:"100%",minHeight:0,zIndex:30,display:E[oe].length>0?"flex":"none",alignItems:"flex-start",justifyContent:"center",pointerEvents:"none",flexDirection:"column",padding:0},children:be.jsx("div",{style:{width:"8px",height:"100%",maxHeight:"100%",minHeight:0,borderRadius:"6px",background:"#222",position:"relative",display:"flex",flexDirection:"column",justifyContent:"flex-start",boxShadow:"0 0 8px #2196f3cc",overflow:"hidden"},children:E[oe].map((ge,se)=>{const Oe=!!Pe("imagePlaneModule",ge),ke=y.current;let Fe=-1;if(ke&&typeof ke.getViewport=="function"){const Ue=ke.getViewport(`CT_${oe}`);Ue&&typeof Ue.getCurrentImageIdIndex=="function"&&(Fe=Ue.getCurrentImageIdIndex())}const $e=se===Fe;return be.jsx("div",{style:{width:"100%",height:`${100/E[oe].length}%`,background:$e?"linear-gradient(to right, #ffeb3b 60%, #ff9800 100%)":Oe?"linear-gradient(to right, #4caf50 60%, #2196f3 100%)":"#444",opacity:Oe?.95:.4,transition:"background 0.3s, opacity 0.3s",borderBottom:se{const Ue=y.current,mt=Ue==null?void 0:Ue.getViewport(`CT_${oe}`);mt&&typeof mt.setImageIdIndex=="function"&&Te[oe]==="stack"&&(Ho(mt.element,{imageIndex:se}),ji(oe,mt))}},ge)})})}),Ie&&C.length>1&&be.jsx("div",{style:{position:"absolute",left:0,right:0,bottom:8,zIndex:20,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",width:"100%",background:"none",borderRadius:"0",padding:0},children:be.jsxs("div",{style:{position:"relative"},children:[be.jsxs("button",{style:{background:"#222",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"2px 8px",fontSize:"13px",marginRight:"6px",minWidth:120,textAlign:"left",cursor:"pointer"},onClick:()=>p(g===oe?null:oe),"aria-haspopup":"listbox","aria-expanded":g===oe,children:[(()=>{const ge=C[b[oe]||0],se=ge==null?void 0:ge.studyInstanceUID,ke=Bh&&se&&Bh===se?"#4caf50":"#888";return be.jsxs("span",{children:[be.jsx("span",{style:{color:ke,fontWeight:"bold",marginRight:6,fontSize:"16px",verticalAlign:"middle"},children:"●"}),"Stack ",b[oe]+1," (",(ge==null?void 0:ge.imageIds.length)||0," images)"]})})(),be.jsx("span",{style:{float:"right",fontSize:"12px"},children:"▼"})]}),g===oe&&be.jsx("div",{ref:ge=>{ge&&ge.focus()},tabIndex:0,style:{position:"absolute",left:0,bottom:"110%",background:"#222",border:"1px solid #444",borderRadius:"4px",boxShadow:"0 2px 8px rgba(0,0,0,0.3)",zIndex:100,minWidth:180,maxHeight:220,overflowY:"auto",overscrollBehavior:"contain",scrollbarWidth:"thin"},role:"listbox",onMouseDown:ge=>ge.stopPropagation(),onWheel:ge=>{const se=ge.currentTarget,{scrollTop:Oe,scrollHeight:ke,clientHeight:Fe}=se,$e=Oe===0,Ue=Oe+Fe>=ke-1;ge.deltaY<0&&$e||ge.deltaY>0&&Ue||(ge.stopPropagation(),ge.preventDefault(),se.scrollTop+=ge.deltaY)},onBlur:ge=>{const se=ge.relatedTarget,Oe=ge.currentTarget.parentElement;Oe!=null&&Oe.contains(se)||setTimeout(()=>p(null),100)},children:C.map((ge,se)=>{const Oe=ge.studyInstanceUID,Fe=Bh&&Oe&&Bh===Oe?"#4caf50":"#888",$e=ge.imageIds.length===0;return be.jsxs("div",{role:"option","aria-selected":b[oe]===se,style:{padding:"6px 12px",background:b[oe]===se?"#444":"#222",color:$e?"#aaa":"#fff",cursor:$e?"not-allowed":"pointer",display:"flex",alignItems:"center",fontWeight:b[oe]===se?"bold":"normal",borderBottom:"1px solid #333",userSelect:"none",opacity:$e?.6:1},tabIndex:-1,onMouseDown:Ue=>{Ue.preventDefault(),$e||(L(oe,se),p(null))},children:[be.jsx("span",{style:{color:Fe,fontWeight:"bold",marginRight:8,fontSize:"16px",verticalAlign:"middle"},children:"●"}),"Stack ",se+1," (",ge.imageIds.length," images",$e&&be.jsx("span",{style:{color:"#f44336",marginLeft:6},children:"(empty)"}),")"]},se)})})]})})]},oe))}return be.jsxs("div",{style:{position:"relative",inset:0,width:"100%",height:"100%",boxSizing:"border-box",background:"#222",padding:"12px",overflow:"hidden"},children:[R&&be.jsx("div",{style:{position:"absolute",zIndex:3e3,top:0,left:0,width:"100%",height:"100%",background:"rgba(0,0,0,0.7)",color:"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:28,fontWeight:"bold",letterSpacing:1},children:R==="annotations"?"Loading Annotations...":"Loading Viewer State..."}),be.jsxs("div",{children:[be.jsx("button",{style:{position:"absolute",top:"50%",transform:"translateY(-50%)",left:dn?250:-20,zIndex:200,width:40,height:40,background:"#222",color:"#fff",border:"none",borderRadius:"50%",fontWeight:"bold",cursor:"pointer",fontSize:"22px",boxShadow:"0 2px 8px rgba(0,0,0,0.2)",transition:"left 0.25s cubic-bezier(.4,2,.6,1), background 0.2s"},onClick:()=>Pn(oe=>!oe),"aria-label":"Open menu",children:"☰"}),dn&&be.jsx("div",{style:{position:"absolute",top:0,left:0,width:220,height:"100%",background:"#222",color:"#fff",zIndex:199,boxShadow:"2px 0 12px rgba(0,0,0,0.3)",flexDirection:"column",padding:"24px 16px 16px 16px",display:"flex",overflow:"hidden"},children:be.jsxs("div",{style:{flex:1,minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column"},children:[be.jsxs("div",{style:{fontWeight:"bold",fontSize:18,marginBottom:24},children:["Menu",be.jsx("button",{style:{float:"right",background:"transparent",color:"#fff",border:"none",fontSize:"22px",cursor:"pointer"},onClick:()=>Pn(!1),"aria-label":"Close menu",children:"×"})]}),be.jsx("button",{style:{padding:"10px 18px",background:"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>{var oe;return(oe=Gt.current)==null?void 0:oe.click()},children:"Load DICOM Folder"}),be.jsx("input",{ref:Gt,type:"file",style:{display:"none"},multiple:!0,onChange:sr,accept:".dcm,application/dicom"}),be.jsxs("div",{style:{marginBottom:"18px",display:"flex",alignItems:"center",gap:"8px"},children:[be.jsx("input",{type:"checkbox",id:"orderBySliceLocation",checked:U,onChange:oe=>z(oe.target.checked),style:{accentColor:"#666"}}),be.jsx("label",{htmlFor:"orderBySliceLocation",style:{fontSize:"15px",cursor:"pointer"},children:"Order by Slice Location"})]}),be.jsx("button",{style:{padding:"10px 18px",background:"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:ut,children:"Show DICOM Metadata"}),be.jsxs("button",{style:{padding:"10px 18px",background:A?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>G(oe=>!oe),children:[A?"Disable":"Enable"," Cross Reference Lines"]}),be.jsxs("button",{style:{padding:"10px 18px",background:P?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>N(oe=>!oe),children:[P?"Disable":"Enable"," Reference Lines"]}),be.jsx("button",{onClick:ne,style:{margin:8,padding:8},children:"Sort All Viewports by Slice Location"}),be.jsx("button",{style:{padding:"10px 18px",background:j?"#1976d2":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginBottom:"18px",width:"100%"},onClick:()=>K(oe=>!oe),children:j?"Disable Alt Key for Reference Cursors":"Enable Alt Key for Reference Cursors"})]})})]}),be.jsxs("div",{className:"grid-menu-hover-container",style:{position:"absolute",top:0,left:"50%",transform:"translateX(-50%)",zIndex:100,display:"flex",flexDirection:"column",alignItems:"center",width:"auto",height:"48px",pointerEvents:"none"},children:[be.jsx("div",{style:{position:"absolute",top:0,left:"50%",transform:"translateX(-50%)",width:80,height:14,zIndex:1,pointerEvents:"auto",background:"transparent"},onMouseEnter:()=>xe(!0),onFocus:()=>xe(!0),tabIndex:-1}),be.jsxs("button",{className:"grid-menu-btn",style:{position:"relative",top:Ml?"0":"-22px",opacity:Ml?1:.5,transition:"top 0.25s cubic-bezier(.4,2,.6,1), opacity 0.2s",padding:"6px 16px",background:"#222",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px",marginRight:"8px",boxShadow:"0 2px 8px rgba(0,0,0,0.2)",pointerEvents:Ml?"auto":"none",zIndex:2,display:Ml?"block":"none"},onMouseLeave:()=>xe(!1),onBlur:()=>xe(!1),onClick:()=>le(oe=>!oe),tabIndex:0,children:["Grid: ",ee.rows,"x",ee.cols," ▼"]}),fe&&be.jsx("div",{style:{position:"absolute",top:"110%",left:"50%",transform:"translateX(-50%)",background:"#222",color:"#fff",borderRadius:"6px",boxShadow:"0 2px 12px rgba(0,0,0,0.4)",padding:"12px",display:"grid",gridTemplateColumns:"repeat(3, 40px)",gap:"8px",zIndex:200,pointerEvents:"auto"},children:ae.map(oe=>be.jsxs("button",{style:{width:"40px",height:"40px",background:oe.rows===ee.rows&&oe.cols===ee.cols?"#444":"#333",color:"#fff",border:"none",borderRadius:"4px",fontWeight:"bold",cursor:"pointer",fontSize:"15px"},onClick:()=>{Le(),de({rows:oe.rows,cols:oe.cols}),le(!1)},children:[oe.rows,"x",oe.cols]},`${oe.rows}x${oe.cols}`))})]}),be.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",display:"grid",margin:3,gridTemplateRows:`repeat(${ee.rows}, 1fr)`,gridTemplateColumns:`repeat(${ee.cols}, 1fr)`,gap:"5px",zIndex:1},children:XS}),be.jsx("button",{style:{position:"absolute",top:8,right:8,zIndex:20,padding:"6px 12px",background:"#222",color:"#fff",border:"none",borderRadius:"4px",cursor:"pointer",opacity:.85,userSelect:"none"},onClick:()=>u(!0),children:"Settings"}),f&&be.jsx("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"rgba(0,0,0,0.4)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>u(!1),children:be.jsxs("div",{style:{background:"#222",color:"#fff",borderRadius:"8px",minWidth:"320px",minHeight:"180px",padding:"24px",boxShadow:"0 4px 24px rgba(0,0,0,0.4)",position:"relative"},onClick:oe=>oe.stopPropagation(),children:[be.jsx("div",{style:{fontSize:"20px",marginBottom:"16px"},children:"Settings"}),be.jsxs("div",{style:{marginBottom:"24px"},children:[be.jsx("div",{style:{marginBottom:12,fontWeight:"bold"},children:"Mouse Button Tool Bindings"}),o6.map(oe=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[oe.label," Button:"]}),be.jsx("select",{value:Z[oe.value],onChange:Ie=>te(ge=>({...ge,[oe.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:pf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))})]},oe.value)),be.jsxs("div",{style:{margin:"12px 0"},children:[be.jsxs("button",{style:{background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",fontSize:"14px",marginBottom:"8px"},onClick:()=>$(oe=>!oe),children:[V?"Hide":"Show"," Advanced Mouse Bindings"]}),V&&be.jsx("div",{style:{marginTop:8},children:op.slice(3).map(oe=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[oe.label,":"]}),be.jsxs("select",{value:Z[oe.value]||"",onChange:Ie=>te(ge=>({...ge,[oe.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),pf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},oe.value))})]}),be.jsx("div",{style:{margin:"18px 0 8px 0",fontWeight:"bold"},children:"Ctrl + Mouse Button Tool Bindings"}),o6.map(oe=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[oe.label," + Ctrl:"]}),be.jsxs("select",{value:me[oe.value]||"",onChange:Ie=>X(ge=>({...ge,[oe.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),pf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},oe.value+"_ctrl")),be.jsxs("div",{style:{margin:"12px 0"},children:[be.jsxs("button",{style:{background:"#333",color:"#fff",border:"none",borderRadius:"4px",padding:"4px 12px",cursor:"pointer",fontSize:"14px",marginBottom:"8px"},onClick:()=>Y(oe=>!oe),children:[H?"Hide":"Show"," Advanced Ctrl + Mouse Bindings"]}),H&&be.jsx("div",{style:{marginTop:8},children:op.slice(3).map(oe=>be.jsxs("div",{style:{marginBottom:10},children:[be.jsxs("label",{style:{marginRight:8},children:[oe.label," + Ctrl:"]}),be.jsxs("select",{value:me[oe.value]||"",onChange:Ie=>X(ge=>({...ge,[oe.value]:Ie.target.value})),style:{background:"#333",color:"#fff",border:"1px solid #444",borderRadius:"4px",padding:"4px 8px",fontSize:"14px"},children:[be.jsx("option",{value:"",children:"(None)"}),pf.map(Ie=>be.jsx("option",{value:Ie.value,children:Ie.label},Ie.value))]})]},oe.value+"_ctrl"))})]})]}),be.jsx("button",{style:{position:"absolute",top:12,right:12,background:"transparent",color:"#fff",border:"none",fontSize:"20px",cursor:"pointer"},onClick:()=>u(!1),"aria-label":"Close",children:"×"})]})}),Ve&&be.jsx("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0,0,0,0.5)",zIndex:2e3,display:"flex",alignItems:"center",justifyContent:"center"},onClick:()=>ue(!1),children:be.jsxs("div",{style:{background:"#222",color:"#fff",borderRadius:"8px",minWidth:"320px",maxWidth:"80vw",maxHeight:"80vh",padding:"24px",boxShadow:"0 4px 24px rgba(0,0,0,0.4)",position:"relative",overflow:"auto"},onClick:oe=>oe.stopPropagation(),children:[be.jsx("div",{style:{fontSize:"20px",marginBottom:"16px"},children:"DICOM Metadata"}),Ee,be.jsx("button",{style:{position:"absolute",top:12,right:12,background:"transparent",color:"#fff",border:"none",fontSize:"20px",cursor:"pointer"},onClick:()=>ue(!1),"aria-label":"Close",children:"×"})]})})]})}function U5e(t){console.log("Setting up tools...",t),pr(o0),pr(a0),pr(yl),pr(c0),pr(s0),pr(xl),pr(rc),pr(ic),pr(tc),pr(u0),pr(vl),pr(Za),pr(l0),pr(Ri),pr(Ko),pr(el),pr(ih);let e=Wn(t);return e||(e=oL(t),e.addTool(a0.toolName),e.addTool(o0.toolName),e.addTool(c0.toolName),e.addTool(yl.toolName,{loop:!1}),e.addTool(s0.toolName),e.addTool(xl.toolName),e.addTool(ih.toolName,{getTextCallback:()=>""}),e.addTool(ic.toolName),e.addTool(rc.toolName,{statsCalculator:()=>null}),e.addTool(tc.toolName,{calculateStats:!1,getTextCallback:()=>""}),e.addTool(u0.toolName,{getTextCallback:()=>""}),e.addTool(vl.toolName,{calculateStats:!1}),e.addTool(Za.toolName,{}),e.addTool(l0.toolName,{}),e.addTool(el.toolName),e.addTool(Ri.toolName)),e}function s6(t,e,r,n){if(!r.length||!e.length)return null;const i=r.map(o=>e.findIndex(a=>a===o.metadata.referencedImageId)).filter(o=>o!==-1).sort((o,a)=>o-a);if(!i.length)return null;if(n===1){for(let o of i)if(o>t)return o;return i[0]}else{for(let o=i.length-1;o>=0;o--)if(i[o]`wadouri:/test_images/stack2/IMG${r+1}.dcm`),Array.from({length:25},(e,r)=>`wadouri:/test_images/stack5/IMG${r+1}.dcm`),Array.from({length:26},(e,r)=>`wadouri:/test_images/stack3/IMG${r+1}.dcm`)]}const c6=t=>t.map(e=>e.startsWith("wadouri:")?e:`wadouri:${e}`);function XV(){document.querySelectorAll(".dicom-viewer-test-root").forEach(r=>{const n=r.id||"",i=()=>B5e();D5(r).render(be.jsx(a6,{container_id:n,imageStacks:i}))}),document.querySelectorAll(".dicom-viewer-root").forEach(r=>{const n=r.id||"";let i;const o=r.getAttribute("data-images");if(o){let f;try{f=JSON.parse(o)}catch(u){console.error("Invalid data-images JSON:",u),f=[]}Array.isArray(f)&&f.length>0&&typeof f[0]=="string"?i=()=>Promise.resolve([c6(f)]):Array.isArray(f)?i=()=>Promise.resolve(f.map(u=>Array.isArray(u)?c6(u):[])):i=()=>Promise.resolve([[]])}else i=()=>Promise.resolve([[]]);const a=r.getAttribute("data-auto-cache-stack"),s=a==="true"||a==="1",c=r.getAttribute("data-annotationjson"),l=r.getAttribute("data-viewerstate");console.log("Mounting DICOM viewer:"),console.log(l,c,s),D5(r).render(be.jsx(a6,{container_id:n,imageStacks:i,autoCacheStack:s,annotationJson:c||void 0,viewerState:l||void 0}))})}XV();window.mountDicomViewers=XV; diff --git a/templates/base.html b/templates/base.html index e93ff15b..8acc2dec 100644 --- a/templates/base.html +++ b/templates/base.html @@ -70,7 +70,7 @@ - + {% block js %} {% endblock %}