ohif-medsight 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +7 -0
- package/dist/umd/ohif-medsight/index.umd.js +2 -0
- package/dist/umd/ohif-medsight/index.umd.js.map +1 -0
- package/package.json +81 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ohif-medsight (akshay.muglikar@gmail.com)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
6
|
+
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
12
|
+
portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
15
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
16
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
18
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ohif/core")):"function"==typeof define&&define.amd?define("ohif-medsight",["@ohif/core"],t):"object"==typeof exports?exports["ohif-medsight"]=t(require("@ohif/core")):e["ohif-medsight"]=t(e["@ohif/core"])}("undefined"!=typeof self?self:this,e=>(()=>{"use strict";var t={310: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),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};return(()=>{var e;n.r(i),n.d(i,{default:()=>de}),function(e){e.ERROR_EVENT="CORNERSTONE_ERROR",e.CACHE_SIZE_EXCEEDED="CACHE_SIZE_EXCEEDED",e.IMAGE_LOAD_ERROR="IMAGE_LOAD_ERROR",e.CAMERA_MODIFIED="CORNERSTONE_CAMERA_MODIFIED",e.CAMERA_RESET="CORNERSTONE_CAMERA_RESET",e.VOI_MODIFIED="CORNERSTONE_VOI_MODIFIED",e.PRESET_MODIFIED="CORNERSTONE_VIEWPORT_RENDERING_PRESET_MODIFIED",e.DISPLAY_AREA_MODIFIED="CORNERSTONE_DISPLAY_AREA_MODIFIED",e.ELEMENT_DISABLED="CORNERSTONE_ELEMENT_DISABLED",e.ELEMENT_ENABLED="CORNERSTONE_ELEMENT_ENABLED",e.IMAGE_RENDERED="CORNERSTONE_IMAGE_RENDERED",e.IMAGE_VOLUME_MODIFIED="CORNERSTONE_IMAGE_VOLUME_MODIFIED",e.IMAGE_VOLUME_LOADING_COMPLETED="CORNERSTONE_IMAGE_VOLUME_LOADING_COMPLETED",e.IMAGE_LOADED="CORNERSTONE_IMAGE_LOADED",e.IMAGE_RETRIEVAL_STAGE="CORNERSTONE_IMAGE_RETRIEVAL_STAGE",e.IMAGE_LOAD_FAILED="CORNERSTONE_IMAGE_LOAD_FAILED",e.VOLUME_VIEWPORT_NEW_VOLUME="CORNERSTONE_VOLUME_VIEWPORT_NEW_VOLUME",e.VOLUME_LOADED="CORNERSTONE_VOLUME_LOADED",e.VOLUME_LOADED_FAILED="CORNERSTONE_VOLUME_LOADED_FAILED",e.IMAGE_CACHE_IMAGE_ADDED="CORNERSTONE_IMAGE_CACHE_IMAGE_ADDED",e.IMAGE_CACHE_IMAGE_REMOVED="CORNERSTONE_IMAGE_CACHE_IMAGE_REMOVED",e.VOLUME_CACHE_VOLUME_ADDED="CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED",e.VOLUME_CACHE_VOLUME_REMOVED="CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED",e.STACK_NEW_IMAGE="CORNERSTONE_STACK_NEW_IMAGE",e.VOLUME_NEW_IMAGE="CORNERSTONE_VOLUME_NEW_IMAGE",e.PRE_STACK_NEW_IMAGE="CORNERSTONE_PRE_STACK_NEW_IMAGE",e.IMAGE_SPACING_CALIBRATED="CORNERSTONE_IMAGE_SPACING_CALIBRATED",e.VIEWPORT_NEW_IMAGE_SET="CORNERSTONE_VIEWPORT_NEW_IMAGE_SET",e.STACK_VIEWPORT_SCROLL="CORNERSTONE_STACK_VIEWPORT_SCROLL",e.STACK_SCROLL_OUT_OF_BOUNDS="STACK_SCROLL_OUT_OF_BOUNDS",e.GEOMETRY_CACHE_GEOMETRY_ADDED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED",e.GEOMETRY_CACHE_GEOMETRY_REMOVED="CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_REMOVED",e.VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS="VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS",e.VOLUME_VIEWPORT_SCROLL="VOLUME_VIEWPORT_SCROLL",e.CLIPPING_PLANES_UPDATED="CORNERSTONE_CLIPPING_PLANES_UPDATED",e.WEB_WORKER_PROGRESS="CORNERSTONE_WEB_WORKER_PROGRESS",e.COLORMAP_MODIFIED="CORNERSTONE_COLORMAP_MODIFIED",e.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED="DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED",e.DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED="DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED",e.DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED="DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED",e.DYNAMIC_VOLUME_TIME_POINT_LOADED="DYNAMIC_VOLUME_TIME_POINT_LOADED",e.GEOMETRY_LOADED="GEOMETRY_LOADED",e.GEOMETRY_LOAD_PROGRESS="GEOMETRY_LOAD_PROGRESS",e.GEOMETRY_LOADED_FAILED="GEOMETRY_LOADED_FAILED",e.ACTORS_CHANGED="CORNERSTONE_ACTORS_CHANGED"}(e||(e={}));const t=e;var o=n(310);function a(e){return a="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},a(e)}function r(e){var t=function(e){if("object"!=a(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=a(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==a(t)?t:t+""}function s(e,t,o){return(t=r(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function l(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){s(e,t,o[t])})}return e}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function c(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,r(n.key),n)}}function p(e,t,o){return t&&c(e.prototype,t),o&&c(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function f(e,t){if(t&&("object"==a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}function m(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&&h(e,t)}function v(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 y(e,t){if(e){if("string"==typeof e)return v(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)?v(e,t):void 0}}function b(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)||y(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 E={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,n;console&&console[e]&&(o=console)[e].apply(o,function(e){if(Array.isArray(e))return v(e)}(n=t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(n)||y(n)||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.")}())}},O=new(function(){function e(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};u(this,e),this.init(t,o)}return p(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||E,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,l({},{prefix:"".concat(this.prefix,":").concat(t,":")},this.options))}}]),e}()),R=function(){function e(){u(this,e),this.observers={}}return p(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 S(){var e,t,o=new Promise(function(o,n){e=o,t=n});return o.resolve=e,o.reject=t,o}function T(e){return null==e?"":""+e}function N(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 M(e,t,o){var n=N(e,t,Object);n.obj[n.k]=o}function C(e,t){var o=N(e,t),n=o.obj,i=o.k;if(n)return n[i]}function L(e,t,o){var n=C(e,o);return void 0!==n?n:C(t,o)}function _(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]):_(e[n],t[n],o):e[n]=t[n];return e}function w(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var A={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function k(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return A[e]}):e}var x=function(e){function t(e){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return u(this,t),o=f(this,g(t).call(this)),R.call(d(o)),o.data=e||{},o.options=n,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o}return m(t,e),p(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(".")),C(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),M(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=C(this.data,r)||{};n?_(s,o,i):s=l({},s,o),M(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?l({},{},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}(R),B={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}},D=function(e){function t(e){var o,n,i,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return u(this,t),o=f(this,g(t).call(this)),R.call(d(o)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],i=e,a=d(o),n.forEach(function(e){i[e]&&(a[e]=i[e])}),o.options=r,void 0===o.options.keySeparator&&(o.options.keySeparator="."),o.logger=O.create("translator"),o}return m(t,e),p(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"!==a(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),r=i.key,s=i.namespaces,u=s[s.length-1],c=t.lng||this.language,p=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(c&&"cimode"===c.toLowerCase()){if(p){var d=t.nsSeparator||this.options.nsSeparator;return u+d+r}return r}var f=this.resolve(e,t),g=f&&f.res,h=f&&f.usedKey||r,m=f&&f.exactUsedKey||r,v=Object.prototype.toString.apply(g),y=void 0!==t.joinArrays?t.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject;if(b&&g&&"string"!=typeof g&&"boolean"!=typeof g&&"number"!=typeof g&&["[object Number]","[object Function]","[object RegExp]"].indexOf(v)<0&&("string"!=typeof y||"[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,g,t):"key '".concat(r," (").concat(this.language,")' returned an object instead of string.");if(n){var E="[object Array]"===v,O=E?[]:{},R=E?m:h;for(var S in g)if(Object.prototype.hasOwnProperty.call(g,S)){var T="".concat(R).concat(n).concat(S);O[S]=this.translate(T,l({},t,{joinArrays:!1,ns:s})),O[S]===T&&(O[S]=g[S])}g=O}}else if(b&&"string"==typeof y&&"[object Array]"===v)(g=g.join(y))&&(g=this.extendTranslation(g,e,t));else{var N=!1,M=!1;if(!this.isValidLookup(g)&&void 0!==t.defaultValue){if(N=!0,void 0!==t.count){var C=this.pluralResolver.getSuffix(c,t.count);g=t["defaultValue".concat(C)]}g||(g=t.defaultValue)}this.isValidLookup(g)||(M=!0,g=r);var L=t.defaultValue&&t.defaultValue!==g&&this.options.updateMissing;if(M||N||L){this.logger.log(L?"updateKey":"missingKey",c,u,r,L?t.defaultValue:g);var _=[],w=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if("fallback"===this.options.saveMissingTo&&w&&w[0])for(var A=0;A<w.length;A++)_.push(w[A]);else"all"===this.options.saveMissingTo?_=this.languageUtils.toResolveHierarchy(t.lng||this.language):_.push(t.lng||this.language);var k=function(e,n){o.options.missingKeyHandler?o.options.missingKeyHandler(e,u,n,L?t.defaultValue:g,L,t):o.backendConnector&&o.backendConnector.saveMissing&&o.backendConnector.saveMissing(e,u,n,L?t.defaultValue:g,L,t),o.emit("missingKey",e,u,n,g)};if(this.options.saveMissing){var x=void 0!==t.count&&"string"!=typeof t.count;this.options.saveMissingPlurals&&x?_.forEach(function(e){o.pluralResolver.getPluralFormsOfKey(e,r).forEach(function(t){return k([e],t)})}):k(_,r)}}g=this.extendTranslation(g,e,t,f),M&&g===r&&this.options.appendNamespaceToMissingKey&&(g="".concat(u,":").concat(r)),M&&this.options.parseMissingKeyHandler&&(g=this.options.parseMissingKeyHandler(g))}return g}},{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(l({},o,{interpolation:l({},this.options.interpolation,o.interpolation)}));var a=o.replace&&"string"!=typeof o.replace?o.replace:o;this.options.interpolation.defaultVariables&&(a=l({},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=B.handle(s,e,t,this.options&&this.options.postProcessPassResolved?l({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,f=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!!!"),f.forEach(function(o){if(!r.isValidLookup(t)){i=o;var a,l,c=u,f=[c];for(r.i18nFormat&&r.i18nFormat.addLookupKeys?r.i18nFormat.addLookupKeys(f,u,o,e,s):(p&&(a=r.pluralResolver.getSuffix(o,s.count)),p&&d&&f.push(c+a),d&&f.push(c+="".concat(r.options.contextSeparator).concat(s.context)),p&&f.push(c+=a));l=f.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}(R);function I(e){return e.charAt(0).toUpperCase()+e.slice(1)}var P=function(){function e(t){u(this,e),this.options=t,this.whitelist=this.options.whitelist||!1,this.logger=O.create("languageUtils")}return p(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]=I(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]=I(o[1].toLowerCase())),t.indexOf(o[2].toLowerCase())>-1&&(o[2]=I(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}(),V=[{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}],j={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)}},G=function(){function e(t){var o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};u(this,e),this.languageUtils=t,this.options=n,this.logger=O.create("pluralResolver"),this.rules=(o={},V.forEach(function(e){e.lngs.forEach(function(t){o[t]={numbers:e.nr,plurals:j[e.fc]}})}),o)}return p(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}(),U=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};u(this,e),this.logger=O.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return p(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:k,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?w(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?w(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?w(t.nestingPrefix):t.nestingPrefixEscaped||w("$t("),this.nestingSuffix=t.nestingSuffix?w(t.nestingSuffix):t.nestingSuffixEscaped||w(")"),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 L(t,l,e);var n=e.split(s.formatSeparator),i=n.shift().trim(),a=n.join(s.formatSeparator).trim();return s.format(L(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=T(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 f=p(e,i,n);a="string"==typeof f?f:""}else this.logger.warn("missed to pass in variable ".concat(i[1]," for interpolating ").concat(e)),a="";else"string"==typeof a||this.useRawValueToEscape||(a=T(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=l({},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=l({},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=T(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}(),W=function(e){function t(e,o,n){var i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return u(this,t),i=f(this,g(t).call(this)),R.call(d(i)),i.backend=e,i.store=o,i.services=n,i.languageUtils=n.languageUtils,i.options=a,i.logger=O.create("backendConnector"),i.state={},i.queue=[],i.backend&&i.backend.init&&i.backend.init(n,a.backend,a),i}return m(t,e),p(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=b(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;n=o.loaded,s=a,(u=(l=N(n,[i],Object)).obj)[c=l.k]=u[c]||[],u[c].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=b(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,l({},a,{isUpdate:i})),e&&e[0]&&this.store.addResource(e[0],t,o,n))}}]),t}(R);function F(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 H(){}const K=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(u(this,t),e=f(this,g(t).call(this)),R.call(d(e)),e.options=F(o),e.services={},e.logger=O,e.modules={external:[]},n&&!e.isInitialized&&!o.isClone){if(!e.options.initImmediate)return e.init(o,n),f(e,d(e));setTimeout(function(){e.init(o,n)},0)}return e}return m(t,e),p(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=l({},{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"===a(e[1])&&(t=e[1]),"string"==typeof e[1]&&(t.defaultValue=e[1]),"string"==typeof e[2]&&(t.tDescription=e[2]),"object"===a(e[2])||"object"===a(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,F(t)),this.format=this.options.interpolation.format,o||(o=H),!this.options.isClone){this.modules.logger?O.init(n(this.modules.logger),this.options):O.init(null,this.options);var i=new P(this.options);this.store=new x(this.options.resources,this.options);var r=this.services;r.logger=O,r.resourceStore=this.store,r.languageUtils=i,r.pluralResolver=new G(i,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),r.interpolator=new U(this.options),r.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},r.backendConnector=new W(n(this.modules.backend),r.resourceStore,r,this.options),r.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&&(r.languageDetector=n(this.modules.languageDetector),r.languageDetector.init(r,this.options.detection,this.options)),this.modules.i18nFormat&&(r.i18nFormat=n(this.modules.i18nFormat),r.i18nFormat.init&&r.i18nFormat.init(this)),this.translator=new D(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 s=S(),u=function(){e.changeLanguage(e.options.lng,function(t,n){e.isInitialized=!0,e.logger.log("initialized",e.options),e.emit("initialized",e.options),s.resolve(n),o(t,n)})};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),s}},{key:"loadResources",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:H;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)})};this.language?n(this.language):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=S();return e||(e=this.languages),t||(t=this.options.ns),o||(o=H),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&&B.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var o=this,n=S();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"!==a(n)){for(var r=arguments.length,s=new Array(r>2?r-2:0),u=2;u<r;u++)s[u-2]=arguments[u];i=o.options.overloadTranslationOptionHandler([t,n].concat(s))}else i=l({},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=S();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=S();"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){return e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),e?["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr":"rtl"}},{key:"createInstance",value:function(){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]:H,i=l({},this.options,o,{isClone:!0}),a=new t(i);return["store","services","language"].forEach(function(t){a[t]=e[t]}),a.translator=new D(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}(R));function z(e){return z="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},z(e)}function Y(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)}return o}function q(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?Y(Object(o),!0).forEach(function(t){Z(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Y(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))})}return e}function Z(e,t,o){return(t=function(e){var t=function(e){if("object"!=z(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=z(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==z(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}var $=o.defaults.windowLevelPresets;function J(e,t,o){return{id:t,uiType:"ohif.toolButton",props:{title:t,subtitle:o,commands:[{commandName:"setWindowLevel",commandOptions:q({},$[e]),context:"CORNERSTONE"}]}}}var X={commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:["default","mpr","SRToolGroup"]}};const Q=[{id:"MeasurementTools",uiType:"ohif.toolButtonList",props:{buttonSection:!0}},{id:"MoreTools",uiType:"ohif.toolButtonList",props:{buttonSection:!0}},{id:"WindowLevelGroup",uiType:"ohif.toolButtonList",props:{buttonSection:!0}},{id:"advancedRenderingControls",uiType:"ohif.advancedRenderingControls",props:{evaluate:{name:"evaluate.advancedRenderingControls",hideWhenDisabled:!0}}},{id:"modalityLoadBadge",uiType:"ohif.modalityLoadBadge",props:{icon:"Status",label:K.t("Buttons:Status"),tooltip:K.t("Buttons:Status"),evaluate:{name:"evaluate.modalityLoadBadge",hideWhenDisabled:!0}}},{id:"navigationComponent",uiType:"ohif.navigationComponent",props:{icon:"Navigation",label:K.t("Buttons:Navigation"),tooltip:K.t("Buttons:Navigate between segments/measurements and manage their visibility"),evaluate:{name:"evaluate.navigationComponent",hideWhenDisabled:!0}}},{id:"trackingStatus",uiType:"ohif.trackingStatus",props:{icon:"TrackingStatus",label:K.t("Buttons:Tracking Status"),tooltip:K.t("Buttons:View and manage tracking status of measurements and annotations"),evaluate:{name:"evaluate.trackingStatus",hideWhenDisabled:!0}}},{id:"dataOverlayMenu",uiType:"ohif.dataOverlayMenu",props:{icon:"ViewportViews",label:K.t("Buttons:Data Overlay"),tooltip:K.t("Buttons:Configure data overlay options and manage foreground/background display sets"),evaluate:"evaluate.dataOverlayMenu"}},{id:"orientationMenu",uiType:"ohif.orientationMenu",props:{icon:"OrientationSwitch",label:K.t("Buttons:Orientation"),tooltip:K.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:K.t("Buttons:Window Level"),tooltip:K.t("Buttons:Adjust window/level presets and customize image contrast settings"),evaluate:"evaluate.windowLevelMenu"}},{id:"voiManualControlMenu",uiType:"ohif.voiManualControlMenu",props:{icon:"WindowLevelAdvanced",label:K.t("Buttons:Advanced Window Level"),tooltip:K.t("Buttons:Advanced window/level settings with manual controls and presets"),evaluate:"evaluate.voiManualControlMenu"}},{id:"thresholdMenu",uiType:"ohif.thresholdMenu",props:{icon:"Threshold",label:K.t("Buttons:Threshold"),tooltip:K.t("Buttons:Image threshold settings"),evaluate:{name:"evaluate.thresholdMenu",hideWhenDisabled:!0}}},{id:"opacityMenu",uiType:"ohif.opacityMenu",props:{icon:"Opacity",label:K.t("Buttons:Opacity"),tooltip:K.t("Buttons:Image opacity settings"),evaluate:{name:"evaluate.opacityMenu",hideWhenDisabled:!0}}},{id:"Colorbar",uiType:"ohif.colorbar",props:{type:"tool",label:K.t("Buttons:Colorbar")}},J(1,"Soft tissue","400 / 40"),J(2,"Lung","1500 / -600"),J(3,"Liver","150 / 90"),J(4,"Bone","2500 / 480"),J(5,"Brain","80 / 40"),{id:"WindowLevel",uiType:"ohif.toolButton",props:{icon:"tool-window-level",label:K.t("Buttons:Window Level"),tooltip:K.t("Buttons:Window Level"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Length",uiType:"ohif.toolButton",props:{icon:"tool-length",label:K.t("Buttons:Length"),tooltip:K.t("Buttons:Length Tool"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Bidirectional",uiType:"ohif.toolButton",props:{icon:"tool-bidirectional",label:K.t("Buttons:Bidirectional"),tooltip:K.t("Buttons:Bidirectional Tool"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"ArrowAnnotate",uiType:"ohif.toolButton",props:{icon:"tool-annotate",label:K.t("Buttons:Annotation"),tooltip:K.t("Buttons:Arrow Annotate"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"EllipticalROI",uiType:"ohif.toolButton",props:{icon:"tool-ellipse",label:K.t("Buttons:Ellipse"),tooltip:K.t("Buttons:Ellipse ROI"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"CircleROI",uiType:"ohif.toolButton",props:{icon:"tool-circle",label:K.t("Buttons:Circle"),tooltip:K.t("Buttons:Circle Tool"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"PlanarFreehandROI",uiType:"ohif.toolButton",props:{icon:"icon-tool-freehand-roi",label:K.t("Buttons:Freehand ROI"),tooltip:K.t("Buttons:Freehand ROI"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"SplineROI",uiType:"ohif.toolButton",props:{icon:"icon-tool-spline-roi",label:K.t("Buttons:Spline ROI"),tooltip:K.t("Buttons:Spline ROI"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"LivewireContour",uiType:"ohif.toolButton",props:{icon:"icon-tool-livewire",label:K.t("Buttons:Livewire tool"),tooltip:K.t("Buttons:Livewire tool"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Zoom",uiType:"ohif.toolButton",props:{icon:"tool-zoom",label:K.t("Buttons:Zoom"),tooltip:K.t("Buttons:Zoom"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Pan",uiType:"ohif.toolButton",props:{type:"tool",icon:"tool-move",label:K.t("Buttons:Pan"),tooltip:K.t("Buttons:Pan"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"MPR",uiType:"ohif.toolButton",props:{icon:"icon-mpr",label:K.t("Buttons:MPR"),tooltip:K.t("Buttons:MPR"),commands:{commandName:"toggleHangingProtocol",commandOptions:{protocolId:"mpr"}},evaluate:"evaluate.displaySetIsReconstructable"}},{id:"TrackBallRotate",uiType:"ohif.toolButton",props:{type:"tool",icon:"tool-3d-rotate",label:K.t("Buttons:3D Rotate"),tooltip:K.t("Buttons:3D Rotate"),commands:X}},{id:"Capture",uiType:"ohif.toolButton",props:{icon:"tool-capture",label:K.t("Buttons:Capture"),tooltip:K.t("Buttons:Capture"),commands:"showDownloadViewportModal",evaluate:["evaluate.action",{name:"evaluate.viewport.supported",unsupportedViewportTypes:["video","wholeSlide"]}]}},{id:"Layout",uiType:"ohif.layoutSelector",props:{rows:3,columns:4,evaluate:"evaluate.action",commands:"setViewportGridLayout"}},{id:"Crosshairs",uiType:"ohif.toolButton",props:{type:"tool",icon:"tool-crosshair",label:K.t("Buttons:Crosshairs"),tooltip:K.t("Buttons:Crosshairs"),commands:{commandName:"setToolActiveToolbar",commandOptions:{toolGroupIds:["mpr"]}},evaluate:"evaluate.cornerstoneTool"}},{id:"Reset",uiType:"ohif.toolButton",props:{icon:"tool-reset",label:K.t("Buttons:Reset View"),tooltip:K.t("Buttons:Reset View"),commands:"resetViewport",evaluate:"evaluate.action"}},{id:"rotate-right",uiType:"ohif.toolButton",props:{icon:"tool-rotate-right",label:K.t("Buttons:Rotate Right"),tooltip:K.t("Buttons:Rotate +90"),commands:"rotateViewportCW",evaluate:"evaluate.action"}},{id:"flipHorizontal",uiType:"ohif.toolButton",props:{icon:"tool-flip-horizontal",label:K.t("Buttons:Flip Horizontal"),tooltip:K.t("Buttons:Flip Horizontally"),commands:"flipViewportHorizontal",evaluate:"evaluate.viewportProperties.toggle"}},{id:"ImageSliceSync",uiType:"ohif.toolButton",props:{icon:"link",label:K.t("Buttons:Image Slice Sync"),tooltip:K.t("Buttons:Enable position synchronization on stack viewports"),commands:{commandName:"toggleSynchronizer",commandOptions:{type:"imageSlice"}},listeners:Z({},t.VIEWPORT_NEW_IMAGE_SET,{commandName:"toggleImageSliceSync",commandOptions:{toggledState:!0}}),evaluate:"evaluate.cornerstone.synchronizer"}},{id:"ReferenceLines",uiType:"ohif.toolButton",props:{icon:"tool-referenceLines",label:K.t("Buttons:Reference Lines"),tooltip:K.t("Buttons:Show Reference Lines"),commands:"toggleEnabledDisabledToolbar",evaluate:"evaluate.cornerstoneTool.toggle"}},{id:"ImageOverlayViewer",uiType:"ohif.toolButton",props:{icon:"toggle-dicom-overlay",label:K.t("Buttons:Image Overlay"),tooltip:K.t("Buttons:Toggle Image Overlay"),commands:"toggleEnabledDisabledToolbar",evaluate:"evaluate.cornerstoneTool.toggle"}},{id:"StackScroll",uiType:"ohif.toolButton",props:{icon:"tool-stack-scroll",label:K.t("Buttons:Stack Scroll"),tooltip:K.t("Buttons:Stack Scroll"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"invert",uiType:"ohif.toolButton",props:{icon:"tool-invert",label:K.t("Buttons:Invert"),tooltip:K.t("Buttons:Invert Colors"),commands:"invertViewport",evaluate:"evaluate.viewportProperties.toggle"}},{id:"Probe",uiType:"ohif.toolButton",props:{icon:"tool-probe",label:K.t("Buttons:Probe"),tooltip:K.t("Buttons:Probe"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Cine",uiType:"ohif.toolButton",props:{icon:"tool-cine",label:K.t("Buttons:Cine"),tooltip:K.t("Buttons:Cine"),commands:"toggleCine",evaluate:"evaluate.cine"}},{id:"Angle",uiType:"ohif.toolButton",props:{icon:"tool-angle",label:K.t("Buttons:Angle"),tooltip:K.t("Buttons:Angle"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"CobbAngle",uiType:"ohif.toolButton",props:{icon:"icon-tool-cobb-angle",label:K.t("Buttons:Cobb Angle"),tooltip:K.t("Buttons:Cobb Angle"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"Magnify",uiType:"ohif.toolButton",props:{icon:"tool-magnify",label:K.t("Buttons:Zoom-in"),tooltip:K.t("Buttons:Zoom-in"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"RectangleROI",uiType:"ohif.toolButton",props:{icon:"tool-rectangle",label:K.t("Buttons:Rectangle"),tooltip:K.t("Buttons:Rectangle"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"CalibrationLine",uiType:"ohif.toolButton",props:{icon:"tool-calibration",label:K.t("Buttons:Calibration"),tooltip:K.t("Buttons:Calibration Line"),commands:X,evaluate:"evaluate.cornerstoneTool"}},{id:"TagBrowser",uiType:"ohif.toolButton",props:{icon:"dicom-tag-browser",label:K.t("Buttons:Dicom Tag Browser"),tooltip:K.t("Buttons:Dicom Tag Browser"),commands:"openDICOMTagViewer"}},{id:"AdvancedMagnify",uiType:"ohif.toolButton",props:{icon:"icon-tool-loupe",label:K.t("Buttons:Magnify Probe"),tooltip:K.t("Buttons:Magnify Probe"),commands:"toggleActiveDisabledToolbar",evaluate:"evaluate.cornerstoneTool.toggle.ifStrictlyDisabled"}},{id:"UltrasoundDirectionalTool",uiType:"ohif.toolButton",props:{icon:"icon-tool-ultrasound-bidirectional",label:K.t("Buttons:Ultrasound Directional"),tooltip:K.t("Buttons:Ultrasound Directional"),commands:X,evaluate:["evaluate.cornerstoneTool",{name:"evaluate.modality.supported",supportedModalities:["US"]}]}},{id:"WindowLevelRegion",uiType:"ohif.toolButton",props:{icon:"icon-tool-window-region",label:K.t("Buttons:Window Level Region"),tooltip:K.t("Buttons:Window Level Region"),commands:X,evaluate:"evaluate.cornerstoneTool"}}];var ee=JSON.parse('{"u2":"ohif-medsight"}').u2,te={"viewport-0":"rgb(200, 0, 0)","viewport-1":"rgb(200, 200, 0)","viewport-2":"rgb(0, 200, 0)"},oe={axial:"rgb(200, 0, 0)",sagittal:"rgb(200, 200, 0)",coronal:"rgb(0, 200, 0)"};var ne=["ECG","SR","SEG","RTSTRUCT"],ie="@ohif/extension-default.sopClassHandlerModule.stack",ae="@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler",re="@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr",se="@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr-3d",le="@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video",ue="@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf",ce="@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg",pe={"@ohif/extension-default":"^3.0.0","@ohif/extension-cornerstone":"^3.0.0","@ohif/extension-measurement-tracking":"^3.0.0","@ohif/extension-cornerstone-dicom-sr":"^3.0.0","@ohif/extension-cornerstone-dicom-seg":"^3.0.0","@ohif/extension-cornerstone-dicom-pmap":"^3.0.0","@ohif/extension-dicom-pdf":"^3.0.1","@ohif/extension-dicom-video":"^3.0.1","@ohif/extension-test":"^0.0.1"};const de={id:ee,modeFactory:function(){return{id:ee,routeName:"medsight",displayName:K.t("Modes:Basic Test Mode"),onModeEnter:function(e){var t=e.servicesManager,o=e.extensionManager,n=e.commandsManager,i=t.services,a=i.measurementService,r=i.toolbarService,s=i.toolGroupService,l=i.customizationService;a.clearMeasurements(),function(e,t,o){!function(e,t,o){var n=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools").exports,i=n.toolNames,a=n.Enums,r={active:[{toolName:i.WindowLevel,bindings:[{mouseButton:a.MouseBindings.Primary}]},{toolName:i.Pan,bindings:[{mouseButton:a.MouseBindings.Auxiliary}]},{toolName:i.Zoom,bindings:[{mouseButton:a.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:i.StackScroll,bindings:[{mouseButton:a.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:i.Length},{toolName:i.ArrowAnnotate,configuration:{getTextCallback:function(e,t){return o.runCommand("arrowTextCallback",{callback:e,eventDetails:t})},changeTextCallback:function(e,t,n){return o.runCommand("arrowTextCallback",{callback:n,data:e,eventDetails:t})}}},{toolName:i.Bidirectional},{toolName:i.DragProbe},{toolName:i.Probe},{toolName:i.EllipticalROI},{toolName:i.CircleROI},{toolName:i.RectangleROI},{toolName:i.StackScroll},{toolName:i.Angle},{toolName:i.CobbAngle},{toolName:i.Magnify},{toolName:i.WindowLevelRegion},{toolName:i.UltrasoundDirectional},{toolName:i.PlanarFreehandROI},{toolName:i.SplineROI},{toolName:i.LivewireContour}],enabled:[{toolName:i.ImageOverlayViewer}],disabled:[{toolName:i.ReferenceLines},{toolName:i.AdvancedMagnify}]};t.createToolGroupAndAddTools("default",r)}(e,t,o),function(e,t){var o=e.getModuleEntry("@ohif/extension-cornerstone-dicom-sr.utilityModule.tools"),n=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),i=o.exports.toolNames,a=n.exports,r=a.toolNames,s=a.Enums,l={active:[{toolName:r.WindowLevel,bindings:[{mouseButton:s.MouseBindings.Primary}]},{toolName:r.Pan,bindings:[{mouseButton:s.MouseBindings.Auxiliary}]},{toolName:r.Zoom,bindings:[{mouseButton:s.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:r.StackScroll,bindings:[{mouseButton:s.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:i.SRLength},{toolName:i.SRArrowAnnotate},{toolName:i.SRBidirectional},{toolName:i.SREllipticalROI},{toolName:i.SRCircleROI},{toolName:r.WindowLevelRegion}],enabled:[{toolName:i.DICOMSRDisplay,bindings:[]}]};t.createToolGroupAndAddTools("SRToolGroup",l)}(e,t),function(e,t,o){var n=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),i=e._servicesManager.services.cornerstoneViewportService,a=n.exports,r=a.toolNames,s=a.Enums,l={active:[{toolName:r.WindowLevel,bindings:[{mouseButton:s.MouseBindings.Primary}]},{toolName:r.Pan,bindings:[{mouseButton:s.MouseBindings.Auxiliary}]},{toolName:r.Zoom,bindings:[{mouseButton:s.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:r.StackScroll,bindings:[{mouseButton:s.MouseBindings.Wheel},{numTouchPoints:3}]}],passive:[{toolName:r.Length},{toolName:r.ArrowAnnotate,configuration:{getTextCallback:function(e,t){return o.runCommand("arrowTextCallback",{callback:e,eventDetails:t})},changeTextCallback:function(e,t,n){return o.runCommand("arrowTextCallback",{callback:n,data:e,eventDetails:t})}}},{toolName:r.Bidirectional},{toolName:r.DragProbe},{toolName:r.Probe},{toolName:r.EllipticalROI},{toolName:r.CircleROI},{toolName:r.RectangleROI},{toolName:r.StackScroll},{toolName:r.Angle},{toolName:r.WindowLevelRegion},{toolName:r.PlanarFreehandROI},{toolName:r.SplineROI},{toolName:r.LivewireContour}],disabled:[{toolName:r.Crosshairs,configuration:{viewportIndicators:!1,autoPan:{enabled:!1,panSize:10},getReferenceLineColor:function(e){var t=i.getViewportInfo(e),o=null==t?void 0:t.viewportOptions;return o?te[o.id]||oe[o.orientation]||"#0c0":(console.warn("missing viewport?",e),"#0c0")}}},{toolName:r.ReferenceLines}]};t.createToolGroupAndAddTools("mpr",l)}(e,t,o),function(e,t){var o=e.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools").exports,n=o.toolNames,i=o.Enums,a={active:[{toolName:n.TrackballRotateTool,bindings:[{mouseButton:i.MouseBindings.Primary}]},{toolName:n.Zoom,bindings:[{mouseButton:i.MouseBindings.Secondary},{numTouchPoints:2}]},{toolName:n.Pan,bindings:[{mouseButton:i.MouseBindings.Auxiliary},{numTouchPoints:3}]}]};t.createToolGroupAndAddTools("volume3d",a)}(e,t)}(o,s,n),l.setCustomizations(["@ohif/extension-test.customizationModule.custom-context-menu"]),r.register(Q),console.debug("toolbarButtons",Q),r.updateSection(r.sections.primary,["Zoom","Pan","WindowLevelGroup","MPR","MeasurementTools","Layout","Probe","rotate-right","Crosshairs","ArrowAnnotate","3D only","MoreTools","Capture"]),r.updateSection("WindowLevelGroup",["WindowLevel","Soft tissue","Lung","Liver","Bone","Brain"]),r.updateSection(r.sections.viewportActionMenu.topLeft,["orientationMenu","dataOverlayMenu"]),r.updateSection(r.sections.viewportActionMenu.bottomMiddle,["AdvancedRenderingControls"]),r.updateSection("AdvancedRenderingControls",["voiManualControlMenu","Colorbar","opacityMenu","thresholdMenu"]),r.updateSection(r.sections.viewportActionMenu.topRight,["modalityLoadBadge","trackingStatus","navigationComponent"]),r.updateSection(r.sections.viewportActionMenu.bottomLeft,["windowLevelMenu"]),r.updateSection("WindowLevelGroup",["WindowLevel","Soft tissue","Lung","Liver","Bone","Brain"]),r.updateSection("MeasurementTools",["Length","Bidirectional","EllipticalROI","CircleROI","PlanarFreehandROI","SplineROI","LivewireContour"]),r.updateSection("MoreTools",["Reset","rotate-right","flipHorizontal","ImageSliceSync","ReferenceLines","ImageOverlayViewer","StackScroll","invert","Cine","Angle","CobbAngle","Magnify","RectangleROI","CalibrationLine","TagBrowser","AdvancedMagnify","UltrasoundDirectionalTool","WindowLevelRegion"]),l.setCustomizations({"ohif.hotkeyBindings":{$push:[{commandName:"undo",label:"Undo",keys:["ctrl+z"],isEditable:!0}]}},"mode")},onModeExit:function(e){var t=e.servicesManager.services,o=t.toolGroupService,n=t.syncGroupService,i=t.segmentationService,a=t.cornerstoneViewportService,r=t.uiDialogService,s=t.uiModalService;r.hideAll(),s.hide(),o.destroy(),n.destroy(),i.destroy(),a.destroy()},validationTags:{study:[],series:[]},isValidMode:function(e){return{valid:!!e.modalities.split("\\").filter(function(e){return-1===ne.indexOf(e)}).length,description:"The mode does not support studies that ONLY include the following modalities: SM, ECG, SR, SEG"}},routes:[{path:"basic-test",layoutTemplate:function(){return{id:"@ohif/extension-default.layoutTemplateModule.viewerLayout",props:{leftPanels:["@ohif/extension-measurement-tracking.panelModule.seriesList"],leftPanelResizable:!0,rightPanels:["@ohif/extension-cornerstone.panelModule.panelSegmentation","@ohif/extension-measurement-tracking.panelModule.trackedMeasurements","@ohif/extension-test.panelModule.panelMeasurementSeries"],rightPanelResizable:!0,viewports:[{namespace:"@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked",displaySetsToDisplay:[ie,le,ae]},{namespace:"@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr",displaySetsToDisplay:[re,se]},{namespace:"@ohif/extension-dicom-video.viewportModule.dicom-video",displaySetsToDisplay:[le]},{namespace:"@ohif/extension-dicom-pdf.viewportModule.dicom-pdf",displaySetsToDisplay:[ue]},{namespace:"@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg",displaySetsToDisplay:[ce]},{namespace:"@ohif/extension-cornerstone-dicom-pmap.viewportModule.dicom-pmap",displaySetsToDisplay:["@ohif/extension-cornerstone-dicom-pmap.sopClassHandlerModule.dicom-pmap"]}]}}}}],extensions:pe,hangingProtocol:"default",sopClassHandlers:[le,ce,ae,ie,ue,re,se],hotkeys:{name:"basic-test-hotkeys"}}},extensionDependencies:pe}})(),i})());
|
|
2
|
+
//# sourceMappingURL=index.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://ohif-medsight/webpack/universalModuleDefinition","webpack://ohif-medsight/external umd {\"commonjs2\":\"@ohif/core\",\"commonjs\":\"@ohif/core\",\"amd\":\"@ohif/core\",\"root\":\"@ohif/core\"}","webpack://ohif-medsight/webpack/bootstrap","webpack://ohif-medsight/webpack/runtime/define property getters","webpack://ohif-medsight/webpack/runtime/hasOwnProperty shorthand","webpack://ohif-medsight/webpack/runtime/make namespace object","webpack://ohif-medsight/./node_modules/@cornerstonejs/core/dist/esm/enums/Events.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://ohif-medsight/./node_modules/i18next/dist/esm/i18next.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://ohif-medsight/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://ohif-medsight/./src/toolbarButtons.ts","webpack://ohif-medsight/./src/id.js","webpack://ohif-medsight/./src/initToolGroups.ts","webpack://ohif-medsight/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@ohif/core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"ohif-medsight\", [\"@ohif/core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ohif-medsight\"] = factory(require(\"@ohif/core\"));\n\telse\n\t\troot[\"ohif-medsight\"] = factory(root[\"@ohif/core\"]);\n})(typeof self !== 'undefined' ? self : this, (__WEBPACK_EXTERNAL_MODULE__310__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__310__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var Events;\n(function (Events) {\n Events[\"ERROR_EVENT\"] = \"CORNERSTONE_ERROR\";\n Events[\"CACHE_SIZE_EXCEEDED\"] = \"CACHE_SIZE_EXCEEDED\";\n Events[\"IMAGE_LOAD_ERROR\"] = \"IMAGE_LOAD_ERROR\";\n Events[\"CAMERA_MODIFIED\"] = \"CORNERSTONE_CAMERA_MODIFIED\";\n Events[\"CAMERA_RESET\"] = \"CORNERSTONE_CAMERA_RESET\";\n Events[\"VOI_MODIFIED\"] = \"CORNERSTONE_VOI_MODIFIED\";\n Events[\"PRESET_MODIFIED\"] = \"CORNERSTONE_VIEWPORT_RENDERING_PRESET_MODIFIED\";\n Events[\"DISPLAY_AREA_MODIFIED\"] = \"CORNERSTONE_DISPLAY_AREA_MODIFIED\";\n Events[\"ELEMENT_DISABLED\"] = \"CORNERSTONE_ELEMENT_DISABLED\";\n Events[\"ELEMENT_ENABLED\"] = \"CORNERSTONE_ELEMENT_ENABLED\";\n Events[\"IMAGE_RENDERED\"] = \"CORNERSTONE_IMAGE_RENDERED\";\n Events[\"IMAGE_VOLUME_MODIFIED\"] = \"CORNERSTONE_IMAGE_VOLUME_MODIFIED\";\n Events[\"IMAGE_VOLUME_LOADING_COMPLETED\"] = \"CORNERSTONE_IMAGE_VOLUME_LOADING_COMPLETED\";\n Events[\"IMAGE_LOADED\"] = \"CORNERSTONE_IMAGE_LOADED\";\n Events[\"IMAGE_RETRIEVAL_STAGE\"] = \"CORNERSTONE_IMAGE_RETRIEVAL_STAGE\";\n Events[\"IMAGE_LOAD_FAILED\"] = \"CORNERSTONE_IMAGE_LOAD_FAILED\";\n Events[\"VOLUME_VIEWPORT_NEW_VOLUME\"] = \"CORNERSTONE_VOLUME_VIEWPORT_NEW_VOLUME\";\n Events[\"VOLUME_LOADED\"] = \"CORNERSTONE_VOLUME_LOADED\";\n Events[\"VOLUME_LOADED_FAILED\"] = \"CORNERSTONE_VOLUME_LOADED_FAILED\";\n Events[\"IMAGE_CACHE_IMAGE_ADDED\"] = \"CORNERSTONE_IMAGE_CACHE_IMAGE_ADDED\";\n Events[\"IMAGE_CACHE_IMAGE_REMOVED\"] = \"CORNERSTONE_IMAGE_CACHE_IMAGE_REMOVED\";\n Events[\"VOLUME_CACHE_VOLUME_ADDED\"] = \"CORNERSTONE_VOLUME_CACHE_VOLUME_ADDED\";\n Events[\"VOLUME_CACHE_VOLUME_REMOVED\"] = \"CORNERSTONE_VOLUME_CACHE_VOLUME_REMOVED\";\n Events[\"STACK_NEW_IMAGE\"] = \"CORNERSTONE_STACK_NEW_IMAGE\";\n Events[\"VOLUME_NEW_IMAGE\"] = \"CORNERSTONE_VOLUME_NEW_IMAGE\";\n Events[\"PRE_STACK_NEW_IMAGE\"] = \"CORNERSTONE_PRE_STACK_NEW_IMAGE\";\n Events[\"IMAGE_SPACING_CALIBRATED\"] = \"CORNERSTONE_IMAGE_SPACING_CALIBRATED\";\n Events[\"VIEWPORT_NEW_IMAGE_SET\"] = \"CORNERSTONE_VIEWPORT_NEW_IMAGE_SET\";\n Events[\"STACK_VIEWPORT_SCROLL\"] = \"CORNERSTONE_STACK_VIEWPORT_SCROLL\";\n Events[\"STACK_SCROLL_OUT_OF_BOUNDS\"] = \"STACK_SCROLL_OUT_OF_BOUNDS\";\n Events[\"GEOMETRY_CACHE_GEOMETRY_ADDED\"] = \"CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_ADDED\";\n Events[\"GEOMETRY_CACHE_GEOMETRY_REMOVED\"] = \"CORNERSTONE_GEOMETRY_CACHE_GEOMETRY_REMOVED\";\n Events[\"VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS\"] = \"VOLUME_VIEWPORT_SCROLL_OUT_OF_BOUNDS\";\n Events[\"VOLUME_VIEWPORT_SCROLL\"] = \"VOLUME_VIEWPORT_SCROLL\";\n Events[\"CLIPPING_PLANES_UPDATED\"] = \"CORNERSTONE_CLIPPING_PLANES_UPDATED\";\n Events[\"WEB_WORKER_PROGRESS\"] = \"CORNERSTONE_WEB_WORKER_PROGRESS\";\n Events[\"COLORMAP_MODIFIED\"] = \"CORNERSTONE_COLORMAP_MODIFIED\";\n Events[\"DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED\"] = \"DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED\";\n Events[\"DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED\"] = \"DYNAMIC_VOLUME_TIME_POINT_INDEX_CHANGED\";\n Events[\"DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED\"] = \"DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED\";\n Events[\"DYNAMIC_VOLUME_TIME_POINT_LOADED\"] = \"DYNAMIC_VOLUME_TIME_POINT_LOADED\";\n Events[\"GEOMETRY_LOADED\"] = \"GEOMETRY_LOADED\";\n Events[\"GEOMETRY_LOAD_PROGRESS\"] = \"GEOMETRY_LOAD_PROGRESS\";\n Events[\"GEOMETRY_LOADED_FAILED\"] = \"GEOMETRY_LOADED_FAILED\";\n Events[\"ACTORS_CHANGED\"] = \"CORNERSTONE_ACTORS_CHANGED\";\n})(Events || (Events = {}));\nexport default Events;\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? Object(arguments[r]) : {},\n o = Object.keys(t);\n \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), o.forEach(function (r) {\n defineProperty(e, r, t[r]);\n });\n }\n return e;\n}\nexport { _objectSpread as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n var _console;\n\n /* eslint no-console: 0 */\n if (console && console[type]) (_console = console)[type].apply(_console, _toConsumableArray(args));\n }\n};\n\nvar Logger =\n/*#__PURE__*/\nfunction () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter =\n/*#__PURE__*/\nfunction () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\n// http://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n /* eslint prefer-template: 0 */\n\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n object = object[key];\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n } // Fallback to default values\n\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n /* eslint no-restricted-syntax: 0 */\n for (var prop in source) {\n if (prop in target) {\n // If we reached a leaf string in target or source then replace with source or skip depending on the 'overwrite' switch\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n /* eslint no-useless-escape: 0 */\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\n/* eslint-disable */\n\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\n/* eslint-enable */\n\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\n\nvar ResourceStore =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n /* eslint no-restricted-syntax: 0 */\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0\n\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar Translator =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n /* eslint prefer-rest-params: 0 */\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {}; // non valid keys handling\n\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)]; // separators\n\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator; // get namespace(s)\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1]; // return key on CIMode\n\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n } // resolve from store\n\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; // object\n\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n } // if we got a separator we loop over children - else we just return object as is\n // as having it set to false means no hierarchy so no lookup for nested values\n\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy$$1 = resTypeIsArray ? [] : {}; // apply child translation on a copy\n\n /* eslint no-restricted-syntax: 0 */\n\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy$$1[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy$$1[m] === deepKey) copy$$1[m] = res[m]; // if nothing found use orginal value as fallback\n }\n }\n\n res = copy$$1;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n // array special treatment\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options);\n } else {\n // string, empty or null\n var usedDefault = false;\n var usedKey = false; // fallback value\n\n if (!this.isValidLookup(res) && options.defaultValue !== undefined) {\n usedDefault = true;\n\n if (options.count !== undefined) {\n var suffix = this.pluralResolver.getSuffix(lng, options.count);\n res = options[\"defaultValue\".concat(suffix)];\n }\n\n if (!res) res = options.defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n } // save missing\n\n\n var updateMissing = options.defaultValue && options.defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? options.defaultValue : res);\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? options.defaultValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (l) {\n var plurals = _this2.pluralResolver.getPluralFormsOfKey(l, key);\n\n plurals.forEach(function (p) {\n return send([l], p);\n });\n });\n } else {\n send(lngs, key);\n }\n }\n } // extend\n\n\n res = this.extendTranslation(res, keys, options, resolved); // append namespace if still key\n\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key); // parseMissingKeyHandler\n\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n } // return\n\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n // i18next.parsing\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n })); // interpolate\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options); // nesting\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n return _this3.translate.apply(_this3, arguments);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n } // post process\n\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey; // plain key\n\n var exactUsedKey; // key with context / plural\n\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys]; // forEach possible key\n\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (_this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for namespace \\\"\").concat(usedNS, \"\\\" 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!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count); // fallback for plural if context not found\n\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix); // get key for context if needed\n\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context)); // get key for plural if needed\n\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n } // iterate over finalKeys starting with most specific pluralkey (-> contextkey only) -> singularkey only\n\n\n var possibleKey;\n /* eslint no-cond-assign: 0 */\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil =\n/*#__PURE__*/\nfunction () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.whitelist || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n // http://www.iana.org/assignments/language-tags/language-tags.xhtml\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase(); // if lenght 2 guess it's a country\n\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitWhitelist) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.whitelist || !this.whitelist.length || this.whitelist.indexOf(code) > -1;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || []; // asume we have an object defining fallbacks\n\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this.isWhitelisted(c)) {\n codes.push(c);\n } else {\n _this.logger.warn(\"rejecting non-whitelisted language code: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\n/* eslint-disable */\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n 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'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n === 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n === 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n === 1 ? 0 : n === 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n/* eslint-enable */\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver =\n/*#__PURE__*/\nfunction () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var _this = this;\n\n var ret = [];\n var rule = this.getRule(code);\n if (!rule) return ret;\n rule.numbers.forEach(function (n) {\n var suffix = _this.getSuffix(code, n);\n\n ret.push(\"\".concat(key).concat(suffix));\n });\n return ret;\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n // if (rule.numbers.length === 1) return ''; // only singular\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx]; // special treatment for lngs only having singular and plural\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n }; // COMPATIBILITY JSON\n // v1\n\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (\n /* v2 */\n this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (\n /* v3 - gettext index */\n this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator =\n/*#__PURE__*/\nfunction () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n /* eslint no-param-reassign: 0 */\n\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000; // the regexp\n\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n // the regexp\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n return getPathWithDefaults(data, defaultData, key);\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n replaces = 0; // unescape if has unescapePrefix/Suffix\n\n /* eslint no-cond-assign: 0 */\n\n while (match = this.regexpUnescape.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], regexSafe(value));\n this.regexpUnescape.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n replaces = 0; // regular escape on demand\n\n while (match = this.regexp.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var _temp = missingInterpolationHandler(str, match, options);\n\n value = typeof _temp === 'string' ? _temp : '';\n } else {\n this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n value = this.escapeValue ? regexSafe(this.escape(value)) : regexSafe(value);\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n replaces++;\n\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false; // avoid post processing on nested lookup\n\n delete clonedOptions.defaultValue; // assert we do not get a endless loop on interpolating defaultValue again and again\n // if value is something like \"myKey\": \"lorem $(anotherKey, { \"count\": {{aValueInOptions}} })\"\n\n function handleHasOptions(key, inheritedOptions) {\n if (key.indexOf(',') < 0) return key;\n var p = key.split(',');\n key = p.shift();\n var optionsString = p.join(',');\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.error(\"failed parsing options string in nesting for key \".concat(key), e);\n } // assert we do not get a endless loop on interpolating defaultValue again and again\n\n\n delete clonedOptions.defaultValue;\n return key;\n } // regular escape on demand\n\n\n while (match = this.nestingRegexp.exec(str)) {\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions); // is only the nesting key (key1 = '$(key2)') return the value without stringify\n\n if (value && match[0] === str && typeof value !== 'string') return value; // no string to include or empty\n\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n } // Nested keys should not be escaped by default #854\n // value = this.escapeValue ? regexSafe(utils.escape(value)) : regexSafe(value);\n\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n // find what needs to be loaded\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2; // loaded\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1; // pending\n\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var _name$split = name.split('|'),\n _name$split2 = _slicedToArray(_name$split, 2),\n lng = _name$split2[0],\n ns = _name$split2[1];\n\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n } // set loaded\n\n\n this.state[name] = err ? -1 : 2; // consolidated loading done in this run - only emit once for a loaded namespace\n\n var loaded = {}; // callback if ready\n\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n // only do once per loaded -> this.emit('loaded', q.loaded);\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n /* eslint no-param-reassign: 0 */\n\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n }); // emit consolidated loaded event\n\n this.emit('loaded', loaded); // remove done load requests\n\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {}); // noting to load\n\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data\n /* = retryFlag */\n && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n /* eslint consistent-return: 0 */\n\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback(); // nothing to load and no pendings...callback now\n\n return null; // pendings will trigger callback\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var _name$split3 = name.split('|'),\n _name$split4 = _slicedToArray(_name$split3, 2),\n lng = _name$split4[0],\n ns = _name$split4[1];\n\n this.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" for namespace \\\"\").concat(namespace, \"\\\" 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!!!');\n return;\n }\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null\n /* unused callback */\n , _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n } // write to store to avoid resending\n\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n // string or array of namespaces\n whitelist: false,\n // array with whitelisted languages\n nonExplicitWhitelist: false,\n load: 'all',\n // | currentOnly | languageOnly\n preload: false,\n // array with preload languages\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n // allow bundling certain languages that are not remotely fetched\n saveMissing: false,\n // enable to send missing values\n updateMissing: false,\n // enable to update default values if different from translated value (only useful on initial development, or when keeping code as source of truth)\n saveMissingTo: 'fallback',\n // 'current' || 'all'\n saveMissingPlurals: true,\n // will save all forms not only singular key\n missingKeyHandler: false,\n // function(lng, ns, key, fallbackValue) -> override if prefer on handling\n missingInterpolationHandler: false,\n // function(str, match)\n postProcess: false,\n // string or array of postProcessor names\n postProcessPassResolved: false,\n // pass resolved object into 'options.i18nResolved' for postprocessor\n returnNull: true,\n // allows null value as valid translation\n returnEmptyString: true,\n // allows empty string value as valid translation\n returnObjects: false,\n joinArrays: false,\n // or string to join array\n returnedObjectHandler: false,\n // function(key, value, options) triggered if key returns object but returnObjects is set to false\n parseMissingKeyHandler: false,\n // function(key) parsed a key that was not found in t() before returning\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n // prefixEscaped: '{{',\n // suffixEscaped: '}}',\n // unescapeSuffix: '',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n // nestingPrefixEscaped: '$t(',\n // nestingSuffixEscaped: ')',\n // defaultVariables: undefined // object that can have values to interpolate on - extends passed in interpolation data\n maxReplaces: 1000 // max replaces to prevent endless loop\n\n }\n };\n}\n/* eslint no-param-reassign: 0 */\n\nfunction transformOptions(options) {\n // create namespace object if namespace is passed in as string\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS]; // extend whitelist with cimode\n\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n EventEmitter.call(_assertThisInitialized(_this)); // <=IE10 fix (unable to call parent constructor)\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n // https://github.com/i18next/i18next/issues/879\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n } // init services\n\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options); // pipe events from backendConnector\n\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options); // pipe events from translator\n\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n } // append api\n\n\n var storeApi = ['getResource', 'addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var deferred = defer();\n\n var load = function load() {\n _this2.changeLanguage(_this2.options.lng, function (err, t) {\n _this2.isInitialized = true;\n\n _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err, t);\n });\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n /* eslint consistent-return: 0 */\n\n }, {\n key: \"loadResources\",\n value: function loadResources() {\n var _this3 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (this.language && this.language.toLowerCase() === 'cimode') return callback(); // avoid loading resources for cimode\n\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!this.language) {\n // at least load fallbacks in this case\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(this.language);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, callback);\n } else {\n callback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve(); // not rejecting on err (as err is only a loading translation failed warning)\n\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n _this4.translator.changeLanguage(l);\n\n if (l) {\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1]; // we're in cimode so this shall pass\n\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n }; // loaded -> SUCCESS\n\n\n if (this.hasResourceBundle(lng, ns)) return true; // were not loading at all -> SEMI SUCCESS\n\n if (!this.services.backendConnector.backend) return true; // failed loading ns - but at least fallback is not pending -> SEMI SUCCESS\n\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n }); // Exit early if all given languages are already preloaded\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['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'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n /* eslint class-methods-use-this: 0 */\n\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options; // sync options\n\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","// TODO: torn, can either bake this here; or have to create a whole new button type\n// Only ways that you can pass in a custom React component for render :l\nimport type { Button } from '@ohif/core/types';\nimport { EVENTS } from '@cornerstonejs/core';\nimport { ViewportGridService } from '@ohif/core';\n\nimport { defaults } from '@ohif/core';\nimport i18n from 'i18next';\n\nconst { windowLevelPresets } = defaults;\n\n/**\n *\n * @param {*} preset - preset number (from above import)\n * @param {*} title\n * @param {*} subtitle\n */\nfunction _createWwwcPreset(preset, title, subtitle) {\n return {\n id: title,\n uiType: 'ohif.toolButton',\n props: {\n title,\n subtitle,\n commands: [\n {\n commandName: 'setWindowLevel',\n commandOptions: {\n ...windowLevelPresets[preset],\n },\n context: 'CORNERSTONE',\n },\n ],\n },\n };\n}\n\nexport const setToolActiveToolbar = {\n commandName: 'setToolActiveToolbar',\n commandOptions: {\n toolGroupIds: ['default', 'mpr', 'SRToolGroup'],\n },\n};\n\nconst toolbarButtons: Button[] = [\n {\n id: 'MeasurementTools',\n uiType: 'ohif.toolButtonList',\n props: {\n buttonSection: true,\n },\n },\n {\n id: 'MoreTools',\n uiType: 'ohif.toolButtonList',\n props: {\n buttonSection: true,\n },\n },\n {\n id: 'WindowLevelGroup',\n uiType: 'ohif.toolButtonList',\n props: {\n buttonSection: true,\n },\n },\n\n // tool defs\n {\n id: 'advancedRenderingControls',\n uiType: 'ohif.advancedRenderingControls',\n props: {\n evaluate: {\n name: 'evaluate.advancedRenderingControls',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'modalityLoadBadge',\n uiType: 'ohif.modalityLoadBadge',\n props: {\n icon: 'Status',\n label: i18n.t('Buttons:Status'),\n tooltip: i18n.t('Buttons:Status'),\n evaluate: {\n name: 'evaluate.modalityLoadBadge',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'navigationComponent',\n uiType: 'ohif.navigationComponent',\n props: {\n icon: 'Navigation',\n label: i18n.t('Buttons:Navigation'),\n tooltip: i18n.t('Buttons:Navigate between segments/measurements and manage their visibility'),\n evaluate: {\n name: 'evaluate.navigationComponent',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'trackingStatus',\n uiType: 'ohif.trackingStatus',\n props: {\n icon: 'TrackingStatus',\n label: i18n.t('Buttons:Tracking Status'),\n tooltip: i18n.t('Buttons:View and manage tracking status of measurements and annotations'),\n evaluate: {\n name: 'evaluate.trackingStatus',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'dataOverlayMenu',\n uiType: 'ohif.dataOverlayMenu',\n props: {\n icon: 'ViewportViews',\n label: i18n.t('Buttons:Data Overlay'),\n tooltip: i18n.t(\n 'Buttons:Configure data overlay options and manage foreground/background display sets'\n ),\n evaluate: 'evaluate.dataOverlayMenu',\n },\n },\n {\n id: 'orientationMenu',\n uiType: 'ohif.orientationMenu',\n props: {\n icon: 'OrientationSwitch',\n label: i18n.t('Buttons:Orientation'),\n tooltip: i18n.t(\n 'Buttons:Change viewport orientation between axial, sagittal, coronal and reformat planes'\n ),\n evaluate: {\n name: 'evaluate.orientationMenu',\n },\n },\n },\n {\n id: 'windowLevelMenu',\n uiType: 'ohif.windowLevelMenu',\n props: {\n icon: 'WindowLevel',\n label: i18n.t('Buttons:Window Level'),\n tooltip: i18n.t('Buttons:Adjust window/level presets and customize image contrast settings'),\n evaluate: 'evaluate.windowLevelMenu',\n },\n },\n {\n id: 'voiManualControlMenu',\n uiType: 'ohif.voiManualControlMenu',\n props: {\n icon: 'WindowLevelAdvanced',\n label: i18n.t('Buttons:Advanced Window Level'),\n tooltip: i18n.t('Buttons:Advanced window/level settings with manual controls and presets'),\n evaluate: 'evaluate.voiManualControlMenu',\n },\n },\n {\n id: 'thresholdMenu',\n uiType: 'ohif.thresholdMenu',\n props: {\n icon: 'Threshold',\n label: i18n.t('Buttons:Threshold'),\n tooltip: i18n.t('Buttons:Image threshold settings'),\n evaluate: {\n name: 'evaluate.thresholdMenu',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'opacityMenu',\n uiType: 'ohif.opacityMenu',\n props: {\n icon: 'Opacity',\n label: i18n.t('Buttons:Opacity'),\n tooltip: i18n.t('Buttons:Image opacity settings'),\n evaluate: {\n name: 'evaluate.opacityMenu',\n hideWhenDisabled: true,\n },\n },\n },\n {\n id: 'Colorbar',\n uiType: 'ohif.colorbar',\n props: {\n type: 'tool',\n label: i18n.t('Buttons:Colorbar'),\n },\n },\n _createWwwcPreset(1, 'Soft tissue', '400 / 40'),\n _createWwwcPreset(2, 'Lung', '1500 / -600'),\n _createWwwcPreset(3, 'Liver', '150 / 90'),\n _createWwwcPreset(4, 'Bone', '2500 / 480'),\n _createWwwcPreset(5, 'Brain', '80 / 40'),\n {\n id: 'WindowLevel',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-window-level',\n label: i18n.t('Buttons:Window Level'),\n tooltip: i18n.t('Buttons:Window Level'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Length',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-length',\n label: i18n.t('Buttons:Length'),\n tooltip: i18n.t('Buttons:Length Tool'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Bidirectional',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-bidirectional',\n label: i18n.t('Buttons:Bidirectional'),\n tooltip: i18n.t('Buttons:Bidirectional Tool'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'ArrowAnnotate',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-annotate',\n label: i18n.t('Buttons:Annotation'),\n tooltip: i18n.t('Buttons:Arrow Annotate'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'EllipticalROI',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-ellipse',\n label: i18n.t('Buttons:Ellipse'),\n tooltip: i18n.t('Buttons:Ellipse ROI'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'CircleROI',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-circle',\n label: i18n.t('Buttons:Circle'),\n tooltip: i18n.t('Buttons:Circle Tool'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'PlanarFreehandROI',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-freehand-roi',\n label: i18n.t('Buttons:Freehand ROI'),\n tooltip: i18n.t('Buttons:Freehand ROI'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'SplineROI',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-spline-roi',\n label: i18n.t('Buttons:Spline ROI'),\n tooltip: i18n.t('Buttons:Spline ROI'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'LivewireContour',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-livewire',\n label: i18n.t('Buttons:Livewire tool'),\n tooltip: i18n.t('Buttons:Livewire tool'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Zoom',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-zoom',\n label: i18n.t('Buttons:Zoom'),\n tooltip: i18n.t('Buttons:Zoom'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Pan',\n uiType: 'ohif.toolButton',\n props: {\n type: 'tool',\n icon: 'tool-move',\n label: i18n.t('Buttons:Pan'),\n tooltip: i18n.t('Buttons:Pan'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'MPR',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-mpr',\n label: i18n.t('Buttons:MPR'),\n tooltip: i18n.t('Buttons:MPR'),\n commands: {\n commandName: 'toggleHangingProtocol',\n commandOptions: {\n protocolId: 'mpr',\n },\n },\n evaluate: 'evaluate.displaySetIsReconstructable',\n },\n },\n {\n id: 'TrackBallRotate',\n uiType: 'ohif.toolButton',\n props: {\n type: 'tool',\n icon: 'tool-3d-rotate',\n label: i18n.t('Buttons:3D Rotate'),\n tooltip: i18n.t('Buttons:3D Rotate'),\n commands: setToolActiveToolbar,\n },\n },\n {\n id: 'Capture',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-capture',\n label: i18n.t('Buttons:Capture'),\n tooltip: i18n.t('Buttons:Capture'),\n commands: 'showDownloadViewportModal',\n evaluate: [\n 'evaluate.action',\n {\n name: 'evaluate.viewport.supported',\n unsupportedViewportTypes: ['video', 'wholeSlide'],\n },\n ],\n },\n },\n {\n id: 'Layout',\n uiType: 'ohif.layoutSelector',\n props: {\n rows: 3,\n columns: 4,\n evaluate: 'evaluate.action',\n commands: 'setViewportGridLayout',\n },\n },\n {\n id: 'Crosshairs',\n uiType: 'ohif.toolButton',\n props: {\n type: 'tool',\n icon: 'tool-crosshair',\n label: i18n.t('Buttons:Crosshairs'),\n tooltip: i18n.t('Buttons:Crosshairs'),\n commands: {\n commandName: 'setToolActiveToolbar',\n commandOptions: {\n toolGroupIds: ['mpr'],\n },\n },\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n\n {\n id: 'Reset',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-reset',\n label: i18n.t('Buttons:Reset View'),\n tooltip: i18n.t('Buttons:Reset View'),\n commands: 'resetViewport',\n evaluate: 'evaluate.action',\n },\n },\n {\n id: 'rotate-right',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-rotate-right',\n label: i18n.t('Buttons:Rotate Right'),\n tooltip: i18n.t('Buttons:Rotate +90'),\n commands: 'rotateViewportCW',\n evaluate: 'evaluate.action',\n },\n },\n {\n id: 'flipHorizontal',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-flip-horizontal',\n label: i18n.t('Buttons:Flip Horizontal'),\n tooltip: i18n.t('Buttons:Flip Horizontally'),\n commands: 'flipViewportHorizontal',\n evaluate: 'evaluate.viewportProperties.toggle',\n },\n },\n {\n id: 'ImageSliceSync',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'link',\n label: i18n.t('Buttons:Image Slice Sync'),\n tooltip: i18n.t('Buttons:Enable position synchronization on stack viewports'),\n commands: {\n commandName: 'toggleSynchronizer',\n commandOptions: {\n type: 'imageSlice',\n },\n },\n listeners: {\n [EVENTS.VIEWPORT_NEW_IMAGE_SET]: {\n commandName: 'toggleImageSliceSync',\n commandOptions: { toggledState: true },\n },\n },\n evaluate: 'evaluate.cornerstone.synchronizer',\n },\n },\n {\n id: 'ReferenceLines',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-referenceLines',\n label: i18n.t('Buttons:Reference Lines'),\n tooltip: i18n.t('Buttons:Show Reference Lines'),\n commands: 'toggleEnabledDisabledToolbar',\n evaluate: 'evaluate.cornerstoneTool.toggle',\n },\n },\n {\n id: 'ImageOverlayViewer',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'toggle-dicom-overlay',\n label: i18n.t('Buttons:Image Overlay'),\n tooltip: i18n.t('Buttons:Toggle Image Overlay'),\n commands: 'toggleEnabledDisabledToolbar',\n evaluate: 'evaluate.cornerstoneTool.toggle',\n },\n },\n {\n id: 'StackScroll',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-stack-scroll',\n label: i18n.t('Buttons:Stack Scroll'),\n tooltip: i18n.t('Buttons:Stack Scroll'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'invert',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-invert',\n label: i18n.t('Buttons:Invert'),\n tooltip: i18n.t('Buttons:Invert Colors'),\n commands: 'invertViewport',\n evaluate: 'evaluate.viewportProperties.toggle',\n },\n },\n {\n id: 'Probe',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-probe',\n label: i18n.t('Buttons:Probe'),\n tooltip: i18n.t('Buttons:Probe'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Cine',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-cine',\n label: i18n.t('Buttons:Cine'),\n tooltip: i18n.t('Buttons:Cine'),\n commands: 'toggleCine',\n evaluate: 'evaluate.cine',\n },\n },\n {\n id: 'Angle',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-angle',\n label: i18n.t('Buttons:Angle'),\n tooltip: i18n.t('Buttons:Angle'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'CobbAngle',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-cobb-angle',\n label: i18n.t('Buttons:Cobb Angle'),\n tooltip: i18n.t('Buttons:Cobb Angle'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'Magnify',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-magnify',\n label: i18n.t('Buttons:Zoom-in'),\n tooltip: i18n.t('Buttons:Zoom-in'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'RectangleROI',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-rectangle',\n label: i18n.t('Buttons:Rectangle'),\n tooltip: i18n.t('Buttons:Rectangle'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'CalibrationLine',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'tool-calibration',\n label: i18n.t('Buttons:Calibration'),\n tooltip: i18n.t('Buttons:Calibration Line'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n {\n id: 'TagBrowser',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'dicom-tag-browser',\n label: i18n.t('Buttons:Dicom Tag Browser'),\n tooltip: i18n.t('Buttons:Dicom Tag Browser'),\n commands: 'openDICOMTagViewer',\n },\n },\n {\n id: 'AdvancedMagnify',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-loupe',\n label: i18n.t('Buttons:Magnify Probe'),\n tooltip: i18n.t('Buttons:Magnify Probe'),\n commands: 'toggleActiveDisabledToolbar',\n evaluate: 'evaluate.cornerstoneTool.toggle.ifStrictlyDisabled',\n },\n },\n {\n id: 'UltrasoundDirectionalTool',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-ultrasound-bidirectional',\n label: i18n.t('Buttons:Ultrasound Directional'),\n tooltip: i18n.t('Buttons:Ultrasound Directional'),\n commands: setToolActiveToolbar,\n evaluate: [\n 'evaluate.cornerstoneTool',\n {\n name: 'evaluate.modality.supported',\n supportedModalities: ['US'],\n },\n ],\n },\n },\n {\n id: 'WindowLevelRegion',\n uiType: 'ohif.toolButton',\n props: {\n icon: 'icon-tool-window-region',\n label: i18n.t('Buttons:Window Level Region'),\n tooltip: i18n.t('Buttons:Window Level Region'),\n commands: setToolActiveToolbar,\n evaluate: 'evaluate.cornerstoneTool',\n },\n },\n];\n\nexport default toolbarButtons;\n","import packageJson from '../package.json';\n\nconst id = packageJson.name;\n\nexport { id };\n","const colours = {\n 'viewport-0': 'rgb(200, 0, 0)',\n 'viewport-1': 'rgb(200, 200, 0)',\n 'viewport-2': 'rgb(0, 200, 0)',\n};\n\nconst colorsByOrientation = {\n axial: 'rgb(200, 0, 0)',\n sagittal: 'rgb(200, 200, 0)',\n coronal: 'rgb(0, 200, 0)',\n};\n\nfunction initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, toolGroupId) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.StackScroll,\n bindings: [{ mouseButton: Enums.MouseBindings.Wheel }, { numTouchPoints: 3 }],\n },\n ],\n passive: [\n { toolName: toolNames.Length },\n {\n toolName: toolNames.ArrowAnnotate,\n configuration: {\n getTextCallback: (callback, eventDetails) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n eventDetails,\n }),\n\n changeTextCallback: (data, eventDetails, callback) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n data,\n eventDetails,\n }),\n },\n },\n { toolName: toolNames.Bidirectional },\n { toolName: toolNames.DragProbe },\n { toolName: toolNames.Probe },\n { toolName: toolNames.EllipticalROI },\n { toolName: toolNames.CircleROI },\n { toolName: toolNames.RectangleROI },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Angle },\n { toolName: toolNames.CobbAngle },\n { toolName: toolNames.Magnify },\n { toolName: toolNames.WindowLevelRegion },\n { toolName: toolNames.UltrasoundDirectional },\n { toolName: toolNames.PlanarFreehandROI },\n { toolName: toolNames.SplineROI },\n { toolName: toolNames.LivewireContour },\n ],\n // enabled\n enabled: [{ toolName: toolNames.ImageOverlayViewer }],\n // disabled\n disabled: [{ toolName: toolNames.ReferenceLines }, { toolName: toolNames.AdvancedMagnify }],\n };\n\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);\n}\n\nfunction initSRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const SRUtilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone-dicom-sr.utilityModule.tools'\n );\n\n const CS3DUtilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames: SRToolNames } = SRUtilityModule.exports;\n const { toolNames, Enums } = CS3DUtilityModule.exports;\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Primary,\n },\n ],\n },\n {\n toolName: toolNames.Pan,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Auxiliary,\n },\n ],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Secondary,\n },\n { numTouchPoints: 2 },\n ],\n },\n {\n toolName: toolNames.StackScroll,\n bindings: [{ mouseButton: Enums.MouseBindings.Wheel }, { numTouchPoints: 3 }],\n },\n ],\n passive: [\n { toolName: SRToolNames.SRLength },\n { toolName: SRToolNames.SRArrowAnnotate },\n { toolName: SRToolNames.SRBidirectional },\n { toolName: SRToolNames.SREllipticalROI },\n { toolName: SRToolNames.SRCircleROI },\n { toolName: toolNames.WindowLevelRegion },\n ],\n enabled: [\n {\n toolName: SRToolNames.DICOMSRDisplay,\n bindings: [],\n },\n ],\n // disabled\n };\n\n const toolGroupId = 'SRToolGroup';\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools);\n}\n\nfunction initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const serviceManager = extensionManager._servicesManager;\n const { cornerstoneViewportService } = serviceManager.services;\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.StackScroll,\n bindings: [{ mouseButton: Enums.MouseBindings.Wheel }, { numTouchPoints: 3 }],\n },\n ],\n passive: [\n { toolName: toolNames.Length },\n {\n toolName: toolNames.ArrowAnnotate,\n configuration: {\n getTextCallback: (callback, eventDetails) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n eventDetails,\n }),\n\n changeTextCallback: (data, eventDetails, callback) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n data,\n eventDetails,\n }),\n },\n },\n { toolName: toolNames.Bidirectional },\n { toolName: toolNames.DragProbe },\n { toolName: toolNames.Probe },\n { toolName: toolNames.EllipticalROI },\n { toolName: toolNames.CircleROI },\n { toolName: toolNames.RectangleROI },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Angle },\n { toolName: toolNames.WindowLevelRegion },\n { toolName: toolNames.PlanarFreehandROI },\n { toolName: toolNames.SplineROI },\n { toolName: toolNames.LivewireContour },\n ],\n disabled: [\n {\n toolName: toolNames.Crosshairs,\n configuration: {\n viewportIndicators: false,\n autoPan: {\n enabled: false,\n panSize: 10,\n },\n getReferenceLineColor: viewportId => {\n const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId);\n const viewportOptions = viewportInfo?.viewportOptions;\n if (viewportOptions) {\n return (\n colours[viewportOptions.id] ||\n colorsByOrientation[viewportOptions.orientation] ||\n '#0c0'\n );\n } else {\n console.warn('missing viewport?', viewportId);\n return '#0c0';\n }\n },\n },\n },\n { toolName: toolNames.ReferenceLines },\n ],\n\n // enabled\n // disabled\n };\n\n toolGroupService.createToolGroupAndAddTools('mpr', tools);\n}\n\nfunction initVolume3DToolGroup(extensionManager, toolGroupService) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.TrackballRotateTool,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }, { numTouchPoints: 2 }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }, { numTouchPoints: 3 }],\n },\n ],\n };\n\n toolGroupService.createToolGroupAndAddTools('volume3d', tools);\n}\n\nfunction initToolGroups(extensionManager, toolGroupService, commandsManager) {\n initDefaultToolGroup(extensionManager, toolGroupService, commandsManager, 'default');\n initSRToolGroup(extensionManager, toolGroupService, commandsManager);\n initMPRToolGroup(extensionManager, toolGroupService, commandsManager);\n initVolume3DToolGroup(extensionManager, toolGroupService);\n}\n\nexport default initToolGroups;\n","import toolbarButtons from './toolbarButtons';\nimport { id } from './id';\nimport initToolGroups from './initToolGroups';\nimport i18n from 'i18next';\n\n// Allow this mode by excluding non-imaging modalities such as SR, SEG\n// Also, SM is not a simple imaging modalities, so exclude it.\nconst NON_IMAGE_MODALITIES = ['ECG', 'SR', 'SEG', 'RTSTRUCT'];\n\nconst ohif = {\n layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',\n sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',\n wsiSopClassHandler:\n '@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler',\n thumbnailList: '@ohif/extension-default.panelModule.seriesList',\n};\n\nconst testExtension = {\n measurements: '@ohif/extension-test.panelModule.panelMeasurementSeries',\n};\n\nconst tracked = {\n measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',\n thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',\n viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',\n};\n\nconst dicomsr = {\n sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',\n sopClassHandler3D: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr-3d',\n viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr',\n};\n\nconst dicomvideo = {\n sopClassHandler: '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',\n viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',\n};\n\nconst dicompdf = {\n sopClassHandler: '@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf',\n viewport: '@ohif/extension-dicom-pdf.viewportModule.dicom-pdf',\n};\n\nconst dicomSeg = {\n sopClassHandler: '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',\n viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',\n};\n\nconst cornerstone = {\n panel: '@ohif/extension-cornerstone.panelModule.panelSegmentation',\n measurements: '@ohif/extension-cornerstone.panelModule.panelMeasurement',\n};\n\nconst dicomPmap = {\n sopClassHandler: '@ohif/extension-cornerstone-dicom-pmap.sopClassHandlerModule.dicom-pmap',\n viewport: '@ohif/extension-cornerstone-dicom-pmap.viewportModule.dicom-pmap',\n};\n\nconst extensionDependencies = {\n '@ohif/extension-default': '^3.0.0',\n '@ohif/extension-cornerstone': '^3.0.0',\n '@ohif/extension-measurement-tracking': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-sr': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-seg': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-pmap': '^3.0.0',\n '@ohif/extension-dicom-pdf': '^3.0.1',\n '@ohif/extension-dicom-video': '^3.0.1',\n '@ohif/extension-test': '^0.0.1',\n};\n\nfunction modeFactory() {\n return {\n id,\n routeName: 'medsight',\n displayName: i18n.t('Modes:Basic Test Mode'),\n /**\n * Lifecycle hooks\n */\n onModeEnter: ({ servicesManager, extensionManager, commandsManager }: withAppTypes) => {\n const { measurementService, toolbarService, toolGroupService, customizationService } =\n servicesManager.services;\n\n measurementService.clearMeasurements();\n\n // Init Default and SR ToolGroups\n initToolGroups(extensionManager, toolGroupService, commandsManager);\n\n // init customizations\n customizationService.setCustomizations([\n '@ohif/extension-test.customizationModule.custom-context-menu',\n ]);\n\n toolbarService.register(toolbarButtons);\n console.debug('toolbarButtons', toolbarButtons);\n toolbarService.updateSection(toolbarService.sections.primary, [\n 'Zoom',\n 'Pan',\n 'WindowLevelGroup',\n 'MPR',\n 'MeasurementTools',\n 'Layout',\n 'Probe',\n 'rotate-right',\n 'Crosshairs',\n 'ArrowAnnotate',\n '3D only',\n 'MoreTools',\n 'Capture'\n ]);\n\n toolbarService.updateSection('WindowLevelGroup', [\n 'WindowLevel',\n 'Soft tissue',\n 'Lung',\n 'Liver',\n 'Bone',\n 'Brain',\n ]);\n\n toolbarService.updateSection(toolbarService.sections.viewportActionMenu.topLeft, [\n 'orientationMenu',\n 'dataOverlayMenu',\n ]);\n\n toolbarService.updateSection(toolbarService.sections.viewportActionMenu.bottomMiddle, [\n 'AdvancedRenderingControls',\n ]);\n\n toolbarService.updateSection('AdvancedRenderingControls', [\n 'voiManualControlMenu',\n 'Colorbar',\n 'opacityMenu',\n 'thresholdMenu',\n ]);\n\n toolbarService.updateSection(toolbarService.sections.viewportActionMenu.topRight, [\n 'modalityLoadBadge',\n 'trackingStatus',\n 'navigationComponent',\n ]);\n\n toolbarService.updateSection(toolbarService.sections.viewportActionMenu.bottomLeft, [\n 'windowLevelMenu',\n ]);\n\n toolbarService.updateSection('WindowLevelGroup', [\n 'WindowLevel',\n 'Soft tissue',\n 'Lung',\n 'Liver',\n 'Bone',\n 'Brain',\n ]);\n\n toolbarService.updateSection('MeasurementTools', [\n 'Length',\n 'Bidirectional',\n\n 'EllipticalROI',\n 'CircleROI',\n 'PlanarFreehandROI',\n 'SplineROI',\n 'LivewireContour',\n ]);\n\n toolbarService.updateSection('MoreTools', [\n 'Reset',\n 'rotate-right',\n 'flipHorizontal',\n 'ImageSliceSync',\n 'ReferenceLines',\n 'ImageOverlayViewer',\n 'StackScroll',\n 'invert',\n 'Cine',\n 'Angle',\n 'CobbAngle',\n 'Magnify',\n 'RectangleROI',\n 'CalibrationLine',\n 'TagBrowser',\n 'AdvancedMagnify',\n 'UltrasoundDirectionalTool',\n 'WindowLevelRegion',\n ]);\n\n customizationService.setCustomizations(\n {\n 'ohif.hotkeyBindings': {\n $push: [\n {\n commandName: 'undo',\n label: 'Undo',\n keys: ['ctrl+z'],\n isEditable: true,\n },\n ],\n },\n },\n 'mode'\n );\n },\n onModeExit: ({ servicesManager }: withAppTypes) => {\n const {\n toolGroupService,\n syncGroupService,\n segmentationService,\n cornerstoneViewportService,\n uiDialogService,\n uiModalService,\n } = servicesManager.services;\n\n uiDialogService.hideAll();\n uiModalService.hide();\n toolGroupService.destroy();\n syncGroupService.destroy();\n segmentationService.destroy();\n cornerstoneViewportService.destroy();\n },\n validationTags: {\n study: [],\n series: [],\n },\n\n isValidMode: function ({ modalities }) {\n const modalities_list = modalities.split('\\\\');\n\n // Exclude non-image modalities\n return {\n valid: !!modalities_list.filter(modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1)\n .length,\n description:\n 'The mode does not support studies that ONLY include the following modalities: SM, ECG, SR, SEG',\n };\n },\n routes: [\n {\n path: 'basic-test',\n layoutTemplate: () => {\n return {\n id: ohif.layout,\n props: {\n leftPanels: [tracked.thumbnailList],\n leftPanelResizable: true,\n rightPanels: [cornerstone.panel, tracked.measurements, testExtension.measurements],\n rightPanelResizable: true,\n viewports: [\n {\n namespace: tracked.viewport,\n displaySetsToDisplay: [\n ohif.sopClassHandler,\n dicomvideo.sopClassHandler,\n ohif.wsiSopClassHandler,\n ],\n },\n {\n namespace: dicomsr.viewport,\n displaySetsToDisplay: [dicomsr.sopClassHandler, dicomsr.sopClassHandler3D],\n },\n {\n namespace: dicomvideo.viewport,\n displaySetsToDisplay: [dicomvideo.sopClassHandler],\n },\n {\n namespace: dicompdf.viewport,\n displaySetsToDisplay: [dicompdf.sopClassHandler],\n },\n {\n namespace: dicomSeg.viewport,\n displaySetsToDisplay: [dicomSeg.sopClassHandler],\n },\n {\n namespace: dicomPmap.viewport,\n displaySetsToDisplay: [dicomPmap.sopClassHandler],\n },\n ],\n },\n };\n },\n },\n ],\n extensions: extensionDependencies,\n hangingProtocol: 'default',\n sopClassHandlers: [\n dicomvideo.sopClassHandler,\n dicomSeg.sopClassHandler,\n ohif.wsiSopClassHandler,\n ohif.sopClassHandler,\n dicompdf.sopClassHandler,\n dicomsr.sopClassHandler,\n dicomsr.sopClassHandler3D,\n ],\n hotkeys: {\n name: 'basic-test-hotkeys',\n },\n };\n}\n\nconst mode = {\n id,\n modeFactory,\n extensionDependencies,\n};\n\nexport default mode;\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__310__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","Events","_typeof","iterator","constructor","toPropertyKey","t","i","e","toPrimitive","TypeError","String","_defineProperty","configurable","writable","_objectSpread","arguments","length","keys","getOwnPropertySymbols","push","apply","filter","getOwnPropertyDescriptor","forEach","_classCallCheck","a","n","_defineProperties","_createClass","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_setPrototypeOf","_inherits","create","_arrayLikeToArray","Array","_unsupportedIterableToArray","toString","slice","name","from","test","_slicedToArray","isArray","l","u","f","next","done","consoleLogger","type","log","args","output","warn","error","_console","console","baseLogger","Logger","concreteLogger","options","init","prefix","logger","debug","bool","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","concat","moduleName","EventEmitter","observers","events","listener","_this","split","event","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","object","getLastOfPath","path","Empty","cleanKey","indexOf","replace","canNotTraverseDeeper","stack","shift","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","data","defaultData","deepExtend","target","source","overwrite","regexEscape","str","_entityMap","s","ResourceStore","_EventEmitter","ns","defaultNS","keySeparator","index","splice","lng","silent","addNamespaces","emit","resources","m","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","handle","translator","processor","process","Translator","services","language","interpolation","resolved","nsSeparator","namespaces","parts","join","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","copy$$1","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","isValidLookup","defaultValue","count","suffix","pluralResolver","getSuffix","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","missingKeyHandler","backendConnector","saveMissing","needsPluralHandling","saveMissingPlurals","getPluralFormsOfKey","p","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","usedLng","usedNS","skipInterpolation","interpolator","defaultVariables","interpolate","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsContextHandling","context","codes","utils","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","capitalize","string","charAt","toUpperCase","LanguageUtil","whitelist","formatLanguageCode","specialCases","lowerCaseLng","map","part","cleanCode","load","nonExplicitWhitelist","getLanguagePartFromCode","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","c","isWhitelisted","fc","sets","nr","_rulesPluralsTypes","Number","PluralResolver","rules","set","numbers","plurals","rule","getRule","ret","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","format","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","maxReplaces","resetRegExp","regexpStr","regexp","RegExp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","nestingRegexp","match","replaces","regexSafe","val","handleFormat","trim","missingInterpolationHandler","exec","temp","lastIndex","_temp","clonedOptions","handleHasOptions","inheritedOptions","optionsString","JSON","Connector","backend","store","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","err","_name$split2","addResourceBundle","q","_getLastOfPath2","arr","what","remove","fcName","tried","wait","setTimeout","read","queueLoad","loadOne","prepareLoading","_this5","_name$split4","fallbackValue","isUpdate","transformOptions","noop","I18n","modules","external","isInitialized","isClone","initImmediate","createClassOnDemand","ClassOrObject","preload","pluralSeparator","partialBundledLanguages","tDescription","_format","lu","on","languageDetector","detection","_this2$store","deferred","changeLanguage","append","setLng","cacheUserLanguage","loadResources","async","detect","fixedT","opts","rest","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","_this7","preloaded","newLngs","_this8","mergedOptions","clone","windowLevelPresets","defaults","_createWwwcPreset","preset","title","subtitle","id","uiType","props","commands","commandName","commandOptions","setToolActiveToolbar","toolGroupIds","buttonSection","evaluate","hideWhenDisabled","icon","label","i18n","tooltip","protocolId","unsupportedViewportTypes","rows","columns","listeners","EVENTS","VIEWPORT_NEW_IMAGE_SET","toggledState","supportedModalities","packageJson","colours","colorsByOrientation","axial","sagittal","coronal","NON_IMAGE_MODALITIES","ohif","dicomsr","dicomvideo","dicompdf","dicomSeg","extensionDependencies","modeFactory","routeName","displayName","onModeEnter","_ref","servicesManager","extensionManager","commandsManager","_servicesManager$serv","measurementService","toolbarService","toolGroupService","customizationService","clearMeasurements","_utilityModule$export","getModuleEntry","toolNames","Enums","tools","active","toolName","WindowLevel","bindings","mouseButton","MouseBindings","Primary","Pan","Auxiliary","Zoom","Secondary","numTouchPoints","StackScroll","Wheel","passive","Length","ArrowAnnotate","configuration","getTextCallback","eventDetails","runCommand","changeTextCallback","Bidirectional","DragProbe","Probe","EllipticalROI","CircleROI","RectangleROI","Angle","CobbAngle","Magnify","WindowLevelRegion","UltrasoundDirectional","PlanarFreehandROI","SplineROI","LivewireContour","enabled","ImageOverlayViewer","disabled","ReferenceLines","AdvancedMagnify","createToolGroupAndAddTools","initDefaultToolGroup","SRUtilityModule","CS3DUtilityModule","SRToolNames","_CS3DUtilityModule$ex","SRLength","SRArrowAnnotate","SRBidirectional","SREllipticalROI","SRCircleROI","DICOMSRDisplay","initSRToolGroup","utilityModule","cornerstoneViewportService","_servicesManager","_utilityModule$export2","Crosshairs","viewportIndicators","autoPan","panSize","getReferenceLineColor","viewportId","viewportInfo","getViewportInfo","viewportOptions","orientation","initMPRToolGroup","_utilityModule$export3","TrackballRotateTool","initVolume3DToolGroup","initToolGroups","setCustomizations","register","toolbarButtons","updateSection","sections","primary","viewportActionMenu","topLeft","bottomMiddle","topRight","bottomLeft","$push","isEditable","onModeExit","_ref2","_servicesManager$serv2","syncGroupService","segmentationService","uiDialogService","uiModalService","hideAll","hide","destroy","validationTags","study","series","isValidMode","_ref3","valid","modalities","modality","description","routes","layoutTemplate","leftPanels","leftPanelResizable","rightPanels","rightPanelResizable","viewports","displaySetsToDisplay","extensions","hangingProtocol","sopClassHandlers","hotkeys"],"sourceRoot":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ohif-medsight",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Medsight",
|
|
5
|
+
"author": "Akshay Muglikar",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"main": "dist/umd/ohif-medsight/index.umd.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/**",
|
|
10
|
+
"public/**",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"repository": "OHIF/Viewers",
|
|
14
|
+
"keywords": [
|
|
15
|
+
"ohif-mode"
|
|
16
|
+
],
|
|
17
|
+
"module": "src/index.ts",
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=14",
|
|
20
|
+
"npm": ">=6",
|
|
21
|
+
"yarn": ">=1.16.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo",
|
|
25
|
+
"dev:cornerstone": "yarn run dev",
|
|
26
|
+
"build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js",
|
|
27
|
+
"build:package": "yarn run build",
|
|
28
|
+
"start": "yarn run dev",
|
|
29
|
+
"test:unit": "jest --watchAll",
|
|
30
|
+
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"@ohif/core": "^3.12.0-beta.129",
|
|
34
|
+
"@ohif/extension-cornerstone": "3.12.0-beta.129",
|
|
35
|
+
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.129",
|
|
36
|
+
"@ohif/extension-default": "3.12.0-beta.129",
|
|
37
|
+
"@ohif/extension-dicom-pdf": "3.12.0-beta.129",
|
|
38
|
+
"@ohif/extension-dicom-video": "3.12.0-beta.129",
|
|
39
|
+
"@ohif/extension-measurement-tracking": "3.12.0-beta.129",
|
|
40
|
+
"@ohif/extension-test": "3.12.0-beta.129"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@babel/runtime": "^7.20.13",
|
|
44
|
+
"i18next": "17.3.1"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@babel/core": "7.28.0",
|
|
48
|
+
"@babel/plugin-transform-class-properties": "^7.27.1",
|
|
49
|
+
"@babel/plugin-transform-object-rest-spread": "^7.28.0",
|
|
50
|
+
"@babel/plugin-transform-private-methods": "^7.27.1",
|
|
51
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
52
|
+
"@babel/plugin-transform-arrow-functions": "^7.16.7",
|
|
53
|
+
"@babel/plugin-transform-regenerator": "^7.16.7",
|
|
54
|
+
"@babel/plugin-transform-runtime": "7.28.0",
|
|
55
|
+
"@babel/plugin-transform-typescript": "^7.28.0",
|
|
56
|
+
"@babel/preset-env": "7.28.0",
|
|
57
|
+
"@babel/preset-react": "^7.27.1",
|
|
58
|
+
"@babel/preset-typescript": "^7.27.1",
|
|
59
|
+
"@babel/eslint-parser": "7.28.0",
|
|
60
|
+
"babel-loader": "^8.0.0-beta.4",
|
|
61
|
+
"@svgr/webpack": "^8.1.0",
|
|
62
|
+
"clean-webpack-plugin": "^4.0.0",
|
|
63
|
+
"copy-webpack-plugin": "^10.2.0",
|
|
64
|
+
"cross-env": "^7.0.3",
|
|
65
|
+
"dotenv": "^14.1.0",
|
|
66
|
+
"eslint": "^8.39.0",
|
|
67
|
+
"eslint-loader": "^2.0.0",
|
|
68
|
+
"webpack": "5.89.0",
|
|
69
|
+
"webpack-merge": "^5.7.3",
|
|
70
|
+
"webpack-cli": "^5.0.2",
|
|
71
|
+
"@ohif/core": "3.12.0-beta.129",
|
|
72
|
+
"@ohif/extension-cornerstone": "3.12.0-beta.129",
|
|
73
|
+
"@ohif/extension-cornerstone-dicom-sr": "3.12.0-beta.129",
|
|
74
|
+
"@ohif/extension-default": "3.12.0-beta.129",
|
|
75
|
+
"@ohif/extension-dicom-pdf": "3.12.0-beta.129",
|
|
76
|
+
"@ohif/extension-dicom-video": "3.12.0-beta.129",
|
|
77
|
+
"@ohif/extension-measurement-tracking": "3.12.0-beta.129",
|
|
78
|
+
"@ohif/extension-test": "3.12.0-beta.129"
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
}
|