@ohif/mode-tmtv 3.12.0-beta.8 → 3.12.0-beta.80

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")):"function"==typeof define&&define.amd?define(["@ohif/core"],t):"object"==typeof exports?exports["ohif-mode-tmtv"]=t(require("@ohif/core")):e["ohif-mode-tmtv"]=t(e["@ohif/core"])}(globalThis,e=>(()=>{"use strict";var t={2:t=>{t.exports=e}},o={};function n(e){var i=o[e];if(void 0!==i)return i.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>he});var a=n(2);const r="ctToolGroup",s="ptToolGroup",l="fusionToolGroup",u="mipToolGroup",c="default";const p=function(e,t,o,n){!function(e,t,o,n){const i={active:[{toolName:e.WindowLevel,bindings:[{mouseButton:t.MouseBindings.Primary}]},{toolName:e.Pan,bindings:[{mouseButton:t.MouseBindings.Auxiliary}]},{toolName:e.Zoom,bindings:[{mouseButton:t.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:e.StackScroll,bindings:[{mouseButton:t.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:e.Length},{toolName:e.SegmentBidirectional},{toolName:e.ArrowAnnotate,configuration:{getTextCallback:(e,t)=>{n.runCommand("arrowTextCallback",{callback:e,eventDetails:t})},changeTextCallback:(e,t,o)=>{n.runCommand("arrowTextCallback",{callback:o,data:e,eventDetails:t})}}},{toolName:e.Bidirectional},{toolName:e.DragProbe},{toolName:e.Probe},{toolName:e.EllipticalROI},{toolName:e.RectangleROI},{toolName:e.StackScroll},{toolName:e.Angle},{toolName:e.CobbAngle},{toolName:e.Magnify},{toolName:"CircularBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_CIRCLE"}},{toolName:"CircularEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_CIRCLE"}},{toolName:"SphereBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_SPHERE"}},{toolName:"SphereEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_SPHERE"}},{toolName:"ThresholdCircularBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE"}},{toolName:"ThresholdSphereBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_SPHERE"}},{toolName:"ThresholdCircularBrushDynamic",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE",threshold:{isDynamic:!0,dynamicRadius:3}}}],enabled:[],disabled:[{toolName:e.Crosshairs,configuration:{disableOnPassive:!0,autoPan:{enabled:!1,panSize:10}}}]};o.createToolGroupAndAddTools(r,i),o.createToolGroupAndAddTools(s,{active:i.active,passive:[...i.passive,{toolName:"RectangleROIStartEndThreshold"}],enabled:i.enabled,disabled:i.disabled}),o.createToolGroupAndAddTools(l,i),o.createToolGroupAndAddTools(c,i);const a={active:[{toolName:e.VolumeRotate,bindings:[{mouseButton:t.MouseBindings.Wheel}],configuration:{rotateIncrementDegrees:5}},{toolName:e.MipJumpToClick,configuration:{toolGroupId:s},bindings:[{mouseButton:t.MouseBindings.Primary}]}],enabled:[{toolName:e.OrientationMarker,configuration:{orientationWidget:{viewportCorner:"BOTTOM_LEFT"}}}]};o.createToolGroupAndAddTools(u,a)}(e,t,o,n)},d={commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:[r,s,l]}},h=[{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:"Status",tooltip:"Status",evaluate:{name:"evaluate.modalityLoadBadge",hideWhenDisabled:!0}}},{id:"Colorbar",uiType:"ohif.colorbar",props:{type:"tool",label:"Colorbar"}},{id:"navigationComponent",uiType:"ohif.navigationComponent",props:{icon:"Navigation",label:"Navigation",tooltip:"Navigate between segments/measurements and manage their visibility",evaluate:{name:"evaluate.navigationComponent",hideWhenDisabled:!0}}},{id:"windowLevelMenuEmbedded",uiType:"ohif.windowLevelMenuEmbedded",props:{icon:"WindowLevel",label:"Window Level",tooltip:"Adjust window/level presets and customize image contrast settings",evaluate:{name:"evaluate.windowLevelMenuEmbedded",hideWhenDisabled:!0}}},{id:"trackingStatus",uiType:"ohif.trackingStatus",props:{icon:"TrackingStatus",label:"Tracking Status",tooltip:"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:"Length",tooltip:"Length Tool",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"Bidirectional",uiType:"ohif.toolButton",props:{icon:"tool-bidirectional",label:"Bidirectional",tooltip:"Bidirectional Tool",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"ArrowAnnotate",uiType:"ohif.toolButton",props:{icon:"tool-annotate",label:"Arrow Annotate",tooltip:"Arrow Annotate Tool",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"EllipticalROI",uiType:"ohif.toolButton",props:{icon:"tool-ellipse",label:"Ellipse",tooltip:"Ellipse Tool",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"Zoom",uiType:"ohif.toolButton",props:{icon:"tool-zoom",label:"Zoom",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"WindowLevel",uiType:"ohif.toolButton",props:{icon:"tool-window-level",label:"Window Level",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"Crosshairs",uiType:"ohif.toolButton",props:{icon:"tool-crosshair",label:"Crosshairs",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"Pan",uiType:"ohif.toolButton",props:{icon:"tool-move",label:"Pan",commands:d,evaluate:"evaluate.cornerstoneTool"}},{id:"RectangleROIStartEndThreshold",uiType:"ohif.toolBoxButton",props:{icon:"tool-create-threshold",label:"Rectangle ROI Threshold",commands:d,evaluate:["evaluate.cornerstone.segmentation",{name:"evaluate.cornerstoneTool",disabledText:"Select the PT Axial to enable this tool"}],options:"tmtv.RectangleROIThresholdOptions"}},{id:"Brush",uiType:"ohif.toolButton",props:{icon:"icon-tool-brush",label:"Brush",evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["CircularBrush","SphereBrush"],disabledText:"Create new segmentation to enable this tool."},options:[{name:"Radius (mm)",id:"brush-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularBrush","SphereBrush"]}}},{name:"Shape",type:"radio",id:"brush-mode",value:"CircularBrush",values:[{value:"CircularBrush",label:"Circle"},{value:"SphereBrush",label:"Sphere"}],commands:"setToolActiveToolbar"}]}},{id:"Eraser",uiType:"ohif.toolButton",props:{icon:"icon-tool-eraser",label:"Eraser",evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["CircularEraser","SphereEraser"]},options:[{name:"Radius (mm)",id:"eraser-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularEraser","SphereEraser"]}}},{name:"Shape",type:"radio",id:"eraser-mode",value:"CircularEraser",values:[{value:"CircularEraser",label:"Circle"},{value:"SphereEraser",label:"Sphere"}],commands:"setToolActiveToolbar"}]}},{id:"Threshold",uiType:"ohif.toolButton",props:{icon:"icon-tool-threshold",label:"Threshold Tool",evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["ThresholdCircularBrush","ThresholdSphereBrush"]},options:[{name:"Radius (mm)",id:"threshold-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]}}},{name:"Threshold",type:"radio",id:"dynamic-mode",value:"ThresholdRange",values:[{value:"ThresholdDynamic",label:"Dynamic"},{value:"ThresholdRange",label:"Range"}],commands:({value:e,commandsManager:t})=>{"ThresholdDynamic"===e?t.run("setToolActive",{toolName:"ThresholdCircularBrushDynamic"}):t.run("setToolActive",{toolName:"ThresholdCircularBrush"})}},{name:"Shape",type:"radio",id:"eraser-mode",value:"ThresholdCircularBrush",values:[{value:"ThresholdCircularBrush",label:"Circle"},{value:"ThresholdSphereBrush",label:"Sphere"}],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:"setToolActiveToolbar"},{name:"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:"Data Overlay",tooltip:"Configure data overlay options and manage foreground/background display sets",evaluate:"evaluate.dataOverlayMenu"}},{id:"orientationMenu",uiType:"ohif.orientationMenu",props:{icon:"OrientationSwitch",label:"Orientation",tooltip:"Change viewport orientation between axial, sagittal, coronal and reformat planes",evaluate:{name:"evaluate.orientationMenu"}}},{id:"windowLevelMenu",uiType:"ohif.windowLevelMenu",props:{icon:"WindowLevel",label:"Window Level",tooltip:"Adjust window/level presets and customize image contrast settings",evaluate:"evaluate.windowLevelMenu"}},{id:"voiManualControlMenu",uiType:"ohif.voiManualControlMenu",props:{icon:"WindowLevelAdvanced",label:"Advanced Window Level",tooltip:"Advanced window/level settings with manual controls and presets",evaluate:"evaluate.voiManualControlMenu"}},{id:"thresholdMenu",uiType:"ohif.thresholdMenu",props:{icon:"Threshold",label:"Threshold",tooltip:"Image threshold settings",evaluate:{name:"evaluate.thresholdMenu",hideWhenDisabled:!0}}},{id:"opacityMenu",uiType:"ohif.opacityMenu",props:{icon:"Opacity",label:"Opacity",tooltip:"Image opacity settings",evaluate:{name:"evaluate.opacityMenu",hideWhenDisabled:!0}}}],f=JSON.parse('{"UU":"@ohif/mode-tmtv"}').UU;function g(e){return g="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},g(e)}function v(e){var t=function(e,t){if("object"!=g(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=g(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==g(t)?t:t+""}function m(e,t,o){return(t=v(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function y(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?Object(arguments[t]):{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable})),n.forEach(function(t){m(e,t,o[t])})}return e}function b(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function S(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,v(n.key),n)}}function k(e,t,o){return t&&S(e.prototype,t),o&&S(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function T(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function x(e,t){if(t&&("object"==g(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return T(e)}function w(e){return w=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},w(e)}function C(e,t){return C=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},C(e,t)}function O(e,t){if("function"!=typeof t&&null!==t)throw new 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&&C(e,t)}function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=Array(t);o<t;o++)n[o]=e[o];return n}function R(e,t){if(e){if("string"==typeof e)return N(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?N(e,t):void 0}}function L(e){return function(e){if(Array.isArray(e))return N(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||R(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n,i,a,r,s=[],l=!0,u=!1;try{if(a=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;l=!1}else for(;!(l=(n=a.call(o)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=o.return&&(r=o.return(),Object(r)!==r))return}finally{if(u)throw i}}return s}}(e,t)||R(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var P={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 o;console&&console[e]&&(o=console)[e].apply(o,L(t))}},M=new(function(){function e(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this.init(t,o)}return k(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||P,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=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,o,n){return n&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(o).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,y({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),B=function(){function e(){b(this,e),this.observers={}}return k(e,[{key:"on",value:function(e,t){var o=this;return e.split(" ").forEach(function(e){o.observers[e]=o.observers[e]||[],o.observers[e].push(t)}),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter(function(e){return e!==t}):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,o)});this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(o))})}}]),e}();function I(){var e,t,o=new Promise(function(o,n){e=o,t=n});return o.resolve=e,o.reject=t,o}function j(e){return null==e?"":""+e}function A(e,t,o){function n(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(i())return{};var r=n(a.shift());!e[r]&&o&&(e[r]=new o),e=e[r]}return i()?{}:{obj:e,k:n(a.shift())}}function D(e,t,o){var n=A(e,t,Object);n.obj[n.k]=o}function F(e,t){var o=A(e,t),n=o.obj,i=o.k;if(n)return n[i]}function V(e,t,o){var n=F(e,o);return void 0!==n?n:F(t,o)}function U(e,t,o){for(var n in t)n in e?"string"==typeof e[n]||e[n]instanceof String||"string"==typeof t[n]||t[n]instanceof String?o&&(e[n]=t[n]):U(e[n],t[n],o):e[n]=t[n];return e}function H(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var W={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function _(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return W[e]}):e}var z=function(e){function t(e){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return b(this,t),o=x(this,w(t).call(this)),B.call(T(o)),o.data=e||{},o.options=n,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o}return O(t,e),k(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&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,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,a=[e,t];return o&&"string"!=typeof o&&(a=a.concat(o)),o&&"string"==typeof o&&(a=a.concat(i?o.split(i):o)),e.indexOf(".")>-1&&(a=e.split(".")),F(this.data,a)}},{key:"addResource",value:function(e,t,o,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var r=[e,t];o&&(r=r.concat(a?o.split(a):o)),e.indexOf(".")>-1&&(n=t,t=(r=e.split("."))[1]),this.addNamespaces(t),D(this.data,r,n),i.silent||this.emit("added",e,t,o,n)}},{key:"addResources",value:function(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var i in o)"string"!=typeof o[i]&&"[object Array]"!==Object.prototype.toString.apply(o[i])||this.addResource(e,t,i,o[i],{silent:!0});n.silent||this.emit("added",e,t,o)}},{key:"addResourceBundle",value:function(e,t,o,n,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},r=[e,t];e.indexOf(".")>-1&&(n=o,o=t,t=(r=e.split("."))[1]),this.addNamespaces(t);var s=F(this.data,r)||{};n?U(s,o,i):s=y({},s,o),D(this.data,r,s),a.silent||this.emit("added",e,t,o)}},{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?y({},{},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}(B),K={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,o,n,i){var a=this;return e.forEach(function(e){a.processors[e]&&(t=a.processors[e].process(t,o,n,i))}),t}},G=function(e){function t(e){var o,n,i,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return b(this,t),o=x(this,w(t).call(this)),B.call(T(o)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],i=e,a=T(o),n.forEach(function(e){i[e]&&(a[e]=i[e])}),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=M.create("translator"),o}return O(t,e),k(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:{}},o=this.resolve(e,t);return o&&void 0!==o.res}},{key:"extractFromKey",value:function(e,t){var o=t.nsSeparator||this.options.nsSeparator;void 0===o&&(o=":");var n=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,i=t.ns||this.options.defaultNS;if(o&&e.indexOf(o)>-1){var a=e.split(o);(o!==n||o===n&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(n)}return"string"==typeof i&&(i=[i]),{key:e,namespaces:i}}},{key:"translate",value:function(e,t){var o=this;if("object"!==g(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var n=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,i=this.extractFromKey(e[e.length-1],t),a=i.key,r=i.namespaces,s=r[r.length-1],l=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&"cimode"===l.toLowerCase()){if(u){var c=t.nsSeparator||this.options.nsSeparator;return s+c+a}return a}var p=this.resolve(e,t),d=p&&p.res,h=p&&p.usedKey||a,f=p&&p.exactUsedKey||a,v=Object.prototype.toString.apply(d),m=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&d&&("string"!=typeof d&&"boolean"!=typeof d&&"number"!=typeof d)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof m||"[object Array]"!==v)){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(h,d,t):"key '".concat(a," (").concat(this.language,")' returned an object instead of string.");if(n){var S="[object Array]"===v,k=S?[]:{},T=S?f:h;for(var x in d)if(Object.prototype.hasOwnProperty.call(d,x)){var w="".concat(T).concat(n).concat(x);k[x]=this.translate(w,y({},t,{joinArrays:!1,ns:r})),k[x]===w&&(k[x]=d[x])}d=k}}else if(b&&"string"==typeof m&&"[object Array]"===v)(d=d.join(m))&&(d=this.extendTranslation(d,e,t));else{var C=!1,O=!1;if(!this.isValidLookup(d)&&void 0!==t.defaultValue){if(C=!0,void 0!==t.count){var N=this.pluralResolver.getSuffix(l,t.count);d=t["defaultValue".concat(N)]}d||(d=t.defaultValue)}this.isValidLookup(d)||(O=!0,d=a);var R=t.defaultValue&&t.defaultValue!==d&&this.options.updateMissing;if(O||C||R){this.logger.log(R?"updateKey":"missingKey",l,s,a,R?t.defaultValue:d);var L=[],E=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&E&&E[0])for(var P=0;P<E.length;P++)L.push(E[P]);else"all"===this.options.saveMissingTo?L=this.languageUtils.toResolveHierarchy(t.lng||this.language):L.push(t.lng||this.language);var M=function(e,n){o.options.missingKeyHandler?o.options.missingKeyHandler(e,s,n,R?t.defaultValue:d,R,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,s,n,R?t.defaultValue:d,R,t),o.emit("missingKey",e,s,n,d)};if(this.options.saveMissing){var B=void 0!==t.count&&"string"!=typeof t.count;this.options.saveMissingPlurals&&B?L.forEach(function(e){o.pluralResolver.getPluralFormsOfKey(e,a).forEach(function(t){return M([e],t)})}):M(L,a)}}d=this.extendTranslation(d,e,t,p),O&&d===a&&this.options.appendNamespaceToMissingKey&&(d="".concat(s,":").concat(a)),O&&this.options.parseMissingKeyHandler&&(d=this.options.parseMissingKeyHandler(d))}return d}},{key:"extendTranslation",value:function(e,t,o,n){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,o,n.usedLng,n.usedNS,n.usedKey,{resolved:n});else if(!o.skipInterpolation){o.interpolation&&this.interpolator.init(y({},o,{interpolation:y({},this.options.interpolation,o.interpolation)}));var a=o.replace&&"string"!=typeof o.replace?o.replace:o;this.options.interpolation.defaultVariables&&(a=y({},this.options.interpolation.defaultVariables,a)),e=this.interpolator.interpolate(e,a,o.lng||this.language,o),!1!==o.nest&&(e=this.interpolator.nest(e,function(){return i.translate.apply(i,arguments)},o)),o.interpolation&&this.interpolator.reset()}var r=o.postProcess||this.options.postProcess,s="string"==typeof r?[r]:r;return null!=e&&s&&s.length&&!1!==o.applyPostProcessor&&(e=K.handle(s,e,t,this.options&&this.options.postProcessPassResolved?y({i18nResolved:n},o):o,this)),e}},{key:"resolve",value:function(e){var t,o,n,i,a,r=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!r.isValidLookup(t)){var l=r.extractFromKey(e,s),u=l.key;o=u;var c=l.namespaces;r.options.fallbackNS&&(c=c.concat(r.options.fallbackNS));var p=void 0!==s.count&&"string"!=typeof s.count,d=void 0!==s.context&&"string"==typeof s.context&&""!==s.context,h=s.lngs?s.lngs:r.languageUtils.toResolveHierarchy(s.lng||r.language,s.fallbackLng);c.forEach(function(e){r.isValidLookup(t)||(a=e,r.utils&&r.utils.hasLoadedNamespace&&!r.utils.hasLoadedNamespace(a)&&r.logger.warn('key "'.concat(o,'" for namespace "').concat(a,"\" 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!!!"),h.forEach(function(o){if(!r.isValidLookup(t)){i=o;var a,l,c=u,h=[c];if(r.i18nFormat&&r.i18nFormat.addLookupKeys)r.i18nFormat.addLookupKeys(h,u,o,e,s);else p&&(a=r.pluralResolver.getSuffix(o,s.count)),p&&d&&h.push(c+a),d&&h.push(c+="".concat(r.options.contextSeparator).concat(s.context)),p&&h.push(c+=a);for(;l=h.pop();)r.isValidLookup(t)||(n=l,t=r.getResource(o,e,l,s))}}))})}}),{res:t,usedKey:o,exactUsedKey:n,usedLng:i,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,o,n):this.resourceStore.getResource(e,t,o,n)}}]),t}(B);function q(e){return e.charAt(0).toUpperCase()+e.slice(1)}var $=function(){function e(t){b(this,e),this.options=t,this.whitelist=this.options.whitelist||!1,this.logger=M.create("languageUtils")}return k(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)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"],o=e.split("-");return this.options.lowerCaseLng?o=o.map(function(e){return e.toLowerCase()}):2===o.length?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),t.indexOf(o[1].toLowerCase())>-1&&(o[1]=q(o[1].toLowerCase()))):3===o.length&&(o[0]=o[0].toLowerCase(),2===o[1].length&&(o[1]=o[1].toUpperCase()),"sgn"!==o[0]&&2===o[2].length&&(o[2]=o[2].toUpperCase()),t.indexOf(o[1].toLowerCase())>-1&&(o[1]=q(o[1].toLowerCase())),t.indexOf(o[2].toLowerCase())>-1&&(o[2]=q(o[2].toLowerCase()))),o.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 o=e[t];return o||(o=e[this.getScriptPartFromCode(t)]),o||(o=e[this.formatLanguageCode(t)]),o||(o=e.default),o||[]}},{key:"toResolveHierarchy",value:function(e,t){var o=this,n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),i=[],a=function(e){e&&(o.isWhitelisted(e)?i.push(e):o.logger.warn("rejecting non-whitelisted language code: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),n.forEach(function(e){i.indexOf(e)<0&&a(o.formatLanguageCode(e))}),i}}]),e}(),J=[{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}],Z={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?0: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:e%100==3||e%100==4?3:0)},22:function(e){return Number(1===e?0:2===e?1:(e<0||e>10)&&e%10==0?2:3)}};var Y=function(){function e(t){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};b(this,e),this.languageUtils=t,this.options=n,this.logger=M.create("pluralResolver"),this.rules=(o={},J.forEach(function(e){e.lngs.forEach(function(t){o[t]={numbers:e.nr,plurals:Z[e.fc]}})}),o)}return k(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 o=this,n=[],i=this.getRule(e);return i?(i.numbers.forEach(function(i){var a=o.getSuffix(e,i);n.push("".concat(t).concat(a))}),n):n}},{key:"getSuffix",value:function(e,t){var o=this,n=this.getRule(e);if(n){var i=n.noAbs?n.plurals(t):n.plurals(Math.abs(t)),a=n.numbers[i];this.options.simplifyPluralSuffix&&2===n.numbers.length&&1===n.numbers[0]&&(2===a?a="plural":1===a&&(a=""));var r=function(){return o.options.prepend&&a.toString()?o.options.prepend+a.toString():a.toString()};return"v1"===this.options.compatibilityJSON?1===a?"":"number"==typeof a?"_plural_".concat(a.toString()):r():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===n.numbers.length&&1===n.numbers[0]?r():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),Q=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};b(this,e),this.logger=M.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return k(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:_,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?H(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?H(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?H(t.nestingPrefix):t.nestingPrefixEscaped||H("$t("),this.nestingSuffix=t.nestingSuffix?H(t.nestingSuffix):t.nestingSuffixEscaped||H(")"),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=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var o="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(o,"g")}},{key:"interpolate",value:function(e,t,o,n){var i,a,r,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(s.formatSeparator)<0)return V(t,l,e);var n=e.split(s.formatSeparator),i=n.shift().trim(),a=n.join(s.formatSeparator).trim();return s.format(V(t,l,i),a,o)};this.resetRegExp();var p=n&&n.missingInterpolationHandler||this.options.missingInterpolationHandler;for(r=0;i=this.regexpUnescape.exec(e);){if(void 0===(a=c(i[1].trim())))if("function"==typeof p){var d=p(e,i,n);a="string"==typeof d?d:""}else this.logger.warn("missed to pass in variable ".concat(i[1]," for interpolating ").concat(e)),a="";else"string"==typeof a||this.useRawValueToEscape||(a=j(a));if(e=e.replace(i[0],u(a)),this.regexpUnescape.lastIndex=0,++r>=this.maxReplaces)break}for(r=0;i=this.regexp.exec(e);){if(void 0===(a=c(i[1].trim())))if("function"==typeof p){var h=p(e,i,n);a="string"==typeof h?h:""}else this.logger.warn("missed to pass in variable ".concat(i[1]," for interpolating ").concat(e)),a="";else"string"==typeof a||this.useRawValueToEscape||(a=j(a));if(a=this.escapeValue?u(this.escape(a)):u(a),e=e.replace(i[0],a),this.regexp.lastIndex=0,++r>=this.maxReplaces)break}return e}},{key:"nest",value:function(e,t){var o,n,i=y({},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});function a(e,t){if(e.indexOf(",")<0)return e;var o=e.split(",");e=o.shift();var n=o.join(",");n=(n=this.interpolate(n,i)).replace(/'/g,'"');try{i=JSON.parse(n),t&&(i=y({},t,i))}catch(t){this.logger.error("failed parsing options string in nesting for key ".concat(e),t)}return delete i.defaultValue,e}for(i.applyPostProcessor=!1,delete i.defaultValue;o=this.nestingRegexp.exec(e);){if((n=t(a.call(this,o[1].trim(),i),i))&&o[0]===e&&"string"!=typeof n)return n;"string"!=typeof n&&(n=j(n)),n||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(e)),n=""),e=e.replace(o[0],n),this.regexp.lastIndex=0}return e}}]),e}();var X=function(e){function t(e,o,n){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return b(this,t),i=x(this,w(t).call(this)),B.call(T(i)),i.backend=e,i.store=o,i.services=n,i.languageUtils=n.languageUtils,i.options=a,i.logger=M.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,a.backend,a),i}return O(t,e),k(t,[{key:"queueLoad",value:function(e,t,o,n){var i=this,a=[],r=[],s=[],l=[];return e.forEach(function(e){var n=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!o.reload&&i.store.hasResourceBundle(e,t)?i.state[s]=2:i.state[s]<0||(1===i.state[s]?r.indexOf(s)<0&&r.push(s):(i.state[s]=1,n=!1,r.indexOf(s)<0&&r.push(s),a.indexOf(s)<0&&a.push(s),l.indexOf(t)<0&&l.push(t)))}),n||s.push(e)}),(a.length||r.length)&&this.queue.push({pending:r,loaded:{},errors:[],callback:n}),{toLoad:a,pending:r,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,o){var n=E(e.split("|"),2),i=n[0],a=n[1];t&&this.emit("failedLoading",i,a,t),o&&this.store.addResourceBundle(i,a,o),this.state[e]=t?-1:2;var r={};this.queue.forEach(function(o){var n,s,l,u,c,p;n=o.loaded,s=a,u=A(n,[i],Object),c=u.obj,p=u.k,c[p]=c[p]||[],l&&(c[p]=c[p].concat(s)),l||c[p].push(s),function(e,t){for(var o=e.indexOf(t);-1!==o;)e.splice(o,1),o=e.indexOf(t)}(o.pending,e),t&&o.errors.push(t),0!==o.pending.length||o.done||(Object.keys(o.loaded).forEach(function(e){r[e]||(r[e]=[]),o.loaded[e].length&&o.loaded[e].forEach(function(t){r[e].indexOf(t)<0&&r[e].push(t)})}),o.done=!0,o.errors.length?o.callback(o.errors):o.callback())}),this.emit("loaded",r),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,o){var n=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,r=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[o](e,t,function(s,l){s&&l&&i<5?setTimeout(function(){n.read.call(n,e,t,o,i+1,2*a,r)},a):r(s,l)}):r(null,{})}},{key:"prepareLoading",value:function(e,t){var o=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=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."),i&&i();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,n,i);if(!a.toLoad.length)return a.pending.length||i(),null;a.toLoad.forEach(function(e){o.loadOne(e)})}},{key:"load",value:function(e,t,o){this.prepareLoading(e,t,{},o)}},{key:"reload",value:function(e,t,o){this.prepareLoading(e,t,{reload:!0},o)}},{key:"loadOne",value:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=E(e.split("|"),2),i=n[0],a=n[1];this.read(i,a,"read",null,null,function(n,r){n&&t.logger.warn("".concat(o,"loading namespace ").concat(a," for language ").concat(i," failed"),n),!n&&r&&t.logger.log("".concat(o,"loaded namespace ").concat(a," for language ").concat(i),r),t.loaded(e,n,r)})}},{key:"saveMissing",value:function(e,t,o,n,i){var a=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(o,'" 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,o,n,null,y({},a,{isUpdate:i})),e&&e[0]&&this.store.addResource(e[0],t,o,n))}}]),t}(B);function ee(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&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e}function te(){}const oe=new(function(e){function t(){var e,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(b(this,t),e=x(this,w(t).call(this)),B.call(T(e)),e.options=ee(o),e.services={},e.logger=M,e.modules={external:[]},n&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,n),x(e,T(e));setTimeout(function(){e.init(o,n)},0)}return e}return O(t,e),k(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;function n(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof t&&(o=t,t={}),this.options=y({},{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"===g(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===g(e[2])||"object"===g(e[3])){var o=e[3]||e[2];Object.keys(o).forEach(function(e){t[e]=o[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,o){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",maxReplaces:1e3}},this.options,ee(t)),this.format=this.options.interpolation.format,o||(o=te),!this.options.isClone){this.modules.logger?M.init(n(this.modules.logger),this.options):M.init(null,this.options);var i=new $(this.options);this.store=new z(this.options.resources,this.options);var a=this.services;a.logger=M,a.resourceStore=this.store,a.languageUtils=i,a.pluralResolver=new Y(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new Q(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new X(n(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",function(t){for(var o=arguments.length,n=new Array(o>1?o-1:0),i=1;i<o;i++)n[i-1]=arguments[i];e.emit.apply(e,[t].concat(n))}),this.modules.languageDetector&&(a.languageDetector=n(this.modules.languageDetector),a.languageDetector.init(a,this.options.detection,this.options)),this.modules.i18nFormat&&(a.i18nFormat=n(this.modules.i18nFormat),a.i18nFormat.init&&a.i18nFormat.init(this)),this.translator=new G(this.services,this.options),this.translator.on("*",function(t){for(var o=arguments.length,n=new Array(o>1?o-1:0),i=1;i<o;i++)n[i-1]=arguments[i];e.emit.apply(e,[t].concat(n))}),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 o;return(o=e.store)[t].apply(o,arguments)}});var r=I(),s=function(){e.changeLanguage(e.options.lng,function(t,n){e.isInitialized=!0,e.logger.log("initialized",e.options),e.emit("initialized",e.options),r.resolve(n),o(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),r}},{key:"loadResources",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&"cimode"===this.language.toLowerCase())return t();var o=[],n=function(t){t&&e.services.languageUtils.toResolveHierarchy(t).forEach(function(e){o.indexOf(e)<0&&o.push(e)})};if(this.language)n(this.language);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return n(e)});this.options.preload&&this.options.preload.forEach(function(e){return n(e)}),this.services.backendConnector.load(o,this.options.ns,t)}else t(null)}},{key:"reloadResources",value:function(e,t,o){var n=I();return e||(e=this.languages),t||(t=this.options.ns),o||(o=te),this.services.backendConnector.reload(e,t,function(e){n.resolve(),o(e)}),n}},{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&&K.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var o=this,n=I();this.emit("languageChanging",e);var i=function(e){e&&(o.language=e,o.languages=o.services.languageUtils.toResolveHierarchy(e),o.translator.language||o.translator.changeLanguage(e),o.services.languageDetector&&o.services.languageDetector.cacheUserLanguage(e)),o.loadResources(function(i){!function(e,i){o.translator.changeLanguage(i),i&&(o.emit("languageChanged",i),o.logger.log("languageChanged",i)),n.resolve(function(){return o.t.apply(o,arguments)}),t&&t(e,function(){return o.t.apply(o,arguments)})}(i,e)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(i):i(e):i(this.services.languageDetector.detect()),n}},{key:"getFixedT",value:function(e,t){var o=this,n=function e(t,n){var i;if("object"!==g(n)){for(var a=arguments.length,r=new Array(a>2?a-2:0),s=2;s<a;s++)r[s-2]=arguments[s];i=o.options.overloadTranslationOptionHandler([t,n].concat(r))}else i=y({},n);return i.lng=i.lng||e.lng,i.lngs=i.lngs||e.lngs,i.ns=i.ns||e.ns,o.t(t,i)};return"string"==typeof e?n.lng=e:n.lngs=e,n.ns=t,n}},{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 o=this.languages[0],n=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var a=function(e,o){var n=t.services.backendConnector.state["".concat(e,"|").concat(o)];return-1===n||2===n};return!!this.hasResourceBundle(o,e)||(!this.services.backendConnector.backend||!(!a(o,e)||n&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var o=this,n=I();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){o.options.ns.indexOf(e)<0&&o.options.ns.push(e)}),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var o=I();"string"==typeof e&&(e=[e]);var n=this.options.preload||[],i=e.filter(function(e){return n.indexOf(e)<0});return i.length?(this.options.preload=n.concat(i),this.loadResources(function(e){o.resolve(),t&&t(e)}),o):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),!e)return"rtl";return["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"}},{key:"createInstance",value:function(){return new t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}},{key:"cloneInstance",value:function(){var e=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:te,i=y({},this.options,o,{isClone:!0}),a=new t(i);return["store","services","language"].forEach(function(t){a[t]=e[t]}),a.translator=new G(a.services,a.options),a.translator.on("*",function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];a.emit.apply(a,[e].concat(o))}),a.init(i,n),a.translator.options=a.options,a}}]),t}(B)),{MetadataProvider:ne}=a.classes,ie="@ohif/extension-default.layoutTemplateModule.viewerLayout",ae="@ohif/extension-default.sopClassHandlerModule.stack",re="@ohif/extension-default.panelModule.seriesList",se="@ohif/extension-cornerstone.viewportModule.cornerstone",le="@ohif/extension-tmtv.hangingProtocolModule.ptCT",ue="@ohif/extension-tmtv.panelModule.petSUV",ce="@ohif/extension-tmtv.panelModule.tmtv",pe={"@ohif/extension-default":"^3.0.0","@ohif/extension-cornerstone":"^3.0.0","@ohif/extension-cornerstone-dicom-seg":"^3.0.0","@ohif/extension-tmtv":"^3.0.0"},de=[];const he={id:f,modeFactory:function({modeConfiguration:e}){return{id:f,routeName:"tmtv",displayName:oe.t("Modes:Total Metabolic Tumor Volume"),onModeEnter:({servicesManager:e,extensionManager:t,commandsManager:o})=>{const{toolbarService:n,toolGroupService:i,customizationService:a,hangingProtocolService:r,displaySetService:s}=e.services,u=t.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:c,Enums:d}=u.exports;p(c,d,i,o);const{unsubscribe:f}=i.subscribe(i.EVENTS.VIEWPORT_ADDED,()=>{const{displaySetMatchDetails:e}=r.getMatchDetails();!function(e,t,o,n){const i=e.get("ctDisplaySet");if(!i)return;const{SeriesInstanceUID:a}=i,r=n.getDisplaySetsForSeries(a),s={...o.getToolConfiguration(l,t.Crosshairs),filterActorUIDsToSetSlabThickness:[r[0].displaySetInstanceUID]};o.setToolConfiguration(l,t.Crosshairs,s)}(e,c,i,s),function(e,t,o,n){const i=e.get("ptDisplaySet"),a=e.get("ctDisplaySet");if(!i)return;const{SeriesInstanceUID:r}=i,s=n.getDisplaySetsForSeries(r);if(!s||0===s.length)return;const u=o.getToolConfiguration(l,t.WindowLevel),c=o.getToolConfiguration(l,t.EllipticalROI),p=`cornerstoneStreamingImageVolume:${s[0].displaySetInstanceUID}`,{SeriesInstanceUID:d}=a,h={...u,volumeId:`cornerstoneStreamingImageVolume:${n.getDisplaySetsForSeries(d)[0].displaySetInstanceUID}`},f={...c,volumeId:p};o.setToolConfiguration(l,t.WindowLevel,h),o.setToolConfiguration(l,t.EllipticalROI,f)}(e,c,i,s)});de.push(f),n.register(h),n.updateSection(n.sections.primary,["MeasurementTools","Zoom","Pan","WindowLevel","Crosshairs"]),n.updateSection(n.sections.viewportActionMenu.topLeft,["orientationMenu","dataOverlayMenu"]),n.updateSection(n.sections.viewportActionMenu.bottomMiddle,["AdvancedRenderingControls"]),n.updateSection("AdvancedRenderingControls",["windowLevelMenuEmbedded","voiManualControlMenu","Colorbar","opacityMenu","thresholdMenu"]),n.updateSection(n.sections.viewportActionMenu.topRight,["modalityLoadBadge","trackingStatus","navigationComponent"]),n.updateSection(n.sections.viewportActionMenu.bottomLeft,["windowLevelMenu"]),n.updateSection("MeasurementTools",["Length","Bidirectional","ArrowAnnotate","EllipticalROI"]),n.updateSection("ROIThresholdToolbox",["SegmentationTools"]),n.updateSection("SegmentationTools",["RectangleROIStartEndThreshold","BrushTools"]),n.updateSection("BrushTools",["Brush","Eraser","Threshold"]),a.setCustomizations({"panelSegmentation.tableMode":{$set:"expanded"},"panelSegmentation.onSegmentationAdd":{$set:()=>{o.run("createNewLabelmapFromPT")}}}),r.addCustomAttribute("getPTVOIRange","get PT VOI based on corrected or not",e=>{const t=e.find(e=>"PT"===e.Modality);if(!t)return;const{imageId:o}=t.images[0],n=ne.get("scalingModule",o);return n&&n.suvbw?{windowWidth:5,windowCenter:2.5}:void 0})},onModeExit:({servicesManager:e})=>{const{toolGroupService:t,syncGroupService:o,segmentationService:n,cornerstoneViewportService:i,uiDialogService:a,uiModalService:r}=e.services;de.forEach(e=>e()),a.hideAll(),r.hide(),t.destroy(),o.destroy(),n.destroy(),i.destroy()},validationTags:{study:[],series:[]},isValidMode:({modalities:e,study:t})=>{const o=e.split("\\");return{valid:o.includes("CT")&&"M1"!==t.mrn&&o.includes("PT")&&!["SM"].some(e=>o.includes(e))&&"1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849"!==t.studyInstanceUid,description:"The mode requires both PT and CT series in the study"}},routes:[{path:"tmtv",layoutTemplate:()=>({id:ie,props:{leftPanels:[re],leftPanelResizable:!0,leftPanelClosed:!0,rightPanels:[ce,ue],rightPanelResizable:!0,viewports:[{namespace:se,displaySetsToDisplay:[ae]}]}})}],extensions:pe,hangingProtocol:le,sopClassHandlers:[ae],...e}},extensionDependencies:pe};return i=i.default})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ohif/core")):"function"==typeof define&&define.amd?define(["@ohif/core"],t):"object"==typeof exports?exports["ohif-mode-tmtv"]=t(require("@ohif/core")):e["ohif-mode-tmtv"]=t(e["@ohif/core"])}(globalThis,e=>(()=>{"use strict";var t={2:t=>{t.exports=e}},o={};function n(e){var i=o[e];if(void 0!==i)return i.exports;var a=o[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};n.d(i,{default:()=>he});var a=n(2);const r="ctToolGroup",s="ptToolGroup",l="fusionToolGroup",u="mipToolGroup",c="default";const p=function(e,t,o,n){!function(e,t,o,n){const i={active:[{toolName:e.WindowLevel,bindings:[{mouseButton:t.MouseBindings.Primary}]},{toolName:e.Pan,bindings:[{mouseButton:t.MouseBindings.Auxiliary}]},{toolName:e.Zoom,bindings:[{mouseButton:t.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:e.StackScroll,bindings:[{mouseButton:t.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:e.Length},{toolName:e.SegmentBidirectional},{toolName:e.ArrowAnnotate,configuration:{getTextCallback:(e,t)=>{n.runCommand("arrowTextCallback",{callback:e,eventDetails:t})},changeTextCallback:(e,t,o)=>{n.runCommand("arrowTextCallback",{callback:o,data:e,eventDetails:t})}}},{toolName:e.Bidirectional},{toolName:e.DragProbe},{toolName:e.Probe},{toolName:e.EllipticalROI},{toolName:e.RectangleROI},{toolName:e.StackScroll},{toolName:e.Angle},{toolName:e.CobbAngle},{toolName:e.Magnify},{toolName:"CircularBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_CIRCLE"}},{toolName:"CircularEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_CIRCLE"}},{toolName:"SphereBrush",parentTool:"Brush",configuration:{activeStrategy:"FILL_INSIDE_SPHERE"}},{toolName:"SphereEraser",parentTool:"Brush",configuration:{activeStrategy:"ERASE_INSIDE_SPHERE"}},{toolName:"ThresholdCircularBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE"}},{toolName:"ThresholdSphereBrush",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_SPHERE"}},{toolName:"ThresholdCircularBrushDynamic",parentTool:"Brush",configuration:{activeStrategy:"THRESHOLD_INSIDE_CIRCLE",threshold:{isDynamic:!0,dynamicRadius:3}}}],enabled:[],disabled:[{toolName:e.Crosshairs,configuration:{disableOnPassive:!0,autoPan:{enabled:!1,panSize:10}}}]};o.createToolGroupAndAddTools(r,i),o.createToolGroupAndAddTools(s,{active:i.active,passive:[...i.passive,{toolName:"RectangleROIStartEndThreshold"}],enabled:i.enabled,disabled:i.disabled}),o.createToolGroupAndAddTools(l,i),o.createToolGroupAndAddTools(c,i);const a={active:[{toolName:e.VolumeRotate,bindings:[{mouseButton:t.MouseBindings.Wheel}],configuration:{rotateIncrementDegrees:5}},{toolName:e.MipJumpToClick,configuration:{toolGroupId:s},bindings:[{mouseButton:t.MouseBindings.Primary}]}],enabled:[{toolName:e.OrientationMarker,configuration:{orientationWidget:{viewportCorner:"BOTTOM_LEFT"}}}]};o.createToolGroupAndAddTools(u,a)}(e,t,o,n)};function d(e){return d="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},d(e)}function h(e){var t=function(e,t){if("object"!=d(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=d(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==d(t)?t:t+""}function f(e,t,o){return(t=h(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function g(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?Object(arguments[t]):{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable})),n.forEach(function(t){f(e,t,o[t])})}return e}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,h(n.key),n)}}function y(e,t,o){return t&&m(e.prototype,t),o&&m(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function b(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S(e,t){if(t&&("object"==d(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return b(e)}function k(e){return k=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},k(e)}function T(e,t){return T=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},T(e,t)}function x(e,t){if("function"!=typeof t&&null!==t)throw new 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&&T(e,t)}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=Array(t);o<t;o++)n[o]=e[o];return n}function C(e,t){if(e){if("string"==typeof e)return w(e,t);var o={}.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?w(e,t):void 0}}function B(e){return function(e){if(Array.isArray(e))return w(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||C(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var n,i,a,r,s=[],l=!0,u=!1;try{if(a=(o=o.call(e)).next,0===t){if(Object(o)!==o)return;l=!1}else for(;!(l=(n=a.call(o)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=o.return&&(r=o.return(),Object(r)!==r))return}finally{if(u)throw i}}return s}}(e,t)||C(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var N={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 o;console&&console[e]&&(o=console)[e].apply(o,B(t))}},R=new(function(){function e(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};v(this,e),this.init(t,o)}return y(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||N,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=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"log","",!0)}},{key:"warn",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"warn","",!0)}},{key:"error",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"error","")}},{key:"deprecate",value:function(){for(var e=arguments.length,t=new Array(e),o=0;o<e;o++)t[o]=arguments[o];return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}},{key:"forward",value:function(e,t,o,n){return n&&!this.debug?null:("string"==typeof e[0]&&(e[0]="".concat(o).concat(this.prefix," ").concat(e[0])),this.logger[t](e))}},{key:"create",value:function(t){return new e(this.logger,g({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),L=function(){function e(){v(this,e),this.observers={}}return y(e,[{key:"on",value:function(e,t){var o=this;return e.split(" ").forEach(function(e){o.observers[e]=o.observers[e]||[],o.observers[e].push(t)}),this}},{key:"off",value:function(e,t){this.observers[e]&&(t?this.observers[e]=this.observers[e].filter(function(e){return e!==t}):delete this.observers[e])}},{key:"emit",value:function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];this.observers[e]&&[].concat(this.observers[e]).forEach(function(e){e.apply(void 0,o)});this.observers["*"]&&[].concat(this.observers["*"]).forEach(function(t){t.apply(t,[e].concat(o))})}}]),e}();function E(){var e,t,o=new Promise(function(o,n){e=o,t=n});return o.resolve=e,o.reject=t,o}function P(e){return null==e?"":""+e}function M(e,t,o){function n(e){return e&&e.indexOf("###")>-1?e.replace(/###/g,"."):e}function i(){return!e||"string"==typeof e}for(var a="string"!=typeof t?[].concat(t):t.split(".");a.length>1;){if(i())return{};var r=n(a.shift());!e[r]&&o&&(e[r]=new o),e=e[r]}return i()?{}:{obj:e,k:n(a.shift())}}function I(e,t,o){var n=M(e,t,Object);n.obj[n.k]=o}function j(e,t){var o=M(e,t),n=o.obj,i=o.k;if(n)return n[i]}function A(e,t,o){var n=j(e,o);return void 0!==n?n:j(t,o)}function D(e,t,o){for(var n in t)n in e?"string"==typeof e[n]||e[n]instanceof String||"string"==typeof t[n]||t[n]instanceof String?o&&(e[n]=t[n]):D(e[n],t[n],o):e[n]=t[n];return e}function F(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var V={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function U(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return V[e]}):e}var H=function(e){function t(e){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return v(this,t),o=S(this,k(t).call(this)),L.call(b(o)),o.data=e||{},o.options=n,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o}return x(t,e),y(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&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,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=void 0!==n.keySeparator?n.keySeparator:this.options.keySeparator,a=[e,t];return o&&"string"!=typeof o&&(a=a.concat(o)),o&&"string"==typeof o&&(a=a.concat(i?o.split(i):o)),e.indexOf(".")>-1&&(a=e.split(".")),j(this.data,a)}},{key:"addResource",value:function(e,t,o,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},a=this.options.keySeparator;void 0===a&&(a=".");var r=[e,t];o&&(r=r.concat(a?o.split(a):o)),e.indexOf(".")>-1&&(n=t,t=(r=e.split("."))[1]),this.addNamespaces(t),I(this.data,r,n),i.silent||this.emit("added",e,t,o,n)}},{key:"addResources",value:function(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var i in o)"string"!=typeof o[i]&&"[object Array]"!==Object.prototype.toString.apply(o[i])||this.addResource(e,t,i,o[i],{silent:!0});n.silent||this.emit("added",e,t,o)}},{key:"addResourceBundle",value:function(e,t,o,n,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},r=[e,t];e.indexOf(".")>-1&&(n=o,o=t,t=(r=e.split("."))[1]),this.addNamespaces(t);var s=j(this.data,r)||{};n?D(s,o,i):s=g({},s,o),I(this.data,r,s),a.silent||this.emit("added",e,t,o)}},{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?g({},{},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}(L),W={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,o,n,i){var a=this;return e.forEach(function(e){a.processors[e]&&(t=a.processors[e].process(t,o,n,i))}),t}},_=function(e){function t(e){var o,n,i,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return v(this,t),o=S(this,k(t).call(this)),L.call(b(o)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],i=e,a=b(o),n.forEach(function(e){i[e]&&(a[e]=i[e])}),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=R.create("translator"),o}return x(t,e),y(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:{}},o=this.resolve(e,t);return o&&void 0!==o.res}},{key:"extractFromKey",value:function(e,t){var o=t.nsSeparator||this.options.nsSeparator;void 0===o&&(o=":");var n=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,i=t.ns||this.options.defaultNS;if(o&&e.indexOf(o)>-1){var a=e.split(o);(o!==n||o===n&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(n)}return"string"==typeof i&&(i=[i]),{key:e,namespaces:i}}},{key:"translate",value:function(e,t){var o=this;if("object"!==d(t)&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),t||(t={}),null==e)return"";Array.isArray(e)||(e=[String(e)]);var n=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,i=this.extractFromKey(e[e.length-1],t),a=i.key,r=i.namespaces,s=r[r.length-1],l=t.lng||this.language,u=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(l&&"cimode"===l.toLowerCase()){if(u){var c=t.nsSeparator||this.options.nsSeparator;return s+c+a}return a}var p=this.resolve(e,t),h=p&&p.res,f=p&&p.usedKey||a,v=p&&p.exactUsedKey||a,m=Object.prototype.toString.apply(h),y=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&h&&("string"!=typeof h&&"boolean"!=typeof h&&"number"!=typeof h)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(m)<0&&("string"!=typeof y||"[object Array]"!==m)){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(f,h,t):"key '".concat(a," (").concat(this.language,")' returned an object instead of string.");if(n){var S="[object Array]"===m,k=S?[]:{},T=S?v:f;for(var x in h)if(Object.prototype.hasOwnProperty.call(h,x)){var w="".concat(T).concat(n).concat(x);k[x]=this.translate(w,g({},t,{joinArrays:!1,ns:r})),k[x]===w&&(k[x]=h[x])}h=k}}else if(b&&"string"==typeof y&&"[object Array]"===m)(h=h.join(y))&&(h=this.extendTranslation(h,e,t));else{var C=!1,B=!1;if(!this.isValidLookup(h)&&void 0!==t.defaultValue){if(C=!0,void 0!==t.count){var O=this.pluralResolver.getSuffix(l,t.count);h=t["defaultValue".concat(O)]}h||(h=t.defaultValue)}this.isValidLookup(h)||(B=!0,h=a);var N=t.defaultValue&&t.defaultValue!==h&&this.options.updateMissing;if(B||C||N){this.logger.log(N?"updateKey":"missingKey",l,s,a,N?t.defaultValue:h);var R=[],L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&L&&L[0])for(var E=0;E<L.length;E++)R.push(L[E]);else"all"===this.options.saveMissingTo?R=this.languageUtils.toResolveHierarchy(t.lng||this.language):R.push(t.lng||this.language);var P=function(e,n){o.options.missingKeyHandler?o.options.missingKeyHandler(e,s,n,N?t.defaultValue:h,N,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,s,n,N?t.defaultValue:h,N,t),o.emit("missingKey",e,s,n,h)};if(this.options.saveMissing){var M=void 0!==t.count&&"string"!=typeof t.count;this.options.saveMissingPlurals&&M?R.forEach(function(e){o.pluralResolver.getPluralFormsOfKey(e,a).forEach(function(t){return P([e],t)})}):P(R,a)}}h=this.extendTranslation(h,e,t,p),B&&h===a&&this.options.appendNamespaceToMissingKey&&(h="".concat(s,":").concat(a)),B&&this.options.parseMissingKeyHandler&&(h=this.options.parseMissingKeyHandler(h))}return h}},{key:"extendTranslation",value:function(e,t,o,n){var i=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,o,n.usedLng,n.usedNS,n.usedKey,{resolved:n});else if(!o.skipInterpolation){o.interpolation&&this.interpolator.init(g({},o,{interpolation:g({},this.options.interpolation,o.interpolation)}));var a=o.replace&&"string"!=typeof o.replace?o.replace:o;this.options.interpolation.defaultVariables&&(a=g({},this.options.interpolation.defaultVariables,a)),e=this.interpolator.interpolate(e,a,o.lng||this.language,o),!1!==o.nest&&(e=this.interpolator.nest(e,function(){return i.translate.apply(i,arguments)},o)),o.interpolation&&this.interpolator.reset()}var r=o.postProcess||this.options.postProcess,s="string"==typeof r?[r]:r;return null!=e&&s&&s.length&&!1!==o.applyPostProcessor&&(e=W.handle(s,e,t,this.options&&this.options.postProcessPassResolved?g({i18nResolved:n},o):o,this)),e}},{key:"resolve",value:function(e){var t,o,n,i,a,r=this,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!r.isValidLookup(t)){var l=r.extractFromKey(e,s),u=l.key;o=u;var c=l.namespaces;r.options.fallbackNS&&(c=c.concat(r.options.fallbackNS));var p=void 0!==s.count&&"string"!=typeof s.count,d=void 0!==s.context&&"string"==typeof s.context&&""!==s.context,h=s.lngs?s.lngs:r.languageUtils.toResolveHierarchy(s.lng||r.language,s.fallbackLng);c.forEach(function(e){r.isValidLookup(t)||(a=e,r.utils&&r.utils.hasLoadedNamespace&&!r.utils.hasLoadedNamespace(a)&&r.logger.warn('key "'.concat(o,'" for namespace "').concat(a,"\" 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!!!"),h.forEach(function(o){if(!r.isValidLookup(t)){i=o;var a,l,c=u,h=[c];if(r.i18nFormat&&r.i18nFormat.addLookupKeys)r.i18nFormat.addLookupKeys(h,u,o,e,s);else p&&(a=r.pluralResolver.getSuffix(o,s.count)),p&&d&&h.push(c+a),d&&h.push(c+="".concat(r.options.contextSeparator).concat(s.context)),p&&h.push(c+=a);for(;l=h.pop();)r.isValidLookup(t)||(n=l,t=r.getResource(o,e,l,s))}}))})}}),{res:t,usedKey:o,exactUsedKey:n,usedLng:i,usedNS:a}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,o,n):this.resourceStore.getResource(e,t,o,n)}}]),t}(L);function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}var K=function(){function e(t){v(this,e),this.options=t,this.whitelist=this.options.whitelist||!1,this.logger=R.create("languageUtils")}return y(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)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"],o=e.split("-");return this.options.lowerCaseLng?o=o.map(function(e){return e.toLowerCase()}):2===o.length?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),t.indexOf(o[1].toLowerCase())>-1&&(o[1]=z(o[1].toLowerCase()))):3===o.length&&(o[0]=o[0].toLowerCase(),2===o[1].length&&(o[1]=o[1].toUpperCase()),"sgn"!==o[0]&&2===o[2].length&&(o[2]=o[2].toUpperCase()),t.indexOf(o[1].toLowerCase())>-1&&(o[1]=z(o[1].toLowerCase())),t.indexOf(o[2].toLowerCase())>-1&&(o[2]=z(o[2].toLowerCase()))),o.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 o=e[t];return o||(o=e[this.getScriptPartFromCode(t)]),o||(o=e[this.formatLanguageCode(t)]),o||(o=e.default),o||[]}},{key:"toResolveHierarchy",value:function(e,t){var o=this,n=this.getFallbackCodes(t||this.options.fallbackLng||[],e),i=[],a=function(e){e&&(o.isWhitelisted(e)?i.push(e):o.logger.warn("rejecting non-whitelisted language code: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&a(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&a(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&a(this.getLanguagePartFromCode(e))):"string"==typeof e&&a(this.formatLanguageCode(e)),n.forEach(function(e){i.indexOf(e)<0&&a(o.formatLanguageCode(e))}),i}}]),e}(),G=[{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}],q={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?0: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:e%100==3||e%100==4?3:0)},22:function(e){return Number(1===e?0:2===e?1:(e<0||e>10)&&e%10==0?2:3)}};var $=function(){function e(t){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};v(this,e),this.languageUtils=t,this.options=n,this.logger=R.create("pluralResolver"),this.rules=(o={},G.forEach(function(e){e.lngs.forEach(function(t){o[t]={numbers:e.nr,plurals:q[e.fc]}})}),o)}return y(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 o=this,n=[],i=this.getRule(e);return i?(i.numbers.forEach(function(i){var a=o.getSuffix(e,i);n.push("".concat(t).concat(a))}),n):n}},{key:"getSuffix",value:function(e,t){var o=this,n=this.getRule(e);if(n){var i=n.noAbs?n.plurals(t):n.plurals(Math.abs(t)),a=n.numbers[i];this.options.simplifyPluralSuffix&&2===n.numbers.length&&1===n.numbers[0]&&(2===a?a="plural":1===a&&(a=""));var r=function(){return o.options.prepend&&a.toString()?o.options.prepend+a.toString():a.toString()};return"v1"===this.options.compatibilityJSON?1===a?"":"number"==typeof a?"_plural_".concat(a.toString()):r():"v2"===this.options.compatibilityJSON||this.options.simplifyPluralSuffix&&2===n.numbers.length&&1===n.numbers[0]?r():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),J=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};v(this,e),this.logger=R.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return y(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:U,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?F(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?F(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?F(t.nestingPrefix):t.nestingPrefixEscaped||F("$t("),this.nestingSuffix=t.nestingSuffix?F(t.nestingSuffix):t.nestingSuffixEscaped||F(")"),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=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var o="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(o,"g")}},{key:"interpolate",value:function(e,t,o,n){var i,a,r,s=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(e){return e.replace(/\$/g,"$$$$")}var c=function(e){if(e.indexOf(s.formatSeparator)<0)return A(t,l,e);var n=e.split(s.formatSeparator),i=n.shift().trim(),a=n.join(s.formatSeparator).trim();return s.format(A(t,l,i),a,o)};this.resetRegExp();var p=n&&n.missingInterpolationHandler||this.options.missingInterpolationHandler;for(r=0;i=this.regexpUnescape.exec(e);){if(void 0===(a=c(i[1].trim())))if("function"==typeof p){var d=p(e,i,n);a="string"==typeof d?d:""}else this.logger.warn("missed to pass in variable ".concat(i[1]," for interpolating ").concat(e)),a="";else"string"==typeof a||this.useRawValueToEscape||(a=P(a));if(e=e.replace(i[0],u(a)),this.regexpUnescape.lastIndex=0,++r>=this.maxReplaces)break}for(r=0;i=this.regexp.exec(e);){if(void 0===(a=c(i[1].trim())))if("function"==typeof p){var h=p(e,i,n);a="string"==typeof h?h:""}else this.logger.warn("missed to pass in variable ".concat(i[1]," for interpolating ").concat(e)),a="";else"string"==typeof a||this.useRawValueToEscape||(a=P(a));if(a=this.escapeValue?u(this.escape(a)):u(a),e=e.replace(i[0],a),this.regexp.lastIndex=0,++r>=this.maxReplaces)break}return e}},{key:"nest",value:function(e,t){var o,n,i=g({},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{});function a(e,t){if(e.indexOf(",")<0)return e;var o=e.split(",");e=o.shift();var n=o.join(",");n=(n=this.interpolate(n,i)).replace(/'/g,'"');try{i=JSON.parse(n),t&&(i=g({},t,i))}catch(t){this.logger.error("failed parsing options string in nesting for key ".concat(e),t)}return delete i.defaultValue,e}for(i.applyPostProcessor=!1,delete i.defaultValue;o=this.nestingRegexp.exec(e);){if((n=t(a.call(this,o[1].trim(),i),i))&&o[0]===e&&"string"!=typeof n)return n;"string"!=typeof n&&(n=P(n)),n||(this.logger.warn("missed to resolve ".concat(o[1]," for nesting ").concat(e)),n=""),e=e.replace(o[0],n),this.regexp.lastIndex=0}return e}}]),e}();var Z=function(e){function t(e,o,n){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return v(this,t),i=S(this,k(t).call(this)),L.call(b(i)),i.backend=e,i.store=o,i.services=n,i.languageUtils=n.languageUtils,i.options=a,i.logger=R.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,a.backend,a),i}return x(t,e),y(t,[{key:"queueLoad",value:function(e,t,o,n){var i=this,a=[],r=[],s=[],l=[];return e.forEach(function(e){var n=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!o.reload&&i.store.hasResourceBundle(e,t)?i.state[s]=2:i.state[s]<0||(1===i.state[s]?r.indexOf(s)<0&&r.push(s):(i.state[s]=1,n=!1,r.indexOf(s)<0&&r.push(s),a.indexOf(s)<0&&a.push(s),l.indexOf(t)<0&&l.push(t)))}),n||s.push(e)}),(a.length||r.length)&&this.queue.push({pending:r,loaded:{},errors:[],callback:n}),{toLoad:a,pending:r,toLoadLanguages:s,toLoadNamespaces:l}}},{key:"loaded",value:function(e,t,o){var n=O(e.split("|"),2),i=n[0],a=n[1];t&&this.emit("failedLoading",i,a,t),o&&this.store.addResourceBundle(i,a,o),this.state[e]=t?-1:2;var r={};this.queue.forEach(function(o){var n,s,l,u,c,p;n=o.loaded,s=a,u=M(n,[i],Object),c=u.obj,p=u.k,c[p]=c[p]||[],l&&(c[p]=c[p].concat(s)),l||c[p].push(s),function(e,t){for(var o=e.indexOf(t);-1!==o;)e.splice(o,1),o=e.indexOf(t)}(o.pending,e),t&&o.errors.push(t),0!==o.pending.length||o.done||(Object.keys(o.loaded).forEach(function(e){r[e]||(r[e]=[]),o.loaded[e].length&&o.loaded[e].forEach(function(t){r[e].indexOf(t)<0&&r[e].push(t)})}),o.done=!0,o.errors.length?o.callback(o.errors):o.callback())}),this.emit("loaded",r),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,o){var n=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,r=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[o](e,t,function(s,l){s&&l&&i<5?setTimeout(function(){n.read.call(n,e,t,o,i+1,2*a,r)},a):r(s,l)}):r(null,{})}},{key:"prepareLoading",value:function(e,t){var o=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=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."),i&&i();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var a=this.queueLoad(e,t,n,i);if(!a.toLoad.length)return a.pending.length||i(),null;a.toLoad.forEach(function(e){o.loadOne(e)})}},{key:"load",value:function(e,t,o){this.prepareLoading(e,t,{},o)}},{key:"reload",value:function(e,t,o){this.prepareLoading(e,t,{reload:!0},o)}},{key:"loadOne",value:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=O(e.split("|"),2),i=n[0],a=n[1];this.read(i,a,"read",null,null,function(n,r){n&&t.logger.warn("".concat(o,"loading namespace ").concat(a," for language ").concat(i," failed"),n),!n&&r&&t.logger.log("".concat(o,"loaded namespace ").concat(a," for language ").concat(i),r),t.loaded(e,n,r)})}},{key:"saveMissing",value:function(e,t,o,n,i){var a=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(o,'" 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,o,n,null,g({},a,{isUpdate:i})),e&&e[0]&&this.store.addResource(e[0],t,o,n))}}]),t}(L);function Y(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&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e}function Q(){}const X=new(function(e){function t(){var e,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(v(this,t),e=S(this,k(t).call(this)),L.call(b(e)),e.options=Y(o),e.services={},e.logger=R,e.modules={external:[]},n&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,n),S(e,b(e));setTimeout(function(){e.init(o,n)},0)}return e}return x(t,e),y(t,[{key:"init",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;function n(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof t&&(o=t,t={}),this.options=g({},{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"===d(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===d(e[2])||"object"===d(e[3])){var o=e[3]||e[2];Object.keys(o).forEach(function(e){t[e]=o[e]})}return t},interpolation:{escapeValue:!0,format:function(e,t,o){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",maxReplaces:1e3}},this.options,Y(t)),this.format=this.options.interpolation.format,o||(o=Q),!this.options.isClone){this.modules.logger?R.init(n(this.modules.logger),this.options):R.init(null,this.options);var i=new K(this.options);this.store=new H(this.options.resources,this.options);var a=this.services;a.logger=R,a.resourceStore=this.store,a.languageUtils=i,a.pluralResolver=new $(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),a.interpolator=new J(this.options),a.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},a.backendConnector=new Z(n(this.modules.backend),a.resourceStore,a,this.options),a.backendConnector.on("*",function(t){for(var o=arguments.length,n=new Array(o>1?o-1:0),i=1;i<o;i++)n[i-1]=arguments[i];e.emit.apply(e,[t].concat(n))}),this.modules.languageDetector&&(a.languageDetector=n(this.modules.languageDetector),a.languageDetector.init(a,this.options.detection,this.options)),this.modules.i18nFormat&&(a.i18nFormat=n(this.modules.i18nFormat),a.i18nFormat.init&&a.i18nFormat.init(this)),this.translator=new _(this.services,this.options),this.translator.on("*",function(t){for(var o=arguments.length,n=new Array(o>1?o-1:0),i=1;i<o;i++)n[i-1]=arguments[i];e.emit.apply(e,[t].concat(n))}),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 o;return(o=e.store)[t].apply(o,arguments)}});var r=E(),s=function(){e.changeLanguage(e.options.lng,function(t,n){e.isInitialized=!0,e.logger.log("initialized",e.options),e.emit("initialized",e.options),r.resolve(n),o(t,n)})};return this.options.resources||!this.options.initImmediate?s():setTimeout(s,0),r}},{key:"loadResources",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Q;if(!this.options.resources||this.options.partialBundledLanguages){if(this.language&&"cimode"===this.language.toLowerCase())return t();var o=[],n=function(t){t&&e.services.languageUtils.toResolveHierarchy(t).forEach(function(e){o.indexOf(e)<0&&o.push(e)})};if(this.language)n(this.language);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return n(e)});this.options.preload&&this.options.preload.forEach(function(e){return n(e)}),this.services.backendConnector.load(o,this.options.ns,t)}else t(null)}},{key:"reloadResources",value:function(e,t,o){var n=E();return e||(e=this.languages),t||(t=this.options.ns),o||(o=Q),this.services.backendConnector.reload(e,t,function(e){n.resolve(),o(e)}),n}},{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&&W.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var o=this,n=E();this.emit("languageChanging",e);var i=function(e){e&&(o.language=e,o.languages=o.services.languageUtils.toResolveHierarchy(e),o.translator.language||o.translator.changeLanguage(e),o.services.languageDetector&&o.services.languageDetector.cacheUserLanguage(e)),o.loadResources(function(i){!function(e,i){o.translator.changeLanguage(i),i&&(o.emit("languageChanged",i),o.logger.log("languageChanged",i)),n.resolve(function(){return o.t.apply(o,arguments)}),t&&t(e,function(){return o.t.apply(o,arguments)})}(i,e)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(i):i(e):i(this.services.languageDetector.detect()),n}},{key:"getFixedT",value:function(e,t){var o=this,n=function e(t,n){var i;if("object"!==d(n)){for(var a=arguments.length,r=new Array(a>2?a-2:0),s=2;s<a;s++)r[s-2]=arguments[s];i=o.options.overloadTranslationOptionHandler([t,n].concat(r))}else i=g({},n);return i.lng=i.lng||e.lng,i.lngs=i.lngs||e.lngs,i.ns=i.ns||e.ns,o.t(t,i)};return"string"==typeof e?n.lng=e:n.lngs=e,n.ns=t,n}},{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 o=this.languages[0],n=!!this.options&&this.options.fallbackLng,i=this.languages[this.languages.length-1];if("cimode"===o.toLowerCase())return!0;var a=function(e,o){var n=t.services.backendConnector.state["".concat(e,"|").concat(o)];return-1===n||2===n};return!!this.hasResourceBundle(o,e)||(!this.services.backendConnector.backend||!(!a(o,e)||n&&!a(i,e)))}},{key:"loadNamespaces",value:function(e,t){var o=this,n=E();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){o.options.ns.indexOf(e)<0&&o.options.ns.push(e)}),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var o=E();"string"==typeof e&&(e=[e]);var n=this.options.preload||[],i=e.filter(function(e){return n.indexOf(e)<0});return i.length?(this.options.preload=n.concat(i),this.loadResources(function(e){o.resolve(),t&&t(e)}),o):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),!e)return"rtl";return["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"}},{key:"createInstance",value:function(){return new t(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}},{key:"cloneInstance",value:function(){var e=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Q,i=g({},this.options,o,{isClone:!0}),a=new t(i);return["store","services","language"].forEach(function(t){a[t]=e[t]}),a.translator=new _(a.services,a.options),a.translator.on("*",function(e){for(var t=arguments.length,o=new Array(t>1?t-1:0),n=1;n<t;n++)o[n-1]=arguments[n];a.emit.apply(a,[e].concat(o))}),a.init(i,n),a.translator.options=a.options,a}}]),t}(L)),ee={commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:[r,s,l]}},te=[{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:X.t("Buttons:Status"),tooltip:X.t("Buttons:Status"),evaluate:{name:"evaluate.modalityLoadBadge",hideWhenDisabled:!0}}},{id:"Colorbar",uiType:"ohif.colorbar",props:{type:"tool",label:X.t("Buttons:Colorbar")}},{id:"navigationComponent",uiType:"ohif.navigationComponent",props:{icon:"Navigation",label:X.t("Buttons:Navigation"),tooltip:X.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:X.t("Buttons:Window Level"),tooltip:X.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:X.t("Buttons:Tracking Status"),tooltip:X.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:X.t("Buttons:Length"),tooltip:X.t("Buttons:Length Tool"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"Bidirectional",uiType:"ohif.toolButton",props:{icon:"tool-bidirectional",label:X.t("Buttons:Bidirectional"),tooltip:X.t("Buttons:Bidirectional Tool"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"ArrowAnnotate",uiType:"ohif.toolButton",props:{icon:"tool-annotate",label:X.t("Buttons:Arrow Annotate"),tooltip:X.t("Buttons:Arrow Annotate Tool"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"EllipticalROI",uiType:"ohif.toolButton",props:{icon:"tool-ellipse",label:X.t("Buttons:Ellipse"),tooltip:X.t("Buttons:Ellipse Tool"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"Zoom",uiType:"ohif.toolButton",props:{icon:"tool-zoom",label:X.t("Buttons:Zoom"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"WindowLevel",uiType:"ohif.toolButton",props:{icon:"tool-window-level",label:X.t("Buttons:Window Level"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"Crosshairs",uiType:"ohif.toolButton",props:{icon:"tool-crosshair",label:X.t("Buttons:Crosshairs"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"Pan",uiType:"ohif.toolButton",props:{icon:"tool-move",label:X.t("Buttons:Pan"),commands:ee,evaluate:"evaluate.cornerstoneTool"}},{id:"RectangleROIStartEndThreshold",uiType:"ohif.toolBoxButton",props:{icon:"tool-create-threshold",label:X.t("Buttons:Rectangle ROI Threshold"),commands:ee,evaluate:["evaluate.cornerstone.segmentation",{name:"evaluate.cornerstoneTool",disabledText:X.t("Buttons:Select the PT Axial to enable this tool")}],options:"tmtv.RectangleROIThresholdOptions"}},{id:"Brush",uiType:"ohif.toolButton",props:{icon:"icon-tool-brush",label:X.t("Buttons:Brush"),evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["CircularBrush","SphereBrush"],disabledText:X.t("Buttons:Create new segmentation to enable this tool.")},options:[{name:"Radius (mm)",id:"brush-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularBrush","SphereBrush"]}}},{name:"Shape",type:"radio",id:"brush-mode",value:"CircularBrush",values:[{value:"CircularBrush",label:"Circle"},{value:"SphereBrush",label:"Sphere"}],commands:"setToolActiveToolbar"}]}},{id:"Eraser",uiType:"ohif.toolButton",props:{icon:"icon-tool-eraser",label:X.t("Buttons:Eraser"),evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["CircularEraser","SphereEraser"]},options:[{name:"Radius (mm)",id:"eraser-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["CircularEraser","SphereEraser"]}}},{name:"Shape",type:"radio",id:"eraser-mode",value:"CircularEraser",values:[{value:"CircularEraser",label:"Circle"},{value:"SphereEraser",label:"Sphere"}],commands:"setToolActiveToolbar"}]}},{id:"Threshold",uiType:"ohif.toolButton",props:{icon:"icon-tool-threshold",label:X.t("Buttons:Threshold Tool"),evaluate:{name:"evaluate.cornerstone.segmentation",toolNames:["ThresholdCircularBrush","ThresholdSphereBrush"]},options:[{name:"Radius (mm)",id:"threshold-radius",type:"range",min:.5,max:99.5,step:.5,value:25,commands:{commandName:"setBrushSize",commandOptions:{toolNames:["ThresholdCircularBrush","ThresholdSphereBrush","ThresholdCircularBrushDynamic"]}}},{name:"Threshold",type:"radio",id:"dynamic-mode",value:"ThresholdRange",values:[{value:"ThresholdDynamic",label:"Dynamic"},{value:"ThresholdRange",label:"Range"}],commands:({value:e,commandsManager:t})=>{"ThresholdDynamic"===e?t.run("setToolActive",{toolName:"ThresholdCircularBrushDynamic"}):t.run("setToolActive",{toolName:"ThresholdCircularBrush"})}},{name:"Shape",type:"radio",id:"eraser-mode",value:"ThresholdCircularBrush",values:[{value:"ThresholdCircularBrush",label:"Circle"},{value:"ThresholdSphereBrush",label:"Sphere"}],condition:({options:e})=>"ThresholdRange"===e.find(e=>"dynamic-mode"===e.id).value,commands:"setToolActiveToolbar"},{name:"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:X.t("Buttons:Data Overlay"),tooltip:X.t("Buttons:Configure data overlay options and manage foreground/background display sets"),evaluate:"evaluate.dataOverlayMenu"}},{id:"orientationMenu",uiType:"ohif.orientationMenu",props:{icon:"OrientationSwitch",label:X.t("Buttons:Orientation"),tooltip:X.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:X.t("Buttons:Window Level"),tooltip:X.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:"evaluate.windowLevelMenu"}},{id:"voiManualControlMenu",uiType:"ohif.voiManualControlMenu",props:{icon:"WindowLevelAdvanced",label:X.t("Buttons:Advanced Window Level"),tooltip:X.t("Buttons:Advanced window/level settings with manual controls and presets"),evaluate:"evaluate.voiManualControlMenu"}},{id:"thresholdMenu",uiType:"ohif.thresholdMenu",props:{icon:"Threshold",label:X.t("Buttons:Threshold"),tooltip:X.t("Buttons:Image threshold settings"),evaluate:{name:"evaluate.thresholdMenu",hideWhenDisabled:!0}}},{id:"opacityMenu",uiType:"ohif.opacityMenu",props:{icon:"Opacity",label:X.t("Buttons:Opacity"),tooltip:X.t("Buttons:Image opacity settings"),evaluate:{name:"evaluate.opacityMenu",hideWhenDisabled:!0}}}],oe=JSON.parse('{"UU":"@ohif/mode-tmtv"}').UU;const{MetadataProvider:ne}=a.classes,ie="@ohif/extension-default.layoutTemplateModule.viewerLayout",ae="@ohif/extension-default.sopClassHandlerModule.stack",re="@ohif/extension-default.panelModule.seriesList",se="@ohif/extension-cornerstone.viewportModule.cornerstone",le="@ohif/extension-tmtv.hangingProtocolModule.ptCT",ue="@ohif/extension-tmtv.panelModule.petSUV",ce="@ohif/extension-tmtv.panelModule.tmtv",pe={"@ohif/extension-default":"^3.0.0","@ohif/extension-cornerstone":"^3.0.0","@ohif/extension-cornerstone-dicom-seg":"^3.0.0","@ohif/extension-tmtv":"^3.0.0"},de=[];const he={id:oe,modeFactory:function({modeConfiguration:e}){return{id:oe,routeName:"tmtv",displayName:X.t("Modes:Total Metabolic Tumor Volume"),onModeEnter:({servicesManager:e,extensionManager:t,commandsManager:o})=>{const{toolbarService:n,toolGroupService:i,customizationService:a,hangingProtocolService:r,displaySetService:s}=e.services,u=t.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:c,Enums:d}=u.exports;p(c,d,i,o);const{unsubscribe:h}=i.subscribe(i.EVENTS.VIEWPORT_ADDED,()=>{const{displaySetMatchDetails:e}=r.getMatchDetails();!function(e,t,o,n){const i=e.get("ctDisplaySet");if(!i)return;const{SeriesInstanceUID:a}=i,r=n.getDisplaySetsForSeries(a),s={...o.getToolConfiguration(l,t.Crosshairs),filterActorUIDsToSetSlabThickness:[r[0].displaySetInstanceUID]};o.setToolConfiguration(l,t.Crosshairs,s)}(e,c,i,s),function(e,t,o,n){const i=e.get("ptDisplaySet"),a=e.get("ctDisplaySet");if(!i)return;const{SeriesInstanceUID:r}=i,s=n.getDisplaySetsForSeries(r);if(!s||0===s.length)return;const u=o.getToolConfiguration(l,t.WindowLevel),c=o.getToolConfiguration(l,t.EllipticalROI),p=`cornerstoneStreamingImageVolume:${s[0].displaySetInstanceUID}`,{SeriesInstanceUID:d}=a,h={...u,volumeId:`cornerstoneStreamingImageVolume:${n.getDisplaySetsForSeries(d)[0].displaySetInstanceUID}`},f={...c,volumeId:p};o.setToolConfiguration(l,t.WindowLevel,h),o.setToolConfiguration(l,t.EllipticalROI,f)}(e,c,i,s)});de.push(h),n.register(te),n.updateSection(n.sections.primary,["MeasurementTools","Zoom","Pan","WindowLevel","Crosshairs"]),n.updateSection(n.sections.viewportActionMenu.topLeft,["orientationMenu","dataOverlayMenu"]),n.updateSection(n.sections.viewportActionMenu.bottomMiddle,["AdvancedRenderingControls"]),n.updateSection("AdvancedRenderingControls",["windowLevelMenuEmbedded","voiManualControlMenu","Colorbar","opacityMenu","thresholdMenu"]),n.updateSection(n.sections.viewportActionMenu.topRight,["modalityLoadBadge","trackingStatus","navigationComponent"]),n.updateSection(n.sections.viewportActionMenu.bottomLeft,["windowLevelMenu"]),n.updateSection("MeasurementTools",["Length","Bidirectional","ArrowAnnotate","EllipticalROI"]),n.updateSection("ROIThresholdToolbox",["SegmentationTools"]),n.updateSection("SegmentationTools",["RectangleROIStartEndThreshold","BrushTools"]),n.updateSection("BrushTools",["Brush","Eraser","Threshold"]),a.setCustomizations({"panelSegmentation.tableMode":{$set:"expanded"},"panelSegmentation.onSegmentationAdd":{$set:()=>{o.run("createNewLabelmapFromPT")}}}),r.addCustomAttribute("getPTVOIRange","get PT VOI based on corrected or not",e=>{const t=e.find(e=>"PT"===e.Modality);if(!t)return;const{imageId:o}=t.images[0],n=ne.get("scalingModule",o);return n&&n.suvbw?{windowWidth:5,windowCenter:2.5}:void 0})},onModeExit:({servicesManager:e})=>{const{toolGroupService:t,syncGroupService:o,segmentationService:n,cornerstoneViewportService:i,uiDialogService:a,uiModalService:r}=e.services;de.forEach(e=>e()),a.hideAll(),r.hide(),t.destroy(),o.destroy(),n.destroy(),i.destroy()},validationTags:{study:[],series:[]},isValidMode:({modalities:e,study:t})=>{const o=e.split("\\");return{valid:o.includes("CT")&&"M1"!==t.mrn&&o.includes("PT")&&!["SM"].some(e=>o.includes(e))&&"1.3.6.1.4.1.12842.1.1.14.3.20220915.105557.468.2963630849"!==t.studyInstanceUid,description:"The mode requires both PT and CT series in the study"}},routes:[{path:"tmtv",layoutTemplate:()=>({id:ie,props:{leftPanels:[re],leftPanelResizable:!0,leftPanelClosed:!0,rightPanels:[ce,ue],rightPanelResizable:!0,viewports:[{namespace:se,displaySetsToDisplay:[ae]}]}})}],extensions:pe,hangingProtocol:le,sopClassHandlers:[ae],...e}},extensionDependencies:pe};return i=i.default})());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/mode-tmtv",
3
- "version": "3.12.0-beta.8",
3
+ "version": "3.12.0-beta.80",
4
4
  "description": "Total Metabolic Tumor Volume Workflow",
5
5
  "author": "OHIF",
6
6
  "license": "MIT",
@@ -34,20 +34,20 @@
34
34
  "test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
35
35
  },
36
36
  "peerDependencies": {
37
- "@ohif/core": "3.12.0-beta.8",
38
- "@ohif/extension-cornerstone": "3.12.0-beta.8",
39
- "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.8",
40
- "@ohif/extension-default": "3.12.0-beta.8",
41
- "@ohif/extension-dicom-pdf": "3.12.0-beta.8",
42
- "@ohif/extension-dicom-video": "3.12.0-beta.8",
43
- "@ohif/extension-measurement-tracking": "3.12.0-beta.8"
37
+ "@ohif/core": "3.12.0-beta.80",
38
+ "@ohif/extension-cornerstone": "3.12.0-beta.80",
39
+ "@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.80",
40
+ "@ohif/extension-default": "3.12.0-beta.80",
41
+ "@ohif/extension-dicom-pdf": "3.12.0-beta.80",
42
+ "@ohif/extension-dicom-video": "3.12.0-beta.80",
43
+ "@ohif/extension-measurement-tracking": "3.12.0-beta.80"
44
44
  },
45
45
  "dependencies": {
46
- "@babel/runtime": "^7.20.13",
47
- "i18next": "^17.0.3"
46
+ "@babel/runtime": "7.28.2",
47
+ "i18next": "17.3.1"
48
48
  },
49
49
  "devDependencies": {
50
50
  "webpack": "5.95.0",
51
- "webpack-merge": "^5.7.3"
51
+ "webpack-merge": "5.10.0"
52
52
  }
53
53
  }