@ohif/app 3.9.0-beta.110 → 3.9.0-beta.111

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.
Files changed (37) hide show
  1. package/dist/{1185.bundle.bd20dd033687e5122b08.js → 1185.bundle.3498181e4f469f413a4c.js} +118 -90
  2. package/dist/{1266.bundle.c5df8ee5daff1150b16f.js → 1266.bundle.8684fbea3673414e360a.js} +1 -1
  3. package/dist/{1436.bundle.c12ed4e5e35979b77ec9.js → 1436.bundle.773756cd51b69e887bac.js} +44 -2
  4. package/dist/{149.bundle.8fa9d2ef7a3f5d9e8775.js → 149.bundle.b8d177954628f4631fc0.js} +0 -6
  5. package/dist/{9212.bundle.a71c03df2e651f70b7f0.js → 1520.bundle.7c6973e8fc72e36b9c92.js} +39 -17
  6. package/dist/{3198.bundle.4ed02e3de6cdc6a92aae.js → 3198.bundle.6a2ddd469bbc556e8b6a.js} +2 -2
  7. package/dist/{8329.bundle.3de30547a4546696a63f.js → 3200.bundle.c2535337fde17edf66d7.js} +21 -52
  8. package/dist/{5247.bundle.6f2393e27b92e5225008.js → 5247.bundle.26eacc5a22b6aa61581a.js} +2 -2
  9. package/dist/{5717.bundle.231762aad110306ec2e4.js → 5717.bundle.848e13f256818475f57f.js} +45 -4
  10. package/dist/{717.bundle.f5a1e9071b27ec515cd6.js → 717.bundle.ef9b863af6fa4363fdb6.js} +2 -2
  11. package/dist/{7197.bundle.e4ab876e1cb1242234ca.js → 7197.bundle.77bb52a99d5a3495d473.js} +2 -2
  12. package/dist/{8228.bundle.f4b22af88ec867bae935.js → 8228.bundle.55ac03d7165248f47d4e.js} +2 -2
  13. package/dist/{9611.bundle.99199674cf2df5c7607b.js → 9611.bundle.767595c93877e5166c03.js} +2 -2
  14. package/dist/{app.bundle.616868274ef8d7f48993.js → app.bundle.5fd380c648fddc5127ee.js} +148 -80
  15. package/dist/app.bundle.css +4 -4
  16. package/dist/index.html +1 -1
  17. package/dist/{suv-peak-worker.bundle.cb4fc86bb89d9e5c5bfa.js → suv-peak-worker.bundle.76dd4fdf82aaa2c3ad41.js} +1 -1
  18. package/dist/sw.js +1 -1
  19. package/package.json +19 -19
  20. /package/dist/{1374.bundle.d66644a5cd706ea668a3.js → 1374.bundle.0e76036091b2d7ffa751.js} +0 -0
  21. /package/dist/{213.bundle.397201f3cdc4e4b374f4.js → 213.bundle.96a79496fd2297ced6f2.js} +0 -0
  22. /package/dist/{2424.bundle.fac1c8a11ff68a141d53.js → 2424.bundle.de7420ce4d2a10ccda96.js} +0 -0
  23. /package/dist/{2701.bundle.96b17b06335b44f55134.js → 2701.bundle.8c1ff2e0faaa7d2f4716.js} +0 -0
  24. /package/dist/{2825.bundle.b9de312c87eab93da319.js → 2825.bundle.0aaf2b6e641783d0c6be.js} +0 -0
  25. /package/dist/{3121.bundle.01942b534f48bb4b4553.js → 3121.bundle.d3e7092e305cf6cecdb5.js} +0 -0
  26. /package/dist/{8329.css → 3200.css} +0 -0
  27. /package/dist/{4202.bundle.a100466b6390c5fc2c86.js → 4202.bundle.5c8120ed4841da0af211.js} +0 -0
  28. /package/dist/{4834.bundle.a1957855be846e3bf60a.js → 4834.bundle.cedfa109b4074c6c7465.js} +0 -0
  29. /package/dist/{5139.bundle.ca60ba8c198fccf47f7b.js → 5139.bundle.3bf59be379dcf9782ae2.js} +0 -0
  30. /package/dist/{5687.bundle.b662ba555943459ab799.js → 5687.bundle.4ec8cdc670400c5766c1.js} +0 -0
  31. /package/dist/{7955.bundle.3916d5515b6271f6021c.js → 7955.bundle.488e4dbeb0b7a41a1d74.js} +0 -0
  32. /package/dist/{8008.bundle.a46e40612fbe8813bc65.js → 8008.bundle.5dec66bd36832014b217.js} +0 -0
  33. /package/dist/{8259.bundle.8cab7aaeda1aa94e9b0b.js → 8259.bundle.078addd43d5e38852eec.js} +0 -0
  34. /package/dist/{8295.bundle.832bc290de31b7b23913.js → 8295.bundle.4ecb27f9e58526f12bcb.js} +0 -0
  35. /package/dist/{8558.bundle.b0205d63fbfb97c7e8da.js → 8558.bundle.895183f97de250654b49.js} +0 -0
  36. /package/dist/{9551.bundle.b87cd5c8302068301772.js → 9551.bundle.583427c9aa4a97cd8945.js} +0 -0
  37. /package/dist/{9862.bundle.6da94e0219246ab52a04.js → 9862.bundle.7146682e56aa66130ae6.js} +0 -0
@@ -983,8 +983,8 @@ function initWADOImageLoader(userAuthenticationService, appConfig, extensionMana
983
983
  function destroy() {
984
984
  console.debug('Destroying WADO Image Loader');
985
985
  }
986
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 112 modules
987
- var default_src = __webpack_require__(49212);
986
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 114 modules
987
+ var default_src = __webpack_require__(71520);
988
988
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
989
989
  var state = __webpack_require__(71353);
990
990
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
@@ -4583,6 +4583,9 @@ const connectMeasurementServiceToTools = (measurementService, cornerstoneViewpor
4583
4583
  }
4584
4584
  removeAnnotation(uid);
4585
4585
  }
4586
+
4587
+ // trigger a render
4588
+ cornerstoneViewportService.getRenderingEngine().render();
4586
4589
  });
4587
4590
  measurementService.subscribe(MEASUREMENT_UPDATED, ({
4588
4591
  source,
@@ -11117,6 +11120,9 @@ class SyncGroupService {
11117
11120
  id = type
11118
11121
  } = syncGroupObj;
11119
11122
  const synchronizer = this._getOrCreateSynchronizer(type, id, options);
11123
+ if (!synchronizer) {
11124
+ return;
11125
+ }
11120
11126
  synchronizer.setOptions(viewportId, options);
11121
11127
  const viewportInfo = {
11122
11128
  viewportId,
@@ -13890,9 +13896,12 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
13890
13896
  }
13891
13897
  });
13892
13898
  }
13893
- if (!volumesNotLoaded.length) {
13894
- return;
13895
- }
13899
+
13900
+ // It's crucial not to return here because the volume may be loaded,
13901
+ // but the viewport also needs to set the volume.
13902
+ // if (!volumesNotLoaded.length) {
13903
+ // return;
13904
+ // }
13896
13905
 
13897
13906
  // This returns the async continuation only
13898
13907
  return this.setVolumesForViewport(viewport, volumeInputArray, presentations);
@@ -15156,8 +15165,8 @@ function useMeasurements(servicesManager, {
15156
15165
  }, [measurementService, measurementFilter, displaySetService]);
15157
15166
  return displayMeasurements;
15158
15167
  }
15159
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2481 modules
15160
- var ui_next_src = __webpack_require__(98441);
15168
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2483 modules
15169
+ var ui_next_src = __webpack_require__(35570);
15161
15170
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/panels/PanelSegmentation.tsx
15162
15171
 
15163
15172
 
@@ -15805,89 +15814,6 @@ ActiveViewportWindowLevel.propTypes = {
15805
15814
  /* harmony default export */ const ActiveViewportWindowLevel_ActiveViewportWindowLevel = (ActiveViewportWindowLevel);
15806
15815
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/components/ActiveViewportWindowLevel/index.js
15807
15816
 
15808
- ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/getPanelModule.tsx
15809
-
15810
-
15811
-
15812
-
15813
- const getPanelModule = ({
15814
- commandsManager,
15815
- servicesManager,
15816
- extensionManager
15817
- }) => {
15818
- const wrappedPanelSegmentation = ({
15819
- configuration
15820
- }) => {
15821
- return /*#__PURE__*/react.createElement(PanelSegmentation, {
15822
- commandsManager: commandsManager,
15823
- servicesManager: servicesManager,
15824
- extensionManager: extensionManager,
15825
- configuration: {
15826
- ...configuration
15827
- }
15828
- });
15829
- };
15830
- const wrappedPanelSegmentationNoHeader = ({
15831
- configuration
15832
- }) => {
15833
- return /*#__PURE__*/react.createElement(PanelSegmentation, {
15834
- commandsManager: commandsManager,
15835
- servicesManager: servicesManager,
15836
- extensionManager: extensionManager,
15837
- configuration: {
15838
- ...configuration
15839
- }
15840
- });
15841
- };
15842
- const wrappedPanelSegmentationWithTools = ({
15843
- configuration
15844
- }) => {
15845
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_next_src/* Toolbox */.OO, {
15846
- commandsManager: commandsManager,
15847
- servicesManager: servicesManager,
15848
- extensionManager: extensionManager,
15849
- buttonSectionId: "segmentationToolbox",
15850
- title: "Segmentation Tools",
15851
- configuration: {
15852
- ...configuration
15853
- }
15854
- }), /*#__PURE__*/react.createElement(PanelSegmentation, {
15855
- commandsManager: commandsManager,
15856
- servicesManager: servicesManager,
15857
- extensionManager: extensionManager,
15858
- configuration: {
15859
- ...configuration
15860
- }
15861
- }));
15862
- };
15863
- return [{
15864
- name: 'activeViewportWindowLevel',
15865
- component: () => {
15866
- return /*#__PURE__*/react.createElement(ActiveViewportWindowLevel_ActiveViewportWindowLevel, {
15867
- servicesManager: servicesManager
15868
- });
15869
- }
15870
- }, {
15871
- name: 'panelSegmentation',
15872
- iconName: 'tab-segmentation',
15873
- iconLabel: 'Segmentation',
15874
- label: 'Segmentation',
15875
- component: wrappedPanelSegmentation
15876
- }, {
15877
- name: 'panelSegmentationNoHeader',
15878
- iconName: 'tab-segmentation',
15879
- iconLabel: 'Segmentation',
15880
- label: 'Segmentation',
15881
- component: wrappedPanelSegmentationNoHeader
15882
- }, {
15883
- name: 'panelSegmentationWithTools',
15884
- iconName: 'tab-segmentation',
15885
- iconLabel: 'Segmentation',
15886
- label: 'Segmentation',
15887
- component: wrappedPanelSegmentationWithTools
15888
- }];
15889
- };
15890
- /* harmony default export */ const src_getPanelModule = (getPanelModule);
15891
15817
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/panels/PanelMeasurement.tsx
15892
15818
 
15893
15819
 
@@ -15996,6 +15922,108 @@ function PanelMeasurementTable({
15996
15922
  // onColor={changeColorMeasurement}
15997
15923
  }, /*#__PURE__*/react.createElement(ui_next_src/* MeasurementTable */.V.Body, null))));
15998
15924
  }
15925
+ ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/getPanelModule.tsx
15926
+
15927
+
15928
+
15929
+
15930
+
15931
+ const getPanelModule = ({
15932
+ commandsManager,
15933
+ servicesManager,
15934
+ extensionManager
15935
+ }) => {
15936
+ const wrappedPanelSegmentation = ({
15937
+ configuration
15938
+ }) => {
15939
+ return /*#__PURE__*/react.createElement(PanelSegmentation, {
15940
+ commandsManager: commandsManager,
15941
+ servicesManager: servicesManager,
15942
+ extensionManager: extensionManager,
15943
+ configuration: {
15944
+ ...configuration
15945
+ }
15946
+ });
15947
+ };
15948
+ const wrappedPanelSegmentationNoHeader = ({
15949
+ configuration
15950
+ }) => {
15951
+ return /*#__PURE__*/react.createElement(PanelSegmentation, {
15952
+ commandsManager: commandsManager,
15953
+ servicesManager: servicesManager,
15954
+ extensionManager: extensionManager,
15955
+ configuration: {
15956
+ ...configuration
15957
+ }
15958
+ });
15959
+ };
15960
+ const wrappedPanelSegmentationWithTools = ({
15961
+ configuration
15962
+ }) => {
15963
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_next_src/* Toolbox */.OO, {
15964
+ commandsManager: commandsManager,
15965
+ servicesManager: servicesManager,
15966
+ extensionManager: extensionManager,
15967
+ buttonSectionId: "segmentationToolbox",
15968
+ title: "Segmentation Tools",
15969
+ configuration: {
15970
+ ...configuration
15971
+ }
15972
+ }), /*#__PURE__*/react.createElement(PanelSegmentation, {
15973
+ commandsManager: commandsManager,
15974
+ servicesManager: servicesManager,
15975
+ extensionManager: extensionManager,
15976
+ configuration: {
15977
+ ...configuration
15978
+ }
15979
+ }));
15980
+ };
15981
+ const wrappedPanelMeasurement = ({
15982
+ configuration
15983
+ }) => {
15984
+ return /*#__PURE__*/react.createElement(PanelMeasurementTable, {
15985
+ commandsManager: commandsManager,
15986
+ servicesManager: servicesManager,
15987
+ extensionManager: extensionManager,
15988
+ configuration: {
15989
+ ...configuration
15990
+ }
15991
+ });
15992
+ };
15993
+ return [{
15994
+ name: 'activeViewportWindowLevel',
15995
+ component: () => {
15996
+ return /*#__PURE__*/react.createElement(ActiveViewportWindowLevel_ActiveViewportWindowLevel, {
15997
+ servicesManager: servicesManager
15998
+ });
15999
+ }
16000
+ }, {
16001
+ name: 'panelMeasurement',
16002
+ iconName: 'tab-linear',
16003
+ iconLabel: 'Measure',
16004
+ label: 'Measurement',
16005
+ component: wrappedPanelMeasurement
16006
+ }, {
16007
+ name: 'panelSegmentation',
16008
+ iconName: 'tab-segmentation',
16009
+ iconLabel: 'Segmentation',
16010
+ label: 'Segmentation',
16011
+ component: wrappedPanelSegmentation
16012
+ }, {
16013
+ name: 'panelSegmentationNoHeader',
16014
+ iconName: 'tab-segmentation',
16015
+ iconLabel: 'Segmentation',
16016
+ label: 'Segmentation',
16017
+ component: wrappedPanelSegmentationNoHeader
16018
+ }, {
16019
+ name: 'panelSegmentationWithTools',
16020
+ iconName: 'tab-segmentation',
16021
+ iconLabel: 'Segmentation',
16022
+ label: 'Segmentation',
16023
+ component: wrappedPanelSegmentationWithTools
16024
+ }];
16025
+ };
16026
+ /* harmony default export */ const src_getPanelModule = (getPanelModule);
15999
16027
  // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 4 modules
16000
16028
  var es = __webpack_require__(85252);
16001
16029
  // EXTERNAL MODULE: ../../../node_modules/classnames/index.js
@@ -799,7 +799,7 @@ const ohif = {
799
799
  wsiSopClassHandler: '@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler'
800
800
  };
801
801
  const cornerstone = {
802
- measurements: '@ohif/extension-cornerstone.panelModule.measurements',
802
+ measurements: '@ohif/extension-cornerstone.panelModule.panelMeasurement',
803
803
  segmentation: '@ohif/extension-cornerstone.panelModule.panelSegmentation'
804
804
  };
805
805
  const tracked = {
@@ -1145,6 +1145,7 @@ const RECTANGLE_ICON = `<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.
1145
1145
  const CIRCLE_ICON = `<path fill="{{color}}" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>`;
1146
1146
  const CursorSVG = {
1147
1147
  Angle: extend(BASE, {
1148
+ name: 'Angle',
1148
1149
  iconContent: `<path fill="{{color}}" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50
1149
1150
  50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23
1150
1151
  10l50 50q10 10 10 23z" />`,
@@ -1154,6 +1155,7 @@ const CursorSVG = {
1154
1155
  },
1155
1156
  }),
1156
1157
  ArrowAnnotate: extend(BASE, {
1158
+ name: 'ArrowAnnotate',
1157
1159
  iconContent: `<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">
1158
1160
  <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />
1159
1161
  </g>`,
@@ -1163,6 +1165,7 @@ const CursorSVG = {
1163
1165
  },
1164
1166
  }),
1165
1167
  Bidirectional: extend(BASE, {
1168
+ name: 'Bidirectional',
1166
1169
  iconContent: `<g fill="{{color}}" stroke-width="3" stroke="{{color}}">
1167
1170
  <path d="M27.63 3.21L3.12 28.81"></path>
1168
1171
  <path d="M27.63 15.75L15.27 4.43"></path>
@@ -1177,6 +1180,7 @@ const CursorSVG = {
1177
1180
  },
1178
1181
  }),
1179
1182
  CobbAngle: extend(BASE, {
1183
+ name: 'CobbAngle',
1180
1184
  iconContent: `<g stroke="{{color}}" stroke-width="3">
1181
1185
  <path d="M28.59 2.34L3.82 12.32"></path>
1182
1186
  <path d="M28.59 29.66L3.82 19.68"></path>
@@ -1191,6 +1195,7 @@ const CursorSVG = {
1191
1195
  },
1192
1196
  }),
1193
1197
  CircleROI: extend(BASE, {
1198
+ name: 'CircleROI',
1194
1199
  iconContent: `<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />`,
1195
1200
  viewBox: {
1196
1201
  x: 32,
@@ -1198,6 +1203,7 @@ const CursorSVG = {
1198
1203
  },
1199
1204
  }),
1200
1205
  EllipticalROI: extend(BASE, {
1206
+ name: 'EllipticalROI',
1201
1207
  iconContent: `<path stroke="{{color}}" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16
1202
1208
  25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14
1203
1209
  6.3 30.74 10.54 30.74 15.76Z" />`,
@@ -1207,6 +1213,7 @@ const CursorSVG = {
1207
1213
  },
1208
1214
  }),
1209
1215
  FreehandROI: extend(BASE, {
1216
+ name: 'FreehandROI',
1210
1217
  iconContent: `<g fill="{{color}}" stroke="{{color}}" stroke-width="2">
1211
1218
  <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>
1212
1219
  <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>
@@ -1245,6 +1252,7 @@ const CursorSVG = {
1245
1252
  },
1246
1253
  }),
1247
1254
  FreehandROISculptor: extend(BASE, {
1255
+ name: 'FreehandROISculptor',
1248
1256
  iconContent: `<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">
1249
1257
  <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>
1250
1258
  <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>
@@ -1285,6 +1293,7 @@ const CursorSVG = {
1285
1293
  },
1286
1294
  }),
1287
1295
  Length: extend(BASE, {
1296
+ name: 'Length',
1288
1297
  iconContent: `<g id="length-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">
1289
1298
  <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />
1290
1299
  </g>`,
@@ -1294,6 +1303,7 @@ const CursorSVG = {
1294
1303
  },
1295
1304
  }),
1296
1305
  Height: extend(BASE, {
1306
+ name: 'Height',
1297
1307
  iconContent: `<path d="m 6 22 l 8.5 0 v -16 h 8" stroke-width="3" fill="none" stroke="{{color}}" />`,
1298
1308
  viewBox: {
1299
1309
  x: 24,
@@ -1301,6 +1311,7 @@ const CursorSVG = {
1301
1311
  },
1302
1312
  }),
1303
1313
  Probe: extend(BASE, {
1314
+ name: 'Probe',
1304
1315
  iconContent: `<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75
1305
1316
  75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73
1306
1317
  198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5
@@ -1312,6 +1323,7 @@ const CursorSVG = {
1312
1323
  },
1313
1324
  }),
1314
1325
  RectangleROI: extend(BASE, {
1326
+ name: 'RectangleROI',
1315
1327
  iconContent: `<path fill="{{color}}" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47
1316
1328
  113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0
1317
1329
  119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119
@@ -1322,6 +1334,7 @@ const CursorSVG = {
1322
1334
  },
1323
1335
  }),
1324
1336
  TextMarker: extend(BASE, {
1337
+ name: 'TextMarker',
1325
1338
  iconContent: `<path fill="{{color}}" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0
1326
1339
  57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29
1327
1340
  31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15
@@ -1337,6 +1350,7 @@ const CursorSVG = {
1337
1350
  },
1338
1351
  }),
1339
1352
  Crosshairs: extend(BASE, {
1353
+ name: 'Crosshairs',
1340
1354
  iconContent: `<path fill="{{color}}" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26
1341
1355
  19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45
1342
1356
  19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26
@@ -1354,6 +1368,7 @@ const CursorSVG = {
1354
1368
  },
1355
1369
  }),
1356
1370
  Eraser: extend(BASE, {
1371
+ name: 'Eraser',
1357
1372
  iconContent: `<path transform="translate(0,1792) scale(1,-1)" fill="{{color}}" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15
1358
1373
  34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38
1359
1374
  0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38
@@ -1364,6 +1379,7 @@ const CursorSVG = {
1364
1379
  },
1365
1380
  }),
1366
1381
  Magnify: extend(BASE, {
1382
+ name: 'Magnify',
1367
1383
  iconContent: `<path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395
1368
1384
  312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5
1369
1385
  0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17
@@ -1375,6 +1391,7 @@ const CursorSVG = {
1375
1391
  },
1376
1392
  }),
1377
1393
  Pan: extend(BASE, {
1394
+ name: 'Pan',
1378
1395
  iconContent: `<path fill="{{color}}" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17
1379
1396
  39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355
1380
1397
  355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59
@@ -1388,6 +1405,7 @@ const CursorSVG = {
1388
1405
  },
1389
1406
  }),
1390
1407
  Rotate: extend(BASE, {
1408
+ name: 'Rotate',
1391
1409
  iconContent: `<path fill="{{color}}" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39
1392
1410
  14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5
1393
1411
  163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0
@@ -1401,6 +1419,7 @@ const CursorSVG = {
1401
1419
  },
1402
1420
  }),
1403
1421
  StackScroll: extend(BASE, {
1422
+ name: 'StackScroll',
1404
1423
  iconContent: `<path fill="{{color}}" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547
1405
1424
  0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0
1406
1425
  0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547
@@ -1412,6 +1431,7 @@ const CursorSVG = {
1412
1431
  },
1413
1432
  }),
1414
1433
  WindowLevelRegion: extend(BASE, {
1434
+ name: 'WindowLevelRegion',
1415
1435
  iconContent: `<path fill="{{color}}" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119
1416
1436
  0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5
1417
1437
  84.5t84.5 203.5z" />`,
@@ -1421,6 +1441,7 @@ const CursorSVG = {
1421
1441
  },
1422
1442
  }),
1423
1443
  WindowLevel: extend(BASE, {
1444
+ name: 'WindowLevel',
1424
1445
  iconContent: `
1425
1446
  <path fill="{{color}}" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />
1426
1447
  <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="{{color}}" />`,
@@ -1430,6 +1451,7 @@ const CursorSVG = {
1430
1451
  },
1431
1452
  }),
1432
1453
  Zoom: extend(BASE, {
1454
+ name: 'Zoom',
1433
1455
  iconContent: `
1434
1456
  <path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395
1435
1457
  312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5
@@ -1446,64 +1468,81 @@ const CursorSVG = {
1446
1468
  },
1447
1469
  }),
1448
1470
  SegmentationFreeHandEraseInside: extend(BASE, {
1471
+ name: 'SegmentationFreeHandEraseInside',
1449
1472
  iconContent: `${SCISSOR_ICON} ${MINUS_RECT}`,
1450
1473
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1451
1474
  }),
1452
1475
  SegmentationFreeHandFillInside: extend(BASE, {
1476
+ name: 'SegmentationFreeHandFillInside',
1453
1477
  iconContent: `${SCISSOR_ICON} ${PLUS_RECT}`,
1454
1478
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1455
1479
  }),
1456
1480
  SegmentationFreeHandEraseOutside: extend(BASE, {
1481
+ name: 'SegmentationFreeHandEraseOutside',
1457
1482
  iconContent: `${SCISSOR_ICON} ${MINUS_RECT}`,
1458
1483
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1459
1484
  }),
1460
1485
  SegmentationFreeHandFillOutside: extend(BASE, {
1486
+ name: 'SegmentationFreeHandFillOutside',
1461
1487
  iconContent: `${SCISSOR_ICON} ${PLUS_RECT}`,
1462
1488
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1463
1489
  }),
1464
1490
  SegmentationRectangleEraseInside: extend(BASE, {
1491
+ name: 'SegmentationRectangleEraseInside',
1465
1492
  iconContent: `${RECTANGLE_ICON} ${MINUS_RECT}`,
1466
1493
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1467
1494
  }),
1468
1495
  RectangleScissor: extend(BASE, {
1496
+ name: 'RectangleScissor',
1469
1497
  iconContent: `${RECTANGLE_ICON} ${PLUS_RECT}`,
1470
1498
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1471
1499
  }),
1472
1500
  'RectangleScissor.FILL_INSIDE': extend(BASE, {
1501
+ name: 'RectangleScissor.FILL_INSIDE',
1473
1502
  iconContent: `${RECTANGLE_ICON} ${PLUS_RECT}`,
1474
1503
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1475
1504
  }),
1476
1505
  'RectangleScissor.FILL_OUTSIDE': extend(BASE, {
1506
+ name: 'RectangleScissor.FILL_OUTSIDE',
1477
1507
  iconContent: `${RECTANGLE_ICON} ${PLUS_RECT}`,
1478
1508
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1479
1509
  }),
1480
1510
  'RectangleScissor.ERASE_OUTSIDE': extend(BASE, {
1511
+ name: 'RectangleScissor.ERASE_OUTSIDE',
1481
1512
  iconContent: `${RECTANGLE_ICON} ${MINUS_RECT}`,
1482
1513
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1483
1514
  }),
1484
1515
  'RectangleScissor.ERASE_INSIDE': extend(BASE, {
1516
+ name: 'RectangleScissor.ERASE_INSIDE',
1485
1517
  iconContent: `${RECTANGLE_ICON} ${MINUS_RECT}`,
1486
1518
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1487
1519
  }),
1488
1520
  CircleScissor: extend(BASE, {
1521
+ name: 'CircleScissor',
1489
1522
  iconContent: `${CIRCLE_ICON} ${PLUS_RECT}`,
1490
1523
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1491
1524
  }),
1492
1525
  'CircleScissor.FILL_INSIDE': extend(BASE, {
1526
+ name: 'CircleScissor.FILL_INSIDE',
1493
1527
  iconContent: `${CIRCLE_ICON} ${PLUS_RECT}`,
1494
1528
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1495
1529
  }),
1496
1530
  'CircleScissor.ERASE_OUTSIDE': extend(BASE, {
1531
+ name: 'CircleScissor.ERASE_OUTSIDE',
1497
1532
  iconContent: `${CIRCLE_ICON} ${MINUS_RECT}`,
1498
1533
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1499
1534
  }),
1500
1535
  'CircleScissor.FILL_OUTSIDE': extend(BASE, {
1536
+ name: 'CircleScissor.FILL_OUTSIDE',
1501
1537
  iconContent: `${CIRCLE_ICON} ${PLUS_RECT}`,
1502
1538
  viewBox: SEGMENTATION_CURSOR_BOUNDARIES,
1503
1539
  }),
1504
1540
  };
1505
1541
  function extend(base, values) {
1506
- return Object.assign(Object.create(base), values);
1542
+ return Object.assign(Object.create(base), {
1543
+ ...values,
1544
+ name: values.name || base.name,
1545
+ });
1507
1546
  }
1508
1547
  function registerCursor(toolName, iconContent, viewBox) {
1509
1548
  CursorSVG[toolName] = extend(BASE, {
@@ -1563,7 +1602,10 @@ function createSVGMouseCursor(descriptor, name, pointer, color, fallback) {
1563
1602
  return new SVGMouseCursor(createSVGIconUrl(descriptor, pointer, { color }), x, y, name, fallback);
1564
1603
  }
1565
1604
  function createSVGIconUrl(descriptor, pointer, options) {
1566
- return URL.createObjectURL(createSVGIconBlob(descriptor, pointer, options));
1605
+ const blob = createSVGIconBlob(descriptor, pointer, options);
1606
+ const url = URL.createObjectURL(blob);
1607
+ const urn = `${url}#${descriptor.name || 'unknown'}-${pointer ? 'pointer' : 'cursor'}`;
1608
+ return urn;
1567
1609
  }
1568
1610
  function createSVGIconBlob(descriptor, pointer, options) {
1569
1611
  const svgString = (pointer ? createSVGIconWithPointer : createSVGIcon)(descriptor, options);
@@ -495,15 +495,12 @@ function mouseDrag(evt) {
495
495
 
496
496
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/triggerAnnotationRender.js
497
497
  var triggerAnnotationRender = __webpack_require__(56069);
498
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
499
- var elementCursor = __webpack_require__(7001);
500
498
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/mouseEventHandlers/mouseMove.js
501
499
 
502
500
 
503
501
 
504
502
 
505
503
 
506
-
507
504
  const { Active: mouseMove_Active, Passive: mouseMove_Passive } = enums.ToolModes;
508
505
  function mouseMove(evt) {
509
506
  if (state/* state */.wk.isInteractingWithTool || state/* state */.wk.isMultiPartToolActive) {
@@ -535,9 +532,6 @@ function mouseMove(evt) {
535
532
  if (annotationsNeedToBeRedrawn === true) {
536
533
  (0,triggerAnnotationRender/* default */.A)(element);
537
534
  }
538
- if (!state/* state */.wk.isInteractingWithTool) {
539
- (0,elementCursor.initElementCursor)(element, null);
540
- }
541
535
  }
542
536
 
543
537
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/mouseEventHandlers/mouseUp.js
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[9212],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[1520],{
3
3
 
4
- /***/ 49212:
4
+ /***/ 71520:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -11,6 +11,7 @@ __webpack_require__.r(__webpack_exports__);
11
11
  __webpack_require__.d(__webpack_exports__, {
12
12
  ContextMenuController: () => (/* reexport */ ContextMenuController),
13
13
  CustomizableContextMenuTypes: () => (/* reexport */ types_namespaceObject),
14
+ PanelStudyBrowserHeader: () => (/* reexport */ PanelStudyBrowserHeader),
14
15
  StaticWadoClient: () => (/* reexport */ StaticWadoClient),
15
16
  callInputDialog: () => (/* reexport */ callInputDialog),
16
17
  callLabelAutocompleteDialog: () => (/* reexport */ callLabelAutocompleteDialog),
@@ -31,7 +32,8 @@ __webpack_require__.d(__webpack_exports__, {
31
32
  useToggleOneUpViewportGridStore: () => (/* reexport */ useToggleOneUpViewportGridStore/* useToggleOneUpViewportGridStore */.Y),
32
33
  useUIStateStore: () => (/* reexport */ useUIStateStore),
33
34
  useViewportGridStore: () => (/* reexport */ useViewportGridStore),
34
- useViewportsByPositionStore: () => (/* reexport */ useViewportsByPositionStore)
35
+ useViewportsByPositionStore: () => (/* reexport */ useViewportsByPositionStore),
36
+ utils: () => (/* reexport */ src_utils_namespaceObject)
35
37
  });
36
38
 
37
39
  // NAMESPACE OBJECT: ../../../extensions/default/src/CustomizableContextMenu/types.ts
@@ -48,6 +50,13 @@ __webpack_require__.d(utils_namespaceObject, {
48
50
  transferDenaturalizedDataset: () => (transferDenaturalizedDataset)
49
51
  });
50
52
 
53
+ // NAMESPACE OBJECT: ../../../extensions/default/src/utils/index.ts
54
+ var src_utils_namespaceObject = {};
55
+ __webpack_require__.r(src_utils_namespaceObject);
56
+ __webpack_require__.d(src_utils_namespaceObject, {
57
+ addIcon: () => (addIcon)
58
+ });
59
+
51
60
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
52
61
  var dicomweb_client_es = __webpack_require__(83562);
53
62
  // EXTERNAL MODULE: ../../core/src/index.ts + 71 modules
@@ -2826,8 +2835,8 @@ var dist = __webpack_require__(49348);
2826
2835
  var es = __webpack_require__(99993);
2827
2836
  // EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
2828
2837
  var react_router_dist = __webpack_require__(67435);
2829
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2481 modules
2830
- var ui_next_src = __webpack_require__(98441);
2838
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2483 modules
2839
+ var ui_next_src = __webpack_require__(35570);
2831
2840
  // EXTERNAL MODULE: ../../i18n/src/index.js + 150 modules
2832
2841
  var i18n_src = __webpack_require__(16076);
2833
2842
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/Toolbar.tsx
@@ -3047,8 +3056,8 @@ function ViewerHeader({
3047
3056
  hotkeyDefinitions,
3048
3057
  hotkeyDefaults
3049
3058
  } = hotkeysManager;
3050
- const versionNumber = "3.9.0-beta.110";
3051
- const commitHash = "05d41c52068a3b7ba249f15ecdf71838c352fd30";
3059
+ const versionNumber = "3.9.0-beta.111";
3060
+ const commitHash = "62b27488471c9d5979142e2d15872a85778b90ed";
3052
3061
  const menuOptions = [{
3053
3062
  title: t('Header:About'),
3054
3063
  icon: 'info',
@@ -3398,7 +3407,15 @@ function PanelStudyBrowserHeader({
3398
3407
  }, /*#__PURE__*/react.createElement("div", {
3399
3408
  className: "flex w-full items-center gap-[10px]"
3400
3409
  }, /*#__PURE__*/react.createElement("div", {
3401
- className: "flex h-full items-center justify-center"
3410
+ className: "flex items-center justify-center"
3411
+ }, /*#__PURE__*/react.createElement("div", {
3412
+ className: "text-primary-active flex items-center space-x-1"
3413
+ }, actionIcons.map((icon, index) => /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI[icon.iconName] || ui_next_src/* Icons */.FI.MissingIcon, {
3414
+ key: index,
3415
+ onClick: () => updateActionIconValue(icon),
3416
+ className: `cursor-pointer`
3417
+ })))), /*#__PURE__*/react.createElement("div", {
3418
+ className: "ml-auto flex h-full items-center justify-center"
3402
3419
  }, /*#__PURE__*/react.createElement(ui_next_src/* ToggleGroup */.OY, {
3403
3420
  type: "single",
3404
3421
  value: viewPresets.filter(preset => preset.selected)[0].id,
@@ -3411,15 +3428,7 @@ function PanelStudyBrowserHeader({
3411
3428
  "aria-label": viewPreset.id,
3412
3429
  value: viewPreset.id,
3413
3430
  className: "text-actions-primary"
3414
- }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI[viewPreset.iconName] || ui_next_src/* Icons */.FI.MissingIcon))))), /*#__PURE__*/react.createElement("div", {
3415
- className: "flex items-center justify-center"
3416
- }, /*#__PURE__*/react.createElement("div", {
3417
- className: "text-primary-active flex items-center space-x-1"
3418
- }, actionIcons.map((icon, index) => /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI[icon.iconName] || ui_next_src/* Icons */.FI.MissingIcon, {
3419
- key: index,
3420
- onClick: () => updateActionIconValue(icon),
3421
- className: `cursor-pointer`
3422
- }))))))));
3431
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI[viewPreset.iconName] || ui_next_src/* Icons */.FI.MissingIcon)))))))));
3423
3432
  }
3424
3433
 
3425
3434
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Panels/StudyBrowser/constants/actionIcons.ts
@@ -9530,6 +9539,17 @@ function promptLabelAnnotation({
9530
9539
  });
9531
9540
  }
9532
9541
  /* harmony default export */ const utils_promptLabelAnnotation = (promptLabelAnnotation);
9542
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/utils/addIcon.ts
9543
+
9544
+
9545
+
9546
+ /** Adds the icon to both ui and ui-next */
9547
+ function addIcon(name, icon) {
9548
+ (0,ui_src/* addIcon */.Xv)(name, icon);
9549
+ ui_next_src/* Icons */.FI.addIcon(name, icon);
9550
+ }
9551
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/utils/index.ts
9552
+
9533
9553
  ;// CONCATENATED MODULE: ../../../extensions/default/src/index.ts
9534
9554
 
9535
9555
 
@@ -9558,6 +9578,8 @@ function promptLabelAnnotation({
9558
9578
 
9559
9579
 
9560
9580
 
9581
+
9582
+
9561
9583
 
9562
9584
 
9563
9585