@ohif/app 3.12.0-beta.100 → 3.12.0-beta.103
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/dist/{1403.bundle.d239b27c143d2d1804a6.js → 1403.bundle.b9b88d04f31485c9d759.js} +2 -2
- package/dist/{147.bundle.205350dc3d21478277b1.js → 147.bundle.ee7de13189cf1963aea9.js} +6 -15
- package/dist/{1608.bundle.f855c4bdb7f00eb66fca.js → 1608.bundle.a25c80a3971ed6361b51.js} +2 -2
- package/dist/{1730.bundle.22a99760b94c163f0fb7.js → 1730.bundle.895357681a4c3cb1d6f0.js} +3 -3
- package/dist/{1903.bundle.9ff3c3f706656667162b.js → 1903.bundle.7e1092c3485a6ff1175b.js} +110 -50
- package/dist/{1933.bundle.569480948b6079c2fa32.js → 1933.bundle.67266a4adde01f0a6fb0.js} +7 -3
- package/dist/{2018.bundle.b7ae7a5f144dbb971f24.js → 2018.bundle.99a8e123d3c0e60f2ba0.js} +47 -47
- package/dist/{213.bundle.cf9098fbe63d5a755829.js → 213.bundle.6349443247974d00c7fe.js} +2 -2
- package/dist/{2424.bundle.5bd224c13a61030eb18b.js → 2424.bundle.88e238696391622312fe.js} +2 -2
- package/dist/{2701.bundle.aca0d4f24a6f2094c3c3.js → 2701.bundle.e01a06411f68459ac955.js} +2 -2
- package/dist/{3461.bundle.89466434f00d3743c516.js → 3461.bundle.e476dab7173918a3eaeb.js} +3 -3
- package/dist/{4202.bundle.790706560c6edb303476.js → 4202.bundle.fa6f6adfd3d08a1cdcd7.js} +1 -1
- package/dist/{4775.bundle.4eb5ce7ba3586c94d2a1.js → 4775.bundle.2d9dbc95a66d5669e163.js} +22 -16
- package/dist/{4819.bundle.eb31c1e4d81de071f3a4.js → 4819.bundle.ad870417997d90aa4d4a.js} +4 -4
- package/dist/{5028.bundle.35ec943cbe3fa9393fe8.js → 5028.bundle.4ac8bb2bff5e2f632820.js} +2 -2
- package/dist/{5485.bundle.12b3e3738745943ba166.js → 5485.bundle.73087c299df86318f29d.js} +2 -2
- package/dist/{5802.bundle.28ab859d9b48a5b2c31c.js → 5802.bundle.aef18b250a1927d84108.js} +6 -12
- package/dist/{7639.bundle.c0b2beea06d6a185f7d0.js → 7639.bundle.dd129aac3fbe85c836ff.js} +15 -15
- package/dist/{8305.bundle.8d594e60bd2732be72dc.js → 8305.bundle.ec7f3a51fb76cb7691be.js} +43 -25
- package/dist/{8558.bundle.0fa5a7eb7f0d181f655e.js → 8558.bundle.06e713101d46fccdb5e2.js} +2 -2
- package/dist/{8583.bundle.e63824d304b3f4cdda34.js → 8583.bundle.9be5bf09bba240ce9a73.js} +24 -19
- package/dist/{9195.bundle.e6597407d8dbd3e3f8fe.js → 9195.bundle.7dbbc14eaa1892fa3063.js} +125 -66
- package/dist/{9845.bundle.31aec3fe7a5cdc247f4e.js → 9845.bundle.155759f5e8d8070ee16f.js} +14 -6
- package/dist/{9862.bundle.3ca0ad5f54db87ccf91e.js → 9862.bundle.bb6b5cab9e8eda1cc675.js} +1 -1
- package/dist/{9927.bundle.d1a5055b026d298658c3.js → 9927.bundle.945fc33dd18edb5532c4.js} +16 -16
- package/dist/{app.bundle.cd4cdfa595de54b44206.js → app.bundle.724ba77a484c4d74d787.js} +866 -128
- package/dist/app.bundle.css +1 -1
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +20 -20
- /package/dist/{1459.bundle.24d4976c6a0b6d35458d.js → 1459.bundle.56217e49fa0ed84cfb36.js} +0 -0
- /package/dist/{5457.bundle.a8f19fcecb2f824151ba.js → 5457.bundle.907e578afa5fdff7a99d.js} +0 -0
- /package/dist/{6027.bundle.96b99802305416998206.js → 6027.bundle.2b814a3df06ef8e09fd5.js} +0 -0
- /package/dist/{6163.bundle.2ed1359dc59e0d92b179.js → 6163.bundle.f35c52d3560b9c9e9094.js} +0 -0
- /package/dist/{85.bundle.2b8f73c3514e787d6cc6.js → 85.bundle.55b83db65800dece78a3.js} +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/* harmony export */ A: () => (/* binding */ MoreDropdownMenu)
|
|
9
9
|
/* harmony export */ });
|
|
10
10
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
11
|
-
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
11
|
+
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12517);
|
|
12
12
|
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42356);
|
|
13
13
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
14
|
|
|
@@ -123,8 +123,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
123
123
|
|
|
124
124
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
125
125
|
var react = __webpack_require__(86326);
|
|
126
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
127
|
-
var src = __webpack_require__(
|
|
126
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3075 modules
|
|
127
|
+
var src = __webpack_require__(12517);
|
|
128
128
|
// EXTERNAL MODULE: ../../core/src/index.ts + 69 modules
|
|
129
129
|
var core_src = __webpack_require__(42356);
|
|
130
130
|
// EXTERNAL MODULE: ../../../node_modules/react-router-dom/dist/index.js
|
|
@@ -622,7 +622,7 @@ function _findTabAndStudyOfDisplaySet(displaySetInstanceUID, tabs, currentTabNam
|
|
|
622
622
|
/* harmony export */ T: () => (/* binding */ PanelStudyBrowserHeader)
|
|
623
623
|
/* harmony export */ });
|
|
624
624
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
625
|
-
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
625
|
+
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12517);
|
|
626
626
|
|
|
627
627
|
|
|
628
628
|
|
|
@@ -3701,8 +3701,8 @@ var react = __webpack_require__(86326);
|
|
|
3701
3701
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
3702
3702
|
var prop_types = __webpack_require__(97598);
|
|
3703
3703
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
3704
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
3705
|
-
var ui_next_src = __webpack_require__(
|
|
3704
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3075 modules
|
|
3705
|
+
var ui_next_src = __webpack_require__(12517);
|
|
3706
3706
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
3707
3707
|
var state = __webpack_require__(45981);
|
|
3708
3708
|
// EXTERNAL MODULE: ../../../node_modules/react-router-dom/dist/index.js
|
|
@@ -4775,8 +4775,8 @@ function getPanelModule({
|
|
|
4775
4775
|
}];
|
|
4776
4776
|
}
|
|
4777
4777
|
/* harmony default export */ const src_getPanelModule = (getPanelModule);
|
|
4778
|
-
// EXTERNAL MODULE: ../../i18n/src/index.js +
|
|
4779
|
-
var i18n_src = __webpack_require__(
|
|
4778
|
+
// EXTERNAL MODULE: ../../i18n/src/index.js + 286 modules
|
|
4779
|
+
var i18n_src = __webpack_require__(89010);
|
|
4780
4780
|
;// ../../../extensions/default/package.json
|
|
4781
4781
|
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-default"}');
|
|
4782
4782
|
;// ../../../extensions/default/src/id.js
|
|
@@ -8777,6 +8777,7 @@ const hpMN8 = {
|
|
|
8777
8777
|
};
|
|
8778
8778
|
/* harmony default export */ const hpMNGrid = ((/* unused pure expression or super */ null && (hpMN)));
|
|
8779
8779
|
;// ../../../extensions/default/src/hangingprotocols/hpCompare.ts
|
|
8780
|
+
|
|
8780
8781
|
const defaultDisplaySetSelector = {
|
|
8781
8782
|
studyMatchingRules: [{
|
|
8782
8783
|
// The priorInstance is a study counter that indicates what position this study is in
|
|
@@ -8879,8 +8880,8 @@ const priorViewport1 = {
|
|
|
8879
8880
|
*/
|
|
8880
8881
|
const hpMNCompare = {
|
|
8881
8882
|
id: '@ohif/hpCompare',
|
|
8882
|
-
description: 'Compare two studies in various layouts',
|
|
8883
|
-
name: 'Compare Two Studies',
|
|
8883
|
+
description: i18next/* default */.A.t('Hps:Compare two studies in various layouts'),
|
|
8884
|
+
name: i18next/* default */.A.t('Hps:Compare Two Studies'),
|
|
8884
8885
|
numberOfPriorsReferenced: 1,
|
|
8885
8886
|
protocolMatchingRules: [{
|
|
8886
8887
|
id: 'Two Studies',
|
|
@@ -9123,6 +9124,7 @@ const LMLOPrior = {
|
|
|
9123
9124
|
|
|
9124
9125
|
;// ../../../extensions/default/src/hangingprotocols/hpMammo.ts
|
|
9125
9126
|
|
|
9127
|
+
|
|
9126
9128
|
const rightDisplayArea = {
|
|
9127
9129
|
storeAsInitialCamera: true,
|
|
9128
9130
|
imageArea: [0.8, 0.8],
|
|
@@ -9142,7 +9144,7 @@ const leftDisplayArea = {
|
|
|
9142
9144
|
const hpMammography = {
|
|
9143
9145
|
id: '@ohif/hpMammo',
|
|
9144
9146
|
hasUpdatedPriorsInformation: false,
|
|
9145
|
-
name: 'Mammography Breast Screening',
|
|
9147
|
+
name: i18next/* default */.A.t('Hps:Mammography Breast Screening'),
|
|
9146
9148
|
protocolMatchingRules: [{
|
|
9147
9149
|
id: 'Mammography',
|
|
9148
9150
|
weight: 150,
|
|
@@ -9880,7 +9882,6 @@ const {
|
|
|
9880
9882
|
|
|
9881
9883
|
|
|
9882
9884
|
|
|
9883
|
-
|
|
9884
9885
|
function ItemListComponent({
|
|
9885
9886
|
itemLabel,
|
|
9886
9887
|
itemList,
|
|
@@ -9902,36 +9903,42 @@ function ItemListComponent({
|
|
|
9902
9903
|
}, /*#__PURE__*/react.createElement("div", {
|
|
9903
9904
|
className: "flex items-center justify-between"
|
|
9904
9905
|
}, /*#__PURE__*/react.createElement("div", {
|
|
9905
|
-
className: "text-
|
|
9906
|
-
}, t(`Select ${itemLabel}`)), /*#__PURE__*/react.createElement(
|
|
9906
|
+
className: "text-highlight text-xl"
|
|
9907
|
+
}, t(`Select ${itemLabel}`)), /*#__PURE__*/react.createElement(ui_next_src/* InputFilter */.zbB, {
|
|
9907
9908
|
className: "max-w-[40%] grow",
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
placeholder: t(`Search ${itemLabel} list`)
|
|
9911
|
-
|
|
9909
|
+
onChange: setFilterValue
|
|
9910
|
+
}, /*#__PURE__*/react.createElement(ui_next_src/* InputFilter */.zbB.SearchIcon, null), /*#__PURE__*/react.createElement(ui_next_src/* InputFilter */.zbB.Input, {
|
|
9911
|
+
placeholder: t(`Search ${itemLabel} list`),
|
|
9912
|
+
className: "pl-8 pr-9"
|
|
9913
|
+
}), /*#__PURE__*/react.createElement(ui_next_src/* InputFilter */.zbB.ClearButton, {
|
|
9914
|
+
className: "text-primary mr-0.5 p-0.5"
|
|
9915
|
+
}))), /*#__PURE__*/react.createElement("div", {
|
|
9912
9916
|
className: "relative flex min-h-[1px] grow flex-col bg-black text-[14px]"
|
|
9913
9917
|
}, itemList == null ? /*#__PURE__*/react.createElement(LoadingIndicatorProgress, {
|
|
9914
9918
|
className: 'h-full w-full'
|
|
9915
9919
|
}) : itemList.length === 0 ? /*#__PURE__*/react.createElement("div", {
|
|
9916
|
-
className: "text-
|
|
9920
|
+
className: "text-highlight flex h-full flex-col items-center justify-center px-6 py-4"
|
|
9917
9921
|
}, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI1.ToolMagnify, {
|
|
9918
9922
|
className: "mb-4"
|
|
9919
9923
|
}), /*#__PURE__*/react.createElement("span", null, t(`No ${itemLabel} available`))) : /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
9920
|
-
className: "bg-
|
|
9924
|
+
className: "bg-popover text-foreground px-3 py-1.5"
|
|
9921
9925
|
}, t(itemLabel)), /*#__PURE__*/react.createElement("div", {
|
|
9922
9926
|
className: "ohif-scrollbar overflow-auto"
|
|
9923
9927
|
}, itemList.filter(item => !filterValue || item.name.toLowerCase().includes(filterValue.toLowerCase())).map(item => {
|
|
9924
|
-
const border = 'rounded border-transparent border-b-
|
|
9928
|
+
const border = 'rounded border-transparent border-b-input border-[1px]';
|
|
9925
9929
|
return /*#__PURE__*/react.createElement("div", {
|
|
9926
|
-
className: classnames_default()('hover:text-
|
|
9930
|
+
className: classnames_default()('hover:text-highlight hover:bg-muted group mx-2 flex items-center justify-between px-6 py-2', border),
|
|
9927
9931
|
key: item.id
|
|
9928
|
-
}, /*#__PURE__*/react.createElement("div",
|
|
9932
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
9933
|
+
className: "text-muted-foreground"
|
|
9934
|
+
}, item.name), /*#__PURE__*/react.createElement(ui_next_src/* Button */.$nd, {
|
|
9929
9935
|
onClick: () => onItemClicked(item),
|
|
9930
9936
|
className: "invisible group-hover:visible",
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9937
|
+
variant: "default",
|
|
9938
|
+
size: "sm"
|
|
9939
|
+
}, t('Select'), /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI1.ChevronRight, {
|
|
9940
|
+
className: "ml-2 h-3 w-3"
|
|
9941
|
+
})));
|
|
9935
9942
|
})))));
|
|
9936
9943
|
}
|
|
9937
9944
|
/* harmony default export */ const Components_ItemListComponent = (ItemListComponent);
|
|
@@ -10076,11 +10083,7 @@ function DataSourceConfigurationComponent({
|
|
|
10076
10083
|
if (!activeDataSourceDef?.configuration?.configurationAPI) {
|
|
10077
10084
|
return;
|
|
10078
10085
|
}
|
|
10079
|
-
const
|
|
10080
|
-
factory: configurationAPIFactory
|
|
10081
|
-
} = customizationService.getCustomization(activeDataSourceDef.configuration.configurationAPI) ?? {
|
|
10082
|
-
factory: () => null
|
|
10083
|
-
};
|
|
10086
|
+
const configurationAPIFactory = customizationService.getCustomization(activeDataSourceDef.configuration.configurationAPI) ?? (() => null);
|
|
10084
10087
|
if (!configurationAPIFactory) {
|
|
10085
10088
|
return;
|
|
10086
10089
|
}
|
|
@@ -10106,6 +10109,7 @@ function DataSourceConfigurationComponent({
|
|
|
10106
10109
|
show({
|
|
10107
10110
|
content: Components_DataSourceConfigurationModalComponent,
|
|
10108
10111
|
title: t('Configure Data Source'),
|
|
10112
|
+
containerClassName: 'max-w-3xl',
|
|
10109
10113
|
contentProps: {
|
|
10110
10114
|
configurationAPI,
|
|
10111
10115
|
configuredItems,
|
|
@@ -10393,23 +10397,27 @@ var browser_detect_es5 = __webpack_require__(88123);
|
|
|
10393
10397
|
|
|
10394
10398
|
|
|
10395
10399
|
|
|
10400
|
+
|
|
10396
10401
|
function AboutModalDefault() {
|
|
10402
|
+
const {
|
|
10403
|
+
t
|
|
10404
|
+
} = (0,es/* useTranslation */.Bd)('AboutModal');
|
|
10397
10405
|
const {
|
|
10398
10406
|
os,
|
|
10399
10407
|
version,
|
|
10400
10408
|
name
|
|
10401
10409
|
} = (0,browser_detect_es5/* default */.A)();
|
|
10402
10410
|
const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
|
|
10403
|
-
const versionNumber = "3.12.0-beta.
|
|
10404
|
-
const commitHash = "
|
|
10411
|
+
const versionNumber = "3.12.0-beta.103";
|
|
10412
|
+
const commitHash = "181c0f32c5e6b561cacaebff4df93d46150f924d";
|
|
10405
10413
|
const [main, beta] = versionNumber.split('-');
|
|
10406
10414
|
return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
|
|
10407
10415
|
className: "w-[400px]"
|
|
10408
10416
|
}, /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.ProductName, null, "OHIF Viewer"), /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.ProductVersion, null, main), beta && /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.ProductBeta, null, beta), /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.Body, null, /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.DetailItem, {
|
|
10409
|
-
label:
|
|
10417
|
+
label: t('Commit Hash'),
|
|
10410
10418
|
value: commitHash
|
|
10411
10419
|
}), /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.DetailItem, {
|
|
10412
|
-
label:
|
|
10420
|
+
label: t('Current Browser & OS'),
|
|
10413
10421
|
value: `${browser}, ${os}`
|
|
10414
10422
|
}), /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU.SocialItem, {
|
|
10415
10423
|
icon: "SocialGithub",
|
|
@@ -10439,15 +10447,27 @@ function UserPreferencesModalDefault({
|
|
|
10439
10447
|
hotkeysManager
|
|
10440
10448
|
} = (0,src/* useSystem */.Jg)();
|
|
10441
10449
|
const {
|
|
10442
|
-
t
|
|
10450
|
+
t,
|
|
10451
|
+
i18n: i18nextInstance
|
|
10443
10452
|
} = (0,es/* useTranslation */.Bd)('UserPreferencesModal');
|
|
10444
10453
|
const {
|
|
10445
10454
|
hotkeyDefinitions = {},
|
|
10446
10455
|
hotkeyDefaults = {}
|
|
10447
10456
|
} = hotkeysManager;
|
|
10457
|
+
const fallbackHotkeyDefinitions = (0,react.useMemo)(() => hotkeysManager.getValidHotkeyDefinitions(src/* hotkeys */.ot.defaults.hotkeyBindings), [hotkeysManager]);
|
|
10458
|
+
(0,react.useEffect)(() => {
|
|
10459
|
+
if (!Object.keys(hotkeyDefaults).length) {
|
|
10460
|
+
hotkeysManager.setDefaultHotKeys(src/* hotkeys */.ot.defaults.hotkeyBindings);
|
|
10461
|
+
}
|
|
10462
|
+
if (!Object.keys(hotkeyDefinitions).length) {
|
|
10463
|
+
hotkeysManager.setHotkeys(fallbackHotkeyDefinitions);
|
|
10464
|
+
}
|
|
10465
|
+
}, [hotkeysManager, hotkeyDefaults, hotkeyDefinitions, fallbackHotkeyDefinitions]);
|
|
10466
|
+
const resolvedHotkeyDefaults = Object.keys(hotkeyDefaults).length ? hotkeyDefaults : fallbackHotkeyDefinitions;
|
|
10467
|
+
const initialHotkeyDefinitions = Object.keys(hotkeyDefinitions).length ? hotkeyDefinitions : resolvedHotkeyDefaults;
|
|
10448
10468
|
const currentLanguage = currentLanguageFn();
|
|
10449
10469
|
const [state, setState] = (0,react.useState)({
|
|
10450
|
-
hotkeyDefinitions:
|
|
10470
|
+
hotkeyDefinitions: initialHotkeyDefinitions,
|
|
10451
10471
|
languageValue: currentLanguage.value
|
|
10452
10472
|
});
|
|
10453
10473
|
const onLanguageChangeHandler = value => {
|
|
@@ -10472,10 +10492,45 @@ function UserPreferencesModalDefault({
|
|
|
10472
10492
|
setState(state => ({
|
|
10473
10493
|
...state,
|
|
10474
10494
|
languageValue: defaultLanguage.value,
|
|
10475
|
-
hotkeyDefinitions:
|
|
10495
|
+
hotkeyDefinitions: resolvedHotkeyDefaults
|
|
10476
10496
|
}));
|
|
10477
10497
|
hotkeysManager.restoreDefaultBindings();
|
|
10478
10498
|
};
|
|
10499
|
+
const displayNames = react.useMemo(() => {
|
|
10500
|
+
if (typeof Intl === 'undefined' || typeof Intl.DisplayNames !== 'function') {
|
|
10501
|
+
return null;
|
|
10502
|
+
}
|
|
10503
|
+
const locales = [state.languageValue, currentLanguage.value, i18nextInstance.language, 'en'];
|
|
10504
|
+
const uniqueLocales = Array.from(new Set(locales.filter(Boolean)));
|
|
10505
|
+
try {
|
|
10506
|
+
return new Intl.DisplayNames(uniqueLocales, {
|
|
10507
|
+
type: 'language',
|
|
10508
|
+
fallback: 'none'
|
|
10509
|
+
});
|
|
10510
|
+
} catch (error) {
|
|
10511
|
+
console.warn('Intl.DisplayNames not supported for locales', uniqueLocales, error);
|
|
10512
|
+
}
|
|
10513
|
+
return null;
|
|
10514
|
+
}, [state.languageValue, currentLanguage.value, i18nextInstance.language]);
|
|
10515
|
+
const getLanguageLabel = react.useCallback((languageValue, fallbackLabel) => {
|
|
10516
|
+
const translationKey = `LanguageName.${languageValue}`;
|
|
10517
|
+
if (i18nextInstance.exists(translationKey, {
|
|
10518
|
+
ns: 'UserPreferencesModal'
|
|
10519
|
+
})) {
|
|
10520
|
+
return t(translationKey);
|
|
10521
|
+
}
|
|
10522
|
+
if (displayNames) {
|
|
10523
|
+
try {
|
|
10524
|
+
const localized = displayNames.of(languageValue);
|
|
10525
|
+
if (localized && localized.toLowerCase() !== languageValue.toLowerCase()) {
|
|
10526
|
+
return localized.charAt(0).toUpperCase() + localized.slice(1);
|
|
10527
|
+
}
|
|
10528
|
+
} catch (error) {
|
|
10529
|
+
console.debug(`Unable to resolve display name for ${languageValue}`, error);
|
|
10530
|
+
}
|
|
10531
|
+
}
|
|
10532
|
+
return fallbackLabel;
|
|
10533
|
+
}, [displayNames, i18nextInstance, t]);
|
|
10479
10534
|
return /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy, null, /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.Body, null, /*#__PURE__*/react.createElement("div", {
|
|
10480
10535
|
className: "mb-3 flex items-center space-x-14"
|
|
10481
10536
|
}, /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.SubHeading, null, t('Language')), /*#__PURE__*/react.createElement(ui_next_src/* Select */.l6P, {
|
|
@@ -10489,7 +10544,7 @@ function UserPreferencesModalDefault({
|
|
|
10489
10544
|
})), /*#__PURE__*/react.createElement(ui_next_src/* SelectContent */.gCo, null, availableLanguages.map(lang => /*#__PURE__*/react.createElement(ui_next_src/* SelectItem */.ebT, {
|
|
10490
10545
|
key: lang.value,
|
|
10491
10546
|
value: lang.value
|
|
10492
|
-
}, lang.label))))), /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.SubHeading, null, t('Hotkeys')), /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.HotkeysGrid, null, Object.entries(state.hotkeyDefinitions).map(([id, definition]) => /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.Hotkey, {
|
|
10547
|
+
}, getLanguageLabel(lang.value, lang.label)))))), /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.SubHeading, null, t('Hotkeys')), /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.HotkeysGrid, null, Object.entries(state.hotkeyDefinitions).map(([id, definition]) => /*#__PURE__*/react.createElement(ui_next_src/* UserPreferencesModal */.xMy.Hotkey, {
|
|
10493
10548
|
key: id,
|
|
10494
10549
|
label: t(definition.label),
|
|
10495
10550
|
value: definition.keys,
|
|
@@ -10508,6 +10563,9 @@ function UserPreferencesModalDefault({
|
|
|
10508
10563
|
onClick: () => {
|
|
10509
10564
|
if (state.languageValue !== currentLanguage.value) {
|
|
10510
10565
|
i18n_src/* default */.A.changeLanguage(state.languageValue);
|
|
10566
|
+
// Force page reload after language change to ensure all translations are applied
|
|
10567
|
+
window.location.reload();
|
|
10568
|
+
return; // Exit early since we're reloading
|
|
10511
10569
|
}
|
|
10512
10570
|
hotkeysManager.setHotkeys(state.hotkeyDefinitions);
|
|
10513
10571
|
src/* hotkeys */.ot.stopRecord();
|
|
@@ -10649,6 +10707,7 @@ function ReportDialog({
|
|
|
10649
10707
|
'ohif.hotkeyBindings': src/* defaults */.NT.hotkeyBindings
|
|
10650
10708
|
});
|
|
10651
10709
|
;// ../../../extensions/default/src/customizations/onboardingCustomization.ts
|
|
10710
|
+
|
|
10652
10711
|
function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
10653
10712
|
return new Promise(resolve => {
|
|
10654
10713
|
let attempts = 0;
|
|
@@ -10668,8 +10727,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10668
10727
|
route: '/viewer',
|
|
10669
10728
|
steps: [{
|
|
10670
10729
|
id: 'scroll',
|
|
10671
|
-
title: 'Scrolling Through Images',
|
|
10672
|
-
text: 'You can scroll through the images using the mouse wheel or scrollbar.',
|
|
10730
|
+
title: i18n_src/* default */.A.t('Onboarding:Scrolling Through Images'),
|
|
10731
|
+
text: i18n_src/* default */.A.t('Onboarding:You can scroll through the images using the mouse wheel or scrollbar.'),
|
|
10673
10732
|
attachTo: {
|
|
10674
10733
|
element: '.viewport-element',
|
|
10675
10734
|
on: 'top'
|
|
@@ -10681,8 +10740,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10681
10740
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10682
10741
|
}, {
|
|
10683
10742
|
id: 'zoom',
|
|
10684
|
-
title: 'Zooming In and Out',
|
|
10685
|
-
text: 'You can zoom the images using the right click.',
|
|
10743
|
+
title: i18n_src/* default */.A.t('Onboarding:Zooming In and Out'),
|
|
10744
|
+
text: i18n_src/* default */.A.t('Onboarding:You can zoom the images using the right click.'),
|
|
10686
10745
|
attachTo: {
|
|
10687
10746
|
element: '.viewport-element',
|
|
10688
10747
|
on: 'left'
|
|
@@ -10694,8 +10753,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10694
10753
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10695
10754
|
}, {
|
|
10696
10755
|
id: 'pan',
|
|
10697
|
-
title: 'Panning the Image',
|
|
10698
|
-
text: 'You can pan the images using the middle click.',
|
|
10756
|
+
title: i18n_src/* default */.A.t('Onboarding:Panning the Image'),
|
|
10757
|
+
text: i18n_src/* default */.A.t('Onboarding:You can pan the images using the middle click.'),
|
|
10699
10758
|
attachTo: {
|
|
10700
10759
|
element: '.viewport-element',
|
|
10701
10760
|
on: 'top'
|
|
@@ -10707,8 +10766,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10707
10766
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10708
10767
|
}, {
|
|
10709
10768
|
id: 'windowing',
|
|
10710
|
-
title: 'Adjusting Window Level',
|
|
10711
|
-
text: 'You can modify the window level using the left click.',
|
|
10769
|
+
title: i18n_src/* default */.A.t('Onboarding:Adjusting Window Level'),
|
|
10770
|
+
text: i18n_src/* default */.A.t('Onboarding:You can modify the window level using the left click.'),
|
|
10712
10771
|
attachTo: {
|
|
10713
10772
|
element: '.viewport-element',
|
|
10714
10773
|
on: 'left'
|
|
@@ -10720,8 +10779,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10720
10779
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10721
10780
|
}, {
|
|
10722
10781
|
id: 'length',
|
|
10723
|
-
title: 'Using the Measurement Tools',
|
|
10724
|
-
text: 'You can measure the length of a region using the Length tool.',
|
|
10782
|
+
title: i18n_src/* default */.A.t('Onboarding:Using the Measurement Tools'),
|
|
10783
|
+
text: i18n_src/* default */.A.t('Onboarding:You can measure the length of a region using the Length tool.'),
|
|
10725
10784
|
attachTo: {
|
|
10726
10785
|
element: '[data-cy="MeasurementTools-split-button-primary"]',
|
|
10727
10786
|
on: 'bottom'
|
|
@@ -10730,11 +10789,11 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10730
10789
|
selector: '[data-cy="MeasurementTools-split-button-primary"]',
|
|
10731
10790
|
event: 'click'
|
|
10732
10791
|
},
|
|
10733
|
-
beforeShowPromise: () => waitForElement('[data-cy="MeasurementTools-split-button-primary]')
|
|
10792
|
+
beforeShowPromise: () => waitForElement('[data-cy="MeasurementTools-split-button-primary"]')
|
|
10734
10793
|
}, {
|
|
10735
10794
|
id: 'drawAnnotation',
|
|
10736
|
-
title: 'Drawing Length Annotations',
|
|
10737
|
-
text: 'Use the length tool on the viewport to measure the length of a region.',
|
|
10795
|
+
title: i18n_src/* default */.A.t('Onboarding:Drawing Length Annotations'),
|
|
10796
|
+
text: i18n_src/* default */.A.t('Onboarding:Use the length tool on the viewport to measure the length of a region.'),
|
|
10738
10797
|
attachTo: {
|
|
10739
10798
|
element: '.viewport-element',
|
|
10740
10799
|
on: 'right'
|
|
@@ -10746,8 +10805,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10746
10805
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10747
10806
|
}, {
|
|
10748
10807
|
id: 'trackMeasurement',
|
|
10749
|
-
title: 'Tracking Measurements in the Panel',
|
|
10750
|
-
text: 'Click yes to track the measurements in the measurement panel.',
|
|
10808
|
+
title: i18n_src/* default */.A.t('Onboarding:Tracking Measurements in the Panel'),
|
|
10809
|
+
text: i18n_src/* default */.A.t('Onboarding:Click yes to track the measurements in the measurement panel.'),
|
|
10751
10810
|
attachTo: {
|
|
10752
10811
|
element: '[data-cy="prompt-begin-tracking-yes-btn"]',
|
|
10753
10812
|
on: 'bottom'
|
|
@@ -10759,8 +10818,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10759
10818
|
beforeShowPromise: () => waitForElement('[data-cy="prompt-begin-tracking-yes-btn"]')
|
|
10760
10819
|
}, {
|
|
10761
10820
|
id: 'openMeasurementPanel',
|
|
10762
|
-
title: 'Opening the Measurements Panel',
|
|
10763
|
-
text: 'Click the measurements button to open the measurements panel.',
|
|
10821
|
+
title: i18n_src/* default */.A.t('Onboarding:Opening the Measurements Panel'),
|
|
10822
|
+
text: i18n_src/* default */.A.t('Onboarding:Click the measurements button to open the measurements panel.'),
|
|
10764
10823
|
attachTo: {
|
|
10765
10824
|
element: '#trackedMeasurements-btn',
|
|
10766
10825
|
on: 'left-start'
|
|
@@ -10772,8 +10831,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10772
10831
|
beforeShowPromise: () => waitForElement('#trackedMeasurements-btn')
|
|
10773
10832
|
}, {
|
|
10774
10833
|
id: 'scrollAwayFromMeasurement',
|
|
10775
|
-
title: 'Scrolling Away from a Measurement',
|
|
10776
|
-
text: 'Scroll the images using the mouse wheel away from the measurement.',
|
|
10834
|
+
title: i18n_src/* default */.A.t('Onboarding:Scrolling Away from a Measurement'),
|
|
10835
|
+
text: i18n_src/* default */.A.t('Onboarding:Scroll the images using the mouse wheel away from the measurement.'),
|
|
10777
10836
|
attachTo: {
|
|
10778
10837
|
element: '.viewport-element',
|
|
10779
10838
|
on: 'left'
|
|
@@ -10785,8 +10844,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10785
10844
|
beforeShowPromise: () => waitForElement('.viewport-element')
|
|
10786
10845
|
}, {
|
|
10787
10846
|
id: 'jumpToMeasurement',
|
|
10788
|
-
title: 'Jumping to Measurements in the Panel',
|
|
10789
|
-
text: 'Click the measurement in the measurement panel to jump to it.',
|
|
10847
|
+
title: i18n_src/* default */.A.t('Onboarding:Jumping to Measurements in the Panel'),
|
|
10848
|
+
text: i18n_src/* default */.A.t('Onboarding:Click the measurement in the measurement panel to jump to it.'),
|
|
10790
10849
|
attachTo: {
|
|
10791
10850
|
element: '[data-cy="data-row"]',
|
|
10792
10851
|
on: 'left-start'
|
|
@@ -10798,8 +10857,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10798
10857
|
beforeShowPromise: () => waitForElement('[data-cy="data-row"]')
|
|
10799
10858
|
}, {
|
|
10800
10859
|
id: 'changeLayout',
|
|
10801
|
-
title: 'Changing Layout',
|
|
10802
|
-
text: 'You can change the layout of the viewer using the layout button.',
|
|
10860
|
+
title: i18n_src/* default */.A.t('Onboarding:Changing Layout'),
|
|
10861
|
+
text: i18n_src/* default */.A.t('Onboarding:You can change the layout of the viewer using the layout button.'),
|
|
10803
10862
|
attachTo: {
|
|
10804
10863
|
element: '[data-cy="Layout"]',
|
|
10805
10864
|
on: 'bottom'
|
|
@@ -10811,8 +10870,8 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10811
10870
|
beforeShowPromise: () => waitForElement('[data-cy="Layout"]')
|
|
10812
10871
|
}, {
|
|
10813
10872
|
id: 'selectLayout',
|
|
10814
|
-
title: 'Selecting the MPR Layout',
|
|
10815
|
-
text: 'Select the MPR layout to view the images in MPR mode.',
|
|
10873
|
+
title: i18n_src/* default */.A.t('Onboarding:Selecting the MPR Layout'),
|
|
10874
|
+
text: i18n_src/* default */.A.t('Onboarding:Select the MPR layout to view the images in MPR mode.'),
|
|
10816
10875
|
attachTo: {
|
|
10817
10876
|
element: '[data-cy="MPR"]',
|
|
10818
10877
|
on: 'left-start'
|
|
@@ -10827,7 +10886,7 @@ function waitForElement(selector, maxAttempts = 20, interval = 25) {
|
|
|
10827
10886
|
useModalOverlay: true,
|
|
10828
10887
|
defaultStepOptions: {
|
|
10829
10888
|
buttons: [{
|
|
10830
|
-
text: 'Skip all',
|
|
10889
|
+
text: i18n_src/* default */.A.t('Onboarding:Skip all'),
|
|
10831
10890
|
action() {
|
|
10832
10891
|
this.complete();
|
|
10833
10892
|
},
|
|
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
16
|
var react = __webpack_require__(86326);
|
|
17
|
-
// EXTERNAL MODULE: ../../ui-next/src/index.ts +
|
|
18
|
-
var src = __webpack_require__(
|
|
17
|
+
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3075 modules
|
|
18
|
+
var src = __webpack_require__(12517);
|
|
19
19
|
;// ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
|
|
20
20
|
function createSEGToolGroupAndAddTools({
|
|
21
21
|
commandsManager,
|
|
@@ -121,12 +121,20 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
121
121
|
// In such cases, we attempt to handle this scenario gracefully by
|
|
122
122
|
// invoking a custom handler. Ideally, if a user tries to launch a series that isn't viewable,
|
|
123
123
|
// (eg.: we can prompt them with an explanation and provide a link to the full study).
|
|
124
|
+
|
|
125
|
+
// Additional guard: If no customization handler is registered for missing
|
|
126
|
+
// referenced display sets, skip SEG rendering to avoid a viewport crash.
|
|
124
127
|
if (!referencedDisplaySetInstanceUID) {
|
|
125
128
|
const missingReferenceDisplaySetHandler = customizationService.getCustomization('missingReferenceDisplaySetHandler');
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
if (typeof missingReferenceDisplaySetHandler === 'function') {
|
|
130
|
+
const {
|
|
131
|
+
handled
|
|
132
|
+
} = missingReferenceDisplaySetHandler();
|
|
133
|
+
if (handled) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
console.log("No customization 'missingReferenceDisplaySetHandler' registered. Skipping SEG rendering.");
|
|
130
138
|
return;
|
|
131
139
|
}
|
|
132
140
|
}
|
|
@@ -11,7 +11,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
11
11
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
12
12
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97598);
|
|
13
13
|
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
14
|
-
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
14
|
+
/* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12517);
|
|
15
15
|
/* harmony import */ var _ohif_extension_cornerstone__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71903);
|
|
16
16
|
/* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4667);
|
|
17
17
|
/* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55844);
|
|
@@ -407,7 +407,7 @@ const toolbarButtons = [{
|
|
|
407
407
|
radiusOptionId: 'brush-radius'
|
|
408
408
|
}],
|
|
409
409
|
options: [{
|
|
410
|
-
name: 'Radius (mm)',
|
|
410
|
+
name: i18next/* default */.A.t('Buttons:Radius (mm)'),
|
|
411
411
|
id: 'brush-radius',
|
|
412
412
|
type: 'range',
|
|
413
413
|
explicitRunOnly: true,
|
|
@@ -422,16 +422,16 @@ const toolbarButtons = [{
|
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
424
|
}, {
|
|
425
|
-
name: 'Shape',
|
|
425
|
+
name: i18next/* default */.A.t('Buttons:Shape'),
|
|
426
426
|
type: 'radio',
|
|
427
427
|
id: 'brush-mode',
|
|
428
428
|
value: 'CircularBrush',
|
|
429
429
|
values: [{
|
|
430
430
|
value: 'CircularBrush',
|
|
431
|
-
label: 'Circle'
|
|
431
|
+
label: i18next/* default */.A.t('Buttons:Circle')
|
|
432
432
|
}, {
|
|
433
433
|
value: 'SphereBrush',
|
|
434
|
-
label: 'Sphere'
|
|
434
|
+
label: i18next/* default */.A.t('Buttons:Sphere')
|
|
435
435
|
}],
|
|
436
436
|
commands: 'setToolActiveToolbar'
|
|
437
437
|
}]
|
|
@@ -450,7 +450,7 @@ const toolbarButtons = [{
|
|
|
450
450
|
radiusOptionId: 'eraser-radius'
|
|
451
451
|
}],
|
|
452
452
|
options: [{
|
|
453
|
-
name: 'Radius (mm)',
|
|
453
|
+
name: i18next/* default */.A.t('Buttons:Radius (mm)'),
|
|
454
454
|
id: 'eraser-radius',
|
|
455
455
|
type: 'range',
|
|
456
456
|
explicitRunOnly: true,
|
|
@@ -465,16 +465,16 @@ const toolbarButtons = [{
|
|
|
465
465
|
}
|
|
466
466
|
}
|
|
467
467
|
}, {
|
|
468
|
-
name: 'Shape',
|
|
468
|
+
name: i18next/* default */.A.t('Buttons:Shape'),
|
|
469
469
|
type: 'radio',
|
|
470
470
|
id: 'eraser-mode',
|
|
471
471
|
value: 'CircularEraser',
|
|
472
472
|
values: [{
|
|
473
473
|
value: 'CircularEraser',
|
|
474
|
-
label: 'Circle'
|
|
474
|
+
label: i18next/* default */.A.t('Buttons:Circle')
|
|
475
475
|
}, {
|
|
476
476
|
value: 'SphereEraser',
|
|
477
|
-
label: 'Sphere'
|
|
477
|
+
label: i18next/* default */.A.t('Buttons:Sphere')
|
|
478
478
|
}],
|
|
479
479
|
commands: 'setToolActiveToolbar'
|
|
480
480
|
}]
|
|
@@ -493,7 +493,7 @@ const toolbarButtons = [{
|
|
|
493
493
|
radiusOptionId: 'threshold-radius'
|
|
494
494
|
}],
|
|
495
495
|
options: [{
|
|
496
|
-
name: 'Radius (mm)',
|
|
496
|
+
name: i18next/* default */.A.t('Buttons:Radius (mm)'),
|
|
497
497
|
id: 'threshold-radius',
|
|
498
498
|
type: 'range',
|
|
499
499
|
explicitRunOnly: true,
|
|
@@ -508,16 +508,16 @@ const toolbarButtons = [{
|
|
|
508
508
|
}
|
|
509
509
|
}
|
|
510
510
|
}, {
|
|
511
|
-
name: 'Threshold',
|
|
511
|
+
name: i18next/* default */.A.t('Buttons:Threshold'),
|
|
512
512
|
type: 'radio',
|
|
513
513
|
id: 'dynamic-mode',
|
|
514
514
|
value: 'ThresholdRange',
|
|
515
515
|
values: [{
|
|
516
516
|
value: 'ThresholdDynamic',
|
|
517
|
-
label: 'Dynamic'
|
|
517
|
+
label: i18next/* default */.A.t('Buttons:Dynamic')
|
|
518
518
|
}, {
|
|
519
519
|
value: 'ThresholdRange',
|
|
520
|
-
label: 'Range'
|
|
520
|
+
label: i18next/* default */.A.t('Buttons:Range')
|
|
521
521
|
}],
|
|
522
522
|
commands: ({
|
|
523
523
|
value,
|
|
@@ -534,23 +534,23 @@ const toolbarButtons = [{
|
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
536
|
}, {
|
|
537
|
-
name: 'Shape',
|
|
537
|
+
name: i18next/* default */.A.t('Buttons:Shape'),
|
|
538
538
|
type: 'radio',
|
|
539
539
|
id: 'eraser-mode',
|
|
540
540
|
value: 'ThresholdCircularBrush',
|
|
541
541
|
values: [{
|
|
542
542
|
value: 'ThresholdCircularBrush',
|
|
543
|
-
label: 'Circle'
|
|
543
|
+
label: i18next/* default */.A.t('Buttons:Circle')
|
|
544
544
|
}, {
|
|
545
545
|
value: 'ThresholdSphereBrush',
|
|
546
|
-
label: 'Sphere'
|
|
546
|
+
label: i18next/* default */.A.t('Buttons:Sphere')
|
|
547
547
|
}],
|
|
548
548
|
condition: ({
|
|
549
549
|
options
|
|
550
550
|
}) => options.find(option => option.id === 'dynamic-mode').value === 'ThresholdRange',
|
|
551
551
|
commands: 'setToolActiveToolbar'
|
|
552
552
|
}, {
|
|
553
|
-
name: 'ThresholdRange',
|
|
553
|
+
name: i18next/* default */.A.t('ROIThresholdConfiguration:ThresholdRange'),
|
|
554
554
|
type: 'double-range',
|
|
555
555
|
id: 'threshold-range',
|
|
556
556
|
min: 0,
|