@ohif/app 3.10.0-beta.80 → 3.10.0-beta.82

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 (32) hide show
  1. package/dist/{1919.bundle.42923d5d2f27680765de.js → 1919.bundle.fac1a1d5ed506f80403a.js} +2 -2
  2. package/dist/{2701.bundle.835eb3e0006bcfb85469.js → 2701.bundle.151bc3d7c101e4f6f775.js} +2 -2
  3. package/dist/{4202.bundle.0bd2c1e4f2a3c55f4404.js → 4202.bundle.0caa856ac58e5c08f2b4.js} +1 -1
  4. package/dist/{4526.bundle.7d643ae29b3ac24f4972.js → 4526.bundle.6e1a7b8e12adcff47cdd.js} +2 -2
  5. package/dist/{4834.bundle.9ac6bfd81e47b81a7b74.js → 4834.bundle.432fad75b5bb54e884f3.js} +3 -3
  6. package/dist/{5247.bundle.91eadb4cf817594d55b1.js → 5247.bundle.d0400f68884686944810.js} +4 -4
  7. package/dist/{6027.bundle.6a8206ef297b237bc5fd.js → 6027.bundle.b98ce566f43e456b4173.js} +6 -6
  8. package/dist/{6734.bundle.24f57935b90568978f81.js → 6734.bundle.a7cd598e47f99e8d6373.js} +35 -18
  9. package/dist/{1395.bundle.8176cda4db90bc91a0b5.js → 7100.bundle.cd391522079b32dffcbb.js} +177 -49
  10. package/dist/{7197.bundle.96981a98a7d19cab8784.js → 7197.bundle.e7095f9357e769e319b7.js} +12 -9
  11. package/dist/{7490.bundle.88a76c5a01ec0bf89296.js → 7490.bundle.cd06395fa95af35af407.js} +17 -26
  12. package/dist/{7955.bundle.4c6f05831be2f3294de6.js → 7955.bundle.39b44e7c1ec2b58ebd68.js} +9 -8
  13. package/dist/{8008.bundle.ae19d8c87355be5c0698.js → 8008.bundle.097a655dd5e2ae358b1e.js} +14 -39
  14. package/dist/{810.bundle.4d39b796975922bf3bc4.js → 810.bundle.bf1e31f46b7a3651c17f.js} +2 -2
  15. package/dist/{8228.bundle.069dfcd6b11f7f774340.js → 8228.bundle.129df17dd2bc84f78f0f.js} +2 -2
  16. package/dist/{8259.bundle.f9b64a0bfd3a0dc7a01e.js → 8259.bundle.4bd912519dc7eb989a66.js} +9 -9
  17. package/dist/{8558.bundle.70ab1862605fdd0ab44a.js → 8558.bundle.2d0f8c3f1446f38b0389.js} +1 -1
  18. package/dist/{870.bundle.394dd6238e46baac8d75.js → 870.bundle.024b7cfba334275def69.js} +8 -8
  19. package/dist/{9026.bundle.b8a3e1be70effe7ebe86.js → 9026.bundle.41edb0323d93c66b4a50.js} +2 -2
  20. package/dist/{9551.bundle.0227d4d2f618b0bd8ddf.js → 9551.bundle.73179f386cbbf1f343c5.js} +8 -7
  21. package/dist/{9862.bundle.ab8b2aeb9a77e016d61d.js → 9862.bundle.f8c7e257c37da16d21ae.js} +2 -2
  22. package/dist/{9890.bundle.fa30fef9d54652d5980a.js → 9890.bundle.de10e3da396222898d2a.js} +2 -2
  23. package/dist/{app.bundle.dfc4886c9d805b72c3f6.js → app.bundle.60172a09ca51ec1a3ee2.js} +1066 -272
  24. package/dist/app.bundle.css +2 -2
  25. package/dist/index.html +1 -1
  26. package/dist/sw.js +1 -1
  27. package/package.json +18 -18
  28. /package/dist/{213.bundle.9ebbaab968df3804c41d.js → 213.bundle.fa2e8e690664bf6be377.js} +0 -0
  29. /package/dist/{2424.bundle.6fced125a11549e7a7b0.js → 2424.bundle.b4ac6b4c605850932c35.js} +0 -0
  30. /package/dist/{2825.bundle.11a5f9c94fce2eaa6011.js → 2825.bundle.45d5a8895b6c835c16ae.js} +0 -0
  31. /package/dist/{5770.bundle.803fdc3f05ffbcb07763.js → 5770.bundle.5eb1bc6bbde0faa09847.js} +0 -0
  32. /package/dist/{6201.bundle.09453cb0bc5bc9071380.js → 6201.bundle.615164b109931db9bcdb.js} +0 -0
@@ -944,8 +944,8 @@ const commandsModule = ({
944
944
  var react = __webpack_require__(86326);
945
945
  // EXTERNAL MODULE: ../../ui/src/index.js + 691 modules
946
946
  var ui_src = __webpack_require__(32907);
947
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2624 modules
948
- var ui_next_src = __webpack_require__(18817);
947
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2637 modules
948
+ var ui_next_src = __webpack_require__(52441);
949
949
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicVolumeControls.tsx
950
950
  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); }
951
951
 
@@ -29,8 +29,8 @@ var ui_src = __webpack_require__(32907);
29
29
  var createReferencedImageDisplaySet = __webpack_require__(92643);
30
30
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 117 modules
31
31
  var cornerstone_src = __webpack_require__(7490);
32
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2624 modules
33
- var ui_next_src = __webpack_require__(18817);
32
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2637 modules
33
+ var ui_next_src = __webpack_require__(52441);
34
34
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-sr/src/components/OHIFCornerstoneSRMeasurementViewport.tsx
35
35
  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); }
36
36
 
@@ -12,7 +12,7 @@ __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
13
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86326);
14
14
  /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32907);
15
- /* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18817);
15
+ /* harmony import */ var _ohif_ui_next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52441);
16
16
  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); }
17
17
 
18
18
 
@@ -18,8 +18,8 @@ var react = __webpack_require__(86326);
18
18
  var es = __webpack_require__(99993);
19
19
  // EXTERNAL MODULE: ../../ui/src/index.js + 691 modules
20
20
  var src = __webpack_require__(32907);
21
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2624 modules
22
- var ui_next_src = __webpack_require__(18817);
21
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2637 modules
22
+ var ui_next_src = __webpack_require__(52441);
23
23
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
24
24
  function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
25
25
  const tools = customizationService.getCustomization('cornerstone.overlayViewportTools');
@@ -27,7 +27,7 @@ const id = package_namespaceObject.UU;
27
27
 
28
28
  const toolbarButtons = [{
29
29
  id: 'MeasurementTools',
30
- uiType: 'ohif.splitButton',
30
+ uiType: 'ohif.toolButtonList',
31
31
  props: {
32
32
  groupId: 'MeasurementTools',
33
33
  // group evaluate to determine which item should move to the top
@@ -147,7 +147,7 @@ const toolbarButtons = [{
147
147
  }
148
148
  }, {
149
149
  id: 'dragPan',
150
- uiType: 'ohif.radioGroup',
150
+ uiType: 'ohif.toolButton',
151
151
  props: {
152
152
  icon: 'tool-move',
153
153
  label: 'Pan',
@@ -162,7 +162,7 @@ const toolbarButtons = [{
162
162
  }
163
163
  }, {
164
164
  id: 'TagBrowser',
165
- uiType: 'ohif.radioGroup',
165
+ uiType: 'ohif.toolButton',
166
166
  props: {
167
167
  icon: 'dicom-tag-browser',
168
168
  label: 'Dicom Tag Browser',
@@ -20,8 +20,8 @@ const id = package_namespaceObject.UU;
20
20
 
21
21
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
22
22
  var react = __webpack_require__(86326);
23
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2624 modules
24
- var src = __webpack_require__(18817);
23
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2637 modules
24
+ var src = __webpack_require__(52441);
25
25
  // EXTERNAL MODULE: ../../core/src/index.ts + 73 modules
26
26
  var core_src = __webpack_require__(10532);
27
27
  // EXTERNAL MODULE: ../../ui/src/index.js + 691 modules
@@ -1381,8 +1381,8 @@ MicroscopyService.REGISTRATION = servicesManager => {
1381
1381
 
1382
1382
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
1383
1383
  var dcmjs_es = __webpack_require__(5842);
1384
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 133 modules
1385
- var default_src = __webpack_require__(91395);
1384
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 135 modules
1385
+ var default_src = __webpack_require__(37100);
1386
1386
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/DEVICE_OBSERVER_UID.js
1387
1387
  // We need to define a UID for this extension as a device, and it should be the same for all saves:
1388
1388
 
@@ -48,7 +48,7 @@ function _createSetToolActiveCommands(toolName, toolGroupIds = ['default', 'mpr'
48
48
  }
49
49
  const toolbarButtons = [{
50
50
  id: 'MeasurementTools',
51
- uiType: 'ohif.splitButton',
51
+ uiType: 'ohif.toolButtonList',
52
52
  props: {
53
53
  groupId: 'MeasurementTools',
54
54
  evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList',
@@ -89,7 +89,7 @@ const toolbarButtons = [{
89
89
  }
90
90
  }, {
91
91
  id: 'Zoom',
92
- uiType: 'ohif.radioGroup',
92
+ uiType: 'ohif.toolButton',
93
93
  props: {
94
94
  icon: 'tool-zoom',
95
95
  label: 'Zoom',
@@ -98,7 +98,7 @@ const toolbarButtons = [{
98
98
  }
99
99
  }, {
100
100
  id: 'WindowLevel',
101
- uiType: 'ohif.splitButton',
101
+ uiType: 'ohif.toolButtonList',
102
102
  props: {
103
103
  groupId: 'WindowLevel',
104
104
  primary: core_src/* ToolbarService */.hx.createButton({
@@ -118,7 +118,7 @@ const toolbarButtons = [{
118
118
  }
119
119
  }, {
120
120
  id: 'Pan',
121
- uiType: 'ohif.radioGroup',
121
+ uiType: 'ohif.toolButton',
122
122
  props: {
123
123
  icon: 'tool-move',
124
124
  label: 'Pan',
@@ -127,7 +127,7 @@ const toolbarButtons = [{
127
127
  }
128
128
  }, {
129
129
  id: 'Capture',
130
- uiType: 'ohif.radioGroup',
130
+ uiType: 'ohif.toolButton',
131
131
  props: {
132
132
  icon: 'tool-capture',
133
133
  label: 'Capture',
@@ -153,7 +153,7 @@ const toolbarButtons = [{
153
153
  }
154
154
  }, {
155
155
  id: 'MoreTools',
156
- uiType: 'ohif.splitButton',
156
+ uiType: 'ohif.toolButtonList',
157
157
  props: {
158
158
  groupId: 'MoreTools',
159
159
  evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList',
@@ -373,7 +373,7 @@ const setToolActiveToolbar = {
373
373
  };
374
374
  const toolbarButtons = [{
375
375
  id: 'MeasurementTools',
376
- uiType: 'ohif.splitButton',
376
+ uiType: 'ohif.toolButtonList',
377
377
  props: {
378
378
  groupId: 'MeasurementTools',
379
379
  // group evaluate to determine which item should move to the top
@@ -457,7 +457,7 @@ const toolbarButtons = [{
457
457
  }
458
458
  }, {
459
459
  id: 'Zoom',
460
- uiType: 'ohif.radioGroup',
460
+ uiType: 'ohif.toolButton',
461
461
  props: {
462
462
  icon: 'tool-zoom',
463
463
  label: 'Zoom',
@@ -468,7 +468,7 @@ const toolbarButtons = [{
468
468
  // Window Level
469
469
  {
470
470
  id: 'WindowLevel',
471
- uiType: 'ohif.radioGroup',
471
+ uiType: 'ohif.toolButton',
472
472
  props: {
473
473
  icon: 'tool-window-level',
474
474
  label: 'Window Level',
@@ -482,7 +482,7 @@ const toolbarButtons = [{
482
482
  // Pan...
483
483
  {
484
484
  id: 'Pan',
485
- uiType: 'ohif.radioGroup',
485
+ uiType: 'ohif.toolButton',
486
486
  props: {
487
487
  type: 'tool',
488
488
  icon: 'tool-move',
@@ -492,7 +492,7 @@ const toolbarButtons = [{
492
492
  }
493
493
  }, {
494
494
  id: 'TrackballRotate',
495
- uiType: 'ohif.radioGroup',
495
+ uiType: 'ohif.toolButton',
496
496
  props: {
497
497
  type: 'tool',
498
498
  icon: 'tool-3d-rotate',
@@ -505,7 +505,7 @@ const toolbarButtons = [{
505
505
  }
506
506
  }, {
507
507
  id: 'Capture',
508
- uiType: 'ohif.radioGroup',
508
+ uiType: 'ohif.toolButton',
509
509
  props: {
510
510
  icon: 'tool-capture',
511
511
  label: 'Capture',
@@ -525,7 +525,7 @@ const toolbarButtons = [{
525
525
  }
526
526
  }, {
527
527
  id: 'Crosshairs',
528
- uiType: 'ohif.radioGroup',
528
+ uiType: 'ohif.toolButton',
529
529
  props: {
530
530
  type: 'tool',
531
531
  icon: 'tool-crosshair',
@@ -558,7 +558,7 @@ const ReferenceLinesListeners = [{
558
558
  }];
559
559
  const moreTools = [{
560
560
  id: 'MoreTools',
561
- uiType: 'ohif.splitButton',
561
+ uiType: 'ohif.toolButtonList',
562
562
  props: {
563
563
  groupId: 'MoreTools',
564
564
  evaluate: 'evaluate.group.promoteToPrimaryIfCornerstoneToolNotActiveInTheList',
@@ -841,9 +841,7 @@ function modeFactory({
841
841
  const {
842
842
  measurementService,
843
843
  toolbarService,
844
- toolGroupService,
845
- panelService,
846
- segmentationService
844
+ toolGroupService
847
845
  } = servicesManager.services;
848
846
  measurementService.clearMeasurements();
849
847
 
@@ -854,13 +852,32 @@ function modeFactory({
854
852
 
855
853
  // // ActivatePanel event trigger for when a segmentation or measurement is added.
856
854
  // // Do not force activation so as to respect the state the user may have left the UI in.
857
- _activatePanelTriggersSubscriptions = [...panelService.addActivatePanelTriggers(cornerstone.segmentation, [{
858
- sourcePubSubService: segmentationService,
859
- sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED]
860
- }], true), ...panelService.addActivatePanelTriggers(tracked.measurements, [{
861
- sourcePubSubService: measurementService,
862
- sourceEvents: [measurementService.EVENTS.MEASUREMENT_ADDED, measurementService.EVENTS.RAW_MEASUREMENT_ADDED]
863
- }], true), true];
855
+ // _activatePanelTriggersSubscriptions = [
856
+ // ...panelService.addActivatePanelTriggers(
857
+ // cornerstone.segmentation,
858
+ // [
859
+ // {
860
+ // sourcePubSubService: segmentationService,
861
+ // sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED],
862
+ // },
863
+ // ],
864
+ // true
865
+ // ),
866
+ // ...panelService.addActivatePanelTriggers(
867
+ // tracked.measurements,
868
+ // [
869
+ // {
870
+ // sourcePubSubService: measurementService,
871
+ // sourceEvents: [
872
+ // measurementService.EVENTS.MEASUREMENT_ADDED,
873
+ // measurementService.EVENTS.RAW_MEASUREMENT_ADDED,
874
+ // ],
875
+ // },
876
+ // ],
877
+ // true
878
+ // ),
879
+ // true,
880
+ // ];
864
881
  },
865
882
  onModeExit: ({
866
883
  servicesManager
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[1395],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[7100],{
3
3
 
4
- /***/ 91395:
4
+ /***/ 37100:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -2854,8 +2854,8 @@ var state = __webpack_require__(45981);
2854
2854
  var dist = __webpack_require__(4194);
2855
2855
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
2856
2856
  var es = __webpack_require__(99993);
2857
- // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2624 modules
2858
- var ui_next_src = __webpack_require__(18817);
2857
+ // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2637 modules
2858
+ var ui_next_src = __webpack_require__(52441);
2859
2859
  // EXTERNAL MODULE: ../../i18n/src/index.js + 150 modules
2860
2860
  var i18n_src = __webpack_require__(16076);
2861
2861
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/Toolbar.tsx
@@ -2876,7 +2876,7 @@ function Toolbar({
2876
2876
  if (!toolbarButtons.length) {
2877
2877
  return null;
2878
2878
  }
2879
- return /*#__PURE__*/react.createElement(react.Fragment, null, toolbarButtons.map(toolDef => {
2879
+ return /*#__PURE__*/react.createElement(react.Fragment, null, toolbarButtons?.map(toolDef => {
2880
2880
  if (!toolDef) {
2881
2881
  return null;
2882
2882
  }
@@ -2914,7 +2914,6 @@ function usePatientInfo(servicesManager) {
2914
2914
  PatientDOB: ''
2915
2915
  });
2916
2916
  const [isMixedPatients, setIsMixedPatients] = (0,react.useState)(false);
2917
- const displaySets = displaySetService.getActiveDisplaySets();
2918
2917
  const checkMixedPatients = PatientID => {
2919
2918
  const displaySets = displaySetService.getActiveDisplaySets();
2920
2919
  let isMixedPatients = false;
@@ -2929,8 +2928,13 @@ function usePatientInfo(servicesManager) {
2929
2928
  });
2930
2929
  setIsMixedPatients(isMixedPatients);
2931
2930
  };
2932
- const updatePatientInfo = () => {
2933
- const displaySet = displaySets[0];
2931
+ const updatePatientInfo = ({
2932
+ displaySetsAdded
2933
+ }) => {
2934
+ if (!displaySetsAdded.length) {
2935
+ return;
2936
+ }
2937
+ const displaySet = displaySetsAdded[0];
2934
2938
  const instance = displaySet?.instances?.[0] || displaySet?.instance;
2935
2939
  if (!instance) {
2936
2940
  return;
@@ -2944,12 +2948,9 @@ function usePatientInfo(servicesManager) {
2944
2948
  checkMixedPatients(instance.PatientID || null);
2945
2949
  };
2946
2950
  (0,react.useEffect)(() => {
2947
- const subscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_ADDED, () => updatePatientInfo());
2951
+ const subscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_ADDED, props => updatePatientInfo(props));
2948
2952
  return () => subscription.unsubscribe();
2949
2953
  }, []);
2950
- (0,react.useEffect)(() => {
2951
- updatePatientInfo();
2952
- }, [displaySets]);
2953
2954
  return {
2954
2955
  patientInfo,
2955
2956
  isMixedPatients
@@ -3073,8 +3074,8 @@ function ViewerHeader({
3073
3074
  hotkeyDefinitions,
3074
3075
  hotkeyDefaults
3075
3076
  } = hotkeysManager;
3076
- const versionNumber = "3.10.0-beta.80";
3077
- const commitHash = "054b262e9cbeb0f44de65d05641efe1e8944a4f5";
3077
+ const versionNumber = "3.10.0-beta.82";
3078
+ const commitHash = "f10683c667ea8f20c8d3e99ee0fb206522757b71";
3078
3079
  const menuOptions = [{
3079
3080
  title: t('Header:About'),
3080
3081
  icon: 'info',
@@ -3363,13 +3364,13 @@ const useResizablePanels = (leftPanelClosed, setLeftPanelClosed, rightPanelClose
3363
3364
  // And by virtue of the dependency on the minimum size state variables, this code
3364
3365
  // is executed on the render following an update of the minimum percentage sizes
3365
3366
  // for a panel.
3366
- if (!resizableLeftPanelAPIRef.current.isCollapsed()) {
3367
+ if (!resizableLeftPanelAPIRef.current?.isCollapsed()) {
3367
3368
  const leftSize = getPercentageSize(leftPanelExpandedWidth + panelGroupDefinition.shared.expandedInsideBorderSize);
3368
- resizableLeftPanelAPIRef.current.resize(leftSize);
3369
+ resizableLeftPanelAPIRef.current?.resize(leftSize);
3369
3370
  }
3370
- if (!resizableRightPanelAPIRef.current.isCollapsed()) {
3371
+ if (!resizableRightPanelAPIRef?.current?.isCollapsed()) {
3371
3372
  const rightSize = getPercentageSize(rightPanelExpandedWidth + panelGroupDefinition.shared.expandedInsideBorderSize);
3372
- resizableRightPanelAPIRef.current.resize(rightSize);
3373
+ resizableRightPanelAPIRef?.current?.resize(rightSize);
3373
3374
  }
3374
3375
 
3375
3376
  // This observer kicks in when the ViewportLayout resizable panel group
@@ -3418,7 +3419,7 @@ const useResizablePanels = (leftPanelClosed, setLeftPanelClosed, rightPanelClose
3418
3419
  setLeftPanelClosed(false);
3419
3420
  }, [setLeftPanelClosed]);
3420
3421
  const onLeftPanelResize = (0,react.useCallback)(size => {
3421
- if (!resizablePanelGroupElemRef?.current || resizableLeftPanelAPIRef.current.isCollapsed()) {
3422
+ if (!resizablePanelGroupElemRef?.current || resizableLeftPanelAPIRef.current?.isCollapsed()) {
3422
3423
  return;
3423
3424
  }
3424
3425
  const newExpandedWidth = getExpandedPixelWidth(size);
@@ -3440,7 +3441,7 @@ const useResizablePanels = (leftPanelClosed, setLeftPanelClosed, rightPanelClose
3440
3441
  setRightPanelClosed(false);
3441
3442
  }, [setRightPanelClosed]);
3442
3443
  const onRightPanelResize = (0,react.useCallback)(size => {
3443
- if (!resizablePanelGroupElemRef?.current || resizableRightPanelAPIRef.current.isCollapsed()) {
3444
+ if (!resizablePanelGroupElemRef?.current || resizableRightPanelAPIRef?.current?.isCollapsed()) {
3444
3445
  return;
3445
3446
  }
3446
3447
  const newExpandedWidth = getExpandedPixelWidth(size);
@@ -3460,7 +3461,7 @@ const useResizablePanels = (leftPanelClosed, setLeftPanelClosed, rightPanelClose
3460
3461
  const getPercentageSize = pixelSize => {
3461
3462
  const {
3462
3463
  width: panelGroupWidth
3463
- } = resizablePanelGroupElemRef.current.getBoundingClientRect();
3464
+ } = resizablePanelGroupElemRef.current?.getBoundingClientRect();
3464
3465
  return pixelSize / (panelGroupWidth - resizableHandlesWidth.current) * 100;
3465
3466
  };
3466
3467
 
@@ -3471,7 +3472,7 @@ const useResizablePanels = (leftPanelClosed, setLeftPanelClosed, rightPanelClose
3471
3472
  const getExpandedPixelWidth = percentageSize => {
3472
3473
  const {
3473
3474
  width: panelGroupWidth
3474
- } = resizablePanelGroupElemRef.current.getBoundingClientRect();
3475
+ } = resizablePanelGroupElemRef.current?.getBoundingClientRect();
3475
3476
  const expandedWidth = percentageSize / 100 * (panelGroupWidth - resizableHandlesWidth.current) - panelGroupDefinition.shared.expandedInsideBorderSize;
3476
3477
  return expandedWidth;
3477
3478
  };
@@ -3780,6 +3781,7 @@ const defaultViewPresets = [{
3780
3781
 
3781
3782
 
3782
3783
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Components/MoreDropdownMenu.tsx
3784
+ function MoreDropdownMenu_extends() { return MoreDropdownMenu_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; }, MoreDropdownMenu_extends.apply(null, arguments); }
3783
3785
 
3784
3786
 
3785
3787
 
@@ -3800,6 +3802,14 @@ const getMenuItemsDefault = ({
3800
3802
  // This allows replacing the default child item for menus, whereas the entire
3801
3803
  // getMenuItems can also be replaced by providing it to the MoreDropdownMenu
3802
3804
  const menuContent = customizationService.getCustomization('ohif.menuContent');
3805
+
3806
+ // Default menu item component if none is provided through customization
3807
+ const DefaultMenuItem = ({
3808
+ item
3809
+ }) => /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
3810
+ onClick: item.onClick
3811
+ }, item.label || item.title);
3812
+ const MenuItemComponent = menuContent?.content || DefaultMenuItem;
3803
3813
  return /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuContent */.SQ, {
3804
3814
  hideWhenDetached: true,
3805
3815
  align: "start",
@@ -3807,13 +3817,12 @@ const getMenuItemsDefault = ({
3807
3817
  e.stopPropagation();
3808
3818
  e.preventDefault();
3809
3819
  }
3810
- }, items?.map((item, index) => /*#__PURE__*/react.createElement(menuContent.content, {
3820
+ }, items?.map((item, index) => /*#__PURE__*/react.createElement(MenuItemComponent, MoreDropdownMenu_extends({
3811
3821
  key: item.id || `menu-item-${index}`,
3812
- item,
3813
- commandsManager,
3814
- servicesManager,
3815
- ...props
3816
- })));
3822
+ item: item,
3823
+ commandsManager: commandsManager,
3824
+ servicesManager: servicesManager
3825
+ }, props))));
3817
3826
  };
3818
3827
 
3819
3828
  /**
@@ -5119,13 +5128,6 @@ function getSopClassHandlerModule(appContextParam) {
5119
5128
  }];
5120
5129
  }
5121
5130
  /* harmony default export */ const src_getSopClassHandlerModule = (getSopClassHandlerModule);
5122
- ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarDivider.tsx
5123
-
5124
- function ToolbarDivider() {
5125
- return /*#__PURE__*/react.createElement("span", {
5126
- className: "border-common-dark mx-2 h-8 w-4 self-center border-l"
5127
- });
5128
- }
5129
5131
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarLayoutSelector.tsx
5130
5132
  function ToolbarLayoutSelector_extends() { return ToolbarLayoutSelector_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; }, ToolbarLayoutSelector_extends.apply(null, arguments); }
5131
5133
 
@@ -5268,6 +5270,13 @@ LayoutSelector.propTypes = {
5268
5270
  servicesManager: (prop_types_default()).object.isRequired
5269
5271
  };
5270
5272
  /* harmony default export */ const ToolbarLayoutSelector = (ToolbarLayoutSelectorWithServices);
5273
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarDivider.tsx
5274
+
5275
+ function ToolbarDivider() {
5276
+ return /*#__PURE__*/react.createElement("span", {
5277
+ className: "border-common-dark mx-2 h-8 w-4 self-center border-l"
5278
+ });
5279
+ }
5271
5280
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx
5272
5281
  function ToolbarSplitButtonWithServices_extends() { return ToolbarSplitButtonWithServices_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; }, ToolbarSplitButtonWithServices_extends.apply(null, arguments); }
5273
5282
 
@@ -5458,18 +5467,120 @@ function ProgressDropdownWithService({
5458
5467
  onChange: handleDropdownChange
5459
5468
  });
5460
5469
  }
5470
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolButtonListWrapper.tsx
5471
+ function ToolButtonListWrapper_extends() { return ToolButtonListWrapper_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; }, ToolButtonListWrapper_extends.apply(null, arguments); }
5472
+
5473
+
5474
+ /**
5475
+ * Wraps the ToolButtonList component to handle the OHIF toolbar button structure
5476
+ * @param props - Component props
5477
+ * @returns Component
5478
+ * // test
5479
+ */
5480
+ function ToolButtonListWrapper({
5481
+ groupId,
5482
+ primary,
5483
+ items,
5484
+ onInteraction
5485
+ }) {
5486
+ return /*#__PURE__*/react.createElement(ui_next_src/* ToolButtonList */.XI, null, /*#__PURE__*/react.createElement(ui_next_src/* ToolButtonListDefault */.mk, null, /*#__PURE__*/react.createElement("div", {
5487
+ "data-cy": `${groupId}-split-button-primary`,
5488
+ "data-tool": primary.id,
5489
+ "data-active": primary.isActive
5490
+ }, /*#__PURE__*/react.createElement(ui_next_src/* ToolButton */.T0, ToolButtonListWrapper_extends({}, primary, {
5491
+ onInteraction: ({
5492
+ itemId
5493
+ }) => onInteraction?.({
5494
+ groupId,
5495
+ itemId,
5496
+ commands: primary.commands
5497
+ }),
5498
+ className: primary.className
5499
+ })))), /*#__PURE__*/react.createElement(ui_next_src/* ToolButtonListDivider */.It, {
5500
+ className: primary.isActive ? 'opacity-0' : 'opacity-100'
5501
+ }), /*#__PURE__*/react.createElement("div", {
5502
+ "data-cy": `${groupId}-split-button-secondary`
5503
+ }, /*#__PURE__*/react.createElement(ui_next_src/* ToolButtonListDropDown */.oI, null, items.map(item => /*#__PURE__*/react.createElement(ui_next_src/* ToolButtonListItem */.U$, ToolButtonListWrapper_extends({
5504
+ key: item.id
5505
+ }, item, {
5506
+ "data-cy": item.id,
5507
+ "data-tool": item.id,
5508
+ "data-active": item.isActive,
5509
+ onSelect: () => onInteraction?.({
5510
+ groupId,
5511
+ itemId: item.id,
5512
+ commands: item.commands
5513
+ })
5514
+ }), /*#__PURE__*/react.createElement("span", {
5515
+ className: "pl-1"
5516
+ }, item.label || item.tooltip || item.id))))));
5517
+ }
5518
+ // EXTERNAL MODULE: ../../../node_modules/classnames/index.js
5519
+ var classnames = __webpack_require__(55530);
5520
+ var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
5521
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolBoxWrapper.tsx
5522
+ function ToolBoxWrapper_extends() { return ToolBoxWrapper_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; }, ToolBoxWrapper_extends.apply(null, arguments); }
5523
+
5524
+
5525
+
5526
+
5527
+ /**
5528
+ * Wraps the ToolButtonList component to handle the OHIF toolbar button structure
5529
+ * @param props - Component props
5530
+ * @returns Component
5531
+ */
5532
+ function ToolBoxButtonGroupWrapper({
5533
+ groupId,
5534
+ items,
5535
+ onInteraction,
5536
+ ...props
5537
+ }) {
5538
+ if (!items || !groupId) {
5539
+ return null;
5540
+ }
5541
+ return /*#__PURE__*/react.createElement("div", {
5542
+ className: "bg-popover flex flex-row space-x-1 rounded-md px-0 py-0"
5543
+ }, items.map(item => /*#__PURE__*/react.createElement(ui_next_src/* ToolButton */.T0, ToolBoxWrapper_extends({}, item, {
5544
+ key: item.id,
5545
+ size: "small",
5546
+ className: props.disabled && 'text-primary',
5547
+ onInteraction: () => onInteraction?.({
5548
+ groupId,
5549
+ itemId: item.id,
5550
+ commands: item.commands
5551
+ })
5552
+ }))));
5553
+ }
5554
+ function ToolBoxButtonWrapper({
5555
+ onInteraction,
5556
+ ...props
5557
+ }) {
5558
+ return /*#__PURE__*/react.createElement("div", {
5559
+ className: "bg-popover flex flex-row rounded-md px-0 py-0"
5560
+ }, /*#__PURE__*/react.createElement(ui_next_src/* ToolButton */.T0, ToolBoxWrapper_extends({}, props, {
5561
+ id: props.id,
5562
+ size: "small",
5563
+ className: classnames_default()(props.disabled && 'text-primary'),
5564
+ onInteraction: () => onInteraction?.({
5565
+ itemId: props.id,
5566
+ commands: props.commands
5567
+ })
5568
+ })));
5569
+ }
5461
5570
  ;// CONCATENATED MODULE: ../../../extensions/default/src/getToolbarModule.tsx
5462
5571
 
5463
5572
 
5464
5573
 
5465
5574
 
5575
+ // legacy
5576
+
5577
+
5578
+
5579
+
5580
+
5581
+ // new
5466
5582
 
5467
5583
 
5468
- const getClassName = isToggled => {
5469
- return {
5470
- className: isToggled ? '!text-primary-active' : '!text-common-bright hover:!bg-primary-dark hover:text-primary-light'
5471
- };
5472
- };
5473
5584
  function getToolbarModule({
5474
5585
  commandsManager,
5475
5586
  servicesManager
@@ -5477,25 +5588,43 @@ function getToolbarModule({
5477
5588
  const {
5478
5589
  cineService
5479
5590
  } = servicesManager.services;
5480
- return [{
5591
+ return [
5592
+ // new
5593
+ {
5594
+ name: 'ohif.toolButton',
5595
+ defaultComponent: ui_next_src/* ToolButton */.T0
5596
+ }, {
5597
+ name: 'ohif.toolButtonList',
5598
+ defaultComponent: ToolButtonListWrapper
5599
+ }, {
5600
+ name: 'ohif.toolBoxButtonGroup',
5601
+ defaultComponent: ToolBoxButtonGroupWrapper
5602
+ }, {
5603
+ name: 'ohif.toolBoxButton',
5604
+ defaultComponent: ToolBoxButtonWrapper
5605
+ },
5606
+ // legacy
5607
+ {
5481
5608
  name: 'ohif.radioGroup',
5482
5609
  defaultComponent: ui_src/* ToolbarButton */.IB
5610
+ }, {
5611
+ name: 'ohif.buttonGroup',
5612
+ defaultComponent: Toolbar_ToolbarButtonGroupWithServices
5483
5613
  }, {
5484
5614
  name: 'ohif.divider',
5485
5615
  defaultComponent: ToolbarDivider
5486
5616
  }, {
5487
5617
  name: 'ohif.splitButton',
5488
5618
  defaultComponent: Toolbar_ToolbarSplitButtonWithServices
5489
- }, {
5619
+ },
5620
+ // others
5621
+ {
5490
5622
  name: 'ohif.layoutSelector',
5491
5623
  defaultComponent: props => ToolbarLayoutSelector({
5492
5624
  ...props,
5493
5625
  commandsManager,
5494
5626
  servicesManager
5495
5627
  })
5496
- }, {
5497
- name: 'ohif.buttonGroup',
5498
- defaultComponent: Toolbar_ToolbarButtonGroupWithServices
5499
5628
  }, {
5500
5629
  name: 'ohif.progressDropdown',
5501
5630
  defaultComponent: ProgressDropdownWithService
@@ -5527,7 +5656,9 @@ function getToolbarModule({
5527
5656
  name: 'evaluate.cine',
5528
5657
  evaluate: () => {
5529
5658
  const isToggled = cineService.getState().isCineEnabled;
5530
- return getClassName(isToggled);
5659
+ return {
5660
+ className: ui_next_src/* utils.getToggledClassName */.Wp.getToggledClassName(isToggled)
5661
+ };
5531
5662
  }
5532
5663
  }];
5533
5664
  }
@@ -5902,9 +6033,6 @@ var lodash_debounce = __webpack_require__(62051);
5902
6033
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
5903
6034
  // EXTERNAL MODULE: ../../../node_modules/react-window/dist/index.esm.js
5904
6035
  var index_esm = __webpack_require__(28271);
5905
- // EXTERNAL MODULE: ../../../node_modules/classnames/index.js
5906
- var classnames = __webpack_require__(55530);
5907
- var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
5908
6036
  ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomTagBrowser/DicomTagTable.tsx
5909
6037
 
5910
6038