@ohif/app 3.13.0-beta.2 → 3.13.0-beta.21

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 (70) hide show
  1. package/dist/{1459.bundle.cd67aea5d65062345894.js → 1459.bundle.2f3d935de1ef66d49c9b.js} +5 -6
  2. package/dist/{147.bundle.37d627289453cb6c3937.js → 147.bundle.15c3dffbc73dab1085f5.js} +6 -5
  3. package/dist/{1608.bundle.0687c661f1c9edfb3b8a.js → 1608.bundle.7a4a3b49cae10f6ba2cf.js} +8 -8
  4. package/dist/{1927.bundle.3050588e95f43cf57cdd.js → 1927.bundle.be67b3aafe238ca9f191.js} +27 -38
  5. package/dist/{1933.bundle.03d69f1ec49e31942aa9.js → 1933.bundle.1b74cba28c11aaa349c1.js} +15 -16
  6. package/dist/{2018.bundle.0cc66d90549a02692f83.js → 2018.bundle.330c371c2152bc79a68e.js} +18 -19
  7. package/dist/{6347.bundle.784c48912700f281de1d.js → 2031.bundle.a17bc2d85cef3a9fea57.js} +13 -314
  8. package/dist/{2108.bundle.e84aa8d858d8c4f2413e.js → 2108.bundle.f1ef8e8746eb3936bb47.js} +567 -556
  9. package/dist/{213.bundle.c270b9cbfef1c3a6deeb.js → 213.bundle.83766bfd0ad91206ba20.js} +3 -5
  10. package/dist/{2424.bundle.9a15ea93fa8dfa6a6c29.js → 2424.bundle.8d41a94526449b9c27f2.js} +3 -5
  11. package/dist/{2516.bundle.1ea0988d309a757bb6da.js → 2516.bundle.f62228e9a800de8d4b31.js} +6 -6
  12. package/dist/{2701.bundle.12bd01a80a9f8ea4cd94.js → 2701.bundle.8abdc7f6578c00d4539f.js} +6 -6
  13. package/dist/{2842.bundle.860b9f10fcdd9656947a.js → 2816.bundle.838fa4d72921c026083c.js} +827 -2240
  14. package/dist/{3081.bundle.9c9d169bf2b4ac6e987f.js → 3081.bundle.69c2ed88c1fc66671e82.js} +237 -176
  15. package/dist/{1730.bundle.1a3a3ac5087af5ee5cf5.js → 3138.bundle.536017116b2a48fe8f59.js} +10 -304
  16. package/dist/{3461.bundle.375dd4b31216c8ef6b0c.js → 3461.bundle.b1c56af281517014477c.js} +19 -23
  17. package/dist/{4202.bundle.5a0f8e4004c5d8a68548.js → 4202.bundle.dd592e5575b8e302689a.js} +4 -4
  18. package/dist/{4019.bundle.83a604779f7da0101ced.js → 4287.bundle.571587a1d29d54203175.js} +237 -202
  19. package/dist/{5462.bundle.21beddaca145b7465c72.js → 4406.bundle.573d234b4641d23cf8db.js} +1083 -1308
  20. package/dist/{1403.bundle.3368c0f92547bc8b3148.js → 4507.bundle.2943a08dea2a96095e86.js} +10 -305
  21. package/dist/{4819.bundle.2ab7a41dbade682bcee9.js → 4819.bundle.b817d46688ec00d46826.js} +25 -26
  22. package/dist/{4775.bundle.cb49c11c62965c2807ef.js → 5015.bundle.ea7e3b295cd3ef134df2.js} +27 -331
  23. package/dist/{5028.bundle.82318fd632945aba4f27.js → 5028.bundle.b75c0bb0fa9a490055bd.js} +7 -9
  24. package/dist/{5261.bundle.6e1a017f8f1027557f5b.js → 5261.bundle.2655560097e9250eac44.js} +412 -345
  25. package/dist/{5457.bundle.e9733e0dc7c3ae46ea42.js → 5457.bundle.ea0a729d0bb45314d5ca.js} +16 -23
  26. package/dist/{5485.bundle.6603ea8ac3b639703e4d.js → 5485.bundle.8248a4caa4411103e190.js} +14 -29
  27. package/dist/{5491.bundle.2e01dd7ad29e4cc01bc1.js → 5491.bundle.4866d2ecb20dd089e071.js} +54 -51
  28. package/dist/{5802.bundle.3bf5e6b3ab330a594a47.js → 5802.bundle.70600f8f701ac920b932.js} +74 -16
  29. package/dist/5802.css +1 -1
  30. package/dist/{5830.bundle.b073c265c4fcea1afff3.js → 5830.bundle.791019deddd536980a11.js} +3 -3
  31. package/dist/{5858.bundle.ff6b340cf7457db76a1a.js → 5858.bundle.466e58128de344ab53f3.js} +90 -86
  32. package/dist/{6027.bundle.3e52391c5f4432911512.js → 6027.bundle.b9a666f05ac57e742979.js} +3 -5
  33. package/dist/{997.bundle.822b33e561263084e18c.js → 6280.bundle.6574101421b8a4ab6777.js} +1532 -952
  34. package/dist/{6354.bundle.c387737dc09c9cab4ff2.js → 6354.bundle.d8a592b03e9a5b7a66c2.js} +102 -96
  35. package/dist/{6376.bundle.9cb74d7bc08476e2f1a7.js → 6376.bundle.839c708f2fc41e76ee58.js} +6 -6
  36. package/dist/{6409.bundle.b36048896cb11c8571fb.js → 6409.bundle.24edbaa283b7c521b8f7.js} +73 -73
  37. package/dist/6939.bundle.41fbdef87597b5172ec6.js +3 -3
  38. package/dist/{7159.bundle.a5991a5d4f0dd8f1c95f.js → 7159.bundle.fb9df255868960f69765.js} +7 -5
  39. package/dist/{7190.bundle.e8f0193e0e06472f795c.js → 7190.bundle.6314b558746e394aeb0e.js} +40 -40
  40. package/dist/{732.bundle.6978ac30a1e36abf06db.js → 732.bundle.ea6f9d8504e37e01a208.js} +5 -13
  41. package/dist/{7431.bundle.b01791d10e6cf9f503b0.js → 7431.bundle.e6f5f5835a3c49e2309c.js} +28 -28
  42. package/dist/{7639.bundle.831b85eb99f966cefcb2.js → 7639.bundle.2e179ab85c66a6def98f.js} +3 -5
  43. package/dist/7758.bundle.c8d106364298e7d288f0.js +3 -3
  44. package/dist/{8094.bundle.5c44190a325ac23e3e5c.js → 8094.bundle.148a66619607e37cbf19.js} +3 -4
  45. package/dist/{8305.bundle.437d4dd008a2139dc96a.js → 8305.bundle.e621bc861f8c16092e7c.js} +9 -11
  46. package/dist/{6163.bundle.77ac55484671ce6159e6.js → 8499.bundle.59df69e1919739d6e444.js} +5 -300
  47. package/dist/8499.css +2 -0
  48. package/dist/{85.bundle.503f33be60625a46580d.js → 85.bundle.14430d53b13d7ff9f8a8.js} +3 -5
  49. package/dist/{8558.bundle.71c7bf070f41c6647704.js → 8558.bundle.288aabeb7473ee9d7312.js} +11 -309
  50. package/dist/{8583.bundle.4cb5dea918f010b8e56b.js → 8583.bundle.d0773ead34455cfa28d7.js} +16 -19
  51. package/dist/{4410.bundle.c5224cd7d6238a7d4660.js → 8665.bundle.056dcd3e86743de2526c.js} +3456 -1444
  52. package/dist/{9195.bundle.5c13bd1aef828d802142.js → 9195.bundle.902ab556e8909fa878a1.js} +95 -113
  53. package/dist/{7412.bundle.fab1742191b7fe937330.js → 9205.bundle.dca4f040999d069f1cc5.js} +3378 -1074
  54. package/dist/{3584.bundle.8cc0750425513433e9cc.js → 933.bundle.c8f45e1f380ad5a34e07.js} +264 -2219
  55. package/dist/{9845.bundle.255e7c7f7a88193b4e47.js → 9845.bundle.d52e8993eb5cde995219.js} +6 -6
  56. package/dist/{9862.bundle.3a8958a82c572015d25d.js → 9862.bundle.4704bce0c5b039dfdec3.js} +6 -4
  57. package/dist/{9927.bundle.9fdb8b442eb22aa97e73.js → 9927.bundle.006c8d2dda07109c4749.js} +3 -5
  58. package/dist/{app.bundle.7777a62215a4f90957f2.js → app.bundle.38dca800f336facdb28b.js} +65533 -64635
  59. package/dist/app.bundle.css +3 -3
  60. package/dist/{compute.bundle.64280c7af19ff567465f.js → compute.bundle.6bc9d64acadd16a85f59.js} +10 -22
  61. package/dist/{histogram-worker.bundle.d4e40a8018d2698b072e.js → histogram-worker.bundle.5b679ce4142c803c80a4.js} +11 -23
  62. package/dist/index.html +1 -1
  63. package/dist/{interpolation.bundle.c70cb95d164dc494e6dc.js → interpolation.bundle.072a28b303f2dbafe05c.js} +14 -26
  64. package/dist/{polySeg.bundle.a5aa9130b4191253c410.js → polySeg.bundle.41c40b57dd1b265fb425.js} +8 -20
  65. package/dist/sw.js +1 -1
  66. package/package.json +22 -21
  67. package/dist/3343.bundle.d7578ce8f75d158c0bab.js +0 -297
  68. /package/dist/{1730.css → 3138.css} +0 -0
  69. /package/dist/{3343.css → 4972.css} +0 -0
  70. /package/dist/{6163.css → 7829.css} +0 -0
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[3081],{
3
3
 
4
- /***/ 38007:
5
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4
+ /***/ 38007
5
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
6
 
7
7
 
8
8
  // EXPORTS
@@ -109,10 +109,10 @@ var useViewportRendering = __webpack_require__(47488);
109
109
 
110
110
 
111
111
 
112
- /***/ }),
112
+ /***/ },
113
113
 
114
- /***/ 9234:
115
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
114
+ /***/ 9234
115
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
116
116
 
117
117
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
118
118
  /* harmony export */ c: () => (/* binding */ useActiveViewportSegmentationRepresentations)
@@ -131,10 +131,10 @@ function useActiveViewportSegmentationRepresentations() {
131
131
  }
132
132
 
133
133
 
134
- /***/ }),
134
+ /***/ },
135
135
 
136
- /***/ 84535:
137
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
136
+ /***/ 84535
137
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
138
138
 
139
139
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
140
140
  /* harmony export */ R: () => (/* binding */ useMeasurementTracking)
@@ -238,10 +238,10 @@ function useMeasurementTracking({
238
238
  }
239
239
  /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (useMeasurementTracking)));
240
240
 
241
- /***/ }),
241
+ /***/ },
242
242
 
243
- /***/ 19214:
244
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
243
+ /***/ 19214
244
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
245
245
 
246
246
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
247
247
  /* harmony export */ d: () => (/* binding */ useMeasurements)
@@ -348,10 +348,10 @@ function useMeasurements({
348
348
  return displayMeasurements;
349
349
  }
350
350
 
351
- /***/ }),
351
+ /***/ },
352
352
 
353
- /***/ 73421:
354
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
353
+ /***/ 73421
354
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
355
355
 
356
356
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
357
357
  /* harmony export */ j: () => (/* binding */ useSegmentations)
@@ -483,10 +483,10 @@ function useSegmentations(options) {
483
483
  return segmentations;
484
484
  }
485
485
 
486
- /***/ }),
486
+ /***/ },
487
487
 
488
- /***/ 10225:
489
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
488
+ /***/ 10225
489
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
490
490
 
491
491
 
492
492
  // EXPORTS
@@ -805,10 +805,10 @@ function useViewportDisplaySets(viewportId, options) {
805
805
  return result;
806
806
  }
807
807
 
808
- /***/ }),
808
+ /***/ },
809
809
 
810
- /***/ 47488:
811
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
810
+ /***/ 47488
811
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
812
812
 
813
813
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
814
814
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
@@ -1473,10 +1473,10 @@ function getCustomizationData(customizationService) {
1473
1473
  };
1474
1474
  }
1475
1475
 
1476
- /***/ }),
1476
+ /***/ },
1477
1477
 
1478
- /***/ 79063:
1479
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1478
+ /***/ 79063
1479
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1480
1480
 
1481
1481
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1482
1482
  /* harmony export */ L: () => (/* binding */ useViewportSegmentations)
@@ -1657,74 +1657,36 @@ function useViewportSegmentations({
1657
1657
  return segmentationsWithRepresentations;
1658
1658
  }
1659
1659
 
1660
- /***/ }),
1660
+ /***/ },
1661
1661
 
1662
- /***/ 63081:
1663
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1662
+ /***/ 63081
1663
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1664
1664
 
1665
- // ESM COMPAT FLAG
1666
- __webpack_require__.r(__webpack_exports__);
1667
1665
 
1668
1666
  // EXPORTS
1669
1667
  __webpack_require__.d(__webpack_exports__, {
1670
- AccordionGroup: () => (/* reexport */ AccordionGroup),
1671
- CloneChildren: () => (/* reexport */ CloneChildren),
1672
- Colorbar: () => (/* reexport */ Colorbar),
1673
- Colormap: () => (/* reexport */ Colormap),
1674
- CornerstoneViewportDownloadForm: () => (/* reexport */ utils_CornerstoneViewportDownloadForm),
1675
- DYNAMIC_VOLUME_LOADER_SCHEME: () => (/* reexport */ DYNAMIC_VOLUME_LOADER_SCHEME),
1676
- DicomUpload: () => (/* reexport */ DicomUpload_DicomUpload),
1677
- Enums: () => (/* reexport */ enums),
1678
- ImageOverlayViewerTool: () => (/* reexport */ tools_ImageOverlayViewerTool),
1679
- MeasumentsMenu: () => (/* reexport */ MeasumentsMenu),
1680
- MeasurementOrAdditionalFindingSets: () => (/* reexport */ MeasurementOrAdditionalFindingSets),
1681
- MeasurementsOrAdditionalFindings: () => (/* reexport */ MeasurementsOrAdditionalFindings),
1682
- OHIFCornerstoneViewport: () => (/* binding */ OHIFCornerstoneViewport),
1683
- PanelMeasurement: () => (/* reexport */ PanelMeasurement),
1684
- PanelSegmentation: () => (/* reexport */ PanelSegmentation),
1685
- PlanarFreehandROI: () => (/* reexport */ measurementServiceMappings_PlanarFreehandROI),
1686
- RectangleROI: () => (/* reexport */ measurementServiceMappings_RectangleROI),
1687
- SeriesMeasurementTrigger: () => (/* reexport */ SeriesMeasurementTrigger),
1688
- SeriesMeasurements: () => (/* reexport */ SeriesMeasurements),
1689
- StudyMeasurements: () => (/* reexport */ StudyMeasurements),
1690
- StudyMeasurementsActions: () => (/* reexport */ StudyMeasurementsActions),
1691
- StudySummaryFromMetadata: () => (/* reexport */ StudySummaryFromMetadata),
1692
- Types: () => (/* reexport */ types_namespaceObject),
1693
- VOLUME_LOADER_SCHEME: () => (/* reexport */ VOLUME_LOADER_SCHEME),
1694
- VolumeLighting: () => (/* reexport */ VolumeLighting),
1695
- VolumeRenderingOptions: () => (/* reexport */ VolumeRenderingOptions),
1696
- VolumeRenderingPresets: () => (/* reexport */ VolumeRenderingPresets),
1697
- VolumeRenderingQuality: () => (/* reexport */ VolumeRenderingQuality),
1698
- VolumeShade: () => (/* reexport */ VolumeShade),
1699
- VolumeShift: () => (/* reexport */ VolumeShift),
1700
- WindowLevel: () => (/* reexport */ WindowLevel),
1701
- WindowLevelActionMenu: () => (/* reexport */ WindowLevelActionMenu),
1702
- WindowLevelActionMenuContent: () => (/* reexport */ WindowLevelActionMenuContent),
1703
- WindowLevelActionMenuWrapper: () => (/* reexport */ WindowLevelActionMenuWrapper),
1668
+ _I: () => (/* reexport */ AccordionGroup),
1669
+ fX: () => (/* reexport */ enums),
1670
+ CP: () => (/* reexport */ MeasurementsOrAdditionalFindings),
1671
+ R9: () => (/* binding */ OHIFCornerstoneViewport),
1672
+ re: () => (/* reexport */ PanelMeasurement),
1673
+ rE: () => (/* reexport */ PanelSegmentation),
1674
+ V: () => (/* reexport */ SeriesMeasurements),
1675
+ B9: () => (/* reexport */ StudyMeasurements),
1676
+ _9: () => (/* reexport */ StudyMeasurementsActions),
1677
+ x3: () => (/* reexport */ StudySummaryFromMetadata),
1678
+ Rj: () => (/* reexport */ VOLUME_LOADER_SCHEME),
1704
1679
  "default": () => (/* binding */ cornerstone_src),
1705
- dicomLoaderService: () => (/* reexport */ utils_dicomLoaderService),
1706
- findNearbyToolData: () => (/* reexport */ findNearbyToolData),
1707
- getActiveViewportEnabledElement: () => (/* reexport */ getActiveViewportEnabledElement),
1708
- getEnabledElement: () => (/* reexport */ state/* getEnabledElement */.kJ),
1709
- getSOPInstanceAttributes: () => (/* reexport */ getSOPInstanceAttributes),
1710
- groupByDisplaySet: () => (/* reexport */ groupByDisplaySet),
1711
- groupByNamedSets: () => (/* reexport */ groupByNamedSets),
1712
- groupByStudy: () => (/* reexport */ groupByStudy),
1713
- measurementMappingUtils: () => (/* reexport */ utils_namespaceObject),
1714
- setEnabledElement: () => (/* reexport */ state/* setEnabledElement */.ye),
1715
- toolNames: () => (/* reexport */ toolNames),
1716
- useActiveViewportSegmentationRepresentations: () => (/* reexport */ useActiveViewportSegmentationRepresentations/* useActiveViewportSegmentationRepresentations */.c),
1717
- useLutPresentationStore: () => (/* reexport */ useLutPresentationStore/* useLutPresentationStore */.I),
1718
- useMeasurementTracking: () => (/* reexport */ useMeasurementTracking/* useMeasurementTracking */.R),
1719
- useMeasurements: () => (/* reexport */ useMeasurements/* useMeasurements */.d),
1720
- usePositionPresentationStore: () => (/* reexport */ usePositionPresentationStore/* usePositionPresentationStore */.q),
1721
- useSegmentationPresentationStore: () => (/* reexport */ useSegmentationPresentationStore/* useSegmentationPresentationStore */.v),
1722
- useSegmentations: () => (/* reexport */ useSegmentations/* useSegmentations */.j),
1723
- useSelectedSegmentationsForViewportStore: () => (/* reexport */ useSelectedSegmentationsForViewportStore),
1724
- useSynchronizersStore: () => (/* reexport */ useSynchronizersStore/* useSynchronizersStore */.U),
1725
- utils: () => (/* reexport */ src_utils)
1680
+ HA: () => (/* reexport */ utils_dicomLoaderService),
1681
+ J4: () => (/* reexport */ getSOPInstanceAttributes),
1682
+ c3: () => (/* reexport */ useActiveViewportSegmentationRepresentations/* useActiveViewportSegmentationRepresentations */.c),
1683
+ qu: () => (/* reexport */ usePositionPresentationStore/* usePositionPresentationStore */.q),
1684
+ jo: () => (/* reexport */ useSegmentations/* useSegmentations */.j),
1685
+ Wp: () => (/* reexport */ src_utils)
1726
1686
  });
1727
1687
 
1688
+ // UNUSED EXPORTS: CloneChildren, Colorbar, Colormap, CornerstoneViewportDownloadForm, DYNAMIC_VOLUME_LOADER_SCHEME, DicomUpload, ImageOverlayViewerTool, MeasumentsMenu, MeasurementOrAdditionalFindingSets, PlanarFreehandROI, RectangleROI, SeriesMeasurementTrigger, Types, VolumeLighting, VolumeRenderingOptions, VolumeRenderingPresets, VolumeRenderingQuality, VolumeShade, VolumeShift, WindowLevel, WindowLevelActionMenu, WindowLevelActionMenuContent, WindowLevelActionMenuWrapper, findNearbyToolData, getActiveViewportEnabledElement, getEnabledElement, groupByDisplaySet, groupByNamedSets, groupByStudy, measurementMappingUtils, setEnabledElement, toolNames, useLutPresentationStore, useMeasurementTracking, useMeasurements, useSegmentationPresentationStore, useSelectedSegmentationsForViewportStore, useSynchronizersStore
1689
+
1728
1690
  // NAMESPACE OBJECT: ../../../extensions/cornerstone/src/enums.ts
1729
1691
  var enums_namespaceObject = {};
1730
1692
  __webpack_require__.r(enums_namespaceObject);
@@ -1734,22 +1696,6 @@ __webpack_require__.d(enums_namespaceObject, {
1734
1696
  Ay: () => (enums)
1735
1697
  });
1736
1698
 
1737
- // NAMESPACE OBJECT: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/index.ts
1738
- var utils_namespaceObject = {};
1739
- __webpack_require__.r(utils_namespaceObject);
1740
- __webpack_require__.d(utils_namespaceObject, {
1741
- getDisplayUnit: () => (utils_getDisplayUnit),
1742
- getFirstAnnotationSelected: () => (getFirstAnnotationSelected),
1743
- getHandlesFromPoints: () => (getHandlesFromPoints),
1744
- getSOPInstanceAttributes: () => (getSOPInstanceAttributes),
1745
- isAnnotationSelected: () => (isAnnotationSelected),
1746
- setAnnotationSelected: () => (setAnnotationSelected)
1747
- });
1748
-
1749
- // NAMESPACE OBJECT: ../../../extensions/cornerstone/src/types/index.ts
1750
- var types_namespaceObject = {};
1751
- __webpack_require__.r(types_namespaceObject);
1752
-
1753
1699
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
1754
1700
  var react = __webpack_require__(86326);
1755
1701
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
@@ -1913,7 +1859,7 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
1913
1859
  reject('UIDialogService is not initiated');
1914
1860
  return;
1915
1861
  }
1916
- (0,default_src.callInputDialog)({
1862
+ (0,default_src/* callInputDialog */.l5)({
1917
1863
  uiDialogService,
1918
1864
  title: 'Calibration',
1919
1865
  placeholder: 'Actual Physical distance (mm)',
@@ -2614,6 +2560,7 @@ function getHandlesFromPoints(points) {
2614
2560
  }), {});
2615
2561
  }
2616
2562
  ;// ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/selection.ts
2563
+ /* unused harmony import specifier */ var cs3dToolAnnotationUtils;
2617
2564
 
2618
2565
 
2619
2566
  /**
@@ -2622,7 +2569,7 @@ function getHandlesFromPoints(points) {
2622
2569
  * @returns boolean
2623
2570
  */
2624
2571
  function isAnnotationSelected(annotationUID) {
2625
- return dist_esm.annotation.selection.isAnnotationSelected(annotationUID);
2572
+ return cs3dToolAnnotationUtils.selection.isAnnotationSelected(annotationUID);
2626
2573
  }
2627
2574
 
2628
2575
  /**
@@ -2634,7 +2581,7 @@ function setAnnotationSelected(annotationUID, selected) {
2634
2581
  const isCurrentSelected = isAnnotationSelected(annotationUID);
2635
2582
  // branch cut, avoid invoking imaging library unnecessarily.
2636
2583
  if (isCurrentSelected !== selected) {
2637
- dist_esm.annotation.selection.setAnnotationSelected(annotationUID, selected);
2584
+ cs3dToolAnnotationUtils.selection.setAnnotationSelected(annotationUID, selected);
2638
2585
  }
2639
2586
  }
2640
2587
  function getFirstAnnotationSelected(element) {
@@ -7815,7 +7762,7 @@ function SegmentationToolConfig() {
7815
7762
  });
7816
7763
  };
7817
7764
  return /*#__PURE__*/react.createElement("div", {
7818
- className: "bg-muted flex flex-col gap-2 border-b border-b-[2px] border-black px-2 py-3"
7765
+ className: "bg-muted flex flex-col gap-2 border-b border-b-[2px] border-background px-2 py-3"
7819
7766
  }, /*#__PURE__*/react.createElement("div", {
7820
7767
  className: "flex items-center gap-2"
7821
7768
  }, /*#__PURE__*/react.createElement(ui_next_src/* Switch */.dOG, {
@@ -8624,7 +8571,7 @@ const DicomUploadProgressItem = /*#__PURE__*/(0,react.memo)(({
8624
8571
  }, /*#__PURE__*/react.createElement("div", {
8625
8572
  className: "flex w-6 shrink-0 items-center justify-center"
8626
8573
  }, getStatusIcon()), /*#__PURE__*/react.createElement("div", {
8627
- className: "overflow-hidden text-ellipsis whitespace-nowrap text-white"
8574
+ className: "text-foreground overflow-hidden text-ellipsis whitespace-nowrap"
8628
8575
  }, dicomFileUploader.getFileName())), failedReason && /*#__PURE__*/react.createElement("div", {
8629
8576
  className: "pl-10"
8630
8577
  }, failedReason)), /*#__PURE__*/react.createElement("div", {
@@ -8866,7 +8813,7 @@ function DicomUploadProgress({
8866
8813
  }, [numFilesCompleted]);
8867
8814
  const getNumCompletedAndTimeRemainingComponent = () => {
8868
8815
  return /*#__PURE__*/react.createElement("div", {
8869
- className: "bg-muted flex h-14 items-center px-1 pb-4 text-lg text-white"
8816
+ className: "bg-muted text-foreground flex h-14 items-center px-1 pb-4 text-lg"
8870
8817
  }, numFilesCompleted === dicomFileUploaderArr.length ? /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("span", {
8871
8818
  className: NO_WRAP_ELLIPSIS_CLASS_NAMES
8872
8819
  }, `${dicomFileUploaderArr.length} ${dicomFileUploaderArr.length > 1 ? 'files' : 'file'} completed.`), /*#__PURE__*/react.createElement(ui_next_src/* Button */.$nd, {
@@ -8916,7 +8863,7 @@ function DicomUploadProgress({
8916
8863
  return /*#__PURE__*/react.createElement("div", {
8917
8864
  className: "flex grow flex-col"
8918
8865
  }, getNumCompletedAndTimeRemainingComponent(), /*#__PURE__*/react.createElement("div", {
8919
- className: "flex grow flex-col overflow-hidden bg-black text-lg"
8866
+ className: "flex grow flex-col overflow-hidden bg-background text-lg"
8920
8867
  }, getPercentCompleteComponent(), /*#__PURE__*/react.createElement("div", {
8921
8868
  className: "ohif-scrollbar h-1 grow overflow-y-scroll px-2"
8922
8869
  }, dicomFileUploaderArr.filter(dicomFileUploader => !showFailedOnly || dicomFileUploader.getStatus() === UploadStatus.Failed).map(dicomFileUploader => /*#__PURE__*/react.createElement(DicomUpload_DicomUploadProgressItem, {
@@ -8945,7 +8892,7 @@ function DicomUpload({
8945
8892
  onComplete,
8946
8893
  onStarted
8947
8894
  }) {
8948
- const baseClassNames = 'min-h-[375px] flex flex-col bg-black select-none rounded-lg overflow-hidden';
8895
+ const baseClassNames = 'min-h-[375px] flex flex-col bg-background select-none rounded-lg overflow-hidden';
8949
8896
  const [dicomFileUploaderArr, setDicomFileUploaderArr] = (0,react.useState)([]);
8950
8897
  const onDrop = (0,react.useCallback)(async acceptedFiles => {
8951
8898
  onStarted();
@@ -9067,7 +9014,8 @@ function ViewportDownloadFormNew({
9067
9014
  onDimensionsChange,
9068
9015
  onEnableViewport,
9069
9016
  onDisableViewport,
9070
- onDownload
9017
+ onDownload,
9018
+ onCopyToClipboard
9071
9019
  }) {
9072
9020
  const [viewportElement, setViewportElement] = (0,react.useState)(null);
9073
9021
  const [showWarningMessage, setShowWarningMessage] = (0,react.useState)(true);
@@ -9094,7 +9042,7 @@ function ViewportDownloadFormNew({
9094
9042
  "data-viewport-uid": viewportId,
9095
9043
  ref: setViewportElement
9096
9044
  }, warningState.enabled && showWarningMessage && /*#__PURE__*/react.createElement("div", {
9097
- className: "text-foreground absolute left-1/2 bottom-[5px] z-[1000] -translate-x-1/2 whitespace-nowrap rounded bg-black p-3 text-xs font-bold",
9045
+ className: "text-foreground absolute left-1/2 bottom-[5px] z-[1000] -translate-x-1/2 whitespace-nowrap rounded bg-background p-3 text-xs font-bold",
9098
9046
  style: {
9099
9047
  fontSize: '12px'
9100
9048
  }
@@ -9140,12 +9088,23 @@ function ViewportDownloadFormNew({
9140
9088
  className: "mt-2"
9141
9089
  }, /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu.Right, null, /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu.Secondary, {
9142
9090
  onClick: onClose
9143
- }, t('Common:Cancel')), /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu.Primary, {
9091
+ }, t('Common:Cancel')), /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu.Secondary, {
9092
+ onClick: async () => {
9093
+ try {
9094
+ await onCopyToClipboard();
9095
+ ui_next_src/* toast */.oRP.success(t('Image copied to clipboard'));
9096
+ onClose();
9097
+ } catch (error) {
9098
+ ui_next_src/* toast */.oRP.error(t('Failed to copy image to clipboard'));
9099
+ console.error('Failed to copy to clipboard:', error);
9100
+ }
9101
+ }
9102
+ }, t('Copy to Clipboard')), /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu.Primary, {
9144
9103
  onClick: () => {
9145
9104
  onDownload(filename || DEFAULT_FILENAME, fileType);
9146
9105
  onClose();
9147
9106
  }
9148
- }, t('Common:Save')))))));
9107
+ }, t('Save Image')))))));
9149
9108
  }
9150
9109
  /* harmony default export */ const captureViewportModalCustomization = ({
9151
9110
  'ohif.captureViewportModal': ViewportDownloadFormNew
@@ -9563,17 +9522,21 @@ const CornerstoneViewportDownloadForm = ({
9563
9522
  } = activeViewportEnabledElement;
9564
9523
  const downloadViewport = renderingEngine.getViewport(VIEWPORT_ID);
9565
9524
  try {
9525
+ const properties = viewport.getProperties();
9566
9526
  if (downloadViewport instanceof esm.StackViewport) {
9567
9527
  const imageId = viewport.getCurrentImageId();
9568
- const properties = viewport.getProperties();
9569
9528
  await downloadViewport.setStack([imageId]);
9570
9529
  downloadViewport.setProperties(properties);
9571
9530
  } else if (downloadViewport instanceof esm.BaseVolumeViewport) {
9572
9531
  const volumeIds = viewport.getAllVolumeIds();
9573
- downloadViewport.setVolumes([{
9532
+ await downloadViewport.setVolumes([{
9574
9533
  volumeId: volumeIds[0]
9575
9534
  }]);
9576
9535
  }
9536
+ downloadViewport.setProperties(properties);
9537
+ const viewRef = viewport.getViewReference();
9538
+ downloadViewport.setViewReference(viewRef);
9539
+ downloadViewport.render();
9577
9540
  if (segmentationRepresentations?.length) {
9578
9541
  segmentationRepresentations.forEach(segRepresentation => {
9579
9542
  const {
@@ -9667,6 +9630,36 @@ const CornerstoneViewportDownloadForm = ({
9667
9630
  filename
9668
9631
  });
9669
9632
  };
9633
+ const handleCopyToClipboard = async () => {
9634
+ const divForDownloadViewport = document.querySelector(`div[data-viewport-uid="${VIEWPORT_ID}"]`);
9635
+ if (!divForDownloadViewport) {
9636
+ console.debug('No viewport found for copy');
9637
+ return;
9638
+ }
9639
+ try {
9640
+ const canvas = await (0,html2canvas_esm/* default */.A)(divForDownloadViewport);
9641
+
9642
+ // Clipboard API only supports PNG format in most browsers
9643
+ const blob = await new Promise((resolve, reject) => {
9644
+ canvas.toBlob(blob => {
9645
+ if (blob) {
9646
+ resolve(blob);
9647
+ } else {
9648
+ reject(new Error('Failed to create blob from canvas'));
9649
+ }
9650
+ }, 'image/png', 1.0);
9651
+ });
9652
+
9653
+ // Copy to clipboard using the Clipboard API
9654
+ await navigator.clipboard.write([new ClipboardItem({
9655
+ 'image/png': blob
9656
+ })]);
9657
+ console.log('Image copied to clipboard successfully');
9658
+ } catch (error) {
9659
+ console.error('Failed to copy image to clipboard:', error);
9660
+ throw error;
9661
+ }
9662
+ };
9670
9663
  const ViewportDownloadFormNew = customizationService.getCustomization('ohif.captureViewportModal');
9671
9664
  return /*#__PURE__*/react.createElement(ViewportDownloadFormNew, {
9672
9665
  onClose: hide,
@@ -9680,6 +9673,7 @@ const CornerstoneViewportDownloadForm = ({
9680
9673
  onEnableViewport: handleEnableViewport,
9681
9674
  onDisableViewport: handleDisableViewport,
9682
9675
  onDownload: handleDownload,
9676
+ onCopyToClipboard: handleCopyToClipboard,
9683
9677
  warningState: warningState
9684
9678
  });
9685
9679
  };
@@ -10962,7 +10956,7 @@ function commandsModule({
10962
10956
  return;
10963
10957
  }
10964
10958
  if (!labelConfig) {
10965
- const label = await (0,default_src.callInputDialog)({
10959
+ const label = await (0,default_src/* callInputDialog */.l5)({
10966
10960
  uiDialogService,
10967
10961
  title: i18n_src/* default */.A.t('Tools:Edit Measurement Label'),
10968
10962
  placeholder: measurement.label || i18n_src/* default */.A.t('Tools:Enter new label'),
@@ -10976,7 +10970,7 @@ function commandsModule({
10976
10970
  }
10977
10971
  return;
10978
10972
  }
10979
- const val = await (0,default_src.callInputDialogAutoComplete)({
10973
+ const val = await (0,default_src/* callInputDialogAutoComplete */.fq)({
10980
10974
  measurement,
10981
10975
  uiDialogService,
10982
10976
  labelConfig,
@@ -11196,7 +11190,7 @@ function commandsModule({
11196
11190
  const labelConfig = customizationService.getCustomization('measurementLabels');
11197
11191
  const renderContent = customizationService.getCustomization('ui.labellingComponent');
11198
11192
  if (!labelConfig) {
11199
- const label = await (0,default_src.callInputDialog)({
11193
+ const label = await (0,default_src/* callInputDialog */.l5)({
11200
11194
  uiDialogService,
11201
11195
  title: i18n_src/* default */.A.t('Tools:Edit Arrow Text'),
11202
11196
  placeholder: data?.data?.label || i18n_src/* default */.A.t('Tools:Enter new text'),
@@ -11205,7 +11199,7 @@ function commandsModule({
11205
11199
  callback?.(label);
11206
11200
  return;
11207
11201
  }
11208
- const value = await (0,default_src.callInputDialogAutoComplete)({
11202
+ const value = await (0,default_src/* callInputDialogAutoComplete */.fq)({
11209
11203
  uiDialogService,
11210
11204
  labelConfig,
11211
11205
  renderContent
@@ -12101,7 +12095,7 @@ function commandsModule({
12101
12095
  segmentationService,
12102
12096
  viewportGridService
12103
12097
  } = servicesManager.services;
12104
- const displaySetInstanceUIDs = await (0,default_src.createReportAsync)({
12098
+ const displaySetInstanceUIDs = await (0,default_src/* createReportAsync */.Vy)({
12105
12099
  servicesManager,
12106
12100
  getReport: () => commandsManager.runCommand('storeSegmentation', args),
12107
12101
  reportType: 'Segmentation'
@@ -12178,14 +12172,15 @@ function commandsModule({
12178
12172
  * @param props.segmentationId - The ID of the segmentation to remove
12179
12173
  */
12180
12174
  removeSegmentationFromViewportCommand: ({
12181
- segmentationId
12175
+ segmentationId: displaySetInstanceUID
12182
12176
  }) => {
12183
12177
  const {
12184
- segmentationService,
12185
12178
  viewportGridService
12186
12179
  } = servicesManager.services;
12187
- segmentationService.removeSegmentationRepresentations(viewportGridService.getActiveViewportId(), {
12188
- segmentationId
12180
+ const viewportId = viewportGridService.getActiveViewportId();
12181
+ commandsManager.runCommand('removeDisplaySetLayer', {
12182
+ viewportId,
12183
+ displaySetInstanceUID
12189
12184
  });
12190
12185
  },
12191
12186
  /**
@@ -12213,7 +12208,7 @@ function commandsModule({
12213
12208
  return;
12214
12209
  }
12215
12210
  const segment = segmentation.segments[segmentIndex];
12216
- (0,default_src.callInputDialog)({
12211
+ (0,default_src/* callInputDialog */.l5)({
12217
12212
  uiDialogService,
12218
12213
  title: i18n_src/* default */.A.t('Tools:Edit Segment Label'),
12219
12214
  placeholder: i18n_src/* default */.A.t('Tools:Enter new label'),
@@ -12236,7 +12231,7 @@ function commandsModule({
12236
12231
  const {
12237
12232
  label
12238
12233
  } = segmentation;
12239
- (0,default_src.callInputDialog)({
12234
+ (0,default_src/* callInputDialog */.l5)({
12240
12235
  uiDialogService,
12241
12236
  title: i18n_src/* default */.A.t('Tools:Edit Segmentation Label'),
12242
12237
  placeholder: i18n_src/* default */.A.t('Tools:Enter new label'),
@@ -12266,7 +12261,7 @@ function commandsModule({
12266
12261
  a: color[3] / 255.0
12267
12262
  };
12268
12263
  uiDialogService.show({
12269
- content: default_src.colorPickerDialog,
12264
+ content: default_src/* colorPickerDialog */.wS,
12270
12265
  title: i18n_src/* default */.A.t('Tools:Segment Color'),
12271
12266
  contentProps: {
12272
12267
  value: rgbaColor,
@@ -15923,7 +15918,7 @@ function ViewportOrientationMenu({
15923
15918
  }) : null), /*#__PURE__*/react.createElement("div", {
15924
15919
  className: "flex-1 text-left"
15925
15920
  }, "Acquisition")), /*#__PURE__*/react.createElement("div", {
15926
- className: "mx-1 my-2 border-t border-white/20"
15921
+ className: "border-input mx-1 my-2 border-t"
15927
15922
  }), /*#__PURE__*/react.createElement(ui_next_src/* Button */.$nd, {
15928
15923
  variant: "ghost",
15929
15924
  className: "flex h-7 w-full flex-shrink-0 items-center justify-start self-stretch px-1 py-0",
@@ -16264,7 +16259,7 @@ function VolumeRenderingPresetsContent({
16264
16259
  }
16265
16260
  }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI1.ByName, {
16266
16261
  name: preset.name,
16267
- className: selectedPreset?.name === preset.name ? 'border-highlight h-[75px] w-[95px] max-w-none rounded border-2' : 'hover:border-highlight h-[75px] w-[95px] max-w-none rounded border-2 border-black'
16262
+ className: selectedPreset?.name === preset.name ? 'border-highlight h-[75px] w-[95px] max-w-none rounded border-2' : 'hover:border-highlight h-[75px] w-[95px] max-w-none rounded border-2 border-background'
16268
16263
  }), /*#__PURE__*/react.createElement("label", {
16269
16264
  className: "text-muted-foreground mt-1 text-left text-xs"
16270
16265
  }, formatLabel(preset.name, 11)))))), /*#__PURE__*/react.createElement(ui_next_src/* FooterAction */.esu, {
@@ -17410,9 +17405,9 @@ function ModalityLoadBadge({
17410
17405
  if (!statusInfo.isHydrated) {
17411
17406
  return /*#__PURE__*/react.createElement("div", {
17412
17407
  "data-cy": `ModalityLoadBadge-${viewportId}`,
17413
- className: "flex h-6 cursor-default text-sm leading-6 text-white"
17408
+ className: "text-foreground flex h-6 cursor-default text-sm leading-6"
17414
17409
  }, /*#__PURE__*/react.createElement("div", {
17415
- className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
17410
+ className: "bg-popover flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
17416
17411
  }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
17417
17412
  className: "ml-1"
17418
17413
  }, statusInfo.type)), statusInfo.type !== 'SR' && /*#__PURE__*/react.createElement(ui_next_src/* ViewportActionButton */.N8H, {
@@ -19196,11 +19191,11 @@ class SegmentationService extends src/* PubSubService */.Rc {
19196
19191
  this.EVENTS = SegmentationService_EVENTS;
19197
19192
  this.destroy = () => {
19198
19193
  esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_MODIFIED, this._onSegmentationModifiedFromSource);
19199
- esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REMOVED, this._onSegmentationModifiedFromSource);
19194
+ esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REMOVED, this._onSegmentationRemovedFromSource);
19200
19195
  esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_DATA_MODIFIED, this._onSegmentationDataModifiedFromSource);
19201
19196
  esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_MODIFIED, this._onSegmentationRepresentationModifiedFromSource);
19202
19197
  esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_ADDED, this._onSegmentationRepresentationModifiedFromSource);
19203
- esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_REMOVED, this._onSegmentationRepresentationModifiedFromSource);
19198
+ esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_REMOVED, this._onSegmentationRepresentationRemovedFromSource);
19204
19199
  esm.eventTarget.removeEventListener(dist_esm.Enums.Events.SEGMENTATION_ADDED, this._onSegmentationAddedFromSource);
19205
19200
  this.reset();
19206
19201
  };
@@ -19261,6 +19256,16 @@ class SegmentationService extends src/* PubSubService */.Rc {
19261
19256
  viewportId
19262
19257
  });
19263
19258
  };
19259
+ this._onSegmentationRepresentationRemovedFromSource = evt => {
19260
+ const {
19261
+ segmentationId,
19262
+ viewportId
19263
+ } = evt.detail;
19264
+ this._broadcastEvent(this.EVENTS.SEGMENTATION_REPRESENTATION_REMOVED, {
19265
+ segmentationId,
19266
+ viewportId
19267
+ });
19268
+ };
19264
19269
  this._onSegmentationModifiedFromSource = evt => {
19265
19270
  const {
19266
19271
  segmentationId
@@ -19277,6 +19282,14 @@ class SegmentationService extends src/* PubSubService */.Rc {
19277
19282
  segmentationId
19278
19283
  });
19279
19284
  };
19285
+ this._onSegmentationRemovedFromSource = evt => {
19286
+ const {
19287
+ segmentationId
19288
+ } = evt.detail;
19289
+ this._broadcastEvent(this.EVENTS.SEGMENTATION_REMOVED, {
19290
+ segmentationId
19291
+ });
19292
+ };
19280
19293
  this._onAnnotationCutMergeProcessCompletedFromSource = evt => {
19281
19294
  const {
19282
19295
  segmentationId
@@ -20170,14 +20183,14 @@ class SegmentationService extends src/* PubSubService */.Rc {
20170
20183
  }
20171
20184
  /**
20172
20185
  * Clears segmentation representations from the viewport.
20173
- * Unlike removeSegmentationRepresentations, this doesn't update
20186
+ * Unlike removeRepresentationsFromViewport, this doesn't update
20174
20187
  * removed display set and representation maps.
20175
20188
  * We track removed segmentations manually to avoid re-adding them
20176
20189
  * when the display set is added again.
20177
20190
  * @param viewportId - The viewport ID to clear segmentation representations from.
20178
20191
  */
20179
20192
  clearSegmentationRepresentations(viewportId) {
20180
- this.removeSegmentationRepresentations(viewportId);
20193
+ this.removeRepresentationsFromViewport(viewportId);
20181
20194
  }
20182
20195
 
20183
20196
  /**
@@ -20192,7 +20205,7 @@ class SegmentationService extends src/* PubSubService */.Rc {
20192
20205
  }
20193
20206
 
20194
20207
  /**
20195
- * It removes the segmentation representations from the viewport.
20208
+ * Removes segmentation representations from the viewport.
20196
20209
  * @param viewportId - The viewport id to remove the segmentation representations from.
20197
20210
  * @param specifier - The specifier to remove the segmentation representations.
20198
20211
  *
@@ -20202,7 +20215,7 @@ class SegmentationService extends src/* PubSubService */.Rc {
20202
20215
  * If a type specifier is provided, only the segmentation representation with the specified type are removed.
20203
20216
  * If both a segmentationId and type specifier are provided, only the segmentation representation with the specified segmentationId and type are removed.
20204
20217
  */
20205
- removeSegmentationRepresentations(viewportId, specifier = {}) {
20218
+ removeRepresentationsFromViewport(viewportId, specifier = {}) {
20206
20219
  dist_esm.segmentation.removeSegmentationRepresentations(viewportId, specifier);
20207
20220
  }
20208
20221
 
@@ -20570,11 +20583,11 @@ class SegmentationService extends src/* PubSubService */.Rc {
20570
20583
  }
20571
20584
  _initSegmentationService() {
20572
20585
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_MODIFIED, this._onSegmentationModifiedFromSource);
20573
- esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REMOVED, this._onSegmentationModifiedFromSource);
20586
+ esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REMOVED, this._onSegmentationRemovedFromSource);
20574
20587
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_DATA_MODIFIED, this._onSegmentationDataModifiedFromSource);
20575
20588
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_MODIFIED, this._onSegmentationRepresentationModifiedFromSource);
20576
20589
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_ADDED, this._onSegmentationRepresentationModifiedFromSource);
20577
- esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_REMOVED, this._onSegmentationRepresentationModifiedFromSource);
20590
+ esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_REPRESENTATION_REMOVED, this._onSegmentationRepresentationRemovedFromSource);
20578
20591
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.SEGMENTATION_ADDED, this._onSegmentationAddedFromSource);
20579
20592
  esm.eventTarget.addEventListener(dist_esm.Enums.Events.ANNOTATION_CUT_MERGE_PROCESS_COMPLETED, this._onAnnotationCutMergeProcessCompletedFromSource);
20580
20593
  }
@@ -23265,9 +23278,9 @@ const {
23265
23278
  denaturalizeDataset
23266
23279
  } = dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary;
23267
23280
  const {
23268
- transferDenaturalizedDataset,
23269
- fixMultiValueKeys
23270
- } = default_src.dicomWebUtils;
23281
+ /* transferDenaturalizedDataset */ "If": transferDenaturalizedDataset,
23282
+ /* fixMultiValueKeys */ "Uk": fixMultiValueKeys
23283
+ } = default_src/* dicomWebUtils */.CA;
23271
23284
  const SOP_CLASS_UIDS = {
23272
23285
  VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.6'
23273
23286
  };
@@ -23424,7 +23437,7 @@ function SegmentationUtilityButton(props) {
23424
23437
  isActive,
23425
23438
  id
23426
23439
  } = props;
23427
- const activeSegmentationUtility = (0,default_src.useUIStateStore)(store => store.uiState.activeSegmentationUtility);
23440
+ const activeSegmentationUtility = (0,default_src/* useUIStateStore */.FS)(store => store.uiState.activeSegmentationUtility);
23428
23441
  const toolButtonClassName = (0,ui_next_src.cn)('w-7 h-7 text-primary hover:text-primary hover:!bg-primary/30', className, isActive && 'bg-primary/30');
23429
23442
  const handleMouseDownCapture = (0,react.useCallback)(event => {
23430
23443
  if (activeSegmentationUtility === id) {
@@ -23555,7 +23568,7 @@ function PanelSegmentation({
23555
23568
  segmentationsWithRepresentations,
23556
23569
  disabled
23557
23570
  } = (0,useActiveViewportSegmentationRepresentations/* useActiveViewportSegmentationRepresentations */.c)();
23558
- const setUIState = (0,default_src.useUIStateStore)(store => store.setUIState);
23571
+ const setUIState = (0,default_src/* useUIStateStore */.FS)(store => store.setUIState);
23559
23572
 
23560
23573
  // useEffect for handling clicks on any of the non-active viewports.
23561
23574
  // The ViewportGrid stops the propagation of pointer/mouse events
@@ -23816,7 +23829,7 @@ function PanelSegmentation({
23816
23829
  IconContainer: components_SegmentationUtilityButton
23817
23830
  }, /*#__PURE__*/react.createElement("div", {
23818
23831
  className: "flex flex-wrap gap-[3px] bg-transparent pb-[2px] pl-[8px] pt-[6px]"
23819
- }, /*#__PURE__*/react.createElement(default_src.Toolbar, {
23832
+ }, /*#__PURE__*/react.createElement(default_src/* Toolbar */.M7, {
23820
23833
  buttonSection: buttonSection
23821
23834
  })));
23822
23835
  };
@@ -24343,12 +24356,12 @@ function DefaultAccordion(props) {
24343
24356
  if (!allChildren || !groups) {
24344
24357
  return null;
24345
24358
  }
24346
- if (Boolean(asChild)) {
24359
+ if (asChild) {
24347
24360
  return /*#__PURE__*/react.cloneElement(props.children, props);
24348
24361
  }
24349
24362
  return /*#__PURE__*/react.createElement(ui_next_src/* Accordion */.nD3, {
24350
24363
  type: grouping.type || 'multiple',
24351
- className: "text-white",
24364
+ className: "text-foreground",
24352
24365
  defaultValue: defaultValue
24353
24366
  }, [...groups.entries()].map(([key, group]) => {
24354
24367
  return /*#__PURE__*/react.createElement(ui_next_src/* AccordionItem */.AsP, {
@@ -24826,7 +24839,7 @@ function PanelMeasurement(props) {
24826
24839
  return EmptyComponent ? /*#__PURE__*/react.createElement(EmptyComponent, {
24827
24840
  items: displayMeasurements
24828
24841
  }) : /*#__PURE__*/react.createElement("span", {
24829
- className: "text-white"
24842
+ className: "text-foreground"
24830
24843
  }, "No Measurements");
24831
24844
  }
24832
24845
  if (children) {
@@ -24891,7 +24904,7 @@ const getPanelModule = ({
24891
24904
  } = (0,es/* useTranslation */.Bd)('SegmentationPanel');
24892
24905
  const tKey = `${props.segmentationRepresentationTypes?.[0] ?? 'Segmentation'} tools`;
24893
24906
  const tValue = t(tKey);
24894
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(default_src.Toolbox, {
24907
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(default_src/* Toolbox */.OO, {
24895
24908
  buttonSectionId: toolSectionMap[props.segmentationRepresentationTypes?.[0]],
24896
24909
  title: tValue
24897
24910
  }), /*#__PURE__*/react.createElement(PanelSegmentation, {
@@ -25368,7 +25381,8 @@ const setUpSegmentationEventHandlers = ({
25368
25381
  const {
25369
25382
  segmentationService,
25370
25383
  customizationService,
25371
- displaySetService
25384
+ displaySetService,
25385
+ viewportGridService
25372
25386
  } = servicesManager.services;
25373
25387
  const {
25374
25388
  unsubscribe: unsubscribeSegmentationDataModifiedHandler
@@ -25413,12 +25427,42 @@ const setUpSegmentationEventHandlers = ({
25413
25427
  };
25414
25428
  displaySetService.addDisplaySets(segmentationDisplaySet);
25415
25429
  });
25430
+ const {
25431
+ unsubscribe: unsubscribeSegmentationRemoved
25432
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_REMOVED, ({
25433
+ segmentationId
25434
+ }) => {
25435
+ const displaySet = displaySetService.getDisplaySetByUID(segmentationId);
25436
+
25437
+ // Remove the display set layer from all viewports that have it
25438
+ if (displaySet) {
25439
+ const state = viewportGridService.getState();
25440
+ const viewports = state.viewports;
25441
+
25442
+ // Find all viewports that contain this segmentation's display set as a layer
25443
+ for (const [viewportId, viewport] of viewports.entries()) {
25444
+ const displaySetInstanceUIDs = viewport.displaySetInstanceUIDs || [];
25445
+ if (displaySetInstanceUIDs.includes(segmentationId)) {
25446
+ // Remove the display set layer from this viewport
25447
+ commandsManager.runCommand('removeDisplaySetLayer', {
25448
+ viewportId,
25449
+ displaySetInstanceUID: segmentationId
25450
+ });
25451
+ }
25452
+ }
25453
+
25454
+ // Delete the display set from the service if it was made in client
25455
+ if (displaySet.madeInClient) {
25456
+ displaySetService.deleteDisplaySet(segmentationId);
25457
+ }
25458
+ }
25459
+ });
25416
25460
  const {
25417
25461
  unsubscribeSelectedSegmentationsForViewportEvents
25418
25462
  } = setUpSelectedSegmentationsForViewportHandler({
25419
25463
  segmentationService
25420
25464
  });
25421
- const unsubscriptions = [unsubscribeSegmentationDataModifiedHandler, unsubscribeSegmentationModifiedHandler, unsubscribeSegmentationCreated, ...unsubscribeSelectedSegmentationsForViewportEvents];
25465
+ const unsubscriptions = [unsubscribeSegmentationDataModifiedHandler, unsubscribeSegmentationModifiedHandler, unsubscribeSegmentationCreated, unsubscribeSegmentationRemoved, ...unsubscribeSelectedSegmentationsForViewportEvents];
25422
25466
  return {
25423
25467
  unsubscriptions
25424
25468
  };
@@ -25442,6 +25486,9 @@ const setUpAnnotationEventHandlers = () => {
25442
25486
  };
25443
25487
  return [annotationInterpolationProcessCompletedUnsubscribe];
25444
25488
  };
25489
+ // EXTERNAL MODULE: ../../../node_modules/immutability-helper/index.js
25490
+ var immutability_helper = __webpack_require__(1752);
25491
+ var immutability_helper_default = /*#__PURE__*/__webpack_require__.n(immutability_helper);
25445
25492
  ;// ../../../extensions/cornerstone/src/components/MeasurementsMenu.tsx
25446
25493
 
25447
25494
 
@@ -25558,7 +25605,7 @@ function PanelAccordionTrigger(props) {
25558
25605
  }, /*#__PURE__*/react.createElement("button", {
25559
25606
  onClick: onClickDefault.bind(props)
25560
25607
  }, /*#__PURE__*/react.createElement("span", {
25561
- className: `inline-flex rounded-l border-r border-black ${isActive ? 'bg-highlight' : 'bg-muted'}`
25608
+ className: `inline-flex rounded-l border-r border-background ${isActive ? 'bg-highlight' : 'bg-muted'}`
25562
25609
  }, count !== undefined ? /*#__PURE__*/react.createElement("span", {
25563
25610
  className: "px-2"
25564
25611
  }, count) : null, colorHex && /*#__PURE__*/react.createElement(ui_next_src/* ColorCircle */.cd8, {
@@ -25806,6 +25853,7 @@ function src_extends() { return src_extends = Object.assign ? Object.assign.bind
25806
25853
 
25807
25854
 
25808
25855
 
25856
+
25809
25857
 
25810
25858
 
25811
25859
  const {
@@ -25819,7 +25867,7 @@ const OHIFCornerstoneViewport = props => {
25819
25867
  fallback: /*#__PURE__*/react.createElement("div", null, "Loading...")
25820
25868
  }, /*#__PURE__*/react.createElement(Component, props));
25821
25869
  };
25822
- const stackRetrieveOptions = {
25870
+ const DEFAULT_STACK_RETRIEVE_OPTIONS = {
25823
25871
  retrieveOptions: {
25824
25872
  single: {
25825
25873
  streaming: true,
@@ -25827,6 +25875,11 @@ const stackRetrieveOptions = {
25827
25875
  }
25828
25876
  }
25829
25877
  };
25878
+
25879
+ /** Normalize to immutability-helper spec: plain object → $merge, otherwise use as-is. */
25880
+ const toUpdateSpec = obj => obj != null && typeof obj === 'object' && Object.keys(obj).some(k => k.startsWith('$')) ? obj : {
25881
+ $merge: obj ?? {}
25882
+ };
25830
25883
  const unsubscriptions = [];
25831
25884
  /**
25832
25885
  *
@@ -25838,7 +25891,8 @@ const cornerstoneExtension = {
25838
25891
  id: id,
25839
25892
  onModeEnter: ({
25840
25893
  servicesManager,
25841
- commandsManager
25894
+ commandsManager,
25895
+ extensionManager
25842
25896
  }) => {
25843
25897
  const {
25844
25898
  cornerstoneViewportService,
@@ -25865,10 +25919,17 @@ const cornerstoneExtension = {
25865
25919
  // This interleaves images and replicates them for low-resolution depth volume
25866
25920
  // reconstruction, which progressively improves
25867
25921
  imageRetrieveMetadataProvider.add('volume', esm.ProgressiveRetrieveImages.interleavedRetrieveStages);
25868
- // The default stack loading option is to progressive load HTJ2K images
25869
- // There are other possible options, but these need more thought about
25870
- // how to define them.
25871
- imageRetrieveMetadataProvider.add('stack', stackRetrieveOptions);
25922
+
25923
+ /**
25924
+ * Stack retrieve options: read from active data source configuration.
25925
+ * Pass an immutability-helper spec (e.g. { $merge: {...} } or { $set: {...} }) in
25926
+ * stackRetrieveOptions to customize. Plain object is treated as $merge for backward compat.
25927
+ * Set streaming: false for uncompressed DICOM that requires full file before decode.
25928
+ */
25929
+ const sourceConfig = extensionManager?.getActiveDataSource?.()?.[0]?.getConfig?.() ?? {};
25930
+ const config = sourceConfig.stackRetrieveOptions ?? {};
25931
+ const stackOptions = immutability_helper_default()(DEFAULT_STACK_RETRIEVE_OPTIONS, toUpdateSpec(config));
25932
+ imageRetrieveMetadataProvider.add('stack', stackOptions);
25872
25933
  },
25873
25934
  getPanelModule: src_getPanelModule,
25874
25935
  onModeExit: ({
@@ -25892,7 +25953,7 @@ const cornerstoneExtension = {
25892
25953
  useLutPresentationStore/* useLutPresentationStore */.I.getState().clearLutPresentationStore();
25893
25954
  usePositionPresentationStore/* usePositionPresentationStore */.q.getState().clearPositionPresentationStore();
25894
25955
  useSynchronizersStore/* useSynchronizersStore */.U.getState().clearSynchronizersStore();
25895
- default_src.useToggleOneUpViewportGridStore.getState().clearToggleOneUpViewportGridStore();
25956
+ default_src/* useToggleOneUpViewportGridStore */.Yd.getState().clearToggleOneUpViewportGridStore();
25896
25957
  useSegmentationPresentationStore/* useSegmentationPresentationStore */.v.getState().clearSegmentationPresentationStore();
25897
25958
  useSelectedSegmentationsForViewportStore.getState().clearSelectedSegmentationsForViewportStore();
25898
25959
  segmentationService.removeAllSegmentations();
@@ -25983,10 +26044,10 @@ const cornerstoneExtension = {
25983
26044
 
25984
26045
  /* harmony default export */ const cornerstone_src = (cornerstoneExtension);
25985
26046
 
25986
- /***/ }),
26047
+ /***/ },
25987
26048
 
25988
- /***/ 71353:
25989
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26049
+ /***/ 71353
26050
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
25990
26051
 
25991
26052
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
25992
26053
  /* harmony export */ cL: () => (/* binding */ reset),
@@ -26025,10 +26086,10 @@ const reset = () => {
26025
26086
  };
26026
26087
 
26027
26088
 
26028
- /***/ }),
26089
+ /***/ },
26029
26090
 
26030
- /***/ 46026:
26031
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26091
+ /***/ 46026
26092
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
26032
26093
 
26033
26094
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26034
26095
  /* harmony export */ FG: () => (/* binding */ JOIN_STR),
@@ -26068,10 +26129,10 @@ const addUniqueIndex = (arr, key, viewports, isUpdatingSameViewport) => {
26068
26129
  };
26069
26130
 
26070
26131
 
26071
- /***/ }),
26132
+ /***/ },
26072
26133
 
26073
- /***/ 10182:
26074
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26134
+ /***/ 10182
26135
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
26075
26136
 
26076
26137
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26077
26138
  /* harmony export */ I: () => (/* binding */ useLutPresentationStore)
@@ -26183,10 +26244,10 @@ const useLutPresentationStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .creat
26183
26244
  name: 'LutPresentationStore'
26184
26245
  }) : createLutPresentationStore);
26185
26246
 
26186
- /***/ }),
26247
+ /***/ },
26187
26248
 
26188
- /***/ 44646:
26189
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26249
+ /***/ 44646
26250
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
26190
26251
 
26191
26252
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26192
26253
  /* harmony export */ q: () => (/* binding */ usePositionPresentationStore)
@@ -26294,10 +26355,10 @@ const usePositionPresentationStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .
26294
26355
  name: 'PositionPresentationStore'
26295
26356
  }) : createPositionPresentationStore);
26296
26357
 
26297
- /***/ }),
26358
+ /***/ },
26298
26359
 
26299
- /***/ 2847:
26300
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26360
+ /***/ 2847
26361
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
26301
26362
 
26302
26363
 
26303
26364
  // EXPORTS
@@ -26503,10 +26564,10 @@ const useSegmentationPresentationStore = (0,esm/* create */.vt)()(DEBUG_STORE ?
26503
26564
  name: 'Segmentation Presentation Store'
26504
26565
  }) : createSegmentationPresentationStore);
26505
26566
 
26506
- /***/ }),
26567
+ /***/ },
26507
26568
 
26508
- /***/ 68578:
26509
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
26569
+ /***/ 68578
26570
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
26510
26571
 
26511
26572
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
26512
26573
  /* harmony export */ U: () => (/* binding */ useSynchronizersStore)
@@ -26567,6 +26628,6 @@ const useSynchronizersStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .create
26567
26628
  name: 'SynchronizersStore'
26568
26629
  }) : createSynchronizersStore);
26569
26630
 
26570
- /***/ })
26631
+ /***/ }
26571
26632
 
26572
26633
  }]);