@ohif/app 3.10.0-beta.1 → 3.10.0-beta.11

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 (58) hide show
  1. package/dist/{1185.bundle.ba031c72e916648239b1.js → 1185.bundle.e55356926e8d9454db40.js} +124 -25
  2. package/dist/{1266.bundle.b9259d87b66cc8809684.js → 1266.bundle.a2e42f1cfddb11c1c61e.js} +30 -0
  3. package/dist/1266.css +1 -1
  4. package/dist/1801.css +1 -1
  5. package/dist/{1927.bundle.49539e3ab5b0aad1399c.js → 1927.bundle.c55edd5a362e7d79e23d.js} +1 -1
  6. package/dist/3198.css +1 -1
  7. package/dist/{3200.bundle.7930285fb3db0475d1d3.js → 3200.bundle.332c2c2bd1f6be83e770.js} +17 -9
  8. package/dist/3200.css +1 -1
  9. package/dist/{3677.bundle.7d9110e8c5682b56a456.js → 3677.bundle.b3ac66bea976765cde72.js} +30 -18
  10. package/dist/{3970.bundle.31942cc0c12a008e7ba0.js → 3970.bundle.dc6cd064ae2aeabe09bd.js} +13 -3
  11. package/dist/4182.css +1 -1
  12. package/dist/{4571.bundle.3b1691730b3c57bf4d35.js → 4571.bundle.142e8f6150bf81f1b7d2.js} +129 -107
  13. package/dist/5139.css +1 -1
  14. package/dist/{5247.bundle.28f3e4d455562a18b163.js → 5247.bundle.9b06781f63cea6959619.js} +4 -4
  15. package/dist/{5252.bundle.5ec502c53a9cc877ed8d.js → 5252.bundle.bc5ffde6db3fa348763e.js} +43 -19
  16. package/dist/{1520.bundle.de828ed67f5c2b2c6a56.js → 5630.bundle.af4fa8fb9b6446cf2fe3.js} +86 -67
  17. package/dist/{5717.bundle.848e13f256818475f57f.js → 5717.bundle.ef66d725a6417d6c11ca.js} +395 -94
  18. package/dist/{5823.bundle.cb588e5e33eea80cd49f.js → 5823.bundle.c4aac836954d54e38b4e.js} +2 -9
  19. package/dist/717.css +1 -1
  20. package/dist/{7197.bundle.e8893d639c03f5aaa0a9.js → 7197.bundle.da8537eb3e4cbbafa89b.js} +2 -2
  21. package/dist/{7955.bundle.73040b033f55ed837884.js → 7955.bundle.dca4bc7c9f7215335324.js} +1 -1
  22. package/dist/{1436.bundle.773756cd51b69e887bac.js → 8104.bundle.c531eb360d74b235704a.js} +357 -112
  23. package/dist/{8228.bundle.55ac03d7165248f47d4e.js → 8228.bundle.159ad73e559a130f3c50.js} +2 -2
  24. package/dist/8228.css +2 -2
  25. package/dist/{8523.bundle.648334132159465cdc41.js → 8523.bundle.c0ec85de98ba380ebeb4.js} +55 -13
  26. package/dist/{8558.bundle.f126a4181d5a52181c34.js → 8558.bundle.c47e5e4892f4d21a0bc9.js} +1 -0
  27. package/dist/{9551.bundle.e30848227313109c14a6.js → 9551.bundle.5ae9c8495962d2789437.js} +1 -1
  28. package/dist/{5807.bundle.dac5ce36534a71c77723.js → 967.bundle.fee0d6c1e9e244ad5bb3.js} +1134 -1128
  29. package/dist/{149.bundle.b8d177954628f4631fc0.js → 9909.bundle.0a5f1ba3b82fae90def1.js} +161 -34
  30. package/dist/{app.bundle.ecefafc4d6fe017abda9.js → app.bundle.c7b6e9550b04753d8968.js} +7970 -7921
  31. package/dist/app.bundle.css +18 -18
  32. package/dist/{histogram-worker.bundle.f0e060cf2637a2ca94b7.js → histogram-worker.bundle.85d57affe3baefc07925.js} +1 -1
  33. package/dist/index.html +1 -1
  34. package/dist/{polySeg.bundle.b79ae514989e86301c71.js → polySeg.bundle.b69067365f2c2b916638.js} +1 -1
  35. package/dist/serve.json +1 -10
  36. package/dist/{suv-peak-worker.bundle.76dd4fdf82aaa2c3ad41.js → suv-peak-worker.bundle.2b1dc60a3ca73b7f3b13.js} +3 -3
  37. package/dist/sw.js +1 -1
  38. package/package.json +19 -19
  39. /package/dist/{1374.bundle.f98a3f8e645796ba4af5.js → 1374.bundle.ea1d9a39e49be66902c7.js} +0 -0
  40. /package/dist/{213.bundle.10c773a9ef1cf092b0f3.js → 213.bundle.125147974624d2293c38.js} +0 -0
  41. /package/dist/{2424.bundle.c42b986e22a871be202b.js → 2424.bundle.8e6703e2978234c93dbe.js} +0 -0
  42. /package/dist/{2701.bundle.8c1ff2e0faaa7d2f4716.js → 2701.bundle.46f7148916e85e1cf4f4.js} +0 -0
  43. /package/dist/{2825.bundle.a66e53c283779a78ba3d.js → 2825.bundle.b64d9890a8e1802e473c.js} +0 -0
  44. /package/dist/{3121.bundle.d3e7092e305cf6cecdb5.js → 3121.bundle.67ff7e799683191bb324.js} +0 -0
  45. /package/dist/{3198.bundle.8e84975c99aa8a7c3cfd.js → 3198.bundle.8ead2c27c7668ec9cab0.js} +0 -0
  46. /package/dist/{4202.bundle.5c8120ed4841da0af211.js → 4202.bundle.1311396ecdb6c0b09eb0.js} +0 -0
  47. /package/dist/{4834.bundle.dbdbabe9cbd7ecfa096e.js → 4834.bundle.e2c9e5a5654a5b42d833.js} +0 -0
  48. /package/dist/{5139.bundle.fe60233a6462e06c8690.js → 5139.bundle.81ce6842991d71c9dcec.js} +0 -0
  49. /package/dist/{5261.bundle.74682659cce85f3ae592.js → 5261.bundle.54d7af66923a3bae707d.js} +0 -0
  50. /package/dist/{5687.bundle.30bca3175fe9105c1fab.js → 5687.bundle.1ab8ce294e4bf416bd6f.js} +0 -0
  51. /package/dist/{6939.bundle.9b79da82315a25f37d96.js → 6939.bundle.5e77a634e8784085c00e.js} +0 -0
  52. /package/dist/{7159.bundle.9f4856182f1eda29c59d.js → 7159.bundle.4ee84ebbce84383e30d4.js} +0 -0
  53. /package/dist/{717.bundle.6515129b5f0253ed208e.js → 717.bundle.77ae17bcd6d05ab83f61.js} +0 -0
  54. /package/dist/{8008.bundle.84fd82377a78a37d4990.js → 8008.bundle.fc5d2681e2b77983c90a.js} +0 -0
  55. /package/dist/{8259.bundle.c5fb1a35756e97281652.js → 8259.bundle.979eb68fe1e25107d805.js} +0 -0
  56. /package/dist/{8295.bundle.4ecb27f9e58526f12bcb.js → 8295.bundle.14cddaccdcd3a7093398.js} +0 -0
  57. /package/dist/{9611.bundle.767595c93877e5166c03.js → 9611.bundle.8a0208eb6b187c83e43b.js} +0 -0
  58. /package/dist/{9862.bundle.7146682e56aa66130ae6.js → 9862.bundle.c967a6f6ff9ba90811e6.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 + 114 modules
987
- var default_src = __webpack_require__(71520);
986
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
987
+ var default_src = __webpack_require__(55630);
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
@@ -4408,9 +4408,9 @@ const initMeasurementService = (measurementService, displaySetService, cornersto
4408
4408
  /* Mappings */
4409
4409
  measurementService.addMapping(csTools3DVer1MeasurementSource, 'Length', Length.matchingCriteria, Length.toAnnotation, Length.toMeasurement);
4410
4410
  measurementService.addMapping(csTools3DVer1MeasurementSource, 'Crosshairs', Length.matchingCriteria, () => {
4411
- console.warn('Crosshairs mapping not implemented.');
4411
+ return null;
4412
4412
  }, () => {
4413
- console.warn('Crosshairs mapping not implemented.');
4413
+ return null;
4414
4414
  });
4415
4415
  measurementService.addMapping(csTools3DVer1MeasurementSource, 'Bidirectional', Bidirectional.matchingCriteria, Bidirectional.toAnnotation, Bidirectional.toMeasurement);
4416
4416
  measurementService.addMapping(csTools3DVer1MeasurementSource, 'EllipticalROI', EllipticalROI.matchingCriteria, EllipticalROI.toAnnotation, EllipticalROI.toMeasurement);
@@ -5278,7 +5278,7 @@ function interleaveTopToBottom({
5278
5278
  const AllRequests = [];
5279
5279
  volumes.forEach(volume => {
5280
5280
  const requests = volume.getImageLoadRequests();
5281
- if (!requests.length || !requests[0] || !requests[0].imageId) {
5281
+ if (!requests?.[0]?.imageId) {
5282
5282
  return;
5283
5283
  }
5284
5284
 
@@ -5652,6 +5652,8 @@ var useLutPresentationStore = __webpack_require__(10182);
5652
5652
  var usePositionPresentationStore = __webpack_require__(44646);
5653
5653
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/stores/useSegmentationPresentationStore.ts + 1 modules
5654
5654
  var useSegmentationPresentationStore = __webpack_require__(2847);
5655
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
5656
+ var esm_utilities = __webpack_require__(49035);
5655
5657
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/init.tsx
5656
5658
 
5657
5659
 
@@ -5674,6 +5676,7 @@ var useSegmentationPresentationStore = __webpack_require__(2847);
5674
5676
 
5675
5677
 
5676
5678
 
5679
+
5677
5680
 
5678
5681
 
5679
5682
  const {
@@ -5755,9 +5758,18 @@ async function init({
5755
5758
  const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
5756
5759
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', loaders/* cornerstoneStreamingImageVolumeLoader */.FC);
5757
5760
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingDynamicImageVolume', loaders/* cornerstoneStreamingDynamicImageVolumeLoader */.Mr);
5758
- hangingProtocolService.registerImageLoadStrategy('interleaveCenter', interleaveCenterLoader);
5759
- hangingProtocolService.registerImageLoadStrategy('interleaveTopToBottom', interleaveTopToBottom);
5760
- hangingProtocolService.registerImageLoadStrategy('nth', interleaveNthLoader);
5761
+
5762
+ // Register strategies using the wrapper
5763
+ const imageLoadStrategies = {
5764
+ interleaveCenter: interleaveCenterLoader,
5765
+ interleaveTopToBottom: interleaveTopToBottom,
5766
+ nth: interleaveNthLoader
5767
+ };
5768
+ Object.entries(imageLoadStrategies).forEach(([name, strategyFn]) => {
5769
+ hangingProtocolService.registerImageLoadStrategy(name, createMetadataWrappedStrategy(strategyFn));
5770
+ });
5771
+
5772
+ // ... existing code ...
5761
5773
 
5762
5774
  // add metadata providers
5763
5775
  esm.metaData.addProvider(esm.utilities.calibratedPixelSpacingMetadataProvider.get.bind(esm.utilities.calibratedPixelSpacingMetadataProvider)); // this provider is required for Calibration tool
@@ -5920,6 +5932,27 @@ function initializeWebWorkerProgressHandler(uiNotificationService) {
5920
5932
  }
5921
5933
  });
5922
5934
  }
5935
+
5936
+ /**
5937
+ * Creates a wrapped image load strategy with metadata handling
5938
+ * @param strategyFn - The image loading strategy function to wrap
5939
+ * @returns A wrapped strategy function that handles metadata configuration
5940
+ */
5941
+ const createMetadataWrappedStrategy = strategyFn => {
5942
+ return args => {
5943
+ const clonedConfig = esm_utilities.imageRetrieveMetadataProvider.clone();
5944
+ esm_utilities.imageRetrieveMetadataProvider.clear();
5945
+ try {
5946
+ const result = strategyFn(args);
5947
+ return result;
5948
+ } finally {
5949
+ // Ensure metadata is always restored, even if there's an error
5950
+ setTimeout(() => {
5951
+ esm_utilities.imageRetrieveMetadataProvider.restore(clonedConfig);
5952
+ }, 10);
5953
+ }
5954
+ };
5955
+ };
5923
5956
  function CPUModal() {
5924
5957
  return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("p", null, "Your computer does not have enough GPU power to support the default GPU rendering mode. OHIF has switched to CPU rendering mode. Please note that CPU rendering does not support all features such as Volume Rendering, Multiplanar Reconstruction, and Segmentation Overlays."));
5925
5958
  }
@@ -13305,6 +13338,20 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
13305
13338
  * individual resize observers
13306
13339
  */
13307
13340
  resize(isGridResize = false) {
13341
+ // https://stackoverflow.com/a/26279685
13342
+ // This resize() call, among other things, rerenders the viewports. But when the entire viewer is
13343
+ // display: none'd, it makes the size of all hidden elements 0, including the viewport canvas and its containers.
13344
+ // Even if the viewer is later displayed again, trying to render when the size is 0 permanently "breaks" the
13345
+ // viewport, making it fully black even after the size is normal again. So just ignore resize events when hidden:
13346
+ const areViewportsHidden = Array.from(this.viewportsById.values()).every(viewportInfo => {
13347
+ const element = viewportInfo.getElement();
13348
+ return element.clientWidth === 0 && element.clientHeight === 0;
13349
+ });
13350
+ if (areViewportsHidden) {
13351
+ console.warn('Ignoring resize when viewports have size 0');
13352
+ return;
13353
+ }
13354
+
13308
13355
  // if there is a grid resize happening, it means the viewport grid
13309
13356
  // has been manipulated (e.g., panels closed, added, etc.) and we need
13310
13357
  // to resize all viewports, so we will add a timeout here to make sure
@@ -14140,6 +14187,11 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
14140
14187
  id: viewportId
14141
14188
  }) => {
14142
14189
  const presentation = this._getPositionPresentation(viewportId);
14190
+
14191
+ // During a resize, the slice index should remain unchanged. This is a temporary fix for
14192
+ // a larger issue regarding the definition of slice index with slab thickness.
14193
+ // We need to revisit this to make it more robust and understandable.
14194
+ delete presentation.viewReference.sliceIndex;
14143
14195
  this.beforeResizePositionPresentations.set(viewportId, presentation);
14144
14196
  });
14145
14197
 
@@ -14148,7 +14200,7 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
14148
14200
  renderingEngine.resize(isImmediate);
14149
14201
  renderingEngine.render();
14150
14202
 
14151
- // Reset the camera for viewports that should reset their camera on resize,
14203
+ // Reset the camera for all viewports using position presentation to maintain relative size/position
14152
14204
  // which means only those viewports that have a zoom level of 1.
14153
14205
  this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => {
14154
14206
  this.setPresentations(viewportId, {
@@ -14905,10 +14957,6 @@ function getDicomMicroscopySopClassHandler({
14905
14957
  function getSopClassHandlerModule(params) {
14906
14958
  return [getDicomMicroscopySopClassHandler(params)];
14907
14959
  }
14908
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 40 modules
14909
- var esm_utilities = __webpack_require__(49035);
14910
- // EXTERNAL MODULE: ../../../extensions/default/src/stores/useToggleOneUpViewportGridStore.ts
14911
- var useToggleOneUpViewportGridStore = __webpack_require__(73325);
14912
14960
  // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
14913
14961
  var lodash_debounce = __webpack_require__(62051);
14914
14962
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
@@ -15359,6 +15407,57 @@ function PanelSegmentation({
15359
15407
  id: 'default.showAddSegment',
15360
15408
  showAddSegment: true
15361
15409
  });
15410
+ const CustomDropdownMenuContent = customizationService.getCustomComponent('PanelSegmentation.CustomDropdownMenuContent', ({
15411
+ activeSegmentation,
15412
+ onSegmentationAdd,
15413
+ onSegmentationRemoveFromViewport,
15414
+ onSegmentationEdit,
15415
+ onSegmentationDelete,
15416
+ allowExport,
15417
+ storeSegmentation,
15418
+ onSegmentationDownload,
15419
+ onSegmentationDownloadRTSS,
15420
+ t
15421
+ }) => /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuContent */.SQ, {
15422
+ align: "start"
15423
+ }, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15424
+ onClick: () => onSegmentationAdd(activeSegmentation.id)
15425
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Add, {
15426
+ className: "text-foreground"
15427
+ }), /*#__PURE__*/react.createElement("span", {
15428
+ className: "pl-2"
15429
+ }, t('Create New Segmentation'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSeparator */.mB, null), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuLabel */.lp, null, t('Manage Current Segmentation')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15430
+ onClick: () => onSegmentationRemoveFromViewport(activeSegmentation.id)
15431
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Series, {
15432
+ className: "text-foreground"
15433
+ }), /*#__PURE__*/react.createElement("span", {
15434
+ className: "pl-2"
15435
+ }, t('Remove from Viewport'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15436
+ onClick: () => onSegmentationEdit(activeSegmentation.id)
15437
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Rename, {
15438
+ className: "text-foreground"
15439
+ }), /*#__PURE__*/react.createElement("span", {
15440
+ className: "pl-2"
15441
+ }, t('Rename'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSub */.lv, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSubTrigger */.nV, {
15442
+ disabled: !allowExport,
15443
+ className: "pl-1"
15444
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Export, {
15445
+ className: "text-foreground"
15446
+ }), /*#__PURE__*/react.createElement("span", {
15447
+ className: "pl-2"
15448
+ }, t('Export & Download'))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuPortal */.dc, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSubContent */.M5, null, /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15449
+ onClick: () => storeSegmentation(activeSegmentation.id)
15450
+ }, t('Export DICOM SEG')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15451
+ onClick: () => onSegmentationDownload(activeSegmentation.id)
15452
+ }, t('Download DICOM SEG')), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15453
+ onClick: () => onSegmentationDownloadRTSS(activeSegmentation.id)
15454
+ }, t('Download DICOM RTSTRUCT'))))), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuSeparator */.mB, null), /*#__PURE__*/react.createElement(ui_next_src/* DropdownMenuItem */._2, {
15455
+ onClick: () => onSegmentationDelete(activeSegmentation.id)
15456
+ }, /*#__PURE__*/react.createElement(ui_next_src/* Icons */.FI.Delete, {
15457
+ className: "text-red-600"
15458
+ }), /*#__PURE__*/react.createElement("span", {
15459
+ className: "pl-2 text-red-600"
15460
+ }, t('Delete')))));
15362
15461
  const exportOptions = segmentationsWithRepresentations.map(({
15363
15462
  segmentation
15364
15463
  }) => {
@@ -15421,7 +15520,7 @@ function PanelSegmentation({
15421
15520
  setRenderOutline: handlers.setRenderOutline,
15422
15521
  setFillAlphaInactive: handlers.setFillAlphaInactive,
15423
15522
  renderInactiveSegmentations: handlers.getRenderInactiveSegmentations()
15424
- }, children, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Config, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentationRow, null), SegmentationTableMode === 'collapsed' ? /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Collapsed, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.SelectorHeader, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentRow, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null)) : /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Expanded, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Header, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null))));
15523
+ }, children, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Config, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentationRow, null), SegmentationTableMode === 'collapsed' ? /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Collapsed, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.SelectorHeader, null, /*#__PURE__*/react.createElement(CustomDropdownMenuContent, null)), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.AddSegmentRow, null), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null)) : /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Expanded, null, /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Header, null, /*#__PURE__*/react.createElement(CustomDropdownMenuContent, null)), /*#__PURE__*/react.createElement(ui_next_src/* SegmentationTable */.R4.Segments, null))));
15425
15524
  }
15426
15525
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
15427
15526
  var prop_types = __webpack_require__(97598);
@@ -16738,7 +16837,7 @@ const cornerstoneExtension = {
16738
16837
  useLutPresentationStore/* useLutPresentationStore */.I.getState().clearLutPresentationStore();
16739
16838
  usePositionPresentationStore/* usePositionPresentationStore */.q.getState().clearPositionPresentationStore();
16740
16839
  useSynchronizersStore/* useSynchronizersStore */.U.getState().clearSynchronizersStore();
16741
- useToggleOneUpViewportGridStore/* useToggleOneUpViewportGridStore */.Y.getState().clearToggleOneUpViewportGridStore();
16840
+ default_src.useToggleOneUpViewportGridStore.getState().clearToggleOneUpViewportGridStore();
16742
16841
  useSegmentationPresentationStore/* useSegmentationPresentationStore */.v.getState().clearSegmentationPresentationStore();
16743
16842
  segmentationService.removeAllSegmentations();
16744
16843
  },
@@ -16992,8 +17091,8 @@ const addUniqueIndex = (arr, key, viewports, isUpdatingSameViewport) => {
16992
17091
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
16993
17092
  /* harmony export */ I: () => (/* binding */ useLutPresentationStore)
16994
17093
  /* harmony export */ });
16995
- /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95759);
16996
- /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39100);
17094
+ /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
17095
+ /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
16997
17096
  /* harmony import */ var _presentationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46026);
16998
17097
 
16999
17098
 
@@ -17107,8 +17206,8 @@ const useLutPresentationStore = (0,zustand__WEBPACK_IMPORTED_MODULE_0__/* .creat
17107
17206
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17108
17207
  /* harmony export */ q: () => (/* binding */ usePositionPresentationStore)
17109
17208
  /* harmony export */ });
17110
- /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95759);
17111
- /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39100);
17209
+ /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
17210
+ /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
17112
17211
  /* harmony import */ var _presentationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46026);
17113
17212
 
17114
17213
 
@@ -17221,10 +17320,10 @@ __webpack_require__.d(__webpack_exports__, {
17221
17320
  v: () => (/* binding */ useSegmentationPresentationStore)
17222
17321
  });
17223
17322
 
17224
- // EXTERNAL MODULE: ../node_modules/zustand/esm/index.mjs + 1 modules
17225
- var esm = __webpack_require__(95759);
17226
- // EXTERNAL MODULE: ../node_modules/zustand/esm/middleware.mjs
17227
- var middleware = __webpack_require__(39100);
17323
+ // EXTERNAL MODULE: ../../../node_modules/zustand/esm/index.mjs + 1 modules
17324
+ var esm = __webpack_require__(78713);
17325
+ // EXTERNAL MODULE: ../../../node_modules/zustand/esm/middleware.mjs
17326
+ var middleware = __webpack_require__(21978);
17228
17327
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/stores/presentationUtils.ts
17229
17328
  var presentationUtils = __webpack_require__(46026);
17230
17329
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
@@ -17427,8 +17526,8 @@ const useSegmentationPresentationStore = (0,esm/* create */.vt)()(DEBUG_STORE ?
17427
17526
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
17428
17527
  /* harmony export */ U: () => (/* binding */ useSynchronizersStore)
17429
17528
  /* harmony export */ });
17430
- /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95759);
17431
- /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39100);
17529
+ /* harmony import */ var zustand__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78713);
17530
+ /* harmony import */ var zustand_middleware__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21978);
17432
17531
 
17433
17532
 
17434
17533
 
@@ -762,6 +762,11 @@ const performCustomizations = customizationService => {
762
762
  id: 'PanelSegmentation.disableEditing',
763
763
  disableEditing: true
764
764
  }
765
+ // to only show current study in the panel study browser
766
+ // {
767
+ // id: 'PanelStudyBrowser.studyMode',
768
+ // mode: 'primary',
769
+ // },
765
770
  // To disable editing in the MeasurementTable
766
771
  // {
767
772
  // id: 'PanelMeasurement.disableEditing',
@@ -778,6 +783,31 @@ const performCustomizations = customizationService => {
778
783
  // { value: 'Toe', label: 'Toe' },
779
784
  // ],
780
785
  // },
786
+ /**
787
+ * Custom Dropdown Menu Item
788
+ */
789
+ // {
790
+ // id: 'PanelSegmentation.CustomDropdownMenuContent',
791
+ // content: ({
792
+ // activeSegmentation,
793
+ // onSegmentationAdd,
794
+ // onSegmentationRemoveFromViewport,
795
+ // onSegmentationEdit,
796
+ // onSegmentationDelete,
797
+ // allowExport,
798
+ // storeSegmentation,
799
+ // onSegmentationDownload,
800
+ // onSegmentationDownloadRTSS,
801
+ // t,
802
+ // }) => (
803
+ // <DropdownMenuContent align="start">
804
+ // <DropdownMenuItem onClick={() => onSegmentationDelete(activeSegmentation.id)}>
805
+ // <Icons.Delete className="text-red-600" />
806
+ // <span className="pl-2 text-red-600">{t('My Custom Dropdown Menu Item')}</span>
807
+ // </DropdownMenuItem>
808
+ // </DropdownMenuContent>
809
+ // ),
810
+ // },
781
811
  ]);
782
812
  };
783
813
  ;// CONCATENATED MODULE: ../../../modes/longitudinal/src/index.ts
package/dist/1266.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
2
2
  .chrome-picker{background:#090c29!important}
3
3
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
4
- .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
4
+ .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
package/dist/1801.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
2
2
  .chrome-picker{background:#090c29!important}
3
3
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
4
- .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
4
+ .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
@@ -172,7 +172,7 @@
172
172
  /******/ // This function allow to reference async chunks and sibling chunks for the entrypoint
173
173
  /******/ __webpack_require__.u = (chunkId) => {
174
174
  /******/ // return url for filenames based on template
175
- /******/ return "" + chunkId + ".bundle." + {"732":"532947c280e1a8f6e020","4571":"3b1691730b3c57bf4d35","8094":"411698eaf81975a7f12d"}[chunkId] + ".js";
175
+ /******/ return "" + chunkId + ".bundle." + {"732":"532947c280e1a8f6e020","4571":"142e8f6150bf81f1b7d2","8094":"411698eaf81975a7f12d"}[chunkId] + ".js";
176
176
  /******/ };
177
177
  /******/ })();
178
178
  /******/
package/dist/3198.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
2
2
  .chrome-picker{background:#090c29!important}
3
3
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
4
- .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
4
+ .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
@@ -22,8 +22,8 @@ var es = __webpack_require__(70574);
22
22
  var react_es = __webpack_require__(95261);
23
23
  // EXTERNAL MODULE: ../../ui/src/index.js + 690 modules
24
24
  var src = __webpack_require__(35647);
25
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 114 modules
26
- var default_src = __webpack_require__(71520);
25
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
26
+ var default_src = __webpack_require__(55630);
27
27
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
28
28
 
29
29
  const RESPONSE = {
@@ -1149,8 +1149,8 @@ var react = __webpack_require__(86326);
1149
1149
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
1150
1150
  var prop_types = __webpack_require__(97598);
1151
1151
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
1152
- // EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
1153
- var dist = __webpack_require__(49348);
1152
+ // EXTERNAL MODULE: ../../../node_modules/react-router-dom/dist/index.js
1153
+ var dist = __webpack_require__(4194);
1154
1154
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
1155
1155
  var es = __webpack_require__(99993);
1156
1156
  // EXTERNAL MODULE: ../../core/src/index.ts + 71 modules
@@ -1159,8 +1159,8 @@ var src = __webpack_require__(29463);
1159
1159
  var ui_src = __webpack_require__(35647);
1160
1160
  // EXTERNAL MODULE: ../../ui-next/src/index.ts + 2483 modules
1161
1161
  var ui_next_src = __webpack_require__(35570);
1162
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 114 modules
1163
- var default_src = __webpack_require__(71520);
1162
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 115 modules
1163
+ var default_src = __webpack_require__(55630);
1164
1164
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/constants/actionIcons.ts
1165
1165
  const defaultActionIcons = [{
1166
1166
  id: 'settings',
@@ -1222,6 +1222,12 @@ function PanelStudyBrowserTracking({
1222
1222
  customizationService
1223
1223
  } = servicesManager.services;
1224
1224
  const navigate = (0,dist/* useNavigate */.Zp)();
1225
+ const {
1226
+ mode: studyMode
1227
+ } = customizationService.getCustomization('PanelStudyBrowser.studyMode', {
1228
+ id: 'default',
1229
+ mode: 'all'
1230
+ });
1225
1231
  const {
1226
1232
  t
1227
1233
  } = (0,es/* useTranslation */.Bd)('Common');
@@ -1238,7 +1244,7 @@ function PanelStudyBrowserTracking({
1238
1244
  isHangingProtocolLayout
1239
1245
  }, viewportGridService] = (0,ui_src/* useViewportGrid */.ih)();
1240
1246
  const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,getContextModule/* useTrackedMeasurements */.B)();
1241
- const [activeTabName, setActiveTabName] = (0,react.useState)('all');
1247
+ const [activeTabName, setActiveTabName] = (0,react.useState)(studyMode);
1242
1248
  const [expandedStudyInstanceUIDs, setExpandedStudyInstanceUIDs] = (0,react.useState)([...StudyInstanceUIDs]);
1243
1249
  const [studyDisplayList, setStudyDisplayList] = (0,react.useState)([]);
1244
1250
  const [hasLoadedViewports, setHasLoadedViewports] = (0,react.useState)(false);
@@ -1283,6 +1289,9 @@ function PanelStudyBrowserTracking({
1283
1289
  const {
1284
1290
  trackedSeries
1285
1291
  } = trackedMeasurements.context;
1292
+ (0,react.useEffect)(() => {
1293
+ setActiveTabName(studyMode);
1294
+ }, [studyMode]);
1286
1295
 
1287
1296
  // ~~ studyDisplayList
1288
1297
  (0,react.useEffect)(() => {
@@ -1604,7 +1613,6 @@ PanelStudyBrowserTracking.propTypes = {
1604
1613
  getStudiesForPatientByMRN: (prop_types_default()).func.isRequired,
1605
1614
  requestDisplaySetCreationForStudy: (prop_types_default()).func.isRequired
1606
1615
  };
1607
- /* harmony default export */ const PanelStudyBrowserTracking_PanelStudyBrowserTracking = (PanelStudyBrowserTracking);
1608
1616
  function getImageIdForThumbnail(displaySet, imageIds) {
1609
1617
  let imageId;
1610
1618
  if (displaySet.isDynamicVolume) {
@@ -1841,7 +1849,7 @@ function WrappedPanelStudyBrowserTracking({
1841
1849
  const _getStudiesForPatientByMRN = getStudiesForPatientByMRN.bind(null, dataSource);
1842
1850
  const _getImageSrcFromImageId = (0,react.useCallback)(_createGetImageSrcFromImageIdFn(extensionManager), []);
1843
1851
  const _requestDisplaySetCreationForStudy = PanelStudyBrowserTracking_requestDisplaySetCreationForStudy.bind(null, dataSource);
1844
- return /*#__PURE__*/react.createElement(PanelStudyBrowserTracking_PanelStudyBrowserTracking, {
1852
+ return /*#__PURE__*/react.createElement(PanelStudyBrowserTracking, {
1845
1853
  servicesManager: servicesManager,
1846
1854
  commandsManager: commandsManager,
1847
1855
  dataSource: dataSource,
package/dist/3200.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
2
2
  .chrome-picker{background:#090c29!important}
3
3
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
4
- .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
4
+ .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
@@ -8450,7 +8450,24 @@ function closeEndPoint(endpoint) {
8450
8450
  endpoint.close();
8451
8451
  }
8452
8452
  function wrap(ep, target) {
8453
- return createProxy(ep, [], target);
8453
+ const pendingListeners = new Map();
8454
+ ep.addEventListener("message", function handleMessage(ev) {
8455
+ const { data } = ev;
8456
+ if (!data || !data.id) {
8457
+ return;
8458
+ }
8459
+ const resolver = pendingListeners.get(data.id);
8460
+ if (!resolver) {
8461
+ return;
8462
+ }
8463
+ try {
8464
+ resolver(data);
8465
+ }
8466
+ finally {
8467
+ pendingListeners.delete(data.id);
8468
+ }
8469
+ });
8470
+ return createProxy(ep, pendingListeners, [], target);
8454
8471
  }
8455
8472
  function throwIfProxyReleased(isReleased) {
8456
8473
  if (isReleased) {
@@ -8458,7 +8475,7 @@ function throwIfProxyReleased(isReleased) {
8458
8475
  }
8459
8476
  }
8460
8477
  function releaseEndpoint(ep) {
8461
- return requestResponseMessage(ep, {
8478
+ return requestResponseMessage(ep, new Map(), {
8462
8479
  type: "RELEASE" /* MessageType.RELEASE */,
8463
8480
  }).then(() => {
8464
8481
  closeEndPoint(ep);
@@ -8485,7 +8502,7 @@ function unregisterProxy(proxy) {
8485
8502
  proxyFinalizers.unregister(proxy);
8486
8503
  }
8487
8504
  }
8488
- function createProxy(ep, path = [], target = function () { }) {
8505
+ function createProxy(ep, pendingListeners, path = [], target = function () { }) {
8489
8506
  let isProxyReleased = false;
8490
8507
  const proxy = new Proxy(target, {
8491
8508
  get(_target, prop) {
@@ -8494,6 +8511,7 @@ function createProxy(ep, path = [], target = function () { }) {
8494
8511
  return () => {
8495
8512
  unregisterProxy(proxy);
8496
8513
  releaseEndpoint(ep);
8514
+ pendingListeners.clear();
8497
8515
  isProxyReleased = true;
8498
8516
  };
8499
8517
  }
@@ -8501,20 +8519,20 @@ function createProxy(ep, path = [], target = function () { }) {
8501
8519
  if (path.length === 0) {
8502
8520
  return { then: () => proxy };
8503
8521
  }
8504
- const r = requestResponseMessage(ep, {
8522
+ const r = requestResponseMessage(ep, pendingListeners, {
8505
8523
  type: "GET" /* MessageType.GET */,
8506
8524
  path: path.map((p) => p.toString()),
8507
8525
  }).then(fromWireValue);
8508
8526
  return r.then.bind(r);
8509
8527
  }
8510
- return createProxy(ep, [...path, prop]);
8528
+ return createProxy(ep, pendingListeners, [...path, prop]);
8511
8529
  },
8512
8530
  set(_target, prop, rawValue) {
8513
8531
  throwIfProxyReleased(isProxyReleased);
8514
8532
  // FIXME: ES6 Proxy Handler `set` methods are supposed to return a
8515
8533
  // boolean. To show good will, we return true asynchronously ¯\_(ツ)_/¯
8516
8534
  const [value, transferables] = toWireValue(rawValue);
8517
- return requestResponseMessage(ep, {
8535
+ return requestResponseMessage(ep, pendingListeners, {
8518
8536
  type: "SET" /* MessageType.SET */,
8519
8537
  path: [...path, prop].map((p) => p.toString()),
8520
8538
  value,
@@ -8524,16 +8542,16 @@ function createProxy(ep, path = [], target = function () { }) {
8524
8542
  throwIfProxyReleased(isProxyReleased);
8525
8543
  const last = path[path.length - 1];
8526
8544
  if (last === createEndpoint) {
8527
- return requestResponseMessage(ep, {
8545
+ return requestResponseMessage(ep, pendingListeners, {
8528
8546
  type: "ENDPOINT" /* MessageType.ENDPOINT */,
8529
8547
  }).then(fromWireValue);
8530
8548
  }
8531
8549
  // We just pretend that `bind()` didn’t happen.
8532
8550
  if (last === "bind") {
8533
- return createProxy(ep, path.slice(0, -1));
8551
+ return createProxy(ep, pendingListeners, path.slice(0, -1));
8534
8552
  }
8535
8553
  const [argumentList, transferables] = processArguments(rawArgumentList);
8536
- return requestResponseMessage(ep, {
8554
+ return requestResponseMessage(ep, pendingListeners, {
8537
8555
  type: "APPLY" /* MessageType.APPLY */,
8538
8556
  path: path.map((p) => p.toString()),
8539
8557
  argumentList,
@@ -8542,7 +8560,7 @@ function createProxy(ep, path = [], target = function () { }) {
8542
8560
  construct(_target, rawArgumentList) {
8543
8561
  throwIfProxyReleased(isProxyReleased);
8544
8562
  const [argumentList, transferables] = processArguments(rawArgumentList);
8545
- return requestResponseMessage(ep, {
8563
+ return requestResponseMessage(ep, pendingListeners, {
8546
8564
  type: "CONSTRUCT" /* MessageType.CONSTRUCT */,
8547
8565
  path: path.map((p) => p.toString()),
8548
8566
  argumentList,
@@ -8604,16 +8622,10 @@ function fromWireValue(value) {
8604
8622
  return value.value;
8605
8623
  }
8606
8624
  }
8607
- function requestResponseMessage(ep, msg, transfers) {
8625
+ function requestResponseMessage(ep, pendingListeners, msg, transfers) {
8608
8626
  return new Promise((resolve) => {
8609
8627
  const id = generateUUID();
8610
- ep.addEventListener("message", function l(ev) {
8611
- if (!ev.data || !ev.data.id || ev.data.id !== id) {
8612
- return;
8613
- }
8614
- ep.removeEventListener("message", l);
8615
- resolve(ev.data);
8616
- });
8628
+ pendingListeners.set(id, resolve);
8617
8629
  if (ep.start) {
8618
8630
  ep.start();
8619
8631
  }
@@ -6247,9 +6247,19 @@ module.exports = iota
6247
6247
  * @license MIT
6248
6248
  */
6249
6249
 
6250
- module.exports = function isBuffer (obj) {
6251
- return obj != null && obj.constructor != null &&
6252
- typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
6250
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
6251
+ // Object.prototype.constructor. Remove this eventually
6252
+ module.exports = function (obj) {
6253
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
6254
+ }
6255
+
6256
+ function isBuffer (obj) {
6257
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
6258
+ }
6259
+
6260
+ // For Node v0.10 support. Remove this eventually.
6261
+ function isSlowBuffer (obj) {
6262
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
6253
6263
  }
6254
6264
 
6255
6265
 
package/dist/4182.css CHANGED
@@ -1,4 +1,4 @@
1
1
  .dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
2
2
  .chrome-picker{background:#090c29!important}
3
3
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
4
- .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,transparent 0,transparent);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
4
+ .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}