@ohif/extension-tmtv 3.13.0-beta.122 → 3.13.0-beta.123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ohif/core"),require("@cornerstonejs/adapters"),require("@ohif/extension-cornerstone"),require("@ohif/core/src/utils"),require("@ohif/ui-next"),require("@cornerstonejs/core"),require("dcmjs"),require("@ohif/i18n"),require("@cornerstonejs/tools"),require("@ohif/core/src"),require("@ohif/extension-default")):"function"==typeof define&&define.amd?define(["@ohif/core","@cornerstonejs/adapters","@ohif/extension-cornerstone","@ohif/core/src/utils","@ohif/ui-next","@cornerstonejs/core","dcmjs","@ohif/i18n","@cornerstonejs/tools","@ohif/core/src","@ohif/extension-default"],t):"object"==typeof exports?exports["ohif-extension-tmtv"]=t(require("@ohif/core"),require("@cornerstonejs/adapters"),require("@ohif/extension-cornerstone"),require("@ohif/core/src/utils"),require("@ohif/ui-next"),require("@cornerstonejs/core"),require("dcmjs"),require("@ohif/i18n"),require("@cornerstonejs/tools"),require("@ohif/core/src"),require("@ohif/extension-default")):e["ohif-extension-tmtv"]=t(e["@ohif/core"],e["@cornerstonejs/adapters"],e["@ohif/extension-cornerstone"],e["@ohif/core/src/utils"],e["@ohif/ui-next"],e["@cornerstonejs/core"],e.dcmjs,e["@ohif/i18n"],e["@cornerstonejs/tools"],e["@ohif/core/src"],e["@ohif/extension-default"])}(globalThis,(e,t,n,o,a,r,i,s,l,u,c)=>(()=>{var p={856(e,t,n){"use strict";var o=n(183);function a(){}function r(){}r.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,r,i){if(i!==o){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:a};return n.PropTypes=n,n}},598(e,t,n){e.exports=n(856)()},183(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},249(e,t){"use strict";var n=Symbol.for("react.element"),o=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=(Symbol.for("react.strict_mode"),Symbol.for("react.profiler"),Symbol.for("react.provider")),i=Symbol.for("react.context"),s=(Symbol.for("react.forward_ref"),Symbol.for("react.suspense"),Symbol.for("react.memo"),Symbol.for("react.lazy"),Symbol.iterator),l={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},u=Object.assign,c={};function p(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||l}function d(){}function f(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||l}p.prototype.isReactComponent={},p.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)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,e,t,"setState")},p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},d.prototype=p.prototype;var h=f.prototype=new d;h.constructor=f,u(h,p.prototype),h.isPureReactComponent=!0;var g=Array.isArray,m=Object.prototype.hasOwnProperty,y=null,v={key:!0,ref:!0,__self:!0,__source:!0},b=null;t.Fragment=a,t.createContext=function(e){return(e={$$typeof:i,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:r,_context:e},e.Consumer=e},t.createElement=function(e,t,o){var a,r={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)m.call(t,a)&&!v.hasOwnProperty(a)&&(r[a]=t[a]);var l=arguments.length-2;if(1===l)r.children=o;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];r.children=u}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===r[a]&&(r[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:r,_owner:y}},t.useCallback=function(e,t){return b.useCallback(e,t)},t.useContext=function(e){return b.useContext(e)},t.useEffect=function(e,t){return b.useEffect(e,t)},t.useReducer=function(e,t,n){return b.useReducer(e,t,n)},t.useRef=function(e){return b.useRef(e)},t.useState=function(e){return b.useState(e)}},326(e,t,n){"use strict";e.exports=n(249)},741(e){e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},142(e){"use strict";e.exports=t},557(e){"use strict";e.exports=r},713(e){"use strict";e.exports=l},2(t){"use strict";t.exports=e},459(e){"use strict";e.exports=u},141(e){"use strict";e.exports=o},669(e){"use strict";e.exports=n},438(e){"use strict";e.exports=c},545(e){"use strict";e.exports=s},55(e){"use strict";e.exports=a},111(e){"use strict";e.exports=i}},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return p[e](n,n.exports,f),n.exports}f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},f.d=(e,t)=>{for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),f.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var h={};return(()=>{"use strict";f.r(h),f.d(h,{default:()=>tr,toolGroupIds:()=>tt});let e=JSON.parse('{"UU":"@ohif/extension-tmtv"}').UU,t=e=>({type:"cameraPosition",id:e,source:!0,target:!0}),n={type:"hydrateseg",id:"sameFORId",source:!0,target:!0,options:{matchingRules:["sameFOR"]}},o={viewportOptions:{viewportId:"ctAXIAL",viewportType:"volume",orientation:"axial",toolGroupId:"ctToolGroup",initialImageOptions:{preset:"first"},syncGroups:[t("axialSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},n]},displaySets:[{id:"ctDisplaySet"}]},a={viewportOptions:{viewportId:"ctSAGITTAL",viewportType:"volume",orientation:"sagittal",toolGroupId:"ctToolGroup",syncGroups:[t("sagittalSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},n]},displaySets:[{id:"ctDisplaySet"}]},r={viewportOptions:{viewportId:"ctCORONAL",viewportType:"volume",orientation:"coronal",toolGroupId:"ctToolGroup",syncGroups:[t("coronalSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},n]},displaySets:[{id:"ctDisplaySet"}]},i={viewportOptions:{viewportId:"ptAXIAL",viewportType:"volume",background:[1,1,1],orientation:"axial",toolGroupId:"ptToolGroup",initialImageOptions:{preset:"first"},syncGroups:[t("axialSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},s={viewportOptions:{viewportId:"ptSAGITTAL",viewportType:"volume",orientation:"sagittal",background:[1,1,1],toolGroupId:"ptToolGroup",syncGroups:[t("sagittalSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},l={viewportOptions:{viewportId:"ptCORONAL",viewportType:"volume",orientation:"coronal",background:[1,1,1],toolGroupId:"ptToolGroup",syncGroups:[t("coronalSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},u={viewportOptions:{viewportId:"fusionAXIAL",viewportType:"volume",orientation:"axial",toolGroupId:"fusionToolGroup",initialImageOptions:{preset:"first"},syncGroups:[t("axialSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},c={viewportOptions:{viewportId:"fusionSAGITTAL",viewportType:"volume",orientation:"sagittal",toolGroupId:"fusionToolGroup",syncGroups:[t("sagittalSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},p={viewportOptions:{viewportId:"fusionCoronal",viewportType:"volume",orientation:"coronal",toolGroupId:"fusionToolGroup",syncGroups:[t("coronalSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},n]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},d={viewportOptions:{viewportId:"mipSagittal",viewportType:"volume",orientation:"sagittal",background:[1,1,1],toolGroupId:"mipToolGroup",syncGroups:[{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},n],customViewportProps:{hideOverlays:!0}},displaySets:[{options:{blendMode:"MIP",slabThickness:"fullVolume",voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},g={name:"default",id:"default",viewportStructure:{layoutType:"grid",properties:{rows:3,columns:4,layoutOptions:[{x:0,y:0,width:1/4,height:1/3},{x:1/4,y:0,width:1/4,height:1/3},{x:.5,y:0,width:1/4,height:1/3},{x:0,y:1/3,width:1/4,height:1/3},{x:1/4,y:1/3,width:1/4,height:1/3},{x:.5,y:1/3,width:1/4,height:1/3},{x:0,y:2/3,width:1/4,height:1/3},{x:1/4,y:2/3,width:1/4,height:1/3},{x:.5,y:2/3,width:1/4,height:1/3},{x:3/4,y:0,width:1/4,height:1}]}},viewports:[o,a,r,i,s,l,u,c,p,d],createdDate:"2021-02-23T18:32:42.850Z"},m={name:"2x4-layout",id:"2x4-layout",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:4,layoutOptions:[{x:0,y:0,width:1/4,height:.5},{x:1/4,y:0,width:1/4,height:.5},{x:.5,y:0,width:1/4,height:.5},{x:3/4,y:0,width:1/4,height:1},{x:0,y:.5,width:1/4,height:.5},{x:1/4,y:.5,width:1/4,height:.5},{x:.5,y:.5,width:1/4,height:.5}]}},viewports:[l,s,i,d,p,c,u]},y={id:"@ohif/extension-tmtv.hangingProtocolModule.ptCT",locked:!0,name:"Default",createdDate:"2021-02-23T19:22:08.894Z",modifiedDate:"2022-10-04T19:22:08.894Z",availableTo:{},editableBy:{},imageLoadStrategy:"interleaveTopToBottom",protocolMatchingRules:[{attribute:"ModalitiesInStudy",constraint:{contains:["CT","PT"]}},{attribute:"StudyDescription",constraint:{contains:"PETCT"}},{attribute:"StudyDescription",constraint:{contains:"PET/CT"}}],displaySetSelectors:{ctDisplaySet:{seriesMatchingRules:[{attribute:"Modality",constraint:{equals:{value:"CT"}},required:!0},{attribute:"isReconstructable",constraint:{equals:{value:!0}},required:!0},{attribute:"SeriesDescription",constraint:{contains:"CT"}},{attribute:"SeriesDescription",constraint:{contains:"CT WB"}}]},ptDisplaySet:{seriesMatchingRules:[{attribute:"Modality",constraint:{equals:"PT"},required:!0},{attribute:"isReconstructable",constraint:{equals:{value:!0}},required:!0},{attribute:"SeriesDescription",constraint:{contains:"Corrected"}},{weight:2,attribute:"SeriesDescription",constraint:{doesNotContain:{value:"Uncorrected"}}}]}},stages:[g,{name:"Fusion 2x2",id:"Fusion-2x2",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:2}},viewports:[o,u,i,d]},{name:"2x3-layout",id:"2x3-layout",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:3}},viewports:[o,a,r,i,s,l]},m],numberOfPriorsReferenced:-1};var v,b=f(326),S=f(598),T=f.n(S),x=f(2),w=f.n(x);function R(e){return(R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e){var t=function(e,t){if("object"!=R(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=R(o))return o;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==R(t)?t:t+""}function I(){if(console&&console.warn){for(var e,t=arguments.length,n=Array(t),o=0;o<t;o++)n[o]=arguments[o];"string"==typeof n[0]&&(n[0]="react-i18next:: ".concat(n[0])),(e=console).warn.apply(e,n)}}f(741),Object.create(null);var E={};function C(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&E[t[0]]||("string"==typeof t[0]&&(E[t[0]]=new Date),I.apply(void 0,t))}var k=function(e,t){return function(){e.isInitialized?t():e.on("initialized",function n(){setTimeout(function(){e.off("initialized",n)},0),t()})}};function L(e,t,n){e.loadNamespaces(t,k(e,n))}function N(e,t,n,o){"string"==typeof n&&(n=[n]),n.forEach(function(t){0>e.options.ns.indexOf(t)&&e.options.ns.push(t)}),e.loadLanguages(t,k(e,o))}var P=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,j={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"\xa9","&#169;":"\xa9","&reg;":"\xae","&#174;":"\xae","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},D=function(e){return j[e]},B={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:function(e){return e.replace(P,D)}},M=(0,b.createContext)(),A=function(){var e;function t(){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.usedNamespaces={}}return e=[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach(function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}],function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,O(o.key),o)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}();function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach(function(t){var o,a;o=t,a=n[t],(o=O(o))in e?Object.defineProperty(e,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[o]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var q=function(e,t){var n=(0,b.useRef)();return(0,b.useEffect)(function(){n.current=t?n.current:e},[e,t]),n.current};function W(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.i18n,a=(0,b.useContext)(M)||{},r=a.i18n,i=a.defaultNS,s=o||r||v;if(s&&!s.reportNamespaces&&(s.reportNamespaces=new A),!s){C("You will need to pass in an i18next instance by using initReactI18next");var l=function(e,t){return"string"==typeof t?t:t&&"object"===R(t)&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e},u=[l,{},!1];return u.t=l,u.i18n={},u.ready=!1,u}s.options.react&&void 0!==s.options.react.wait&&C("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var c=V(V(V({},B),s.options.react),n),p=c.useSuspense,d=c.keyPrefix,f=e||i||s.options&&s.options.defaultNS;f="string"==typeof f?[f]:f||["translation"],s.reportNamespaces.addUsedNamespaces&&s.reportNamespaces.addUsedNamespaces(f);var h=(s.isInitialized||s.initializedStoreOnce)&&f.every(function(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0===t.options.ignoreJSONStructure?function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=t.languages[0],a=!!t.options&&t.options.fallbackLng,r=t.languages[t.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return -1===o||2===o};return(!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1)||!t.services.backendConnector.backend||!t.isLanguageChangingTo||!!i(t.isLanguageChangingTo,e))&&!!(t.hasResourceBundle(o,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||i(o,e)&&(!a||i(r,e)))}(e,t,n):t.hasLoadedNamespace(e,{lng:n.lng,precheck:function(t,o){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(t.isLanguageChangingTo,e))return!1}}):(C("i18n.languages were undefined or empty",t.languages),!0)}(e,s,c)});function g(){return s.getFixedT(n.lng||null,"fallback"===c.nsMode?f:f[0],d)}var m=function(e){if(Array.isArray(e))return e}(t=(0,b.useState)(g))||function(e){var t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,r,i=[],s=!0,l=!1;try{a=(t=t.call(e)).next,!1;for(;!(s=(n=a.call(t)).done)&&(i.push(n.value),2!==i.length);s=!0);}catch(e){l=!0,o=e}finally{try{if(!s&&null!=t.return&&(r=t.return(),Object(r)!==r))return}finally{if(l)throw o}}return i}}(t)||function(e){if(e){if("string"==typeof e)return F(e,2);var t=({}).toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?F(e,2):void 0}}(t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),y=m[0],S=m[1],T=f.join();n.lng&&(T="".concat(n.lng).concat(T));var x=q(T),w=(0,b.useRef)(!0);(0,b.useEffect)(function(){var e=c.bindI18n,t=c.bindI18nStore;function o(){w.current&&S(g)}return w.current=!0,h||p||(n.lng?N(s,n.lng,f,function(){w.current&&S(g)}):L(s,f,function(){w.current&&S(g)})),h&&x&&x!==T&&w.current&&S(g),e&&s&&s.on(e,o),t&&s&&s.store.on(t,o),function(){w.current=!1,e&&s&&e.split(" ").forEach(function(e){return s.off(e,o)}),t&&s&&t.split(" ").forEach(function(e){return s.store.off(e,o)})}},[s,T]);var O=(0,b.useRef)(!0);(0,b.useEffect)(function(){w.current&&!O.current&&S(g),O.current=!1},[s,d]);var I=[y,s,h];if(I.t=y,I.i18n=s,I.ready=h,h||!h&&!p)return I;throw new Promise(function(e){n.lng?N(s,n.lng,f,function(){return e()}):L(s,f,function(){return e()})})}var _=f(55),G=f(459);function H(){return(H=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(null,arguments)}let z={PatientWeight:null,PatientSex:null,SeriesTime:null,RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:null,RadionuclideHalfLife:null,RadiopharmaceuticalStartTime:null}},$=({children:e,className:t,...n})=>b.createElement("div",H({className:`flex flex-row items-center space-x-4 ${t||""}`},n),e);function K(){let{commandsManager:e,servicesManager:t}=(0,G.useSystem)(),{t:n}=W("PanelSUV"),{displaySetService:o,hangingProtocolService:a}=t.services,[r,i]=(0,b.useState)(z),[s,l]=(0,b.useState)(null),u=e=>{i(t=>{let n={...t};return Object.keys(e).forEach(o=>{"object"==typeof e[o]?n[o]={...t[o],...e[o]}:n[o]=e[o]}),n})},c=t=>{let n=e.runCommand("getMatchingPTDisplaySet",{viewportMatchDetails:t});if(!n)return;let o=e.runCommand("getPTMetadata",{ptDisplaySet:n});return{ptDisplaySet:n,metadata:o}};return(0,b.useEffect)(()=>{let e=o.getActiveDisplaySets(),{viewportMatchDetails:t}=a.getMatchDetails();if(!e.length)return;let n=c(t);if(!n)return;let{ptDisplaySet:r,metadata:s}=n;l(r),i(s)},[]),(0,b.useEffect)(()=>{let{unsubscribe:e}=a.subscribe(a.EVENTS.PROTOCOL_CHANGED,({viewportMatchDetails:e})=>{let t=c(e);if(!t)return;let{ptDisplaySet:n,metadata:o}=t;l(n),i(o)});return()=>{e()}},[]),b.createElement(b.Fragment,null,b.createElement("div",{className:"ohif-scrollbar flex min-h-0 flex-auto select-none flex-col justify-between overflow-auto"},b.createElement("div",{className:"flex min-h-0 flex-1 flex-col bg-background text-base"},b.createElement(_.PanelSection,{defaultOpen:!0},b.createElement(_.PanelSection.Header,null,n("Patient Information")),b.createElement(_.PanelSection.Content,null,b.createElement("div",{className:"bg-muted flex flex-col gap-3 p-2"},b.createElement($,null,b.createElement($.Label,null,n("Patient Sex")),b.createElement($.Input,{value:r.PatientSex||"",onChange:e=>{u({PatientSex:e.target.value})}})),b.createElement($,null,b.createElement($.Label,{unit:"kg"},n("Weight")),b.createElement($.Input,{value:r.PatientWeight||"",onChange:e=>{u({PatientWeight:e.target.value})},id:"weight-input"})),b.createElement($,null,b.createElement($.Label,{unit:"bq"},n("Total Dose")),b.createElement($.Input,{value:r.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:e.target.value}})}})),b.createElement($,null,b.createElement($.Label,{unit:"s"},n("Half Life")),b.createElement($.Input,{value:r.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadionuclideHalfLife:e.target.value}})}})),b.createElement($,null,b.createElement($.Label,{unit:"s"},n("Injection Time")),b.createElement($.Input,{value:r.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadiopharmaceuticalStartTime:e.target.value}})}})),b.createElement($,null,b.createElement($.Label,{unit:"s"},n("Acquisition Time")),b.createElement($.Input,{value:r.SeriesTime||"",onChange:()=>{}})),b.createElement(_.Button,{variant:"default",size:"sm",className:"self-end px-4",onClick:function(){if(!s)throw Error("No ptDisplaySet found");x.DicomMetadataStore.updateMetadataForSeries(s.StudyInstanceUID,s.SeriesInstanceUID,r),o.setDisplaySetMetadataInvalidated(s.displaySetInstanceUID),setTimeout(()=>{e.runCommand("resetCrosshairs")},0)}},n("Reload Data"))))))))}$.Label=({children:e,unit:t,className:n,...o})=>b.createElement(_.Label,H({className:`min-w-32 flex-shrink-0 ${n||""}`},o),e,t&&b.createElement("span",{className:"text-muted-foreground"}," ",t)),$.Input=({className:e,...t})=>b.createElement(_.Input,H({className:`h-7 flex-1 ${e||""}`},t)),$.Label.displayName="InputRow.Label",$.Input.displayName="InputRow.Input",K.propTypes={servicesManager:T().shape({services:T().shape({measurementService:T().shape({getMeasurements:T().func.isRequired,subscribe:T().func.isRequired,EVENTS:T().object.isRequired,VALUE_TYPES:T().object.isRequired}).isRequired}).isRequired}).isRequired};var J=f(669);let Y=async({commandsManager:e,segmentationService:t})=>{let n=t.getSegmentations(),o=await e.run("calculateTMTV",{segmentations:n});n.forEach(e=>{e.cachedStats={...e.cachedStats,tmtv:o},t.addOrUpdateSegmentation(e)})};var Z=f(141);function X(){let{commandsManager:e,servicesManager:t}=(0,G.useSystem)(),{segmentationService:n}=t.services,{segmentationsWithRepresentations:o}=(0,J.useActiveViewportSegmentationRepresentations)(),a=o?.map(e=>e.segmentation.segmentationId)||[],r=o?.map(e=>e.segmentation)||[];(0,b.useEffect)(()=>{(async()=>{for(let t of a)await Y({segmentationId:t,commandsManager:e,segmentationService:n})})()},[]),(0,b.useEffect)(()=>{let t=(0,Z.debounce)(async t=>{let{segmentationId:o}=t;await Y({segmentationId:o,commandsManager:e,segmentationService:n})},100),o=n.subscribe(n.EVENTS.SEGMENTATION_DATA_MODIFIED,e=>{t(e)});return()=>{o.unsubscribe()}},[e,n]);let i=n.getSegmentationGroupStats(a),s=i?.tmtv;return b.createElement("div",{className:"mb-1 flex flex-col"},b.createElement("div",{className:"invisible-scrollbar overflow-y-auto overflow-x-hidden"},b.createElement("div",{className:"bg-popover flex items-baseline justify-between px-2 py-1"},b.createElement("div",{className:"py-1"},b.createElement("span",{className:"text-muted-foreground text-base font-bold uppercase"},"TMTV: "),b.createElement("span",{className:"text-foreground"},s?`${s.toFixed(3)} mL`:"")),b.createElement("div",{className:"flex items-center"},b.createElement(_.Button,{dataCY:"exportTmtvCsvReport",size:"sm",variant:"ghost",onClick:()=>{r.length&&e.runCommand("exportTMTVReportCSV",{segmentations:r,tmtv:s,config:{}})}},b.createElement("span",{className:"pl-1"},"CSV"))))))}var Q=f(438);function ee({configuration:e}){return b.createElement(b.Fragment,null,b.createElement(J.PanelSegmentation,{configuration:e},b.createElement(X,null)))}var et=f(545),en=f.n(et),eo=f(713);let ea=["RectangleROIStartEndThreshold","CircleROIStartEndThreshold"],er=(e,t)=>{},ei=(e,t)=>{},{CORNERSTONE_3D_TOOLS_SOURCE_NAME:es,CORNERSTONE_3D_TOOLS_SOURCE_VERSION:el}=J.Enums;var eu=f(557);let ec=function(e,t,n){if("range"===n.strategy)return{ptLower:Number(n.ptLower),ptUpper:Number(n.ptUpper),ctLower:Number(n.ctLower),ctUpper:Number(n.ctUpper)};let{weight:o}=n;return{ctLower:-1/0,ctUpper:Infinity,ptLower:o*function(e,t){let{imageIds:n}=e,o=eu.cache.getVolumeContainingImageId(n[0]);if(!o)throw Error("No volume found for display set");let{volume:a}=o,{voxelManager:r}=a,{fn:i,baseValue:s}={fn:(e,t)=>(e>t&&(t=e),t),baseValue:-1/0},l=s,u=eo.utilities.rectangleROITool.getBoundsIJKFromRectangleAnnotations(t,a);return r.forEach(({value:e})=>{l=i(e,l)},{boundsIJK:u}),l}(t,e.map(e=>eo.annotation.state.getAnnotation(e))),ptUpper:Infinity}},{downloadCsv:ep}=x.utils;var ed=f(111),ef=f.n(ed),eh=f(142);let{datasetToBlob:eg}=ef().data,em=x.classes.MetadataProvider,ey=function(e){let t=eg(eh.adaptersRT.Cornerstone3D.RTSS.generateRTSSFromAnnotations(e,em,x.DicomMetadataStore));var n=URL.createObjectURL(t);window.location.assign(n)},{SegmentationRepresentations:ev}=eo.Enums,{formatPN:eb}=x.utils,eS=x.classes.MetadataProvider,eT=["RectangleROIStartEndThreshold","RectangleROIThreshold","CircleROIStartEndThreshold"],ex="roi_stat",ew=function({config:e,dispatch:t,runCommand:n}){let{t:o}=W("ROIThresholdConfiguration"),a=[{value:ex,label:o("Max"),placeHolder:o("Max")},{value:"range",label:o("Range"),placeHolder:o("Range")}];return b.createElement("div",{className:"bg-muted flex flex-col space-y-4 p-px"},b.createElement("div",{className:"flex items-end space-x-3"},b.createElement("div",{className:"flex min-w-0 flex-1 flex-col"},b.createElement(_.Select,{value:e.strategy,onValueChange:e=>{t({type:"setStrategy",payload:{strategy:e}})}},b.createElement(_.SelectTrigger,{className:"w-full"},b.createElement(_.SelectValue,{placeholder:a.find(t=>t.value===e.strategy)?.placeHolder})),b.createElement(_.SelectContent,{className:""},a.map(e=>b.createElement(_.SelectItem,{key:e.value,value:e.value},e.label))))),b.createElement("div",{className:"flex-shrink-0"},b.createElement("div",{className:"flex justify-end space-x-2"},b.createElement(_.Button,{variant:"secondary",onClick:()=>n("setStartSliceForROIThresholdTool")},o("Start")),b.createElement(_.Button,{variant:"secondary",onClick:()=>n("setEndSliceForROIThresholdTool")},o("End"))))),e.strategy===ex&&b.createElement("div",{className:"mr-0"},b.createElement("div",{className:"mb-2"},b.createElement(_.Label,null,o("Percentage of Max SUV"))),b.createElement(_.Input,{"data-cy":"percentage-of-max-suv-input",className:"w-full",type:"text",value:e.weight,onChange:e=>{let n=e.target.value;"."===n&&(n="0."),isNaN(Number(n))||0>Number(n)||Number(n)>1||t({type:"setWeight",payload:{weight:n}})}})),e.strategy!==ex&&b.createElement("div",{className:"mr-2 text-sm"},b.createElement("div",{className:"flex flex-col space-y-2"},b.createElement(_.Label,null,o("Lower & Upper Ranges")),b.createElement("div",{className:"flex items-center"},b.createElement("div",{className:"w-10 text-left"},b.createElement(_.Label,null,"CT")),b.createElement("div",{className:"flex flex-1 space-x-2"},b.createElement("div",{className:"flex-1"},b.createElement(_.Input,{className:"w-full",type:"text",value:e.ctLower,onChange:e=>{t({type:"setThreshold",payload:{ctLower:e.target.value}})}})),b.createElement("div",{className:"flex-1"},b.createElement(_.Input,{className:"w-full",type:"text",value:e.ctUpper,onChange:e=>{t({type:"setThreshold",payload:{ctUpper:e.target.value}})}})))),b.createElement("div",{className:"flex items-center"},b.createElement("div",{className:"w-10 text-left"},b.createElement(_.Label,null,"PT")),b.createElement("div",{className:"flex flex-1 space-x-2"},b.createElement("div",{className:"flex-1"},b.createElement(_.Input,{className:"w-full",type:"text",value:e.ptLower,onChange:e=>{t({type:"setThreshold",payload:{ptLower:e.target.value}})}})),b.createElement("div",{className:"flex-1"},b.createElement(_.Input,{className:"w-full",type:"text",value:e.ptUpper,onChange:e=>{t({type:"setThreshold",payload:{ptUpper:e.target.value}})}})))))))};function eR(e,t){let{payload:n}=t,{strategy:o,ctLower:a,ctUpper:r,ptLower:i,ptUpper:s,weight:l}=n;switch(t.type){case"setStrategy":return{...e,strategy:o};case"setThreshold":return{...e,ctLower:a||e.ctLower,ctUpper:r||e.ctUpper,ptLower:i||e.ptLower,ptUpper:s||e.ptUpper};case"setWeight":return{...e,weight:l};default:return e}}let eO=function(){let{commandsManager:e}=(0,x.useSystem)(),t=(0,J.useSegmentations)()[0],{t:n}=W("ROIThresholdConfiguration"),o=(0,b.useCallback)((t,n={})=>e.runCommand(t,n),[e]),[a,r]=(0,b.useReducer)(eR,{strategy:ex,ctLower:-1024,ctUpper:1024,ptLower:2.5,ptUpper:100,weight:.41}),i=(0,b.useCallback)(()=>{if(!t)return;let e=t.segmentationId,n=eo.segmentation.segmentIndex.getActiveSegmentIndex(e);o("thresholdSegmentationByRectangleROITool",{segmentationId:e,config:a,segmentIndex:n})},[t,a]);return b.createElement("div",{className:"invisible-scrollbar mb-1 flex flex-col overflow-y-auto overflow-x-hidden"},b.createElement(ew,{config:a,dispatch:r,runCommand:o}),t&&b.createElement(_.Button,{variant:"default",className:"my-3 mr-auto w-20",onClick:i},n("Run")))};function eI(e){return(eI="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function eE(e){var t=function(e,t){if("object"!=eI(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=eI(o))return o;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==eI(t)?t:t+""}function eC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})),o.forEach(function(t){var o,a;o=t,a=n[t],(o=eE(o))in e?Object.defineProperty(e,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[o]=a})}return e}function ek(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function eL(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,eE(o.key),o)}}function eN(e,t,n){return t&&eL(e.prototype,t),n&&eL(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function eP(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ej(e,t){if(t&&("object"==eI(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return eP(e)}function eD(e){return(eD=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eB(e,t){return(eB=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function eM(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&eB(e,t)}function eA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function eF(e,t){if(e){if("string"==typeof e)return eA(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?eA(e,t):void 0}}function eU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,a,r,i,s=[],l=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(o=r.call(n)).done)&&(s.push(o.value),s.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}(e,t)||eF(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eV={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){var n;console&&console[e]&&(n=console)[e].apply(n,function(e){if(Array.isArray(e))return eA(e)}(t)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||eF(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}},eq=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ek(this,e),this.init(t,n)}return eN(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||eV,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,o){return o&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,eC({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),eW=function(){function e(){ek(this,e),this.observers={}}return eN(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach(function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)}),this}},{key:"off",value:function(e,t){if(this.observers[e]){if(!t)return void delete this.observers[e];this.observers[e]=this.observers[e].filter(function(e){return e!==t})}}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,n)}),this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(n))})}}]),e}();function e_(){var e,t,n=new Promise(function(n,o){e=n,t=o});return n.resolve=e,n.reject=t,n}function eG(e){return null==e?"":""+e}function eH(e,t,n){function o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function a(){return!e||"string"==typeof e}for(var r="string"!=typeof t?[].concat(t):t.split(".");r.length>1;){if(a())return{};var i=o(r.shift());!e[i]&&n&&(e[i]=new n),e=e[i]}return a()?{}:{obj:e,k:o(r.shift())}}function ez(e,t,n){var o=eH(e,t,Object);o.obj[o.k]=n}function e$(e,t){var n=eH(e,t),o=n.obj,a=n.k;if(o)return o[a]}function eK(e,t,n){var o=e$(e,n);return void 0!==o?o:e$(t,n)}function eJ(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var eY={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function eZ(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return eY[e]}):e}var eX=function(e){function t(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return ek(this,t),n=ej(this,eD(t).call(this)),eW.call(eP(n)),n.data=e||{},n.options=o,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return eM(t,e),eN(t,[{key:"addNamespaces",value:function(e){0>this.options.ns.indexOf(e)&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,r=[e,t];return n&&"string"!=typeof n&&(r=r.concat(n)),n&&"string"==typeof n&&(r=r.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(r=e.split(".")),e$(this.data,r)}},{key:"addResource",value:function(e,t,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},r=this.options.keySeparator;void 0===r&&(r=".");var i=[e,t];n&&(i=i.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(i=e.split("."),o=t,t=i[1]),this.addNamespaces(t),ez(this.data,i,o),a.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var a in n)("string"==typeof n[a]||"[object Array]"===Object.prototype.toString.apply(n[a]))&&this.addResource(e,t,a,n[a],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(i=e.split("."),o=n,n=t,t=i[1]),this.addNamespaces(t);var s=e$(this.data,i)||{};o?function e(t,n,o){for(var a in n)a in t?"string"==typeof t[a]||t[a]instanceof String||"string"==typeof n[a]||n[a]instanceof String?o&&(t[a]=n[a]):e(t[a],n[a],o):t[a]=n[a];return t}(s,n,a):s=eC({},s,n),ez(this.data,i,s),r.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return(t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI)?eC({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(eW),eQ={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,o,a){var r=this;return e.forEach(function(e){r.processors[e]&&(t=r.processors[e].process(t,n,o,a))}),t}},e0=function(e){function t(e){var n,o,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ek(this,t),a=ej(this,eD(t).call(this)),eW.call(eP(a)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],o=eP(a),n.forEach(function(t){e[t]&&(o[t]=e[t])}),a.options=r,void 0===a.options.keySeparator&&(a.options.keySeparator="."),a.logger=eq.create("translator"),a}return eM(t,e),eN(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=t.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var r=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(r[0])>-1)&&(a=r.shift()),e=r.join(o)}return"string"==typeof a&&(a=[a]),{key:e,namespaces:a}}},{key:"translate",value:function(e,t){var n=this;if("object"!==eI(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=this.extractFromKey(e[e.length-1],t),r=a.key,i=a.namespaces,s=i[i.length-1],l=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&"cimode"===l.toLowerCase())return u?s+(t.nsSeparator||this.options.nsSeparator)+r:r;var c=this.resolve(e,t),p=c&&c.res,d=c&&c.usedKey||r,f=c&&c.exactUsedKey||r,h=Object.prototype.toString.apply(p),g=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,m=!this.i18nFormat||this.i18nFormat.handleAsObject,y="string"!=typeof p&&"boolean"!=typeof p&&"number"!=typeof p;if(m&&p&&y&&0>["[object Number]","[object Function]","[object RegExp]"].indexOf(h)&&("string"!=typeof g||"[object Array]"!==h)){if(!t.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(d,p,t):"key '".concat(r," (").concat(this.language,")' returned an object instead of string.");if(o){var v="[object Array]"===h,b=v?[]:{},S=v?f:d;for(var T in p)if(Object.prototype.hasOwnProperty.call(p,T)){var x="".concat(S).concat(o).concat(T);b[T]=this.translate(x,eC({},t,{joinArrays:!1,ns:i})),b[T]===x&&(b[T]=p[T])}p=b}}else if(m&&"string"==typeof g&&"[object Array]"===h)(p=p.join(g))&&(p=this.extendTranslation(p,e,t));else{var w=!1,R=!1;if(!this.isValidLookup(p)&&void 0!==t.defaultValue){if(w=!0,void 0!==t.count){var O=this.pluralResolver.getSuffix(l,t.count);p=t["defaultValue".concat(O)]}p||(p=t.defaultValue)}this.isValidLookup(p)||(R=!0,p=r);var I=t.defaultValue&&t.defaultValue!==p&&this.options.updateMissing;if(R||w||I){this.logger.log(I?"updateKey":"missingKey",l,s,r,I?t.defaultValue:p);var E=[],C=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&C&&C[0])for(var k=0;k<C.length;k++)E.push(C[k]);else"all"===this.options.saveMissingTo?E=this.languageUtils.toResolveHierarchy(t.lng||this.language):E.push(t.lng||this.language);var L=function(e,o){n.options.missingKeyHandler?n.options.missingKeyHandler(e,s,o,I?t.defaultValue:p,I,t):n.backendConnector&&n.backendConnector.saveMissing&&n.backendConnector.saveMissing(e,s,o,I?t.defaultValue:p,I,t),n.emit("missingKey",e,s,o,p)};if(this.options.saveMissing){var N=void 0!==t.count&&"string"!=typeof t.count;this.options.saveMissingPlurals&&N?E.forEach(function(e){n.pluralResolver.getPluralFormsOfKey(e,r).forEach(function(t){return L([e],t)})}):L(E,r)}}p=this.extendTranslation(p,e,t,c),R&&p===r&&this.options.appendNamespaceToMissingKey&&(p="".concat(s,":").concat(r)),R&&this.options.parseMissingKeyHandler&&(p=this.options.parseMissingKeyHandler(p))}return p}},{key:"extendTranslation",value:function(e,t,n,o){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,n,o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(eC({},n,{interpolation:eC({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=eC({},this.options.interpolation.defaultVariables,r)),e=this.interpolator.interpolate(e,r,n.lng||this.language,n),!1!==n.nest&&(e=this.interpolator.nest(e,function(){return a.translate.apply(a,arguments)},n)),n.interpolation&&this.interpolator.reset()}var i=n.postProcess||this.options.postProcess,s="string"==typeof i?[i]:i;return null!=e&&s&&s.length&&!1!==n.applyPostProcessor&&(e=eQ.handle(s,e,t,this.options&&this.options.postProcessPassResolved?eC({i18nResolved:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,a,r,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),u=l.key;n=u;var c=l.namespaces;i.options.fallbackNS&&(c=c.concat(i.options.fallbackNS));var p=void 0!==s.count&&"string"!=typeof s.count,d=void 0!==s.context&&"string"==typeof s.context&&""!==s.context,f=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);c.forEach(function(e){i.isValidLookup(t)||(r=e,i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(r)&&i.logger.warn('key "'.concat(n,'" for namespace "').concat(r,"\" won't get resolved as namespace was not yet loaded"),"This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"),f.forEach(function(n){if(!i.isValidLookup(t)){a=n;var r,l,c=u,f=[c];for(i.i18nFormat&&i.i18nFormat.addLookupKeys?i.i18nFormat.addLookupKeys(f,u,n,e,s):(p&&(r=i.pluralResolver.getSuffix(n,s.count)),p&&d&&f.push(c+r),d&&f.push(c+="".concat(i.options.contextSeparator).concat(s.context)),p&&f.push(c+=r));l=f.pop();)i.isValidLookup(t)||(o=l,t=i.getResource(n,e,l,s))}}))})}}),{res:t,usedKey:n,exactUsedKey:o,usedLng:a,usedNS:r}}},{key:"isValidLookup",value:function(e){return void 0!==e&&!(!this.options.returnNull&&null===e)&&!(!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}]),t}(eW);function e1(e){return e.charAt(0).toUpperCase()+e.slice(1)}var e2=function(){function e(t){ek(this,e),this.options=t,this.whitelist=this.options.whitelist||!1,this.logger=eq.create("languageUtils")}return eN(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return null;var t=e.split("-");return 2===t.length?null:(t.pop(),this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(e){return e.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=e1(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=e1(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=e1(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist)&&(e=this.getLanguagePartFromCode(e)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(e)>-1}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),a=[],r=function(e){e&&(n.isWhitelisted(e)?a.push(e):n.logger.warn("rejecting non-whitelisted language code: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&r(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(e))):"string"==typeof e&&r(this.formatLanguageCode(e)),o.forEach(function(e){0>a.indexOf(e)&&r(n.formatLanguageCode(e))}),a}}]),e}(),e3=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he"],nr:[1,2,20,21],fc:22}],e8={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0===e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(+(1!=e&&e%10!=1))},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0===e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0===e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:3*(e%100==3||e%100==4))},22:function(e){return Number(1===e?0:2===e?1:(e<0||e>10)&&e%10==0?2:3)}},e4=function(){function e(t){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ek(this,e),this.languageUtils=t,this.options=o,this.logger=eq.create("pluralResolver"),this.rules=(n={},e3.forEach(function(e){e.lngs.forEach(function(t){n[t]={numbers:e.nr,plurals:e8[e.fc]}})}),n)}return eN(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=this,o=[],a=this.getRule(e);return a&&a.numbers.forEach(function(a){var r=n.getSuffix(e,a);o.push("".concat(t).concat(r))}),o}},{key:"getSuffix",value:function(e,t){var n=this,o=this.getRule(e);if(o){var a=o.noAbs?o.plurals(t):o.plurals(Math.abs(t)),r=o.numbers[a];this.options.simplifyPluralSuffix&&2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):i():"v2"===this.options.compatibilityJSON?i():this.options.simplifyPluralSuffix&&2===o.numbers.length&&1===o.numbers[0]?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),e5=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ek(this,e),this.logger=eq.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return eN(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:eZ,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?eJ(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?eJ(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?eJ(t.nestingPrefix):t.nestingPrefixEscaped||eJ("$t("),this.nestingSuffix=t.nestingSuffix?eJ(t.nestingSuffix):t.nestingSuffixEscaped||eJ(")"),this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,o){var a,r,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(0>e.indexOf(s.formatSeparator))return eK(t,l,e);var o=e.split(s.formatSeparator),a=o.shift().trim(),r=o.join(s.formatSeparator).trim();return s.format(eK(t,l,a),r,n)};this.resetRegExp();var p=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler;for(i=0;a=this.regexpUnescape.exec(e);){if(void 0===(r=c(a[1].trim())))if("function"==typeof p){var d=p(e,a,o);r="string"==typeof d?d:""}else this.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),r="";else"string"==typeof r||this.useRawValueToEscape||(r=eG(r));if(e=e.replace(a[0],u(r)),this.regexpUnescape.lastIndex=0,++i>=this.maxReplaces)break}for(i=0;a=this.regexp.exec(e);){if(void 0===(r=c(a[1].trim())))if("function"==typeof p){var f=p(e,a,o);r="string"==typeof f?f:""}else this.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),r="";else"string"==typeof r||this.useRawValueToEscape||(r=eG(r));if(r=u(this.escapeValue?this.escape(r):r),e=e.replace(a[0],r),this.regexp.lastIndex=0,++i>=this.maxReplaces)break}return e}},{key:"nest",value:function(e,t){var n,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=eC({},a);function i(e,t){if(0>e.indexOf(","))return e;var n=e.split(",");e=n.shift();var o=n.join(",");o=(o=this.interpolate(o,r)).replace(/'/g,'"');try{r=JSON.parse(o),t&&(r=eC({},t,r))}catch(t){this.logger.error("failed parsing options string in nesting for key ".concat(e),t)}return delete r.defaultValue,e}for(r.applyPostProcessor=!1,delete r.defaultValue;n=this.nestingRegexp.exec(e);){if((o=t(i.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=eG(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}(),e9=function(e){function t(e,n,o){var a,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return ek(this,t),a=ej(this,eD(t).call(this)),eW.call(eP(a)),a.backend=e,a.store=n,a.services=o,a.languageUtils=o.languageUtils,a.options=r,a.logger=eq.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,r.backend,r),a}return eM(t,e),eN(t,[{key:"queueLoad",value:function(e,t,n,o){var a=this,r=[],i=[],s=[],l=[];return e.forEach(function(e){var o=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!n.reload&&a.store.hasResourceBundle(e,t)?a.state[s]=2:a.state[s]<0||(1===a.state[s]?0>i.indexOf(s)&&i.push(s):(a.state[s]=1,o=!1,0>i.indexOf(s)&&i.push(s),0>r.indexOf(s)&&r.push(s),0>l.indexOf(t)&&l.push(t)))}),o||s.push(e)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:o}),{toLoad:r,pending:i,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,n){var o=eU(e.split("|"),2),a=o[0],r=o[1];t&&this.emit("failedLoading",a,r,t),n&&this.store.addResourceBundle(a,r,n),this.state[e]=t?-1:2;var i={};this.queue.forEach(function(n){o=n.loaded,(l=(s=eH(o,[a],Object)).obj)[u=s.k]=l[u]||[],l[u].push(r);for(var o,s,l,u,c=n.pending,p=c.indexOf(e);-1!==p;)c.splice(p,1),p=c.indexOf(e);t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach(function(e){i[e]||(i[e]=[]),n.loaded[e].length&&n.loaded[e].forEach(function(t){0>i[e].indexOf(t)&&i[e].push(t)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,n){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,i=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,function(s,l){s&&l&&a<5?setTimeout(function(){o.read.call(o,e,t,n,a+1,2*r,i)},r):i(s,l)}):i(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var r=this.queueLoad(e,t,o,a);if(!r.toLoad.length)return r.pending.length||a(),null;r.toLoad.forEach(function(e){n.loadOne(e)})}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=eU(e.split("|"),2),a=o[0],r=o[1];this.read(a,r,"read",null,null,function(o,i){o&&t.logger.warn("".concat(n,"loading namespace ").concat(r," for language ").concat(a," failed"),o),!o&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(r," for language ").concat(a),i),t.loaded(e,o,i)})}},{key:"saveMissing",value:function(e,t,n,o,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" for namespace "').concat(t,'" as the namespace was not yet loaded'),"This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):(this.backend&&this.backend.create&&this.backend.create(e,t,n,o,null,eC({},r,{isUpdate:a})),e&&e[0]&&this.store.addResource(e[0],t,n,o))}}]),t}(eW);function e6(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&0>e.whitelist.indexOf("cimode")&&(e.whitelist=e.whitelist.concat(["cimode"])),e}function e7(){}var te=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(ek(this,t),e=ej(this,eD(t).call(this)),eW.call(eP(e)),e.options=e6(n),e.services={},e.logger=eq,e.modules={external:[]},o&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,o),ej(e,eP(e));setTimeout(function(){e.init(n,o)},0)}return e}return eM(t,e),eN(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof t&&(n=t,t={}),this.options=eC({},{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===eI(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===eI(e[2])||"object"===eI(e[3])){var n=e[3]||e[2];Object.keys(n).forEach(function(e){t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,n){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",maxReplaces:1e3}},this.options,e6(t)),this.format=this.options.interpolation.format,n||(n=e7),!this.options.isClone){this.modules.logger?eq.init(o(this.modules.logger),this.options):eq.init(null,this.options);var a=new e2(this.options);this.store=new eX(this.options.resources,this.options);var r=this.services;r.logger=eq,r.resourceStore=this.store,r.languageUtils=a,r.pluralResolver=new e4(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),r.interpolator=new e5(this.options),r.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},r.backendConnector=new e9(o(this.modules.backend),r.resourceStore,r,this.options),r.backendConnector.on("*",function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];e.emit.apply(e,[t].concat(o))}),this.modules.languageDetector&&(r.languageDetector=o(this.modules.languageDetector),r.languageDetector.init(r,this.options.detection,this.options)),this.modules.i18nFormat&&(r.i18nFormat=o(this.modules.i18nFormat),r.i18nFormat.init&&r.i18nFormat.init(this)),this.translator=new e0(this.services,this.options),this.translator.on("*",function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];e.emit.apply(e,[t].concat(o))}),this.modules.external.forEach(function(t){t.init&&t.init(e)})}["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}});var i=e_(),s=function(){e.changeLanguage(e.options.lng,function(t,o){e.isInitialized=!0,e.logger.log("initialized",e.options),e.emit("initialized",e.options),i.resolve(o),n(t,o)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),i}},{key:"loadResources",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e7;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&"cimode"===this.language.toLowerCase())return t();var n=[],o=function(t){t&&e.services.languageUtils.toResolveHierarchy(t).forEach(function(e){0>n.indexOf(e)&&n.push(e)})};this.language?o(this.language):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return o(e)}),this.options.preload&&this.options.preload.forEach(function(e){return o(e)}),this.services.backendConnector.load(n,this.options.ns,t)}else t(null)}},{key:"reloadResources",value:function(e,t,n){var o=e_();return e||(e=this.languages),t||(t=this.options.ns),n||(n=e7),this.services.backendConnector.reload(e,t,function(e){o.resolve(),n(e)}),o}},{key:"use",value:function(e){return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&eQ.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this,o=e_();this.emit("languageChanging",e);var a=function(e,a){n.translator.changeLanguage(a),a&&(n.emit("languageChanged",a),n.logger.log("languageChanged",a)),o.resolve(function(){return n.t.apply(n,arguments)}),t&&t(e,function(){return n.t.apply(n,arguments)})},r=function(e){e&&(n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.translator.language||n.translator.changeLanguage(e),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(e)),n.loadResources(function(t){a(t,e)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(r):r(e):r(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(e,t){var n=this,o=function e(t,o){var a;if("object"!==eI(o)){for(var r=arguments.length,i=Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];a=n.options.overloadTranslationOptionHandler([t,o].concat(i))}else a=eC({},o);return a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,n.t(t,a)};return"string"==typeof e?o.lng=e:o.lngs=e,o.ns=t,o}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this;if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var n=this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;var r=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return -1===o||2===o};return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||r(n,e)&&(!o||r(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=e_();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){0>n.options.ns.indexOf(e)&&n.options.ns.push(e)}),this.loadResources(function(e){o.resolve(),t&&t(e)}),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=e_();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],a=e.filter(function(e){return 0>o.indexOf(e)});return a.length?(this.options.preload=o.concat(a),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),e)?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr":"rtl"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e7,a=eC({},this.options,n,{isClone:!0}),r=new t(a);return["store","services","language"].forEach(function(t){r[t]=e[t]}),r.translator=new e0(r.services,r.options),r.translator.on("*",function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];r.emit.apply(r,[e].concat(n))}),r.init(a,o),r.translator.options=r.options,r}}]),t}(eW));let tt={CT:"ctToolGroup",PT:"ptToolGroup",Fusion:"fusionToolGroup",MIP:"mipToolGroup",default:"default"},{TOOLBAR_SECTIONS:tn}=x.ToolbarService,to={commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:[tt.CT,tt.PT,tt.Fusion]}},ta={"tmtv.toolbarButtons":[{id:"MeasurementTools",uiType:"ohif.toolButtonList",props:{buttonSection:!0}},{id:"SegmentationTools",uiType:"ohif.toolBoxButton",props:{buttonSection:!0}},{id:"BrushTools",uiType:"ohif.toolBoxButtonGroup",props:{buttonSection:!0}},{id:"AdvancedRenderingControls",uiType:"ohif.advancedRenderingControls",props:{buttonSection:!0}},{id:"modalityLoadBadge",uiType:"ohif.modalityLoadBadge",props:{icon:"Status",label:te.t("Buttons:Status"),tooltip:te.t("Buttons:Status"),evaluate:{name:"evaluate.modalityLoadBadge",hideWhenDisabled:!0}}},{id:"Colorbar",uiType:"ohif.colorbar",props:{type:"tool",label:te.t("Buttons:Colorbar")}},{id:"navigationComponent",uiType:"ohif.navigationComponent",props:{icon:"Navigation",label:te.t("Buttons:Navigation"),tooltip:te.t("Buttons:Navigate between segments/measurements and manage their visibility"),evaluate:{name:"evaluate.navigationComponent",hideWhenDisabled:!0}}},{id:"windowLevelMenuEmbedded",uiType:"ohif.windowLevelMenuEmbedded",props:{icon:"WindowLevel",label:te.t("Buttons:Window Level"),tooltip:te.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:{name:"evaluate.windowLevelMenuEmbedded",hideWhenDisabled:!0}}},{id:"trackingStatus",uiType:"ohif.trackingStatus",props:{icon:"TrackingStatus",label:te.t("Buttons:Tracking Status"),tooltip:te.t("Buttons:View and manage tracking status of measurements and annotations"),evaluate:{name:"evaluate.trackingStatus",hideWhenDisabled:!0}}},{id:"Length",uiType:"ohif.toolButton",props:{icon:"tool-length",label:te.t("Buttons:Length"),tooltip:te.t("Buttons:Length Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Bidirectional",uiType:"ohif.toolButton",props:{icon:"tool-bidirectional",label:te.t("Buttons:Bidirectional"),tooltip:te.t("Buttons:Bidirectional Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"ArrowAnnotate",uiType:"ohif.toolButton",props:{icon:"tool-annotate",label:te.t("Buttons:Arrow Annotate"),tooltip:te.t("Buttons:Arrow Annotate Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"EllipticalROI",uiType:"ohif.toolButton",props:{icon:"tool-ellipse",label:te.t("Buttons:Ellipse"),tooltip:te.t("Buttons:Ellipse Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Zoom",uiType:"ohif.toolButton",props:{icon:"tool-zoom",label:te.t("Buttons:Zoom"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"WindowLevel",uiType:"ohif.toolButton",props:{icon:"tool-window-level",label:te.t("Buttons:Window Level"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Crosshairs",uiType:"ohif.toolButton",props:{icon:"tool-crosshair",label:te.t("Buttons:Crosshairs"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Pan",uiType:"ohif.toolButton",props:{icon:"tool-move",label:te.t("Buttons:Pan"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"RectangleROIStartEndThreshold",uiType:"ohif.toolBoxButton",props:{icon:"tool-create-threshold",label:te.t("Buttons:Rectangle ROI Threshold"),commands:to,evaluate:["evaluate.cornerstone.segmentation",{name:"evaluate.cornerstoneTool",disabledText:te.t("Buttons:Select the PT Axial to enable this tool")}],options:"tmtv.RectangleROIThresholdOptions"}},{id:"Brush",uiType:"ohif.toolButton",props:{icon:"icon-tool-brush",label:te.t("Buttons:Brush"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["CircularBrush","SphereBrush"],disabledText:te.t("Buttons:Create new segmentation to enable this tool.")},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"brush-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"brush-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularBrush","SphereBrush"]}}},{name:te.t("Buttons:Shape"),type:"radio",id:"brush-mode",value:"CircularBrush",values:[{value:"CircularBrush",label:te.t("Buttons:Circle")},{value:"SphereBrush",label:te.t("Buttons:Sphere")}],commands:"setToolActiveToolbar"}]}},{id:"Eraser",uiType:"ohif.toolButton",props:{icon:"icon-tool-eraser",label:te.t("Buttons:Eraser"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["CircularEraser","SphereEraser"]},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"eraser-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"eraser-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularEraser","SphereEraser"]}}},{name:te.t("Buttons:Shape"),type:"radio",id:"eraser-mode",value:"CircularEraser",values:[{value:"CircularEraser",label:te.t("Buttons:Circle")},{value:"SphereEraser",label:te.t("Buttons:Sphere")}],commands:"setToolActiveToolbar"}]}},{id:"Threshold",uiType:"ohif.toolButton",props:{icon:"icon-tool-threshold",label:te.t("Buttons:Threshold Tool"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"threshold-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"threshold-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]}}},{name:te.t("Buttons:Threshold"),type:"radio",id:"dynamic-mode",value:"ThresholdRange",values:[{value:"ThresholdDynamic",label:te.t("Buttons:Dynamic")},{value:"ThresholdRange",label:te.t("Buttons:Range")}],commands:({value:e,commandsManager:t})=>{"ThresholdDynamic"===e?t.run("setToolActive",{toolName:"ThresholdCircularBrushDynamic"}):t.run("setToolActive",{toolName:"ThresholdCircularBrush"})}},{name:te.t("Buttons:Shape"),type:"radio",id:"eraser-mode",value:"ThresholdCircularBrush",values:[{value:"ThresholdCircularBrush",label:te.t("Buttons:Circle")},{value:"ThresholdSphereBrush",label:te.t("Buttons:Sphere")}],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:"setToolActiveToolbar"},{name:te.t("ROIThresholdConfiguration:ThresholdRange"),type:"double-range",id:"threshold-range",min:0,max:50,step:.5,value:[2.5,50],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:{commandName:"setThresholdRange",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush"]}}}]}},{id:"dataOverlayMenu",uiType:"ohif.dataOverlayMenu",props:{icon:"ViewportViews",label:te.t("Buttons:Data Overlay"),tooltip:te.t("Buttons:Configure data overlay options and manage foreground/background display sets"),evaluate:"evaluate.dataOverlayMenu"}},{id:"orientationMenu",uiType:"ohif.orientationMenu",props:{icon:"OrientationSwitch",label:te.t("Buttons:Orientation"),tooltip:te.t("Buttons:Change viewport orientation between axial, sagittal, coronal and reformat planes"),evaluate:{name:"evaluate.orientationMenu"}}},{id:"windowLevelMenu",uiType:"ohif.windowLevelMenu",props:{icon:"WindowLevel",label:te.t("Buttons:Window Level"),tooltip:te.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:"evaluate.windowLevelMenu"}},{id:"voiManualControlMenu",uiType:"ohif.voiManualControlMenu",props:{icon:"WindowLevelAdvanced",label:te.t("Buttons:Advanced Window Level"),tooltip:te.t("Buttons:Advanced window/level settings with manual controls and presets"),evaluate:"evaluate.voiManualControlMenu"}},{id:"thresholdMenu",uiType:"ohif.thresholdMenu",props:{icon:"Threshold",label:te.t("Buttons:Threshold"),tooltip:te.t("Buttons:Image threshold settings"),evaluate:{name:"evaluate.thresholdMenu",hideWhenDisabled:!0}}},{id:"opacityMenu",uiType:"ohif.opacityMenu",props:{icon:"Opacity",label:te.t("Buttons:Opacity"),tooltip:te.t("Buttons:Image opacity settings"),evaluate:{name:"evaluate.opacityMenu",hideWhenDisabled:!0}}}],"tmtv.toolbarSections":{[tn.primary]:["MeasurementTools","Zoom","Pan","WindowLevel","Crosshairs"],[tn.viewportActionMenu.topLeft]:["orientationMenu","dataOverlayMenu"],[tn.viewportActionMenu.bottomMiddle]:["AdvancedRenderingControls"],AdvancedRenderingControls:["windowLevelMenuEmbedded","voiManualControlMenu","Colorbar","opacityMenu","thresholdMenu"],[tn.viewportActionMenu.topRight]:["modalityLoadBadge","trackingStatus","navigationComponent"],[tn.viewportActionMenu.bottomLeft]:["windowLevelMenu"],MeasurementTools:["Length","Bidirectional","ArrowAnnotate","EllipticalROI"],ROIThresholdToolbox:["SegmentationTools"],SegmentationTools:["RectangleROIStartEndThreshold","BrushTools"],BrushTools:["Brush","Eraser","Threshold"]}},tr={id:e,preRegistration({servicesManager:e,commandsManager:t,extensionManager:n,configuration:o={}}){!function({servicesManager:e}){let{measurementService:t,displaySetService:n,cornerstoneViewportService:o}=e.services;(0,eo.addTool)(eo.RectangleROIStartEndThresholdTool),(0,eo.addTool)(eo.CircleROIStartEndThresholdTool);let{RectangleROIStartEndThreshold:a,CircleROIStartEndThreshold:r}={RectangleROIStartEndThreshold:{toAnnotation:er,toMeasurement:e=>((e,t,n)=>{let o,{annotation:a,viewportId:r}=e,{metadata:i,data:s,annotationUID:l}=a;if(!i||!s)return console.warn("Length tool: Missing metadata or data"),null;let{toolName:u,referencedImageId:c,FrameOfReferenceUID:p}=i;if(!ea.includes(u))throw Error("Tool not supported");let{SOPInstanceUID:d,SeriesInstanceUID:f,StudyInstanceUID:h}=(0,J.getSOPInstanceAttributes)(c,n,r);return o=d?t.getDisplaySetForSOPInstanceUID(d,f):t.getDisplaySetsForSeries(f),{uid:l,SOPInstanceUID:d,FrameOfReferenceUID:p,metadata:i,referenceSeriesUID:f,referenceStudyUID:h,toolName:i.toolName,displaySetInstanceUID:o.displaySetInstanceUID,label:i.label,data:s.cachedStats,type:"RectangleROIStartEndThreshold"}})(e,n,o),matchingCriteria:[{valueType:t.VALUE_TYPES.ROI_THRESHOLD_MANUAL}]},CircleROIStartEndThreshold:{toAnnotation:ei,toMeasurement:e=>((e,t,n)=>{let o,{annotation:a,viewportId:r}=e,{metadata:i,data:s,annotationUID:l}=a;if(!i||!s)return console.warn("Length tool: Missing metadata or data"),null;let{toolName:u,referencedImageId:c,FrameOfReferenceUID:p}=i;if(!ea.includes(u))throw Error("Tool not supported");let{SOPInstanceUID:d,SeriesInstanceUID:f,StudyInstanceUID:h}=(0,J.getSOPInstanceAttributes)(c,n,r);o=d?t.getDisplaySetForSOPInstanceUID(d,f):t.getDisplaySetsForSeries(f);let{cachedStats:g}=s;return{uid:l,SOPInstanceUID:d,FrameOfReferenceUID:p,metadata:i,referenceSeriesUID:f,referenceStudyUID:h,toolName:i.toolName,displaySetInstanceUID:o.displaySetInstanceUID,label:i.label,data:s.cachedStats,type:"CircleROIStartEndThreshold"}})(e,n,o),matchingCriteria:[{valueType:t.VALUE_TYPES.ROI_THRESHOLD_MANUAL}]}},i=t.getSource(es,el);t.addMapping(i,"RectangleROIStartEndThreshold",a.matchingCriteria,a.toAnnotation,a.toMeasurement),t.addMapping(i,"CircleROIStartEndThreshold",r.matchingCriteria,r.toAnnotation,r.toMeasurement)}({servicesManager:e,commandsManager:t,extensionManager:n,configuration:o})},getToolbarModule:function(){return[{name:"tmtv.RectangleROIThresholdOptions",defaultComponent:eO}]},getPanelModule:function({commandsManager:e,extensionManager:t,servicesManager:n}){let{toolbarService:o}=n.services;return[{name:"petSUV",iconName:"tab-patient-info",iconLabel:"Patient Info",label:"Patient Info",component:()=>b.createElement(K,null)},{name:"tmtv",iconName:"tab-segmentation",iconLabel:"Segmentation",component:()=>b.createElement(b.Fragment,null,b.createElement(Q.Toolbox,{buttonSectionId:o.sections.roiThresholdToolbox,title:en().t("ROIThresholdConfiguration:Threshold Tools")}),b.createElement(ee,{commandsManager:e,servicesManager:n}))},{name:"tmtvBox",iconName:"tab-segmentation",iconLabel:"Segmentation",label:"Segmentation Toolbox",component:()=>b.createElement(Q.Toolbox,{buttonSectionId:o.sections.roiThresholdToolbox,title:en().t("ROIThresholdConfiguration:Threshold Tools")})},{name:"tmtvExport",iconName:"tab-segmentation",iconLabel:"Segmentation",label:"Segmentation Export",component:()=>b.createElement(X,null)}]},getHangingProtocolModule:function(){return[{name:y.id,protocol:y}]},getCustomizationModule:function(){return[{name:"default",value:{...ta}}]},getCommandsModule:({servicesManager:e,commandsManager:t,extensionManager:n})=>(({servicesManager:e,commandsManager:t,extensionManager:n})=>{let{viewportGridService:o,uiNotificationService:a,displaySetService:r,hangingProtocolService:i,toolGroupService:s,cornerstoneViewportService:l,segmentationService:u}=e.services,{getEnabledElement:c}=n.getModuleEntry("@ohif/extension-cornerstone.utilityModule.common").exports;function p(){let{activeViewportId:e}=o.getState(),{element:t}=c(e)||{};return eu.getEnabledElement(t)}function d(e){return e.reduce((e,t)=>{let n=eo.annotation.selection.getAnnotationsSelectedByToolName(t);return e.concat(n)},[])}let f={getMatchingPTDisplaySet:({viewportMatchDetails:e})=>{let t=null;for(let[,n]of e){let{displaySetsInfo:e}=n,o=e.map(({displaySetInstanceUID:e})=>r.getDisplaySetByUID(e));if(o&&0!==o.length&&(t=o.find(e=>"PT"===e.Modality)))break}return t},getPTMetadata:({ptDisplaySet:e})=>{let t=n.getDataSources()[0].getImageIdsForDisplaySet(e)[0],o=eS.get("instance",t);if("PT"===o.Modality)return{SeriesTime:o.SeriesTime,Modality:o.Modality,PatientSex:o.PatientSex,PatientWeight:o.PatientWeight,RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:o.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose,RadionuclideHalfLife:o.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife,RadiopharmaceuticalStartTime:o.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime,RadiopharmaceuticalStartDateTime:o.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime}}},createNewLabelmapFromPT:async({label:e})=>{let{viewportMatchDetails:t}=i.getMatchDetails(),n=f.getMatchingPTDisplaySet({viewportMatchDetails:t}),o=null;for(let[e,{displaySetsInfo:a}]of t.entries())if(a.some(({displaySetInstanceUID:e})=>e===n.displaySetInstanceUID)){o=e;break}if(!n)return void a.error("No matching PT display set found");let s=u.getSegmentationRepresentations(o),l=r.getDisplaySetByUID(n.displaySetInstanceUID),c=await u.createLabelmapForDisplaySet(l,{label:`Segmentation ${s.length+1}`,segments:{1:{label:`${en().t("Segment")} 1`,active:!0}}});return u.addSegmentationRepresentation(o,{segmentationId:c}),c},thresholdSegmentationByRectangleROITool:({segmentationId:e,config:t,segmentIndex:n})=>{let{representationData:o}=eo.segmentation.state.getSegmentation(e),{displaySetMatchDetails:s}=i.getMatchDetails(),l=s.get("ctDisplaySet"),u=s.get("ptDisplaySet"),c=r.getDisplaySetByUID(l.displaySetInstanceUID),p=r.getDisplaySetByUID(u.displaySetInstanceUID),{volumeId:f}=o[ev.Labelmap],h=eu.cache.getVolume(f),g=d(eT);if(0===g.length)return void a.show({title:"Commands Module",message:"No ROIThreshold Tool is Selected",type:"error"});let{ptLower:m,ptUpper:y,ctLower:v,ctUpper:b}=ec(g,p,t),{imageIds:S}=p,T=eu.cache.getVolumeContainingImageId(S[0]);if(!T)return void a.error("No PT volume found");let{imageIds:x}=c,w=eu.cache.getVolumeContainingImageId(x[0]);if(!w)return void a.error("No CT volume found");let R=T.volume,O=w.volume;return eo.utilities.segmentation.rectangleROIThresholdVolumeByRange(g,h,[{volume:R,lower:m,upper:y},{volume:O,lower:v,upper:b}],{overwrite:!0,segmentIndex:n,segmentationId:e})},calculateTMTV:async({segmentations:e})=>{let t=e.map(e=>e.segmentationId),n=await eo.utilities.segmentation.computeMetabolicStats({segmentationIds:t,segmentIndex:1});return u.setSegmentationGroupStats(t,n),n},exportTMTVReportCSV:async({segmentations:e,tmtv:n,config:o,options:a})=>{let r=t.runCommand("getSegmentationCSVReport",{segmentations:e}),i=0;for(let e in r)i+=r[e].namedStats_lesionGlycolysis.value;let s=[{key:"Total Lesion Glycolysis",value:{tlg:i.toFixed(4)}},{key:"Threshold Configuration",value:{...o}}];void 0!==n&&s.unshift({key:"Total Metabolic Tumor Volume",value:{tmtv:n}}),function(e,t,n={}){let o=e[Object.keys(e)[0]],a=Object.keys(o),r=[a.map(e=>e.toLowerCase().startsWith("namedstats_")?e.substring(11):e).join(",")];Object.values(e).forEach(e=>{let t=[];a.forEach(n=>{t.push(e[n]&&"object"==typeof e[n]?Array.isArray(e[n])?e[n].join(" "):e[n].value&&Array.isArray(e[n].value)?e[n].value.join(" "):e[n].value??e[n]:e[n])}),r.push(t.join(","))}),r.push(""),r.push(""),r.push(""),r.push(`Patient ID,${o.PatientID}`),r.push(`Study Date,${o.StudyDate}`),r.push(""),t.forEach(({key:e,value:t})=>{let n=[];n.push(`${e}`),Object.keys(t).forEach(e=>{n.push(`${e}`),n.push(`${t[e]}`)}),r.push(n.join(","))}),ep(r.join("\n"),{filename:n.filename??`${o.PatientID}_tmtv.csv`})}(r,s,a)},setStartSliceForROIThresholdTool:()=>{let{viewport:e}=p(),{focalPoint:t}=e.getCamera(),n=d(eT)[0],o=eo.annotation.state.getAnnotation(n);o.data.startCoordinate=t,o.invalidated=!0,e.render()},setEndSliceForROIThresholdTool:()=>{let{viewport:e}=p(),t=d(eT)[0],n=eo.annotation.state.getAnnotation(t),o=e.getCamera().focalPoint;n.data.endCoordinate=o,n.invalidated=!0,e.render()},createTMTVRTReport:()=>{let e=eo.annotation.state.getAnnotationManager(),n=[];Object.keys(e.annotations).forEach(t=>{let o=e.annotations[t],a=eT.reduce((e,t)=>[...e,...o[t]??[]],[]);n.push(...a)}),t.runCommand("exportRTReportForAnnotations",{annotations:n})},getSegmentationCSVReport:({segmentations:e})=>{e&&e.length||(e=u.getSegmentations());let t={};for(let n of e){let{label:e,segmentationId:o,representationData:a}=n,r={id:o,label:e};if(!a){t[o]=r;continue}let{cachedStats:i}=n.segments[1]||{};if(i&&Object.entries(i).forEach(([e,t])=>{"object"!=typeof t?r[e]=t:Object.entries(t).forEach(([t,n])=>{r[`${e}_${t}`]=n})}),!n.representationData[ev.Labelmap]){t[o]=r;continue}let s=eo.utilities.segmentation.getReferenceVolumeForSegmentation(o);if(!s||!s.imageIds||!s.imageIds.length){t[o]=r;continue}let l=s.imageIds[0],u=w().classes.MetadataProvider.get("instance",l);if(!u){t[o]=r;continue}t[o]={...r,PatientID:u.PatientID??"000000",PatientName:eb(u.PatientName),StudyInstanceUID:u.StudyInstanceUID,SeriesInstanceUID:u.SeriesInstanceUID,StudyDate:u.StudyDate}}return t},exportRTReportForAnnotations:({annotations:e})=>{ey(e)},setFusionPTColormap:({toolGroupId:e,colormap:n})=>{let o=s.getToolGroup(e);if(!o)return;let{viewportMatchDetails:a}=i.getMatchDetails(),r=f.getMatchingPTDisplaySet({viewportMatchDetails:a});if(!r)return;let u=o.getViewportIds(),c=[];u.forEach(e=>{t.runCommand("setViewportColormap",{viewportId:e,displaySetInstanceUID:r.displaySetInstanceUID,colormap:{name:n}}),c.push(l.getCornerstoneViewport(e))}),c.forEach(e=>{e.render()})}},h={setEndSliceForROIThresholdTool:{commandFn:f.setEndSliceForROIThresholdTool},setStartSliceForROIThresholdTool:{commandFn:f.setStartSliceForROIThresholdTool},getMatchingPTDisplaySet:{commandFn:f.getMatchingPTDisplaySet},getPTMetadata:{commandFn:f.getPTMetadata},createNewLabelmapFromPT:{commandFn:f.createNewLabelmapFromPT},thresholdSegmentationByRectangleROITool:{commandFn:f.thresholdSegmentationByRectangleROITool},calculateTMTV:{commandFn:f.calculateTMTV},exportTMTVReportCSV:{commandFn:f.exportTMTVReportCSV},createTMTVRTReport:{commandFn:f.createTMTVRTReport},getSegmentationCSVReport:{commandFn:f.getSegmentationCSVReport},exportRTReportForAnnotations:{commandFn:f.exportRTReportForAnnotations},setFusionPTColormap:{commandFn:f.setFusionPTColormap}};return{actions:f,definitions:h,defaultContext:"TMTV:CORNERSTONE"}})({servicesManager:e,commandsManager:t,extensionManager:n})}})(),h})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ohif/core"),require("@cornerstonejs/adapters"),require("@ohif/extension-cornerstone"),require("@ohif/core/src/utils"),require("@ohif/ui-next"),require("@cornerstonejs/core"),require("dcmjs"),require("@ohif/i18n"),require("@cornerstonejs/tools"),require("@ohif/core/src"),require("@ohif/extension-default")):"function"==typeof define&&define.amd?define(["@ohif/core","@cornerstonejs/adapters","@ohif/extension-cornerstone","@ohif/core/src/utils","@ohif/ui-next","@cornerstonejs/core","dcmjs","@ohif/i18n","@cornerstonejs/tools","@ohif/core/src","@ohif/extension-default"],t):"object"==typeof exports?exports["ohif-extension-tmtv"]=t(require("@ohif/core"),require("@cornerstonejs/adapters"),require("@ohif/extension-cornerstone"),require("@ohif/core/src/utils"),require("@ohif/ui-next"),require("@cornerstonejs/core"),require("dcmjs"),require("@ohif/i18n"),require("@cornerstonejs/tools"),require("@ohif/core/src"),require("@ohif/extension-default")):e["ohif-extension-tmtv"]=t(e["@ohif/core"],e["@cornerstonejs/adapters"],e["@ohif/extension-cornerstone"],e["@ohif/core/src/utils"],e["@ohif/ui-next"],e["@cornerstonejs/core"],e.dcmjs,e["@ohif/i18n"],e["@cornerstonejs/tools"],e["@ohif/core/src"],e["@ohif/extension-default"])}(globalThis,(e,t,n,o,a,r,i,s,l,u,c)=>(()=>{var p={856(e,t,n){"use strict";var o=n(183);function a(){}function r(){}r.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,r,i){if(i!==o){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:a};return n.PropTypes=n,n}},598(e,t,n){e.exports=n(856)()},183(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},249(e,t){"use strict";var n=Symbol.for("react.element"),o=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),r=(Symbol.for("react.strict_mode"),Symbol.for("react.profiler"),Symbol.for("react.provider")),i=Symbol.for("react.context"),s=(Symbol.for("react.forward_ref"),Symbol.for("react.suspense"),Symbol.for("react.memo"),Symbol.for("react.lazy"),Symbol.iterator),l={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},u=Object.assign,c={};function p(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||l}function d(){}function f(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||l}p.prototype.isReactComponent={},p.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)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,e,t,"setState")},p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},d.prototype=p.prototype;var h=f.prototype=new d;h.constructor=f,u(h,p.prototype),h.isPureReactComponent=!0;var g=Array.isArray,m=Object.prototype.hasOwnProperty,y=null,v={key:!0,ref:!0,__self:!0,__source:!0},b=null;t.Fragment=a,t.createContext=function(e){return(e={$$typeof:i,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:r,_context:e},e.Consumer=e},t.createElement=function(e,t,o){var a,r={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)m.call(t,a)&&!v.hasOwnProperty(a)&&(r[a]=t[a]);var l=arguments.length-2;if(1===l)r.children=o;else if(1<l){for(var u=Array(l),c=0;c<l;c++)u[c]=arguments[c+2];r.children=u}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===r[a]&&(r[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:r,_owner:y}},t.useCallback=function(e,t){return b.useCallback(e,t)},t.useContext=function(e){return b.useContext(e)},t.useEffect=function(e,t){return b.useEffect(e,t)},t.useReducer=function(e,t,n){return b.useReducer(e,t,n)},t.useRef=function(e){return b.useRef(e)},t.useState=function(e){return b.useState(e)}},326(e,t,n){"use strict";e.exports=n(249)},741(e){e.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}},142(e){"use strict";e.exports=t},557(e){"use strict";e.exports=r},713(e){"use strict";e.exports=l},2(t){"use strict";t.exports=e},459(e){"use strict";e.exports=u},141(e){"use strict";e.exports=o},669(e){"use strict";e.exports=n},438(e){"use strict";e.exports=c},545(e){"use strict";e.exports=s},55(e){"use strict";e.exports=a},111(e){"use strict";e.exports=i}},d={};function f(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return p[e](n,n.exports,f),n.exports}f.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return f.d(t,{a:t}),t},f.d=(e,t)=>{for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),f.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var h={};return(()=>{"use strict";f.r(h),f.d(h,{default:()=>tr,toolGroupIds:()=>tt});let e=JSON.parse('{"UU":"@ohif/extension-tmtv"}').UU;var t,n=f(669);let o=e=>({type:"cameraPosition",id:e,source:!0,target:!0}),a={type:"hydrateseg",id:"sameFORId",source:!0,target:!0,options:{matchingRules:["sameFOR"]}},r={viewportOptions:{viewportId:"ctAXIAL",viewportType:"volume",orientation:"axial",toolGroupId:"ctToolGroup",initialImageOptions:{preset:"first"},syncGroups:[o("axialSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},a]},displaySets:[{id:"ctDisplaySet"}]},i={viewportOptions:{viewportId:"ctSAGITTAL",viewportType:"volume",orientation:"sagittal",toolGroupId:"ctToolGroup",syncGroups:[o("sagittalSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},a]},displaySets:[{id:"ctDisplaySet"}]},s={viewportOptions:{viewportId:"ctCORONAL",viewportType:"volume",orientation:"coronal",toolGroupId:"ctToolGroup",syncGroups:[o("coronalSync"),{type:"voi",id:"ctWLSync",source:!0,target:!0,options:{syncColormap:!0}},a]},displaySets:[{id:"ctDisplaySet"}]},l={viewportOptions:{viewportId:"ptAXIAL",viewportType:"volume",background:[1,1,1],orientation:"axial",toolGroupId:"ptToolGroup",initialImageOptions:{preset:"first"},syncGroups:[o("axialSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},u={viewportOptions:{viewportId:"ptSAGITTAL",viewportType:"volume",orientation:"sagittal",background:[1,1,1],toolGroupId:"ptToolGroup",syncGroups:[o("sagittalSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},c={viewportOptions:{viewportId:"ptCORONAL",viewportType:"volume",orientation:"coronal",background:[1,1,1],toolGroupId:"ptToolGroup",syncGroups:[o("coronalSync"),{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{options:{voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},p={viewportOptions:{viewportId:"fusionAXIAL",viewportType:"volume",orientation:"axial",toolGroupId:"fusionToolGroup",initialImageOptions:{preset:"first"},syncGroups:[o("axialSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},d={viewportOptions:{viewportId:"fusionSAGITTAL",viewportType:"volume",orientation:"sagittal",toolGroupId:"fusionToolGroup",syncGroups:[o("sagittalSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},g={viewportOptions:{viewportId:"fusionCoronal",viewportType:"volume",orientation:"coronal",toolGroupId:"fusionToolGroup",syncGroups:[o("coronalSync"),{type:"voi",id:"ctWLSync",source:!1,target:!0},{type:"voi",id:"fusionWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!1,target:!0,options:{syncColormap:!1,syncInvertState:!1}},a]},displaySets:[{id:"ctDisplaySet"},{id:"ptDisplaySet",options:{colormap:{name:"hsv",opacity:[{value:0,opacity:0},{value:.1,opacity:.8},{value:1,opacity:.9}]},voi:{custom:"getPTVOIRange"}}}]},m={viewportOptions:{viewportId:"mipSagittal",viewportType:"volume",orientation:"sagittal",background:[1,1,1],toolGroupId:"mipToolGroup",syncGroups:[{type:"voi",id:"ptWLSync",source:!0,target:!0,options:{syncColormap:!0}},{type:"voi",id:"ptFusionWLSync",source:!0,target:!1,options:{syncColormap:!1,syncInvertState:!1}},a],customViewportProps:{hideOverlays:!0}},displaySets:[{options:{blendMode:"MIP",slabThickness:"fullVolume",voi:{custom:"getPTVOIRange"},voiInverted:!0},id:"ptDisplaySet"}]},y={name:"default",id:"default",viewportStructure:{layoutType:"grid",properties:{rows:3,columns:4,layoutOptions:[{x:0,y:0,width:1/4,height:1/3},{x:1/4,y:0,width:1/4,height:1/3},{x:.5,y:0,width:1/4,height:1/3},{x:0,y:1/3,width:1/4,height:1/3},{x:1/4,y:1/3,width:1/4,height:1/3},{x:.5,y:1/3,width:1/4,height:1/3},{x:0,y:2/3,width:1/4,height:1/3},{x:1/4,y:2/3,width:1/4,height:1/3},{x:.5,y:2/3,width:1/4,height:1/3},{x:3/4,y:0,width:1/4,height:1}]}},viewports:[r,i,s,l,u,c,p,d,g,m],createdDate:"2021-02-23T18:32:42.850Z"},v={name:"2x4-layout",id:"2x4-layout",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:4,layoutOptions:[{x:0,y:0,width:1/4,height:.5},{x:1/4,y:0,width:1/4,height:.5},{x:.5,y:0,width:1/4,height:.5},{x:3/4,y:0,width:1/4,height:1},{x:0,y:.5,width:1/4,height:.5},{x:1/4,y:.5,width:1/4,height:.5},{x:.5,y:.5,width:1/4,height:.5}]}},viewports:[c,u,l,m,g,d,p]},b={id:"@ohif/extension-tmtv.hangingProtocolModule.ptCT",locked:!0,name:"Default",createdDate:"2021-02-23T19:22:08.894Z",modifiedDate:"2022-10-04T19:22:08.894Z",availableTo:{},editableBy:{},imageLoadStrategy:"interleaveTopToBottom",protocolMatchingRules:[{attribute:"ModalitiesInStudy",constraint:{contains:["CT","PT"]}},{attribute:"StudyDescription",constraint:{contains:"PETCT"}},{attribute:"StudyDescription",constraint:{contains:"PET/CT"}}],displaySetSelectors:{ctDisplaySet:{seriesMatchingRules:[{attribute:"Modality",constraint:{equals:{value:"CT"}},required:!0},{attribute:"isReconstructable",constraint:{equals:{value:!0}},required:!0},{attribute:"SeriesDescription",constraint:{contains:"CT"}},{attribute:"SeriesDescription",constraint:{contains:"CT WB"}}]},ptDisplaySet:{seriesMatchingRules:[{attribute:"Modality",constraint:{equals:"PT"},required:!0},{attribute:"isReconstructable",constraint:{equals:{value:!0}},required:!0},{attribute:"SeriesDescription",constraint:{contains:"Corrected"}},{weight:2,attribute:"SeriesDescription",constraint:{doesNotContain:{value:"Uncorrected"}}}]}},stages:[y,{name:"Fusion 2x2",id:"Fusion-2x2",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:2}},viewports:[r,p,l,m]},{name:"2x3-layout",id:"2x3-layout",viewportStructure:{layoutType:"grid",properties:{rows:2,columns:3}},viewports:[r,i,s,l,u,c]},v],numberOfPriorsReferenced:-1};var S=f(326),T=f(598),x=f.n(T),w=f(2),R=f.n(w);function O(e){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e){var t=function(e,t){if("object"!=O(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=O(o))return o;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==O(t)?t:t+""}function E(){if(console&&console.warn){for(var e,t=arguments.length,n=Array(t),o=0;o<t;o++)n[o]=arguments[o];"string"==typeof n[0]&&(n[0]="react-i18next:: ".concat(n[0])),(e=console).warn.apply(e,n)}}f(741),Object.create(null);var C={};function k(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];"string"==typeof t[0]&&C[t[0]]||("string"==typeof t[0]&&(C[t[0]]=new Date),E.apply(void 0,t))}var L=function(e,t){return function(){e.isInitialized?t():e.on("initialized",function n(){setTimeout(function(){e.off("initialized",n)},0),t()})}};function N(e,t,n){e.loadNamespaces(t,L(e,n))}function P(e,t,n,o){"string"==typeof n&&(n=[n]),n.forEach(function(t){0>e.options.ns.indexOf(t)&&e.options.ns.push(t)}),e.loadLanguages(t,L(e,o))}var j=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,D={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"\xa9","&#169;":"\xa9","&reg;":"\xae","&#174;":"\xae","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},B=function(e){return D[e]},M={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:function(e){return e.replace(j,B)}},A=(0,S.createContext)(),F=function(){var e;function t(){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.usedNamespaces={}}return e=[{key:"addUsedNamespaces",value:function(e){var t=this;e.forEach(function(e){t.usedNamespaces[e]||(t.usedNamespaces[e]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}],function(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,I(o.key),o)}}(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}();function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach(function(t){var o,a;o=t,a=n[t],(o=I(o))in e?Object.defineProperty(e,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[o]=a}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var W=function(e,t){var n=(0,S.useRef)();return(0,S.useEffect)(function(){n.current=t?n.current:e},[e,t]),n.current};function _(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=o.i18n,r=(0,S.useContext)(A)||{},i=r.i18n,s=r.defaultNS,l=a||i||t;if(l&&!l.reportNamespaces&&(l.reportNamespaces=new F),!l){k("You will need to pass in an i18next instance by using initReactI18next");var u=function(e,t){return"string"==typeof t?t:t&&"object"===O(t)&&"string"==typeof t.defaultValue?t.defaultValue:Array.isArray(e)?e[e.length-1]:e},c=[u,{},!1];return c.t=u,c.i18n={},c.ready=!1,c}l.options.react&&void 0!==l.options.react.wait&&k("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");var p=q(q(q({},M),l.options.react),o),d=p.useSuspense,f=p.keyPrefix,h=e||s||l.options&&l.options.defaultNS;h="string"==typeof h?[h]:h||["translation"],l.reportNamespaces.addUsedNamespaces&&l.reportNamespaces.addUsedNamespaces(h);var g=(l.isInitialized||l.initializedStoreOnce)&&h.every(function(e){return function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.languages&&t.languages.length?void 0===t.options.ignoreJSONStructure?function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=t.languages[0],a=!!t.options&&t.options.fallbackLng,r=t.languages[t.languages.length-1];if("cimode"===o.toLowerCase())return!0;var i=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return -1===o||2===o};return(!(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1)||!t.services.backendConnector.backend||!t.isLanguageChangingTo||!!i(t.isLanguageChangingTo,e))&&!!(t.hasResourceBundle(o,e)||!t.services.backendConnector.backend||t.options.resources&&!t.options.partialBundledLanguages||i(o,e)&&(!a||i(r,e)))}(e,t,n):t.hasLoadedNamespace(e,{lng:n.lng,precheck:function(t,o){if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!o(t.isLanguageChangingTo,e))return!1}}):(k("i18n.languages were undefined or empty",t.languages),!0)}(e,l,p)});function m(){return l.getFixedT(o.lng||null,"fallback"===p.nsMode?h:h[0],f)}var y=function(e){if(Array.isArray(e))return e}(n=(0,S.useState)(m))||function(e){var t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,r,i=[],s=!0,l=!1;try{a=(t=t.call(e)).next,!1;for(;!(s=(n=a.call(t)).done)&&(i.push(n.value),2!==i.length);s=!0);}catch(e){l=!0,o=e}finally{try{if(!s&&null!=t.return&&(r=t.return(),Object(r)!==r))return}finally{if(l)throw o}}return i}}(n)||function(e){if(e){if("string"==typeof e)return U(e,2);var t=({}).toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?U(e,2):void 0}}(n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),v=y[0],b=y[1],T=h.join();o.lng&&(T="".concat(o.lng).concat(T));var x=W(T),w=(0,S.useRef)(!0);(0,S.useEffect)(function(){var e=p.bindI18n,t=p.bindI18nStore;function n(){w.current&&b(m)}return w.current=!0,g||d||(o.lng?P(l,o.lng,h,function(){w.current&&b(m)}):N(l,h,function(){w.current&&b(m)})),g&&x&&x!==T&&w.current&&b(m),e&&l&&l.on(e,n),t&&l&&l.store.on(t,n),function(){w.current=!1,e&&l&&e.split(" ").forEach(function(e){return l.off(e,n)}),t&&l&&t.split(" ").forEach(function(e){return l.store.off(e,n)})}},[l,T]);var R=(0,S.useRef)(!0);(0,S.useEffect)(function(){w.current&&!R.current&&b(m),R.current=!1},[l,f]);var I=[v,l,g];if(I.t=v,I.i18n=l,I.ready=g,g||!g&&!d)return I;throw new Promise(function(e){o.lng?P(l,o.lng,h,function(){return e()}):N(l,h,function(){return e()})})}var G=f(55),H=f(459);function z(){return(z=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)({}).hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(null,arguments)}let $={PatientWeight:null,PatientSex:null,SeriesTime:null,RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:null,RadionuclideHalfLife:null,RadiopharmaceuticalStartTime:null}},K=({children:e,className:t,...n})=>S.createElement("div",z({className:`flex flex-row items-center space-x-4 ${t||""}`},n),e);function J(){let{commandsManager:e,servicesManager:t}=(0,H.useSystem)(),{t:n}=_("PanelSUV"),{displaySetService:o,hangingProtocolService:a}=t.services,[r,i]=(0,S.useState)($),[s,l]=(0,S.useState)(null),u=e=>{i(t=>{let n={...t};return Object.keys(e).forEach(o=>{"object"==typeof e[o]?n[o]={...t[o],...e[o]}:n[o]=e[o]}),n})},c=t=>{let n=e.runCommand("getMatchingPTDisplaySet",{viewportMatchDetails:t});if(!n)return;let o=e.runCommand("getPTMetadata",{ptDisplaySet:n});return{ptDisplaySet:n,metadata:o}};return(0,S.useEffect)(()=>{let e=o.getActiveDisplaySets(),{viewportMatchDetails:t}=a.getMatchDetails();if(!e.length)return;let n=c(t);if(!n)return;let{ptDisplaySet:r,metadata:s}=n;l(r),i(s)},[]),(0,S.useEffect)(()=>{let{unsubscribe:e}=a.subscribe(a.EVENTS.PROTOCOL_CHANGED,({viewportMatchDetails:e})=>{let t=c(e);if(!t)return;let{ptDisplaySet:n,metadata:o}=t;l(n),i(o)});return()=>{e()}},[]),S.createElement(S.Fragment,null,S.createElement("div",{className:"ohif-scrollbar flex min-h-0 flex-auto select-none flex-col justify-between overflow-auto"},S.createElement("div",{className:"flex min-h-0 flex-1 flex-col bg-background text-base"},S.createElement(G.PanelSection,{defaultOpen:!0},S.createElement(G.PanelSection.Header,null,n("Patient Information")),S.createElement(G.PanelSection.Content,null,S.createElement("div",{className:"bg-muted flex flex-col gap-3 p-2"},S.createElement(K,null,S.createElement(K.Label,null,n("Patient Sex")),S.createElement(K.Input,{value:r.PatientSex||"",onChange:e=>{u({PatientSex:e.target.value})}})),S.createElement(K,null,S.createElement(K.Label,{unit:"kg"},n("Weight")),S.createElement(K.Input,{value:r.PatientWeight||"",onChange:e=>{u({PatientWeight:e.target.value})},id:"weight-input"})),S.createElement(K,null,S.createElement(K.Label,{unit:"bq"},n("Total Dose")),S.createElement(K.Input,{value:r.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:e.target.value}})}})),S.createElement(K,null,S.createElement(K.Label,{unit:"s"},n("Half Life")),S.createElement(K.Input,{value:r.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadionuclideHalfLife:e.target.value}})}})),S.createElement(K,null,S.createElement(K.Label,{unit:"s"},n("Injection Time")),S.createElement(K.Input,{value:r.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime||"",onChange:e=>{u({RadiopharmaceuticalInformationSequence:{RadiopharmaceuticalStartTime:e.target.value}})}})),S.createElement(K,null,S.createElement(K.Label,{unit:"s"},n("Acquisition Time")),S.createElement(K.Input,{value:r.SeriesTime||"",onChange:()=>{}})),S.createElement(G.Button,{variant:"default",size:"sm",className:"self-end px-4",onClick:function(){if(!s)throw Error("No ptDisplaySet found");w.DicomMetadataStore.updateMetadataForSeries(s.StudyInstanceUID,s.SeriesInstanceUID,r),o.setDisplaySetMetadataInvalidated(s.displaySetInstanceUID),setTimeout(()=>{e.runCommand("resetCrosshairs")},0)}},n("Reload Data"))))))))}K.Label=({children:e,unit:t,className:n,...o})=>S.createElement(G.Label,z({className:`min-w-32 flex-shrink-0 ${n||""}`},o),e,t&&S.createElement("span",{className:"text-muted-foreground"}," ",t)),K.Input=({className:e,...t})=>S.createElement(G.Input,z({className:`h-7 flex-1 ${e||""}`},t)),K.Label.displayName="InputRow.Label",K.Input.displayName="InputRow.Input",J.propTypes={servicesManager:x().shape({services:x().shape({measurementService:x().shape({getMeasurements:x().func.isRequired,subscribe:x().func.isRequired,EVENTS:x().object.isRequired,VALUE_TYPES:x().object.isRequired}).isRequired}).isRequired}).isRequired};let Y=async({commandsManager:e,segmentationService:t})=>{let n=t.getSegmentations(),o=await e.run("calculateTMTV",{segmentations:n});n.forEach(e=>{e.cachedStats={...e.cachedStats,tmtv:o},t.addOrUpdateSegmentation(e)})};var Z=f(141);function X(){let{commandsManager:e,servicesManager:t}=(0,H.useSystem)(),{segmentationService:o}=t.services,{segmentationsWithRepresentations:a}=(0,n.useActiveViewportSegmentationRepresentations)(),r=a?.map(e=>e.segmentation.segmentationId)||[],i=a?.map(e=>e.segmentation)||[];(0,S.useEffect)(()=>{(async()=>{for(let t of r)await Y({segmentationId:t,commandsManager:e,segmentationService:o})})()},[]),(0,S.useEffect)(()=>{let t=(0,Z.debounce)(async t=>{let{segmentationId:n}=t;await Y({segmentationId:n,commandsManager:e,segmentationService:o})},100),n=o.subscribe(o.EVENTS.SEGMENTATION_DATA_MODIFIED,e=>{t(e)});return()=>{n.unsubscribe()}},[e,o]);let s=o.getSegmentationGroupStats(r),l=s?.tmtv;return S.createElement("div",{className:"mb-1 flex flex-col"},S.createElement("div",{className:"invisible-scrollbar overflow-y-auto overflow-x-hidden"},S.createElement("div",{className:"bg-popover flex items-baseline justify-between px-2 py-1"},S.createElement("div",{className:"py-1"},S.createElement("span",{className:"text-muted-foreground text-base font-bold uppercase"},"TMTV: "),S.createElement("span",{className:"text-foreground"},l?`${l.toFixed(3)} mL`:"")),S.createElement("div",{className:"flex items-center"},S.createElement(G.Button,{dataCY:"exportTmtvCsvReport",size:"sm",variant:"ghost",onClick:()=>{i.length&&e.runCommand("exportTMTVReportCSV",{segmentations:i,tmtv:l,config:{}})}},S.createElement("span",{className:"pl-1"},"CSV"))))))}var Q=f(438);function ee({configuration:e}){return S.createElement(S.Fragment,null,S.createElement(n.PanelSegmentation,{configuration:e},S.createElement(X,null)))}var et=f(545),en=f.n(et),eo=f(713);let ea=["RectangleROIStartEndThreshold","CircleROIStartEndThreshold"],er=(e,t)=>{},ei=(e,t)=>{},{CORNERSTONE_3D_TOOLS_SOURCE_NAME:es,CORNERSTONE_3D_TOOLS_SOURCE_VERSION:el}=n.Enums;var eu=f(557);let ec=function(e,t,n){if("range"===n.strategy)return{ptLower:Number(n.ptLower),ptUpper:Number(n.ptUpper),ctLower:Number(n.ctLower),ctUpper:Number(n.ctUpper)};let{weight:o}=n;return{ctLower:-1/0,ctUpper:Infinity,ptLower:o*function(e,t){let{imageIds:n}=e,o=eu.cache.getVolumeContainingImageId(n[0]);if(!o)throw Error("No volume found for display set");let{volume:a}=o,{voxelManager:r}=a,{fn:i,baseValue:s}={fn:(e,t)=>(e>t&&(t=e),t),baseValue:-1/0},l=s,u=eo.utilities.rectangleROITool.getBoundsIJKFromRectangleAnnotations(t,a);return r.forEach(({value:e})=>{l=i(e,l)},{boundsIJK:u}),l}(t,e.map(e=>eo.annotation.state.getAnnotation(e))),ptUpper:Infinity}},{downloadCsv:ep}=w.utils;var ed=f(111),ef=f.n(ed),eh=f(142);let{datasetToBlob:eg}=ef().data,em=w.classes.MetadataProvider,ey=function(e){let t=eg(eh.adaptersRT.Cornerstone3D.RTSS.generateRTSSFromAnnotations(e,em,w.DicomMetadataStore));var n=URL.createObjectURL(t);window.location.assign(n)},{SegmentationRepresentations:ev}=eo.Enums,{formatPN:eb}=w.utils,eS=w.classes.MetadataProvider,eT=["RectangleROIStartEndThreshold","RectangleROIThreshold","CircleROIStartEndThreshold"],ex="roi_stat",ew=function({config:e,dispatch:t,runCommand:n}){let{t:o}=_("ROIThresholdConfiguration"),a=[{value:ex,label:o("Max"),placeHolder:o("Max")},{value:"range",label:o("Range"),placeHolder:o("Range")}];return S.createElement("div",{className:"bg-muted flex flex-col space-y-4 p-px"},S.createElement("div",{className:"flex items-end space-x-3"},S.createElement("div",{className:"flex min-w-0 flex-1 flex-col"},S.createElement(G.Select,{value:e.strategy,onValueChange:e=>{t({type:"setStrategy",payload:{strategy:e}})}},S.createElement(G.SelectTrigger,{className:"w-full"},S.createElement(G.SelectValue,{placeholder:a.find(t=>t.value===e.strategy)?.placeHolder})),S.createElement(G.SelectContent,{className:""},a.map(e=>S.createElement(G.SelectItem,{key:e.value,value:e.value},e.label))))),S.createElement("div",{className:"flex-shrink-0"},S.createElement("div",{className:"flex justify-end space-x-2"},S.createElement(G.Button,{variant:"secondary",onClick:()=>n("setStartSliceForROIThresholdTool")},o("Start")),S.createElement(G.Button,{variant:"secondary",onClick:()=>n("setEndSliceForROIThresholdTool")},o("End"))))),e.strategy===ex&&S.createElement("div",{className:"mr-0"},S.createElement("div",{className:"mb-2"},S.createElement(G.Label,null,o("Percentage of Max SUV"))),S.createElement(G.Input,{"data-cy":"percentage-of-max-suv-input",className:"w-full",type:"text",value:e.weight,onChange:e=>{let n=e.target.value;"."===n&&(n="0."),isNaN(Number(n))||0>Number(n)||Number(n)>1||t({type:"setWeight",payload:{weight:n}})}})),e.strategy!==ex&&S.createElement("div",{className:"mr-2 text-sm"},S.createElement("div",{className:"flex flex-col space-y-2"},S.createElement(G.Label,null,o("Lower & Upper Ranges")),S.createElement("div",{className:"flex items-center"},S.createElement("div",{className:"w-10 text-left"},S.createElement(G.Label,null,"CT")),S.createElement("div",{className:"flex flex-1 space-x-2"},S.createElement("div",{className:"flex-1"},S.createElement(G.Input,{className:"w-full",type:"text",value:e.ctLower,onChange:e=>{t({type:"setThreshold",payload:{ctLower:e.target.value}})}})),S.createElement("div",{className:"flex-1"},S.createElement(G.Input,{className:"w-full",type:"text",value:e.ctUpper,onChange:e=>{t({type:"setThreshold",payload:{ctUpper:e.target.value}})}})))),S.createElement("div",{className:"flex items-center"},S.createElement("div",{className:"w-10 text-left"},S.createElement(G.Label,null,"PT")),S.createElement("div",{className:"flex flex-1 space-x-2"},S.createElement("div",{className:"flex-1"},S.createElement(G.Input,{className:"w-full",type:"text",value:e.ptLower,onChange:e=>{t({type:"setThreshold",payload:{ptLower:e.target.value}})}})),S.createElement("div",{className:"flex-1"},S.createElement(G.Input,{className:"w-full",type:"text",value:e.ptUpper,onChange:e=>{t({type:"setThreshold",payload:{ptUpper:e.target.value}})}})))))))};function eR(e,t){let{payload:n}=t,{strategy:o,ctLower:a,ctUpper:r,ptLower:i,ptUpper:s,weight:l}=n;switch(t.type){case"setStrategy":return{...e,strategy:o};case"setThreshold":return{...e,ctLower:a||e.ctLower,ctUpper:r||e.ctUpper,ptLower:i||e.ptLower,ptUpper:s||e.ptUpper};case"setWeight":return{...e,weight:l};default:return e}}let eO=function(){let{commandsManager:e}=(0,w.useSystem)(),t=(0,n.useSegmentations)()[0],{t:o}=_("ROIThresholdConfiguration"),a=(0,S.useCallback)((t,n={})=>e.runCommand(t,n),[e]),[r,i]=(0,S.useReducer)(eR,{strategy:ex,ctLower:-1024,ctUpper:1024,ptLower:2.5,ptUpper:100,weight:.41}),s=(0,S.useCallback)(()=>{if(!t)return;let e=t.segmentationId,n=eo.segmentation.segmentIndex.getActiveSegmentIndex(e);a("thresholdSegmentationByRectangleROITool",{segmentationId:e,config:r,segmentIndex:n})},[t,r]);return S.createElement("div",{className:"invisible-scrollbar mb-1 flex flex-col overflow-y-auto overflow-x-hidden"},S.createElement(ew,{config:r,dispatch:i,runCommand:a}),t&&S.createElement(G.Button,{variant:"default",className:"my-3 mr-auto w-20",onClick:s},o("Run")))};function eI(e){return(eI="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function eE(e){var t=function(e,t){if("object"!=eI(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=eI(o))return o;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==eI(t)?t:t+""}function eC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})),o.forEach(function(t){var o,a;o=t,a=n[t],(o=eE(o))in e?Object.defineProperty(e,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[o]=a})}return e}function ek(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}function eL(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,eE(o.key),o)}}function eN(e,t,n){return t&&eL(e.prototype,t),n&&eL(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function eP(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ej(e,t){if(t&&("object"==eI(t)||"function"==typeof t))return t;if(void 0!==t)throw TypeError("Derived constructors may only return object or undefined");return eP(e)}function eD(e){return(eD=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eB(e,t){return(eB=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function eM(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&eB(e,t)}function eA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function eF(e,t){if(e){if("string"==typeof e)return eA(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?eA(e,t):void 0}}function eU(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,a,r,i,s=[],l=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(o=r.call(n)).done)&&(s.push(o.value),s.length!==t);l=!0);}catch(e){u=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw a}}return s}}(e,t)||eF(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var eV={type:"logger",log:function(e){this.output("log",e)},warn:function(e){this.output("warn",e)},error:function(e){this.output("error",e)},output:function(e,t){var n;console&&console[e]&&(n=console)[e].apply(n,function(e){if(Array.isArray(e))return eA(e)}(t)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||eF(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}},eq=new(function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ek(this,e),this.init(t,n)}return eN(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||eV,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,n,o){return o&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(n).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,eC({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),eW=function(){function e(){ek(this,e),this.observers={}}return eN(e,[{key:"on",value:function(e,t){var n=this;return e.split(" ").forEach(function(e){n.observers[e]=n.observers[e]||[],n.observers[e].push(t)}),this}},{key:"off",value:function(e,t){if(this.observers[e]){if(!t)return void delete this.observers[e];this.observers[e]=this.observers[e].filter(function(e){return e!==t})}}},{key:"emit",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,n)}),this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(n))})}}]),e}();function e_(){var e,t,n=new Promise(function(n,o){e=n,t=o});return n.resolve=e,n.reject=t,n}function eG(e){return null==e?"":""+e}function eH(e,t,n){function o(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function a(){return!e||"string"==typeof e}for(var r="string"!=typeof t?[].concat(t):t.split(".");r.length>1;){if(a())return{};var i=o(r.shift());!e[i]&&n&&(e[i]=new n),e=e[i]}return a()?{}:{obj:e,k:o(r.shift())}}function ez(e,t,n){var o=eH(e,t,Object);o.obj[o.k]=n}function e$(e,t){var n=eH(e,t),o=n.obj,a=n.k;if(o)return o[a]}function eK(e,t,n){var o=e$(e,n);return void 0!==o?o:e$(t,n)}function eJ(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var eY={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function eZ(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return eY[e]}):e}var eX=function(e){function t(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return ek(this,t),n=ej(this,eD(t).call(this)),eW.call(eP(n)),n.data=e||{},n.options=o,void 0===n.options.keySeparator&&(n.options.keySeparator="."),n}return eM(t,e),eN(t,[{key:"addNamespaces",value:function(e){0>this.options.ns.indexOf(e)&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=void 0!==o.keySeparator?o.keySeparator:this.options.keySeparator,r=[e,t];return n&&"string"!=typeof n&&(r=r.concat(n)),n&&"string"==typeof n&&(r=r.concat(a?n.split(a):n)),e.indexOf(".")>-1&&(r=e.split(".")),e$(this.data,r)}},{key:"addResource",value:function(e,t,n,o){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},r=this.options.keySeparator;void 0===r&&(r=".");var i=[e,t];n&&(i=i.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(i=e.split("."),o=t,t=i[1]),this.addNamespaces(t),ez(this.data,i,o),a.silent||this.emit("added",e,t,n,o)}},{key:"addResources",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var a in n)("string"==typeof n[a]||"[object Array]"===Object.prototype.toString.apply(n[a]))&&this.addResource(e,t,a,n[a],{silent:!0});o.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,n,o,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},i=[e,t];e.indexOf(".")>-1&&(i=e.split("."),o=n,n=t,t=i[1]),this.addNamespaces(t);var s=e$(this.data,i)||{};o?function e(t,n,o){for(var a in n)a in t?"string"==typeof t[a]||t[a]instanceof String||"string"==typeof n[a]||n[a]instanceof String?o&&(t[a]=n[a]):e(t[a],n[a],o):t[a]=n[a];return t}(s,n,a):s=eC({},s,n),ez(this.data,i,s),r.silent||this.emit("added",e,t,n)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return(t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI)?eC({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(eW),eQ={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,o,a){var r=this;return e.forEach(function(e){r.processors[e]&&(t=r.processors[e].process(t,n,o,a))}),t}},e0=function(e){function t(e){var n,o,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ek(this,t),a=ej(this,eD(t).call(this)),eW.call(eP(a)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],o=eP(a),n.forEach(function(t){e[t]&&(o[t]=e[t])}),a.options=r,void 0===a.options.keySeparator&&(a.options.keySeparator="."),a.logger=eq.create("translator"),a}return eM(t,e),eN(t,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=t.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var r=e.split(n);(n!==o||n===o&&this.options.ns.indexOf(r[0])>-1)&&(a=r.shift()),e=r.join(o)}return"string"==typeof a&&(a=[a]),{key:e,namespaces:a}}},{key:"translate",value:function(e,t){var n=this;if("object"!==eI(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var o=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,a=this.extractFromKey(e[e.length-1],t),r=a.key,i=a.namespaces,s=i[i.length-1],l=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&"cimode"===l.toLowerCase())return u?s+(t.nsSeparator||this.options.nsSeparator)+r:r;var c=this.resolve(e,t),p=c&&c.res,d=c&&c.usedKey||r,f=c&&c.exactUsedKey||r,h=Object.prototype.toString.apply(p),g=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,m=!this.i18nFormat||this.i18nFormat.handleAsObject,y="string"!=typeof p&&"boolean"!=typeof p&&"number"!=typeof p;if(m&&p&&y&&0>["[object Number]","[object Function]","[object RegExp]"].indexOf(h)&&("string"!=typeof g||"[object Array]"!==h)){if(!t.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(d,p,t):"key '".concat(r," (").concat(this.language,")' returned an object instead of string.");if(o){var v="[object Array]"===h,b=v?[]:{},S=v?f:d;for(var T in p)if(Object.prototype.hasOwnProperty.call(p,T)){var x="".concat(S).concat(o).concat(T);b[T]=this.translate(x,eC({},t,{joinArrays:!1,ns:i})),b[T]===x&&(b[T]=p[T])}p=b}}else if(m&&"string"==typeof g&&"[object Array]"===h)(p=p.join(g))&&(p=this.extendTranslation(p,e,t));else{var w=!1,R=!1;if(!this.isValidLookup(p)&&void 0!==t.defaultValue){if(w=!0,void 0!==t.count){var O=this.pluralResolver.getSuffix(l,t.count);p=t["defaultValue".concat(O)]}p||(p=t.defaultValue)}this.isValidLookup(p)||(R=!0,p=r);var I=t.defaultValue&&t.defaultValue!==p&&this.options.updateMissing;if(R||w||I){this.logger.log(I?"updateKey":"missingKey",l,s,r,I?t.defaultValue:p);var E=[],C=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&C&&C[0])for(var k=0;k<C.length;k++)E.push(C[k]);else"all"===this.options.saveMissingTo?E=this.languageUtils.toResolveHierarchy(t.lng||this.language):E.push(t.lng||this.language);var L=function(e,o){n.options.missingKeyHandler?n.options.missingKeyHandler(e,s,o,I?t.defaultValue:p,I,t):n.backendConnector&&n.backendConnector.saveMissing&&n.backendConnector.saveMissing(e,s,o,I?t.defaultValue:p,I,t),n.emit("missingKey",e,s,o,p)};if(this.options.saveMissing){var N=void 0!==t.count&&"string"!=typeof t.count;this.options.saveMissingPlurals&&N?E.forEach(function(e){n.pluralResolver.getPluralFormsOfKey(e,r).forEach(function(t){return L([e],t)})}):L(E,r)}}p=this.extendTranslation(p,e,t,c),R&&p===r&&this.options.appendNamespaceToMissingKey&&(p="".concat(s,":").concat(r)),R&&this.options.parseMissingKeyHandler&&(p=this.options.parseMissingKeyHandler(p))}return p}},{key:"extendTranslation",value:function(e,t,n,o){var a=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,n,o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init(eC({},n,{interpolation:eC({},this.options.interpolation,n.interpolation)}));var r=n.replace&&"string"!=typeof n.replace?n.replace:n;this.options.interpolation.defaultVariables&&(r=eC({},this.options.interpolation.defaultVariables,r)),e=this.interpolator.interpolate(e,r,n.lng||this.language,n),!1!==n.nest&&(e=this.interpolator.nest(e,function(){return a.translate.apply(a,arguments)},n)),n.interpolation&&this.interpolator.reset()}var i=n.postProcess||this.options.postProcess,s="string"==typeof i?[i]:i;return null!=e&&s&&s.length&&!1!==n.applyPostProcessor&&(e=eQ.handle(s,e,t,this.options&&this.options.postProcessPassResolved?eC({i18nResolved:o},n):n,this)),e}},{key:"resolve",value:function(e){var t,n,o,a,r,i=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!i.isValidLookup(t)){var l=i.extractFromKey(e,s),u=l.key;n=u;var c=l.namespaces;i.options.fallbackNS&&(c=c.concat(i.options.fallbackNS));var p=void 0!==s.count&&"string"!=typeof s.count,d=void 0!==s.context&&"string"==typeof s.context&&""!==s.context,f=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);c.forEach(function(e){i.isValidLookup(t)||(r=e,i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(r)&&i.logger.warn('key "'.concat(n,'" for namespace "').concat(r,"\" won't get resolved as namespace was not yet loaded"),"This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"),f.forEach(function(n){if(!i.isValidLookup(t)){a=n;var r,l,c=u,f=[c];for(i.i18nFormat&&i.i18nFormat.addLookupKeys?i.i18nFormat.addLookupKeys(f,u,n,e,s):(p&&(r=i.pluralResolver.getSuffix(n,s.count)),p&&d&&f.push(c+r),d&&f.push(c+="".concat(i.options.contextSeparator).concat(s.context)),p&&f.push(c+=r));l=f.pop();)i.isValidLookup(t)||(o=l,t=i.getResource(n,e,l,s))}}))})}}),{res:t,usedKey:n,exactUsedKey:o,usedLng:a,usedNS:r}}},{key:"isValidLookup",value:function(e){return void 0!==e&&!(!this.options.returnNull&&null===e)&&!(!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,o):this.resourceStore.getResource(e,t,n,o)}}]),t}(eW);function e1(e){return e.charAt(0).toUpperCase()+e.slice(1)}var e2=function(){function e(t){ek(this,e),this.options=t,this.whitelist=this.options.whitelist||!1,this.logger=eq.create("languageUtils")}return eN(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return null;var t=e.split("-");return 2===t.length?null:(t.pop(),this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||0>e.indexOf("-"))return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(e){return e.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=e1(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=e1(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=e1(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist)&&(e=this.getLanguagePartFromCode(e)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(e)>-1}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,o=this.getFallbackCodes(t||this.options.fallbackLng||[],e),a=[],r=function(e){e&&(n.isWhitelisted(e)?a.push(e):n.logger.warn("rejecting non-whitelisted language code: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&r(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(e))):"string"==typeof e&&r(this.formatLanguageCode(e)),o.forEach(function(e){0>a.indexOf(e)&&r(n.formatLanguageCode(e))}),a}}]),e}(),e3=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he"],nr:[1,2,20,21],fc:22}],e8={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0===e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(+(1!=e&&e%10!=1))},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0===e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0===e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:3*(e%100==3||e%100==4))},22:function(e){return Number(1===e?0:2===e?1:(e<0||e>10)&&e%10==0?2:3)}},e4=function(){function e(t){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ek(this,e),this.languageUtils=t,this.options=o,this.logger=eq.create("pluralResolver"),this.rules=(n={},e3.forEach(function(e){e.lngs.forEach(function(t){n[t]={numbers:e.nr,plurals:e8[e.fc]}})}),n)}return eN(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){var n=this,o=[],a=this.getRule(e);return a&&a.numbers.forEach(function(a){var r=n.getSuffix(e,a);o.push("".concat(t).concat(r))}),o}},{key:"getSuffix",value:function(e,t){var n=this,o=this.getRule(e);if(o){var a=o.noAbs?o.plurals(t):o.plurals(Math.abs(t)),r=o.numbers[a];this.options.simplifyPluralSuffix&&2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):i():"v2"===this.options.compatibilityJSON?i():this.options.simplifyPluralSuffix&&2===o.numbers.length&&1===o.numbers[0]?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),e5=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ek(this,e),this.logger=eq.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return eN(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:eZ,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?eJ(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?eJ(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?eJ(t.nestingPrefix):t.nestingPrefixEscaped||eJ("$t("),this.nestingSuffix=t.nestingSuffix?eJ(t.nestingSuffix):t.nestingSuffixEscaped||eJ(")"),this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=RegExp(n,"g")}},{key:"interpolate",value:function(e,t,n,o){var a,r,i,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(0>e.indexOf(s.formatSeparator))return eK(t,l,e);var o=e.split(s.formatSeparator),a=o.shift().trim(),r=o.join(s.formatSeparator).trim();return s.format(eK(t,l,a),r,n)};this.resetRegExp();var p=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler;for(i=0;a=this.regexpUnescape.exec(e);){if(void 0===(r=c(a[1].trim())))if("function"==typeof p){var d=p(e,a,o);r="string"==typeof d?d:""}else this.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),r="";else"string"==typeof r||this.useRawValueToEscape||(r=eG(r));if(e=e.replace(a[0],u(r)),this.regexpUnescape.lastIndex=0,++i>=this.maxReplaces)break}for(i=0;a=this.regexp.exec(e);){if(void 0===(r=c(a[1].trim())))if("function"==typeof p){var f=p(e,a,o);r="string"==typeof f?f:""}else this.logger.warn("missed to pass in variable ".concat(a[1]," for interpolating ").concat(e)),r="";else"string"==typeof r||this.useRawValueToEscape||(r=eG(r));if(r=u(this.escapeValue?this.escape(r):r),e=e.replace(a[0],r),this.regexp.lastIndex=0,++i>=this.maxReplaces)break}return e}},{key:"nest",value:function(e,t){var n,o,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=eC({},a);function i(e,t){if(0>e.indexOf(","))return e;var n=e.split(",");e=n.shift();var o=n.join(",");o=(o=this.interpolate(o,r)).replace(/'/g,'"');try{r=JSON.parse(o),t&&(r=eC({},t,r))}catch(t){this.logger.error("failed parsing options string in nesting for key ".concat(e),t)}return delete r.defaultValue,e}for(r.applyPostProcessor=!1,delete r.defaultValue;n=this.nestingRegexp.exec(e);){if((o=t(i.call(this,n[1].trim(),r),r))&&n[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=eG(o)),o||(this.logger.warn("missed to resolve ".concat(n[1]," for nesting ").concat(e)),o=""),e=e.replace(n[0],o),this.regexp.lastIndex=0}return e}}]),e}(),e9=function(e){function t(e,n,o){var a,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return ek(this,t),a=ej(this,eD(t).call(this)),eW.call(eP(a)),a.backend=e,a.store=n,a.services=o,a.languageUtils=o.languageUtils,a.options=r,a.logger=eq.create("backendConnector"),a.state={},a.queue=[],a.backend&&a.backend.init&&a.backend.init(o,r.backend,r),a}return eM(t,e),eN(t,[{key:"queueLoad",value:function(e,t,n,o){var a=this,r=[],i=[],s=[],l=[];return e.forEach(function(e){var o=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!n.reload&&a.store.hasResourceBundle(e,t)?a.state[s]=2:a.state[s]<0||(1===a.state[s]?0>i.indexOf(s)&&i.push(s):(a.state[s]=1,o=!1,0>i.indexOf(s)&&i.push(s),0>r.indexOf(s)&&r.push(s),0>l.indexOf(t)&&l.push(t)))}),o||s.push(e)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:o}),{toLoad:r,pending:i,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,n){var o=eU(e.split("|"),2),a=o[0],r=o[1];t&&this.emit("failedLoading",a,r,t),n&&this.store.addResourceBundle(a,r,n),this.state[e]=t?-1:2;var i={};this.queue.forEach(function(n){o=n.loaded,(l=(s=eH(o,[a],Object)).obj)[u=s.k]=l[u]||[],l[u].push(r);for(var o,s,l,u,c=n.pending,p=c.indexOf(e);-1!==p;)c.splice(p,1),p=c.indexOf(e);t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach(function(e){i[e]||(i[e]=[]),n.loaded[e].length&&n.loaded[e].forEach(function(t){0>i[e].indexOf(t)&&i[e].push(t)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",i),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,n){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,i=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,function(s,l){s&&l&&a<5?setTimeout(function(){o.read.call(o,e,t,n,a+1,2*r,i)},r):i(s,l)}):i(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var r=this.queueLoad(e,t,o,a);if(!r.toLoad.length)return r.pending.length||a(),null;r.toLoad.forEach(function(e){n.loadOne(e)})}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",o=eU(e.split("|"),2),a=o[0],r=o[1];this.read(a,r,"read",null,null,function(o,i){o&&t.logger.warn("".concat(n,"loading namespace ").concat(r," for language ").concat(a," failed"),o),!o&&i&&t.logger.log("".concat(n,"loaded namespace ").concat(r," for language ").concat(a),i),t.loaded(e,o,i)})}},{key:"saveMissing",value:function(e,t,n,o,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(n,'" for namespace "').concat(t,'" as the namespace was not yet loaded'),"This means something IS WRONG in your application setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):(this.backend&&this.backend.create&&this.backend.create(e,t,n,o,null,eC({},r,{isUpdate:a})),e&&e[0]&&this.store.addResource(e[0],t,n,o))}}]),t}(eW);function e6(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&0>e.whitelist.indexOf("cimode")&&(e.whitelist=e.whitelist.concat(["cimode"])),e}function e7(){}var te=new(function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;if(ek(this,t),e=ej(this,eD(t).call(this)),eW.call(eP(e)),e.options=e6(n),e.services={},e.logger=eq,e.modules={external:[]},o&&!e.isInitialized&&!n.isClone){if(!e.options.initImmediate)return e.init(n,o),ej(e,eP(e));setTimeout(function(){e.init(n,o)},0)}return e}return eM(t,e),eN(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;function o(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof t&&(n=t,t={}),this.options=eC({},{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){var t={};if("object"===eI(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===eI(e[2])||"object"===eI(e[3])){var n=e[3]||e[2];Object.keys(n).forEach(function(e){t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,n){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",maxReplaces:1e3}},this.options,e6(t)),this.format=this.options.interpolation.format,n||(n=e7),!this.options.isClone){this.modules.logger?eq.init(o(this.modules.logger),this.options):eq.init(null,this.options);var a=new e2(this.options);this.store=new eX(this.options.resources,this.options);var r=this.services;r.logger=eq,r.resourceStore=this.store,r.languageUtils=a,r.pluralResolver=new e4(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),r.interpolator=new e5(this.options),r.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},r.backendConnector=new e9(o(this.modules.backend),r.resourceStore,r,this.options),r.backendConnector.on("*",function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];e.emit.apply(e,[t].concat(o))}),this.modules.languageDetector&&(r.languageDetector=o(this.modules.languageDetector),r.languageDetector.init(r,this.options.detection,this.options)),this.modules.i18nFormat&&(r.i18nFormat=o(this.modules.i18nFormat),r.i18nFormat.init&&r.i18nFormat.init(this)),this.translator=new e0(this.services,this.options),this.translator.on("*",function(t){for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];e.emit.apply(e,[t].concat(o))}),this.modules.external.forEach(function(t){t.init&&t.init(e)})}["getResource","addResource","addResources","addResourceBundle","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(function(t){e[t]=function(){var n;return(n=e.store)[t].apply(n,arguments)}});var i=e_(),s=function(){e.changeLanguage(e.options.lng,function(t,o){e.isInitialized=!0,e.logger.log("initialized",e.options),e.emit("initialized",e.options),i.resolve(o),n(t,o)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),i}},{key:"loadResources",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e7;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&"cimode"===this.language.toLowerCase())return t();var n=[],o=function(t){t&&e.services.languageUtils.toResolveHierarchy(t).forEach(function(e){0>n.indexOf(e)&&n.push(e)})};this.language?o(this.language):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return o(e)}),this.options.preload&&this.options.preload.forEach(function(e){return o(e)}),this.services.backendConnector.load(n,this.options.ns,t)}else t(null)}},{key:"reloadResources",value:function(e,t,n){var o=e_();return e||(e=this.languages),t||(t=this.options.ns),n||(n=e7),this.services.backendConnector.reload(e,t,function(e){o.resolve(),n(e)}),o}},{key:"use",value:function(e){return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&eQ.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this,o=e_();this.emit("languageChanging",e);var a=function(e,a){n.translator.changeLanguage(a),a&&(n.emit("languageChanged",a),n.logger.log("languageChanged",a)),o.resolve(function(){return n.t.apply(n,arguments)}),t&&t(e,function(){return n.t.apply(n,arguments)})},r=function(e){e&&(n.language=e,n.languages=n.services.languageUtils.toResolveHierarchy(e),n.translator.language||n.translator.changeLanguage(e),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(e)),n.loadResources(function(t){a(t,e)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(r):r(e):r(this.services.languageDetector.detect()),o}},{key:"getFixedT",value:function(e,t){var n=this,o=function e(t,o){var a;if("object"!==eI(o)){for(var r=arguments.length,i=Array(r>2?r-2:0),s=2;s<r;s++)i[s-2]=arguments[s];a=n.options.overloadTranslationOptionHandler([t,o].concat(i))}else a=eC({},o);return a.lng=a.lng||e.lng,a.lngs=a.lngs||e.lngs,a.ns=a.ns||e.ns,n.t(t,a)};return"string"==typeof e?o.lng=e:o.lngs=e,o.ns=t,o}},{key:"t",value:function(){var e;return this.translator&&(e=this.translator).translate.apply(e,arguments)}},{key:"exists",value:function(){var e;return this.translator&&(e=this.translator).exists.apply(e,arguments)}},{key:"setDefaultNamespace",value:function(e){this.options.defaultNS=e}},{key:"hasLoadedNamespace",value:function(e){var t=this;if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var n=this.languages[0],o=!!this.options&&this.options.fallbackLng,a=this.languages[this.languages.length-1];if("cimode"===n.toLowerCase())return!0;var r=function(e,n){var o=t.services.backendConnector.state["".concat(e,"|").concat(n)];return -1===o||2===o};return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||r(n,e)&&(!o||r(a,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,o=e_();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){0>n.options.ns.indexOf(e)&&n.options.ns.push(e)}),this.loadResources(function(e){o.resolve(),t&&t(e)}),o):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=e_();"string"==typeof e&&(e=[e]);var o=this.options.preload||[],a=e.filter(function(e){return 0>o.indexOf(e)});return a.length?(this.options.preload=o.concat(a),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){return(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),e)?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr":"rtl"}},{key:"createInstance",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;return new t(e,n)}},{key:"cloneInstance",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e7,a=eC({},this.options,n,{isClone:!0}),r=new t(a);return["store","services","language"].forEach(function(t){r[t]=e[t]}),r.translator=new e0(r.services,r.options),r.translator.on("*",function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];r.emit.apply(r,[e].concat(n))}),r.init(a,o),r.translator.options=r.options,r}}]),t}(eW));let tt={CT:"ctToolGroup",PT:"ptToolGroup",Fusion:"fusionToolGroup",MIP:"mipToolGroup",default:"default"},{TOOLBAR_SECTIONS:tn}=w.ToolbarService,to={commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:[tt.CT,tt.PT,tt.Fusion]}},ta={"tmtv.toolbarButtons":[{id:"MeasurementTools",uiType:"ohif.toolButtonList",props:{buttonSection:!0}},{id:"SegmentationTools",uiType:"ohif.toolBoxButton",props:{buttonSection:!0}},{id:"BrushTools",uiType:"ohif.toolBoxButtonGroup",props:{buttonSection:!0}},{id:"AdvancedRenderingControls",uiType:"ohif.advancedRenderingControls",props:{buttonSection:!0}},{id:"modalityLoadBadge",uiType:"ohif.modalityLoadBadge",props:{icon:"Status",label:te.t("Buttons:Status"),tooltip:te.t("Buttons:Status"),evaluate:{name:"evaluate.modalityLoadBadge",hideWhenDisabled:!0}}},{id:"Colorbar",uiType:"ohif.colorbar",props:{type:"tool",label:te.t("Buttons:Colorbar")}},{id:"navigationComponent",uiType:"ohif.navigationComponent",props:{icon:"Navigation",label:te.t("Buttons:Navigation"),tooltip:te.t("Buttons:Navigate between segments/measurements and manage their visibility"),evaluate:{name:"evaluate.navigationComponent",hideWhenDisabled:!0}}},{id:"windowLevelMenuEmbedded",uiType:"ohif.windowLevelMenuEmbedded",props:{icon:"WindowLevel",label:te.t("Buttons:Window Level"),tooltip:te.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:{name:"evaluate.windowLevelMenuEmbedded",hideWhenDisabled:!0}}},{id:"trackingStatus",uiType:"ohif.trackingStatus",props:{icon:"TrackingStatus",label:te.t("Buttons:Tracking Status"),tooltip:te.t("Buttons:View and manage tracking status of measurements and annotations"),evaluate:{name:"evaluate.trackingStatus",hideWhenDisabled:!0}}},{id:"Length",uiType:"ohif.toolButton",props:{icon:"tool-length",label:te.t("Buttons:Length"),tooltip:te.t("Buttons:Length Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Bidirectional",uiType:"ohif.toolButton",props:{icon:"tool-bidirectional",label:te.t("Buttons:Bidirectional"),tooltip:te.t("Buttons:Bidirectional Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"ArrowAnnotate",uiType:"ohif.toolButton",props:{icon:"tool-annotate",label:te.t("Buttons:Arrow Annotate"),tooltip:te.t("Buttons:Arrow Annotate Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"EllipticalROI",uiType:"ohif.toolButton",props:{icon:"tool-ellipse",label:te.t("Buttons:Ellipse"),tooltip:te.t("Buttons:Ellipse Tool"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Zoom",uiType:"ohif.toolButton",props:{icon:"tool-zoom",label:te.t("Buttons:Zoom"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"WindowLevel",uiType:"ohif.toolButton",props:{icon:"tool-window-level",label:te.t("Buttons:Window Level"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Crosshairs",uiType:"ohif.toolButton",props:{icon:"tool-crosshair",label:te.t("Buttons:Crosshairs"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"Pan",uiType:"ohif.toolButton",props:{icon:"tool-move",label:te.t("Buttons:Pan"),commands:to,evaluate:"evaluate.cornerstoneTool"}},{id:"RectangleROIStartEndThreshold",uiType:"ohif.toolBoxButton",props:{icon:"tool-create-threshold",label:te.t("Buttons:Rectangle ROI Threshold"),commands:to,evaluate:["evaluate.cornerstone.segmentation",{name:"evaluate.cornerstoneTool",disabledText:te.t("Buttons:Select the PT Axial to enable this tool")}],options:"tmtv.RectangleROIThresholdOptions"}},{id:"Brush",uiType:"ohif.toolButton",props:{icon:"icon-tool-brush",label:te.t("Buttons:Brush"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["CircularBrush","SphereBrush"],disabledText:te.t("Buttons:Create new segmentation to enable this tool.")},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"brush-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"brush-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularBrush","SphereBrush"]}}},{name:te.t("Buttons:Shape"),type:"radio",id:"brush-mode",value:"CircularBrush",values:[{value:"CircularBrush",label:te.t("Buttons:Circle")},{value:"SphereBrush",label:te.t("Buttons:Sphere")}],commands:"setToolActiveToolbar"}]}},{id:"Eraser",uiType:"ohif.toolButton",props:{icon:"icon-tool-eraser",label:te.t("Buttons:Eraser"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["CircularEraser","SphereEraser"]},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"eraser-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"eraser-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularEraser","SphereEraser"]}}},{name:te.t("Buttons:Shape"),type:"radio",id:"eraser-mode",value:"CircularEraser",values:[{value:"CircularEraser",label:te.t("Buttons:Circle")},{value:"SphereEraser",label:te.t("Buttons:Sphere")}],commands:"setToolActiveToolbar"}]}},{id:"Threshold",uiType:"ohif.toolButton",props:{icon:"icon-tool-threshold",label:te.t("Buttons:Threshold Tool"),evaluate:[{name:"evaluate.cornerstone.segmentation",toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]},{name:"evaluate.cornerstone.segmentation.synchronizeDrawingRadius",radiusOptionId:"threshold-radius"}],options:[{name:te.t("Buttons:Radius (mm)"),id:"threshold-radius",type:"range",explicitRunOnly:!0,min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]}}},{name:te.t("Buttons:Threshold"),type:"radio",id:"dynamic-mode",value:"ThresholdRange",values:[{value:"ThresholdDynamic",label:te.t("Buttons:Dynamic")},{value:"ThresholdRange",label:te.t("Buttons:Range")}],commands:({value:e,commandsManager:t})=>{"ThresholdDynamic"===e?t.run("setToolActive",{toolName:"ThresholdCircularBrushDynamic"}):t.run("setToolActive",{toolName:"ThresholdCircularBrush"})}},{name:te.t("Buttons:Shape"),type:"radio",id:"eraser-mode",value:"ThresholdCircularBrush",values:[{value:"ThresholdCircularBrush",label:te.t("Buttons:Circle")},{value:"ThresholdSphereBrush",label:te.t("Buttons:Sphere")}],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:"setToolActiveToolbar"},{name:te.t("ROIThresholdConfiguration:ThresholdRange"),type:"double-range",id:"threshold-range",min:0,max:50,step:.5,value:[2.5,50],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:{commandName:"setThresholdRange",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush"]}}}]}},{id:"dataOverlayMenu",uiType:"ohif.dataOverlayMenu",props:{icon:"ViewportViews",label:te.t("Buttons:Data Overlay"),tooltip:te.t("Buttons:Configure data overlay options and manage foreground/background display sets"),evaluate:"evaluate.dataOverlayMenu"}},{id:"orientationMenu",uiType:"ohif.orientationMenu",props:{icon:"OrientationSwitch",label:te.t("Buttons:Orientation"),tooltip:te.t("Buttons:Change viewport orientation between axial, sagittal, coronal and reformat planes"),evaluate:{name:"evaluate.orientationMenu"}}},{id:"windowLevelMenu",uiType:"ohif.windowLevelMenu",props:{icon:"WindowLevel",label:te.t("Buttons:Window Level"),tooltip:te.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:"evaluate.windowLevelMenu"}},{id:"voiManualControlMenu",uiType:"ohif.voiManualControlMenu",props:{icon:"WindowLevelAdvanced",label:te.t("Buttons:Advanced Window Level"),tooltip:te.t("Buttons:Advanced window/level settings with manual controls and presets"),evaluate:"evaluate.voiManualControlMenu"}},{id:"thresholdMenu",uiType:"ohif.thresholdMenu",props:{icon:"Threshold",label:te.t("Buttons:Threshold"),tooltip:te.t("Buttons:Image threshold settings"),evaluate:{name:"evaluate.thresholdMenu",hideWhenDisabled:!0}}},{id:"opacityMenu",uiType:"ohif.opacityMenu",props:{icon:"Opacity",label:te.t("Buttons:Opacity"),tooltip:te.t("Buttons:Image opacity settings"),evaluate:{name:"evaluate.opacityMenu",hideWhenDisabled:!0}}}],"tmtv.toolbarSections":{[tn.primary]:["MeasurementTools","Zoom","Pan","WindowLevel","Crosshairs"],[tn.viewportActionMenu.topLeft]:["orientationMenu","dataOverlayMenu"],[tn.viewportActionMenu.bottomMiddle]:["AdvancedRenderingControls"],AdvancedRenderingControls:["windowLevelMenuEmbedded","voiManualControlMenu","Colorbar","opacityMenu","thresholdMenu"],[tn.viewportActionMenu.topRight]:["modalityLoadBadge","trackingStatus","navigationComponent"],[tn.viewportActionMenu.bottomLeft]:["windowLevelMenu"],MeasurementTools:["Length","Bidirectional","ArrowAnnotate","EllipticalROI"],ROIThresholdToolbox:["SegmentationTools"],SegmentationTools:["RectangleROIStartEndThreshold","BrushTools"],BrushTools:["Brush","Eraser","Threshold"]}},tr={id:e,preRegistration({servicesManager:e,commandsManager:t,extensionManager:o,configuration:a={}}){!function({servicesManager:e}){let{measurementService:t,displaySetService:o,cornerstoneViewportService:a}=e.services;(0,eo.addTool)(eo.RectangleROIStartEndThresholdTool),(0,eo.addTool)(eo.CircleROIStartEndThresholdTool);let{RectangleROIStartEndThreshold:r,CircleROIStartEndThreshold:i}={RectangleROIStartEndThreshold:{toAnnotation:er,toMeasurement:e=>((e,t,o)=>{let a,{annotation:r,viewportId:i}=e,{metadata:s,data:l,annotationUID:u}=r;if(!s||!l)return console.warn("Length tool: Missing metadata or data"),null;let{toolName:c,referencedImageId:p,FrameOfReferenceUID:d}=s;if(!ea.includes(c))throw Error("Tool not supported");let{SOPInstanceUID:f,SeriesInstanceUID:h,StudyInstanceUID:g}=(0,n.getSOPInstanceAttributes)(p,o,i);return a=f?t.getDisplaySetForSOPInstanceUID(f,h):t.getDisplaySetsForSeries(h),{uid:u,SOPInstanceUID:f,FrameOfReferenceUID:d,metadata:s,referenceSeriesUID:h,referenceStudyUID:g,toolName:s.toolName,displaySetInstanceUID:a.displaySetInstanceUID,label:s.label,data:l.cachedStats,type:"RectangleROIStartEndThreshold"}})(e,o,a),matchingCriteria:[{valueType:t.VALUE_TYPES.ROI_THRESHOLD_MANUAL}]},CircleROIStartEndThreshold:{toAnnotation:ei,toMeasurement:e=>((e,t,o)=>{let a,{annotation:r,viewportId:i}=e,{metadata:s,data:l,annotationUID:u}=r;if(!s||!l)return console.warn("Length tool: Missing metadata or data"),null;let{toolName:c,referencedImageId:p,FrameOfReferenceUID:d}=s;if(!ea.includes(c))throw Error("Tool not supported");let{SOPInstanceUID:f,SeriesInstanceUID:h,StudyInstanceUID:g}=(0,n.getSOPInstanceAttributes)(p,o,i);a=f?t.getDisplaySetForSOPInstanceUID(f,h):t.getDisplaySetsForSeries(h);let{cachedStats:m}=l;return{uid:u,SOPInstanceUID:f,FrameOfReferenceUID:d,metadata:s,referenceSeriesUID:h,referenceStudyUID:g,toolName:s.toolName,displaySetInstanceUID:a.displaySetInstanceUID,label:s.label,data:l.cachedStats,type:"CircleROIStartEndThreshold"}})(e,o,a),matchingCriteria:[{valueType:t.VALUE_TYPES.ROI_THRESHOLD_MANUAL}]}},s=t.getSource(es,el);t.addMapping(s,"RectangleROIStartEndThreshold",r.matchingCriteria,r.toAnnotation,r.toMeasurement),t.addMapping(s,"CircleROIStartEndThreshold",i.matchingCriteria,i.toAnnotation,i.toMeasurement)}({servicesManager:e,commandsManager:t,extensionManager:o,configuration:a})},getToolbarModule:function(){return[{name:"tmtv.RectangleROIThresholdOptions",defaultComponent:eO}]},getPanelModule:function({commandsManager:e,extensionManager:t,servicesManager:n}){let{toolbarService:o}=n.services;return[{name:"petSUV",iconName:"tab-patient-info",iconLabel:"Patient Info",label:"Patient Info",component:()=>S.createElement(J,null)},{name:"tmtv",iconName:"tab-segmentation",iconLabel:"Segmentation",component:()=>S.createElement(S.Fragment,null,S.createElement(Q.Toolbox,{buttonSectionId:o.sections.roiThresholdToolbox,title:en().t("ROIThresholdConfiguration:Threshold Tools")}),S.createElement(ee,{commandsManager:e,servicesManager:n}))},{name:"tmtvBox",iconName:"tab-segmentation",iconLabel:"Segmentation",label:"Segmentation Toolbox",component:()=>S.createElement(Q.Toolbox,{buttonSectionId:o.sections.roiThresholdToolbox,title:en().t("ROIThresholdConfiguration:Threshold Tools")})},{name:"tmtvExport",iconName:"tab-segmentation",iconLabel:"Segmentation",label:"Segmentation Export",component:()=>S.createElement(X,null)}]},getHangingProtocolModule:function(){return(0,n.isNextViewportsEnabled)()&&[p,d,g].forEach(e=>{let t=e.displaySets?.find(e=>"ptDisplaySet"===e.id),o=t?.options?.colormap;o&&(o.opacity=n.NEXT_FUSION_PT_OPACITY)}),[{name:b.id,protocol:b}]},getCustomizationModule:function(){return[{name:"default",value:{...ta}}]},getCommandsModule:({servicesManager:e,commandsManager:t,extensionManager:o})=>(({servicesManager:e,commandsManager:t,extensionManager:o})=>{let{viewportGridService:a,uiNotificationService:r,displaySetService:i,hangingProtocolService:s,toolGroupService:l,cornerstoneViewportService:u,segmentationService:c}=e.services,{getEnabledElement:p}=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.common").exports;function d(){let{activeViewportId:e}=a.getState(),{element:t}=p(e)||{};return eu.getEnabledElement(t)}function f(e){return e.reduce((e,t)=>{let n=eo.annotation.selection.getAnnotationsSelectedByToolName(t);return e.concat(n)},[])}let h={getMatchingPTDisplaySet:({viewportMatchDetails:e})=>{let t=null;for(let[,n]of e){let{displaySetsInfo:e}=n,o=e.map(({displaySetInstanceUID:e})=>i.getDisplaySetByUID(e));if(o&&0!==o.length&&(t=o.find(e=>"PT"===e.Modality)))break}return t},getPTMetadata:({ptDisplaySet:e})=>{let t=o.getDataSources()[0].getImageIdsForDisplaySet(e)[0],n=eS.get("instance",t);if("PT"===n.Modality)return{SeriesTime:n.SeriesTime,Modality:n.Modality,PatientSex:n.PatientSex,PatientWeight:n.PatientWeight,RadiopharmaceuticalInformationSequence:{RadionuclideTotalDose:n.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose,RadionuclideHalfLife:n.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife,RadiopharmaceuticalStartTime:n.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime,RadiopharmaceuticalStartDateTime:n.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime}}},createNewLabelmapFromPT:async({label:e})=>{let{viewportMatchDetails:t}=s.getMatchDetails(),n=h.getMatchingPTDisplaySet({viewportMatchDetails:t}),o=null;for(let[e,{displaySetsInfo:a}]of t.entries())if(a.some(({displaySetInstanceUID:e})=>e===n.displaySetInstanceUID)){o=e;break}if(!n)return void r.error("No matching PT display set found");let a=c.getSegmentationRepresentations(o),l=i.getDisplaySetByUID(n.displaySetInstanceUID),u=await c.createLabelmapForDisplaySet(l,{label:`Segmentation ${a.length+1}`,segments:{1:{label:`${en().t("Segment")} 1`,active:!0}}});return c.addSegmentationRepresentation(o,{segmentationId:u}),u},thresholdSegmentationByRectangleROITool:({segmentationId:e,config:t,segmentIndex:n})=>{let{representationData:o}=eo.segmentation.state.getSegmentation(e),{displaySetMatchDetails:a}=s.getMatchDetails(),l=a.get("ctDisplaySet"),u=a.get("ptDisplaySet"),c=i.getDisplaySetByUID(l.displaySetInstanceUID),p=i.getDisplaySetByUID(u.displaySetInstanceUID),{volumeId:d}=o[ev.Labelmap],h=eu.cache.getVolume(d),g=f(eT);if(0===g.length)return void r.show({title:"Commands Module",message:"No ROIThreshold Tool is Selected",type:"error"});let{ptLower:m,ptUpper:y,ctLower:v,ctUpper:b}=ec(g,p,t),{imageIds:S}=p,T=eu.cache.getVolumeContainingImageId(S[0]);if(!T)return void r.error("No PT volume found");let{imageIds:x}=c,w=eu.cache.getVolumeContainingImageId(x[0]);if(!w)return void r.error("No CT volume found");let R=T.volume,O=w.volume;return eo.utilities.segmentation.rectangleROIThresholdVolumeByRange(g,h,[{volume:R,lower:m,upper:y},{volume:O,lower:v,upper:b}],{overwrite:!0,segmentIndex:n,segmentationId:e})},calculateTMTV:async({segmentations:e})=>{let t=e.map(e=>e.segmentationId),n=await eo.utilities.segmentation.computeMetabolicStats({segmentationIds:t,segmentIndex:1});return c.setSegmentationGroupStats(t,n),n},exportTMTVReportCSV:async({segmentations:e,tmtv:n,config:o,options:a})=>{let r=t.runCommand("getSegmentationCSVReport",{segmentations:e}),i=0;for(let e in r)i+=r[e].namedStats_lesionGlycolysis.value;let s=[{key:"Total Lesion Glycolysis",value:{tlg:i.toFixed(4)}},{key:"Threshold Configuration",value:{...o}}];void 0!==n&&s.unshift({key:"Total Metabolic Tumor Volume",value:{tmtv:n}}),function(e,t,n={}){let o=e[Object.keys(e)[0]],a=Object.keys(o),r=[a.map(e=>e.toLowerCase().startsWith("namedstats_")?e.substring(11):e).join(",")];Object.values(e).forEach(e=>{let t=[];a.forEach(n=>{t.push(e[n]&&"object"==typeof e[n]?Array.isArray(e[n])?e[n].join(" "):e[n].value&&Array.isArray(e[n].value)?e[n].value.join(" "):e[n].value??e[n]:e[n])}),r.push(t.join(","))}),r.push(""),r.push(""),r.push(""),r.push(`Patient ID,${o.PatientID}`),r.push(`Study Date,${o.StudyDate}`),r.push(""),t.forEach(({key:e,value:t})=>{let n=[];n.push(`${e}`),Object.keys(t).forEach(e=>{n.push(`${e}`),n.push(`${t[e]}`)}),r.push(n.join(","))}),ep(r.join("\n"),{filename:n.filename??`${o.PatientID}_tmtv.csv`})}(r,s,a)},setStartSliceForROIThresholdTool:()=>{let{viewport:e}=d(),t=(0,n.getViewportFocalPoint)(e);if(!t)return;let o=f(eT)[0],a=eo.annotation.state.getAnnotation(o);a.data.startCoordinate=t,a.invalidated=!0,e.render()},setEndSliceForROIThresholdTool:()=>{let{viewport:e}=d(),t=f(eT)[0],o=eo.annotation.state.getAnnotation(t),a=(0,n.getViewportFocalPoint)(e);a&&(o.data.endCoordinate=a,o.invalidated=!0,e.render())},createTMTVRTReport:()=>{let e=eo.annotation.state.getAnnotationManager(),n=[];Object.keys(e.annotations).forEach(t=>{let o=e.annotations[t],a=eT.reduce((e,t)=>[...e,...o[t]??[]],[]);n.push(...a)}),t.runCommand("exportRTReportForAnnotations",{annotations:n})},getSegmentationCSVReport:({segmentations:e})=>{e&&e.length||(e=c.getSegmentations());let t={};for(let n of e){let{label:e,segmentationId:o,representationData:a}=n,r={id:o,label:e};if(!a){t[o]=r;continue}let{cachedStats:i}=n.segments[1]||{};if(i&&Object.entries(i).forEach(([e,t])=>{"object"!=typeof t?r[e]=t:Object.entries(t).forEach(([t,n])=>{r[`${e}_${t}`]=n})}),!n.representationData[ev.Labelmap]){t[o]=r;continue}let s=eo.utilities.segmentation.getReferenceVolumeForSegmentation(o);if(!s||!s.imageIds||!s.imageIds.length){t[o]=r;continue}let l=s.imageIds[0],u=R().classes.MetadataProvider.get("instance",l);if(!u){t[o]=r;continue}t[o]={...r,PatientID:u.PatientID??"000000",PatientName:eb(u.PatientName),StudyInstanceUID:u.StudyInstanceUID,SeriesInstanceUID:u.SeriesInstanceUID,StudyDate:u.StudyDate}}return t},exportRTReportForAnnotations:({annotations:e})=>{ey(e)},setFusionPTColormap:({toolGroupId:e,colormap:n})=>{let o=l.getToolGroup(e);if(!o)return;let{viewportMatchDetails:a}=s.getMatchDetails(),r=h.getMatchingPTDisplaySet({viewportMatchDetails:a});if(!r)return;let i=o.getViewportIds(),c=[];i.forEach(e=>{t.runCommand("setViewportColormap",{viewportId:e,displaySetInstanceUID:r.displaySetInstanceUID,colormap:{name:n}}),c.push(u.getCornerstoneViewport(e))}),c.forEach(e=>{e.render()})}},g={setEndSliceForROIThresholdTool:{commandFn:h.setEndSliceForROIThresholdTool},setStartSliceForROIThresholdTool:{commandFn:h.setStartSliceForROIThresholdTool},getMatchingPTDisplaySet:{commandFn:h.getMatchingPTDisplaySet},getPTMetadata:{commandFn:h.getPTMetadata},createNewLabelmapFromPT:{commandFn:h.createNewLabelmapFromPT},thresholdSegmentationByRectangleROITool:{commandFn:h.thresholdSegmentationByRectangleROITool},calculateTMTV:{commandFn:h.calculateTMTV},exportTMTVReportCSV:{commandFn:h.exportTMTVReportCSV},createTMTVRTReport:{commandFn:h.createTMTVRTReport},getSegmentationCSVReport:{commandFn:h.getSegmentationCSVReport},exportRTReportForAnnotations:{commandFn:h.exportRTReportForAnnotations},setFusionPTColormap:{commandFn:h.setFusionPTColormap}};return{actions:h,definitions:g,defaultContext:"TMTV:CORNERSTONE"}})({servicesManager:e,commandsManager:t,extensionManager:o})}})(),h})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/extension-tmtv",
3
- "version": "3.13.0-beta.122",
3
+ "version": "3.13.0-beta.123",
4
4
  "description": "OHIF extension for Total Metabolic Tumor Volume",
5
5
  "author": "OHIF",
6
6
  "license": "MIT",
@@ -26,8 +26,8 @@
26
26
  "hammerjs": "2.0.8",
27
27
  "prop-types": "15.8.1",
28
28
  "react": "18.3.1",
29
- "@ohif/core": "3.13.0-beta.122",
30
- "@ohif/ui": "3.13.0-beta.122"
29
+ "@ohif/core": "3.13.0-beta.123",
30
+ "@ohif/ui": "3.13.0-beta.123"
31
31
  },
32
32
  "dependencies": {
33
33
  "@babel/runtime": "7.29.7",