@ohif/app 3.13.0-beta.74 → 3.13.0-beta.76

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 (40) hide show
  1. package/dist/{2075.bundle.23265b8e7597c398db4f.js → 2075.bundle.ba9ac60662f1fa739378.js} +10 -5
  2. package/dist/{2851.bundle.0f1057b18a3b58ff7f95.js → 2851.bundle.ebf3b8c0d18d8012717a.js} +2 -2
  3. package/dist/{4287.bundle.b7840e7b94cbbc102236.js → 4287.bundle.4f28e48c1e39a46dfc87.js} +4 -1
  4. package/dist/{4579.bundle.0a6b2f49a7e136a79e37.js → 4579.bundle.1c315389368cc476aed3.js} +910 -1262
  5. package/dist/{6386.bundle.5d82d1f41d1c37a0358d.js → 6386.bundle.dc7e3b159d6b4733647f.js} +21 -4
  6. package/dist/{7537.bundle.889ba5f2707418c6fd88.js → 7537.bundle.88314e5a6269f96a0bae.js} +11 -13
  7. package/dist/{9039.bundle.f72736f47fedeff521e2.js → 9039.bundle.f5db80328c99cd11293b.js} +38 -24
  8. package/dist/{9205.bundle.ed7bce8436a7a431955e.js → 9205.bundle.f2121894550d46d17398.js} +29 -20
  9. package/dist/{app.bundle.577e4476293935af2cc0.js → app.bundle.25a9cc67641d1a331986.js} +27 -23
  10. package/dist/{compute.bundle.b7c2ea55f1a69f4a736b.js → compute.bundle.5e9691bc58308d865058.js} +1 -1
  11. package/dist/index.html +1 -1
  12. package/dist/{polySeg.bundle.e1f6f05d81ea1352bef3.js → polySeg.bundle.c394421c24d8c27d54ca.js} +1 -1
  13. package/dist/sw.js +1 -1
  14. package/package.json +21 -21
  15. /package/dist/{1459.bundle.6b50602d8c6953a77a28.js → 1459.bundle.55a52bfdd51476e705f7.js} +0 -0
  16. /package/dist/{1933.bundle.fec17714a2e2cdd72747.js → 1933.bundle.0155a24e2dc46ebd632f.js} +0 -0
  17. /package/dist/{2018.bundle.c1dcb8f51302db969ca5.js → 2018.bundle.29f902bd7cae54b4c36b.js} +0 -0
  18. /package/dist/{213.bundle.11d39c0cd6d33a67b8c7.js → 213.bundle.11b64325d134e3e28b6b.js} +0 -0
  19. /package/dist/{2424.bundle.c7ae51b65497c5792106.js → 2424.bundle.fc778f8a6aa1fba72a52.js} +0 -0
  20. /package/dist/{3138.bundle.19b47310d6d29d39ed17.js → 3138.bundle.308e17d37c0e66751cde.js} +0 -0
  21. /package/dist/{3461.bundle.b69dece36103bdf70e67.js → 3461.bundle.582fb54791c25e88f004.js} +0 -0
  22. /package/dist/{3754.bundle.fd4b67c2a29c4bc4a840.js → 3754.bundle.d2435bb372912595708c.js} +0 -0
  23. /package/dist/{4507.bundle.3e858e473b2efca86ae4.js → 4507.bundle.a480ce58b3dede4dae66.js} +0 -0
  24. /package/dist/{4819.bundle.bf9352d276de4386bfba.js → 4819.bundle.5b82df4b88882d8562c8.js} +0 -0
  25. /package/dist/{5015.bundle.a8978eb57bbd00a4ada7.js → 5015.bundle.8fb4939cb35bd947894c.js} +0 -0
  26. /package/dist/{5028.bundle.526e217fcb875ceec28a.js → 5028.bundle.0fd91eb688cf9e218675.js} +0 -0
  27. /package/dist/{5457.bundle.a2bea9789e0a545d1c59.js → 5457.bundle.350d6168eda9fe9fbe2e.js} +0 -0
  28. /package/dist/{5485.bundle.72d5cbd960a6df6e2598.js → 5485.bundle.57db505328bd45707079.js} +0 -0
  29. /package/dist/{5802.bundle.26f84db0ff8851532c36.js → 5802.bundle.cd36386cbe1613913ed4.js} +0 -0
  30. /package/dist/{6027.bundle.a4dab1075c901128740a.js → 6027.bundle.27db413df7eed119c22f.js} +0 -0
  31. /package/dist/{7166.bundle.ae95b245b43077a934d9.js → 7166.bundle.937ccda42edda5822870.js} +0 -0
  32. /package/dist/{7431.bundle.5e14641f2c71e852abe7.js → 7431.bundle.a9b4dbf97a8c196efe51.js} +0 -0
  33. /package/dist/{7639.bundle.e4683ed12f33f03f926e.js → 7639.bundle.ad915515ba65153bca77.js} +0 -0
  34. /package/dist/{8305.bundle.45bbc5d4d168a95a318d.js → 8305.bundle.b421054287ca52c1fad6.js} +0 -0
  35. /package/dist/{8499.bundle.a3227ecec452013f5985.js → 8499.bundle.df8198955472ea271949.js} +0 -0
  36. /package/dist/{85.bundle.7d0416939f5505006533.js → 85.bundle.b01d5d50a015c723ce3e.js} +0 -0
  37. /package/dist/{8558.bundle.e7266297e1791d0d221e.js → 8558.bundle.e24044f432a509376217.js} +0 -0
  38. /package/dist/{8583.bundle.16fbd2fdf5ea18a1a0e8.js → 8583.bundle.71db06a8c93c40c4bbad.js} +0 -0
  39. /package/dist/{9862.bundle.a5f7925840868fa4ecdb.js → 9862.bundle.6d793a997f85d73002e9.js} +0 -0
  40. /package/dist/{9927.bundle.d600536c28059370794c.js → 9927.bundle.f9d846b4724e66728c7c.js} +0 -0
@@ -7015,6 +7015,7 @@ class SegmentationStateManager {
7015
7015
  constructor(uid) {
7016
7016
  this._stackLabelmapImageIdReferenceMap = new Map();
7017
7017
  this._labelmapImageIdReferenceMap = new Map();
7018
+ this._labelmapKeysBySegmentationId = new Map();
7018
7019
  uid ||= _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.uuidv4();
7019
7020
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
7020
7021
  this.uid = uid;
@@ -7036,6 +7037,7 @@ class SegmentationStateManager {
7036
7037
  resetState() {
7037
7038
  this._stackLabelmapImageIdReferenceMap.clear();
7038
7039
  this._labelmapImageIdReferenceMap.clear();
7040
+ this._labelmapKeysBySegmentationId.clear();
7039
7041
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
7040
7042
  }
7041
7043
  getSegmentation(segmentationId) {
@@ -7070,6 +7072,14 @@ class SegmentationStateManager {
7070
7072
  (0,_events_triggerSegmentationAdded__WEBPACK_IMPORTED_MODULE_6__/* .triggerSegmentationAdded */ .R)(segmentation.segmentationId);
7071
7073
  }
7072
7074
  removeSegmentation(segmentationId) {
7075
+ this._stackLabelmapImageIdReferenceMap.delete(segmentationId);
7076
+ const keys = this._labelmapKeysBySegmentationId.get(segmentationId);
7077
+ if (keys) {
7078
+ for (const key of keys) {
7079
+ this._labelmapImageIdReferenceMap.delete(key);
7080
+ }
7081
+ this._labelmapKeysBySegmentationId.delete(segmentationId);
7082
+ }
7073
7083
  this.updateState((state) => {
7074
7084
  const filteredSegmentations = state.segmentations.filter((segmentation) => segmentation.segmentationId !== segmentationId);
7075
7085
  state.segmentations.splice(0, state.segmentations.length, ...filteredSegmentations);
@@ -7364,11 +7374,18 @@ class SegmentationStateManager {
7364
7374
  const key = this._generateMapKey({ segmentationId, referenceImageId });
7365
7375
  if (!this._labelmapImageIdReferenceMap.has(key)) {
7366
7376
  this._labelmapImageIdReferenceMap.set(key, [labelmapImageId]);
7367
- return;
7368
7377
  }
7369
- const currentValues = this._labelmapImageIdReferenceMap.get(key);
7370
- const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
7371
- this._labelmapImageIdReferenceMap.set(key, newValues);
7378
+ else {
7379
+ const currentValues = this._labelmapImageIdReferenceMap.get(key);
7380
+ const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
7381
+ this._labelmapImageIdReferenceMap.set(key, newValues);
7382
+ }
7383
+ let keys = this._labelmapKeysBySegmentationId.get(segmentationId);
7384
+ if (!keys) {
7385
+ keys = new Set();
7386
+ this._labelmapKeysBySegmentationId.set(segmentationId, keys);
7387
+ }
7388
+ keys.add(key);
7372
7389
  }
7373
7390
  _setActiveSegmentation(state, viewportId, segmentationId) {
7374
7391
  const viewport = state.viewportSegRepresentations[viewportId];
@@ -1171,7 +1171,8 @@ class BaseVolumeViewport extends Viewport/* default */.A {
1171
1171
  initializeVolumeNewImageEventDispatcher() {
1172
1172
  const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
1173
1173
  const volumeNewImageCleanUpBound = volumeNewImageCleanUp.bind(this);
1174
- function volumeNewImageHandler(cameraEvent) {
1174
+ function volumeNewImageHandler(event) {
1175
+ const cameraEvent = event;
1175
1176
  const { viewportId } = cameraEvent.detail;
1176
1177
  if (viewportId !== this.id || this.isDisabled) {
1177
1178
  return;
@@ -1664,24 +1665,21 @@ class BaseVolumeViewport extends Viewport/* default */.A {
1664
1665
  return;
1665
1666
  }
1666
1667
  const { volumeActor } = applicableVolumeActorInfo;
1667
- let preset = presetNameOrObj;
1668
- if (typeof preset === 'string') {
1669
- preset = constants.VIEWPORT_PRESETS.find((preset) => {
1670
- return preset.name === presetNameOrObj;
1671
- });
1672
- }
1673
- if (!preset) {
1668
+ const viewportPreset = typeof presetNameOrObj === 'string'
1669
+ ? constants.VIEWPORT_PRESETS.find((preset) => preset.name === presetNameOrObj)
1670
+ : presetNameOrObj;
1671
+ if (!viewportPreset) {
1674
1672
  return;
1675
1673
  }
1676
- (0,applyPreset/* default */.A)(volumeActor, preset);
1677
- this.viewportProperties.preset = preset;
1674
+ (0,applyPreset/* default */.A)(volumeActor, viewportPreset);
1675
+ this.viewportProperties.preset = viewportPreset.name;
1678
1676
  this.render();
1679
1677
  if (!suppressEvents) {
1680
1678
  (0,triggerEvent/* default */.A)(this.element, enums.Events.PRESET_MODIFIED, {
1681
1679
  viewportId: this.id,
1682
1680
  volumeId: applicableVolumeActorInfo.volumeId,
1683
1681
  actor: volumeActor,
1684
- presetName: preset.name,
1682
+ presetName: viewportPreset.name,
1685
1683
  });
1686
1684
  }
1687
1685
  }
@@ -36341,7 +36339,7 @@ function uuidv4() {
36341
36339
 
36342
36340
  "use strict";
36343
36341
  /* unused harmony export version */
36344
- const version = '4.22.3';
36342
+ const version = '4.22.8';
36345
36343
 
36346
36344
 
36347
36345
  /***/ },
@@ -39266,10 +39264,10 @@ function getViewportIdsWithSegmentation(segmentationId) {
39266
39264
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
39267
39265
  /* harmony export */ DU: () => (/* binding */ getSurfaceRepresentationUID),
39268
39266
  /* harmony export */ ED: () => (/* binding */ getLabelmapActorEntries),
39269
- /* harmony export */ Qe: () => (/* binding */ getLabelmapActorUID),
39270
39267
  /* harmony export */ Th: () => (/* binding */ getSurfaceActorEntry),
39271
39268
  /* harmony export */ wV: () => (/* binding */ getLabelmapActorEntry)
39272
39269
  /* harmony export */ });
39270
+ /* unused harmony export getLabelmapActorUID */
39273
39271
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
39274
39272
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29857);
39275
39273
 
@@ -7309,7 +7309,7 @@ var COLOR_LUT = __webpack_require__(93952);
7309
7309
 
7310
7310
 
7311
7311
  ;// ../../../node_modules/@cornerstonejs/tools/dist/esm/version.js
7312
- const version = '4.22.3';
7312
+ const version = '4.22.8';
7313
7313
 
7314
7314
  ;// ../../../node_modules/@cornerstonejs/tools/dist/esm/synchronizers/callbacks/cameraSyncCallback.js
7315
7315
  /* unused harmony import specifier */ var cameraSyncCallback_getRenderingEngine;
@@ -22894,12 +22894,9 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
22894
22894
  const deltaInX = gl_matrix_esm/* vec3.distance */.eR.distance(originalWorldPoint, deltaXPoint);
22895
22895
  const deltaInY = gl_matrix_esm/* vec3.distance */.eR.distance(originalWorldPoint, deltaYPoint);
22896
22896
  const { imageData } = image;
22897
- const { scale, areaUnit } = (0,getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op)(image, () => {
22897
+ const { areaUnit } = (0,getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op)(image, () => {
22898
22898
  const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } = math.polyline.getAABB(canvasCoordinates);
22899
- const topLeftBBWorld = viewport.canvasToWorld([
22900
- canvasMinX,
22901
- canvasMinY,
22902
- ]);
22899
+ const topLeftBBWorld = viewport.canvasToWorld([canvasMinX, canvasMinY]);
22903
22900
  const topLeftBBIndex = esm.utilities.transformWorldToIndex(imageData, topLeftBBWorld);
22904
22901
  const bottomRightBBWorld = viewport.canvasToWorld([
22905
22902
  canvasMaxX,
@@ -22908,8 +22905,7 @@ class SplineROITool extends ContourSegmentationBaseTool/* default */.A {
22908
22905
  const bottomRightBBIndex = esm.utilities.transformWorldToIndex(imageData, bottomRightBBWorld);
22909
22906
  return [topLeftBBIndex, bottomRightBBIndex];
22910
22907
  });
22911
- let area = math.polyline.getArea(canvasCoordinates) / scale / scale;
22912
- area *= deltaInX * deltaInY;
22908
+ const area = math.polyline.getArea(canvasCoordinates) * deltaInX * deltaInY;
22913
22909
  cachedStats[targetId] = {
22914
22910
  Modality: metadata.Modality,
22915
22911
  area,
@@ -23655,12 +23651,9 @@ class LivewireContourTool extends ContourSegmentationBaseTool/* default */.A {
23655
23651
  const deltaInX = gl_matrix_esm/* vec3.distance */.eR.distance(originalWorldPoint, deltaXPoint);
23656
23652
  const deltaInY = gl_matrix_esm/* vec3.distance */.eR.distance(originalWorldPoint, deltaYPoint);
23657
23653
  const { imageData } = image;
23658
- const { scale, areaUnit } = (0,getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op)(image, () => {
23654
+ const { areaUnit } = (0,getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op)(image, () => {
23659
23655
  const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } = math.polyline.getAABB(canvasCoordinates);
23660
- const topLeftBBWorld = viewport.canvasToWorld([
23661
- canvasMinX,
23662
- canvasMinY,
23663
- ]);
23656
+ const topLeftBBWorld = viewport.canvasToWorld([canvasMinX, canvasMinY]);
23664
23657
  const topLeftBBIndex = esm.utilities.transformWorldToIndex(imageData, topLeftBBWorld);
23665
23658
  const bottomRightBBWorld = viewport.canvasToWorld([
23666
23659
  canvasMaxX,
@@ -23669,8 +23662,7 @@ class LivewireContourTool extends ContourSegmentationBaseTool/* default */.A {
23669
23662
  const bottomRightBBIndex = esm.utilities.transformWorldToIndex(imageData, bottomRightBBWorld);
23670
23663
  return [topLeftBBIndex, bottomRightBBIndex];
23671
23664
  });
23672
- let area = math.polyline.getArea(canvasCoordinates) / scale / scale;
23673
- area *= deltaInX * deltaInY;
23665
+ const area = math.polyline.getArea(canvasCoordinates) * deltaInX * deltaInY;
23674
23666
  cachedStats[targetId] = {
23675
23667
  Modality: metadata.Modality,
23676
23668
  area,
@@ -33259,6 +33251,7 @@ class SegmentationStateManager {
33259
33251
  constructor(uid) {
33260
33252
  this._stackLabelmapImageIdReferenceMap = new Map();
33261
33253
  this._labelmapImageIdReferenceMap = new Map();
33254
+ this._labelmapKeysBySegmentationId = new Map();
33262
33255
  uid ||= _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.uuidv4();
33263
33256
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
33264
33257
  this.uid = uid;
@@ -33280,6 +33273,7 @@ class SegmentationStateManager {
33280
33273
  resetState() {
33281
33274
  this._stackLabelmapImageIdReferenceMap.clear();
33282
33275
  this._labelmapImageIdReferenceMap.clear();
33276
+ this._labelmapKeysBySegmentationId.clear();
33283
33277
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
33284
33278
  }
33285
33279
  getSegmentation(segmentationId) {
@@ -33314,6 +33308,14 @@ class SegmentationStateManager {
33314
33308
  (0,_events_triggerSegmentationAdded__WEBPACK_IMPORTED_MODULE_6__/* .triggerSegmentationAdded */ .R)(segmentation.segmentationId);
33315
33309
  }
33316
33310
  removeSegmentation(segmentationId) {
33311
+ this._stackLabelmapImageIdReferenceMap.delete(segmentationId);
33312
+ const keys = this._labelmapKeysBySegmentationId.get(segmentationId);
33313
+ if (keys) {
33314
+ for (const key of keys) {
33315
+ this._labelmapImageIdReferenceMap.delete(key);
33316
+ }
33317
+ this._labelmapKeysBySegmentationId.delete(segmentationId);
33318
+ }
33317
33319
  this.updateState((state) => {
33318
33320
  const filteredSegmentations = state.segmentations.filter((segmentation) => segmentation.segmentationId !== segmentationId);
33319
33321
  state.segmentations.splice(0, state.segmentations.length, ...filteredSegmentations);
@@ -33608,11 +33610,18 @@ class SegmentationStateManager {
33608
33610
  const key = this._generateMapKey({ segmentationId, referenceImageId });
33609
33611
  if (!this._labelmapImageIdReferenceMap.has(key)) {
33610
33612
  this._labelmapImageIdReferenceMap.set(key, [labelmapImageId]);
33611
- return;
33612
33613
  }
33613
- const currentValues = this._labelmapImageIdReferenceMap.get(key);
33614
- const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
33615
- this._labelmapImageIdReferenceMap.set(key, newValues);
33614
+ else {
33615
+ const currentValues = this._labelmapImageIdReferenceMap.get(key);
33616
+ const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
33617
+ this._labelmapImageIdReferenceMap.set(key, newValues);
33618
+ }
33619
+ let keys = this._labelmapKeysBySegmentationId.get(segmentationId);
33620
+ if (!keys) {
33621
+ keys = new Set();
33622
+ this._labelmapKeysBySegmentationId.set(segmentationId, keys);
33623
+ }
33624
+ keys.add(key);
33616
33625
  }
33617
33626
  _setActiveSegmentation(state, viewportId, segmentationId) {
33618
33627
  const viewport = state.viewportSegRepresentations[viewportId];
@@ -36957,7 +36966,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
36957
36966
  }
36958
36967
  }
36959
36968
  updateClosedCachedStats({ viewport, points, imageData, metadata, cachedStats, targetId, modalityUnit, canvasCoordinates, calibratedScale, deltaInX, deltaInY, }) {
36960
- const { scale, areaUnit, unit } = calibratedScale;
36969
+ const { areaUnit, unit } = calibratedScale;
36961
36970
  const { voxelManager } = viewport.getImageData();
36962
36971
  const indexPoints = points.map((point) => imageData.worldToIndex(point));
36963
36972
  let iMin = Number.MAX_SAFE_INTEGER;
@@ -36975,8 +36984,7 @@ class PlanarFreehandROITool extends _base_ContourSegmentationBaseTool__WEBPACK_I
36975
36984
  kMin = Math.min(kMin, worldPosIndex[2]);
36976
36985
  kMax = Math.max(kMax, worldPosIndex[2]);
36977
36986
  }
36978
- let area = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.polyline.getArea(canvasCoordinates) / scale / scale;
36979
- area *= deltaInX * deltaInY;
36987
+ const area = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.polyline.getArea(canvasCoordinates) * deltaInX * deltaInY;
36980
36988
  const perimeter = PlanarFreehandROITool.calculateLengthInIndex(calibratedScale, indexPoints, closed);
36981
36989
  const iDelta = 0.01 * (iMax - iMin);
36982
36990
  const jDelta = 0.01 * (jMax - jMin);
@@ -37598,8 +37606,14 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
37598
37606
  ];
37599
37607
  const handles = [pos1Index, pos2Index];
37600
37608
  const calibrate = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_3__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, handles);
37601
- const width = RectangleROITool.calculateLengthInIndex(calibrate, indexHandles.slice(0, 2));
37602
- const height = RectangleROITool.calculateLengthInIndex(calibrate, indexHandles.slice(2, 4));
37609
+ const width = RectangleROITool.calculateLengthInIndex(calibrate, [
37610
+ indexHandles[0],
37611
+ indexHandles[1],
37612
+ ]);
37613
+ const height = RectangleROITool.calculateLengthInIndex(calibrate, [
37614
+ indexHandles[0],
37615
+ indexHandles[2],
37616
+ ]);
37603
37617
  const area = Math.abs(width * height);
37604
37618
  const { areaUnit } = calibrate;
37605
37619
  const pixelUnitsOptions = {
@@ -4906,6 +4906,7 @@ class SegmentationStateManager {
4906
4906
  constructor(uid) {
4907
4907
  this._stackLabelmapImageIdReferenceMap = new Map();
4908
4908
  this._labelmapImageIdReferenceMap = new Map();
4909
+ this._labelmapKeysBySegmentationId = new Map();
4909
4910
  uid ||= _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.uuidv4();
4910
4911
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
4911
4912
  this.uid = uid;
@@ -4927,6 +4928,7 @@ class SegmentationStateManager {
4927
4928
  resetState() {
4928
4929
  this._stackLabelmapImageIdReferenceMap.clear();
4929
4930
  this._labelmapImageIdReferenceMap.clear();
4931
+ this._labelmapKeysBySegmentationId.clear();
4930
4932
  this.state = Object.freeze(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.deepClone(initialDefaultState));
4931
4933
  }
4932
4934
  getSegmentation(segmentationId) {
@@ -4961,6 +4963,14 @@ class SegmentationStateManager {
4961
4963
  (0,_events_triggerSegmentationAdded__WEBPACK_IMPORTED_MODULE_6__/* .triggerSegmentationAdded */ .R)(segmentation.segmentationId);
4962
4964
  }
4963
4965
  removeSegmentation(segmentationId) {
4966
+ this._stackLabelmapImageIdReferenceMap.delete(segmentationId);
4967
+ const keys = this._labelmapKeysBySegmentationId.get(segmentationId);
4968
+ if (keys) {
4969
+ for (const key of keys) {
4970
+ this._labelmapImageIdReferenceMap.delete(key);
4971
+ }
4972
+ this._labelmapKeysBySegmentationId.delete(segmentationId);
4973
+ }
4964
4974
  this.updateState((state) => {
4965
4975
  const filteredSegmentations = state.segmentations.filter((segmentation) => segmentation.segmentationId !== segmentationId);
4966
4976
  state.segmentations.splice(0, state.segmentations.length, ...filteredSegmentations);
@@ -5255,11 +5265,18 @@ class SegmentationStateManager {
5255
5265
  const key = this._generateMapKey({ segmentationId, referenceImageId });
5256
5266
  if (!this._labelmapImageIdReferenceMap.has(key)) {
5257
5267
  this._labelmapImageIdReferenceMap.set(key, [labelmapImageId]);
5258
- return;
5259
5268
  }
5260
- const currentValues = this._labelmapImageIdReferenceMap.get(key);
5261
- const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
5262
- this._labelmapImageIdReferenceMap.set(key, newValues);
5269
+ else {
5270
+ const currentValues = this._labelmapImageIdReferenceMap.get(key);
5271
+ const newValues = Array.from(new Set([...currentValues, labelmapImageId]));
5272
+ this._labelmapImageIdReferenceMap.set(key, newValues);
5273
+ }
5274
+ let keys = this._labelmapKeysBySegmentationId.get(segmentationId);
5275
+ if (!keys) {
5276
+ keys = new Set();
5277
+ this._labelmapKeysBySegmentationId.set(segmentationId, keys);
5278
+ }
5279
+ keys.add(key);
5263
5280
  }
5264
5281
  _setActiveSegmentation(state, viewportId, segmentationId) {
5265
5282
  const viewport = state.viewportSegRepresentations[viewportId];
@@ -6000,10 +6017,10 @@ async function computeVolumeLabelmapFromStack(args) {
6000
6017
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6001
6018
  /* harmony export */ DU: () => (/* binding */ getSurfaceRepresentationUID),
6002
6019
  /* harmony export */ ED: () => (/* binding */ getLabelmapActorEntries),
6003
- /* harmony export */ Qe: () => (/* binding */ getLabelmapActorUID),
6004
6020
  /* harmony export */ Th: () => (/* binding */ getSurfaceActorEntry),
6005
6021
  /* harmony export */ wV: () => (/* binding */ getLabelmapActorEntry)
6006
6022
  /* harmony export */ });
6023
+ /* unused harmony export getLabelmapActorUID */
6007
6024
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15327);
6008
6025
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29857);
6009
6026
 
@@ -24975,12 +24992,9 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
24975
24992
  const deltaInX = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaXPoint);
24976
24993
  const deltaInY = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaYPoint);
24977
24994
  const { imageData } = image;
24978
- const { scale, areaUnit } = (0,_utilities__WEBPACK_IMPORTED_MODULE_16__.getCalibratedLengthUnitsAndScale)(image, () => {
24995
+ const { areaUnit } = (0,_utilities__WEBPACK_IMPORTED_MODULE_16__.getCalibratedLengthUnitsAndScale)(image, () => {
24979
24996
  const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } = _utilities_math__WEBPACK_IMPORTED_MODULE_7__.polyline.getAABB(canvasCoordinates);
24980
- const topLeftBBWorld = viewport.canvasToWorld([
24981
- canvasMinX,
24982
- canvasMinY,
24983
- ]);
24997
+ const topLeftBBWorld = viewport.canvasToWorld([canvasMinX, canvasMinY]);
24984
24998
  const topLeftBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.transformWorldToIndex(imageData, topLeftBBWorld);
24985
24999
  const bottomRightBBWorld = viewport.canvasToWorld([
24986
25000
  canvasMaxX,
@@ -24989,8 +25003,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
24989
25003
  const bottomRightBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.transformWorldToIndex(imageData, bottomRightBBWorld);
24990
25004
  return [topLeftBBIndex, bottomRightBBIndex];
24991
25005
  });
24992
- let area = _utilities_math__WEBPACK_IMPORTED_MODULE_7__.polyline.getArea(canvasCoordinates) / scale / scale;
24993
- area *= deltaInX * deltaInY;
25006
+ const area = _utilities_math__WEBPACK_IMPORTED_MODULE_7__.polyline.getArea(canvasCoordinates) * deltaInX * deltaInY;
24994
25007
  cachedStats[targetId] = {
24995
25008
  Modality: metadata.Modality,
24996
25009
  area,
@@ -26536,12 +26549,9 @@ class SplineROITool extends _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_
26536
26549
  const deltaInX = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaXPoint);
26537
26550
  const deltaInY = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.distance */ .eR.distance(originalWorldPoint, deltaYPoint);
26538
26551
  const { imageData } = image;
26539
- const { scale, areaUnit } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_9__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, () => {
26552
+ const { areaUnit } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_9__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, () => {
26540
26553
  const { maxX: canvasMaxX, maxY: canvasMaxY, minX: canvasMinX, minY: canvasMinY, } = _utilities_math__WEBPACK_IMPORTED_MODULE_6__.polyline.getAABB(canvasCoordinates);
26541
- const topLeftBBWorld = viewport.canvasToWorld([
26542
- canvasMinX,
26543
- canvasMinY,
26544
- ]);
26554
+ const topLeftBBWorld = viewport.canvasToWorld([canvasMinX, canvasMinY]);
26545
26555
  const topLeftBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, topLeftBBWorld);
26546
26556
  const bottomRightBBWorld = viewport.canvasToWorld([
26547
26557
  canvasMaxX,
@@ -26550,8 +26560,7 @@ class SplineROITool extends _base_ContourSegmentationBaseTool__WEBPACK_IMPORTED_
26550
26560
  const bottomRightBBIndex = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.transformWorldToIndex(imageData, bottomRightBBWorld);
26551
26561
  return [topLeftBBIndex, bottomRightBBIndex];
26552
26562
  });
26553
- let area = _utilities_math__WEBPACK_IMPORTED_MODULE_6__.polyline.getArea(canvasCoordinates) / scale / scale;
26554
- area *= deltaInX * deltaInY;
26563
+ const area = _utilities_math__WEBPACK_IMPORTED_MODULE_6__.polyline.getArea(canvasCoordinates) * deltaInX * deltaInY;
26555
26564
  cachedStats[targetId] = {
26556
26565
  Modality: metadata.Modality,
26557
26566
  area,
@@ -47548,7 +47557,7 @@ __webpack_require__.r(__webpack_exports__);
47548
47557
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
47549
47558
  /* harmony export */ r: () => (/* binding */ version)
47550
47559
  /* harmony export */ });
47551
- const version = '4.22.3';
47560
+ const version = '4.22.8';
47552
47561
 
47553
47562
 
47554
47563
  /***/ },
@@ -4857,7 +4857,8 @@ class BaseVolumeViewport extends Viewport/* default */.A {
4857
4857
  initializeVolumeNewImageEventDispatcher() {
4858
4858
  const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
4859
4859
  const volumeNewImageCleanUpBound = volumeNewImageCleanUp.bind(this);
4860
- function volumeNewImageHandler(cameraEvent) {
4860
+ function volumeNewImageHandler(event) {
4861
+ const cameraEvent = event;
4861
4862
  const { viewportId } = cameraEvent.detail;
4862
4863
  if (viewportId !== this.id || this.isDisabled) {
4863
4864
  return;
@@ -5350,24 +5351,21 @@ class BaseVolumeViewport extends Viewport/* default */.A {
5350
5351
  return;
5351
5352
  }
5352
5353
  const { volumeActor } = applicableVolumeActorInfo;
5353
- let preset = presetNameOrObj;
5354
- if (typeof preset === 'string') {
5355
- preset = constants.VIEWPORT_PRESETS.find((preset) => {
5356
- return preset.name === presetNameOrObj;
5357
- });
5358
- }
5359
- if (!preset) {
5354
+ const viewportPreset = typeof presetNameOrObj === 'string'
5355
+ ? constants.VIEWPORT_PRESETS.find((preset) => preset.name === presetNameOrObj)
5356
+ : presetNameOrObj;
5357
+ if (!viewportPreset) {
5360
5358
  return;
5361
5359
  }
5362
- (0,applyPreset/* default */.A)(volumeActor, preset);
5363
- this.viewportProperties.preset = preset;
5360
+ (0,applyPreset/* default */.A)(volumeActor, viewportPreset);
5361
+ this.viewportProperties.preset = viewportPreset.name;
5364
5362
  this.render();
5365
5363
  if (!suppressEvents) {
5366
5364
  (0,triggerEvent/* default */.A)(this.element, enums.Events.PRESET_MODIFIED, {
5367
5365
  viewportId: this.id,
5368
5366
  volumeId: applicableVolumeActorInfo.volumeId,
5369
5367
  actor: volumeActor,
5370
- presetName: preset.name,
5368
+ presetName: viewportPreset.name,
5371
5369
  });
5372
5370
  }
5373
5371
  }
@@ -46441,7 +46439,7 @@ function toLowHighRange(windowWidth, windowCenter, voiLUTFunction = _enums_VOILU
46441
46439
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
46442
46440
  /* harmony export */ r: () => (/* binding */ version)
46443
46441
  /* harmony export */ });
46444
- const version = '4.22.3';
46442
+ const version = '4.22.8';
46445
46443
 
46446
46444
 
46447
46445
  /***/ },
@@ -80778,7 +80776,7 @@ const detectionOptions = {
80778
80776
  }
80779
80777
  });
80780
80778
  ;// ../../i18n/package.json
80781
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.73"}');
80779
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.75"}');
80782
80780
  ;// ../../i18n/src/utils.js
80783
80781
  const languagesMap = {
80784
80782
  ar: 'Arabic',
@@ -223089,24 +223087,27 @@ const DataRowComponent = /*#__PURE__*/react.forwardRef(({
223089
223087
  if (text === '') {
223090
223088
  return /*#__PURE__*/react.createElement("div", {
223091
223089
  key: `empty-${indent}`,
223092
- className: "h-2"
223090
+ className: "h-2",
223091
+ "data-cy": "data-row-detail-line-empty"
223093
223092
  });
223094
223093
  }
223095
223094
  const cleanText = decodeHTML(text);
223096
223095
  return /*#__PURE__*/react.createElement("div", {
223097
223096
  key: cleanText,
223098
- className: "whitespace-pre-wrap"
223097
+ className: "whitespace-pre-wrap",
223098
+ "data-cy": "data-row-detail-line"
223099
223099
  }, indentation, /*#__PURE__*/react.createElement("span", {
223100
223100
  className: "font-medium"
223101
223101
  }, cleanText));
223102
223102
  };
223103
- const renderDetails = details => {
223103
+ const renderDetails = (details, variant) => {
223104
223104
  const visibleLines = details.slice(0, 4);
223105
223105
  const hiddenLines = details.slice(4);
223106
223106
  return /*#__PURE__*/react.createElement(Tooltip_Tooltip, null, /*#__PURE__*/react.createElement(Tooltip_TooltipTrigger, {
223107
223107
  asChild: true
223108
223108
  }, /*#__PURE__*/react.createElement("div", {
223109
- className: "cursor-help"
223109
+ className: "cursor-help",
223110
+ "data-cy": `data-row-details-${variant}`
223110
223111
  }, /*#__PURE__*/react.createElement("div", {
223111
223112
  className: "flex flex-col space-y-1"
223112
223113
  }, visibleLines.map((line, lineIndex) => renderDetailText(line, line.startsWith(' ') ? 1 : 0))), hiddenLines.length > 0 && /*#__PURE__*/react.createElement("div", {
@@ -223230,12 +223231,13 @@ const DataRowComponent = /*#__PURE__*/react.forwardRef(({
223230
223231
  className: "pl-2",
223231
223232
  "data-cy": "LockToggle"
223232
223233
  }, isLocked ? t('Unlock') : t('Lock')))))))), details && (details.primary?.length > 0 || details.secondary?.length > 0) && /*#__PURE__*/react.createElement("div", {
223233
- className: "ml-7 px-2 py-2"
223234
+ className: "ml-7 px-2 py-2",
223235
+ "data-cy": "data-row-details"
223234
223236
  }, /*#__PURE__*/react.createElement("div", {
223235
223237
  className: "text-secondary-foreground flex items-center gap-1 text-base leading-normal"
223236
- }, details.primary?.length > 0 && renderDetails(details.primary), details.secondary?.length > 0 && /*#__PURE__*/react.createElement("div", {
223238
+ }, details.primary?.length > 0 && renderDetails(details.primary, 'primary'), details.secondary?.length > 0 && /*#__PURE__*/react.createElement("div", {
223237
223239
  className: "text-muted-foreground ml-auto text-sm"
223238
- }, renderDetails(details.secondary)))));
223240
+ }, renderDetails(details.secondary, 'secondary')))));
223239
223241
  });
223240
223242
  DataRowComponent.displayName = 'DataRow';
223241
223243
  const StatusIndicator = ({
@@ -223419,7 +223421,9 @@ const MeasurementTable_Row = ({
223419
223421
  const {
223420
223422
  uid
223421
223423
  } = item;
223422
- return /*#__PURE__*/react.createElement(DataRow_DataRow, {
223424
+ return /*#__PURE__*/react.createElement("div", {
223425
+ "data-cy": `measurement-table-row-${index}`
223426
+ }, /*#__PURE__*/react.createElement(DataRow_DataRow, {
223423
223427
  key: item.uid,
223424
223428
  description: item.label,
223425
223429
  number: index + 1,
@@ -223438,7 +223442,7 @@ const MeasurementTable_Row = ({
223438
223442
  isLocked: item.isLocked
223439
223443
  }, item.isUnmapped && /*#__PURE__*/react.createElement(DataRow_DataRow.Status.Warning, {
223440
223444
  tooltip: item.statusTooltip
223441
- }));
223445
+ })));
223442
223446
  };
223443
223447
  MeasurementTable.Header = MeasurementTable_Header;
223444
223448
  MeasurementTable.Body = MeasurementTable_Body;
@@ -397616,7 +397620,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397616
397620
  /******/ // This function allow to reference async chunks
397617
397621
  /******/ __webpack_require__.u = (chunkId) => {
397618
397622
  /******/ // return url for filenames based on template
397619
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"7d0416939f5505006533","213":"11d39c0cd6d33a67b8c7","572":"e1f6f05d81ea1352bef3","732":"ea6f9d8504e37e01a208","1459":"6b50602d8c6953a77a28","1608":"26306ea38618db59eff7","1927":"be67b3aafe238ca9f191","1933":"fec17714a2e2cdd72747","2007":"829844ff3f72f5645f29","2018":"c1dcb8f51302db969ca5","2075":"23265b8e7597c398db4f","2108":"aea8d3b39486dd5ab39e","2424":"c7ae51b65497c5792106","2701":"6873805ddfdccc7a8b1e","2851":"0f1057b18a3b58ff7f95","3054":"a2a50c4674d99c619ca7","3138":"19b47310d6d29d39ed17","3461":"b69dece36103bdf70e67","3694":"b7c2ea55f1a69f4a736b","3754":"fd4b67c2a29c4bc4a840","4202":"4fcd0de412907efd5b53","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"3e858e473b2efca86ae4","4579":"0a6b2f49a7e136a79e37","4819":"bf9352d276de4386bfba","5015":"a8978eb57bbd00a4ada7","5028":"526e217fcb875ceec28a","5261":"2655560097e9250eac44","5457":"a2bea9789e0a545d1c59","5485":"72d5cbd960a6df6e2598","5802":"26f84db0ff8851532c36","6027":"a4dab1075c901128740a","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7166":"ae95b245b43077a934d9","7431":"5e14641f2c71e852abe7","7639":"e4683ed12f33f03f926e","8094":"148a66619607e37cbf19","8305":"45bbc5d4d168a95a318d","8499":"a3227ecec452013f5985","8558":"e7266297e1791d0d221e","8583":"16fbd2fdf5ea18a1a0e8","9205":"ed7bce8436a7a431955e","9567":"ff782480a4c66e306027","9845":"8c450e8d65a78a5afcd3","9862":"a5f7925840868fa4ecdb","9927":"d600536c28059370794c"}[chunkId] + ".js";
397623
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"b01d5d50a015c723ce3e","213":"11b64325d134e3e28b6b","572":"c394421c24d8c27d54ca","732":"ea6f9d8504e37e01a208","1459":"55a52bfdd51476e705f7","1608":"26306ea38618db59eff7","1927":"be67b3aafe238ca9f191","1933":"0155a24e2dc46ebd632f","2007":"829844ff3f72f5645f29","2018":"29f902bd7cae54b4c36b","2075":"ba9ac60662f1fa739378","2108":"aea8d3b39486dd5ab39e","2424":"fc778f8a6aa1fba72a52","2701":"6873805ddfdccc7a8b1e","2851":"ebf3b8c0d18d8012717a","3054":"a2a50c4674d99c619ca7","3138":"308e17d37c0e66751cde","3461":"582fb54791c25e88f004","3694":"5e9691bc58308d865058","3754":"d2435bb372912595708c","4202":"4fcd0de412907efd5b53","4287":"4f28e48c1e39a46dfc87","4406":"573d234b4641d23cf8db","4507":"a480ce58b3dede4dae66","4579":"1c315389368cc476aed3","4819":"5b82df4b88882d8562c8","5015":"8fb4939cb35bd947894c","5028":"0fd91eb688cf9e218675","5261":"2655560097e9250eac44","5457":"350d6168eda9fe9fbe2e","5485":"57db505328bd45707079","5802":"cd36386cbe1613913ed4","6027":"27db413df7eed119c22f","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7166":"937ccda42edda5822870","7431":"a9b4dbf97a8c196efe51","7639":"ad915515ba65153bca77","8094":"148a66619607e37cbf19","8305":"b421054287ca52c1fad6","8499":"df8198955472ea271949","8558":"e24044f432a509376217","8583":"71db06a8c93c40c4bbad","9205":"f2121894550d46d17398","9567":"ff782480a4c66e306027","9845":"8c450e8d65a78a5afcd3","9862":"6d793a997f85d73002e9","9927":"f9d846b4724e66728c7c"}[chunkId] + ".js";
397620
397624
  /******/ };
397621
397625
  /******/ })();
397622
397626
  /******/
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + chunkId + ".bundle." + {"2075":"23265b8e7597c398db4f","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","6386":"5d82d1f41d1c37a0358d","7537":"889ba5f2707418c6fd88"}[chunkId] + ".js";
139
+ /******/ return "" + chunkId + ".bundle." + {"2075":"ba9ac60662f1fa739378","4287":"4f28e48c1e39a46dfc87","6354":"929febcf6d326e582e00","6386":"dc7e3b159d6b4733647f","7537":"88314e5a6269f96a0bae"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/
package/dist/index.html CHANGED
@@ -3,4 +3,4 @@
3
3
  return import(moduleId);
4
4
  }
5
5
 
6
- window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.577e4476293935af2cc0.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
6
+ window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.25a9cc67641d1a331986.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
@@ -136,7 +136,7 @@
136
136
  /******/ // This function allow to reference async chunks and chunks that the entrypoint depends on
137
137
  /******/ __webpack_require__.u = (chunkId) => {
138
138
  /******/ // return url for filenames based on template
139
- /******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3694":"b7c2ea55f1a69f4a736b","4287":"b7840e7b94cbbc102236","6354":"929febcf6d326e582e00","7537":"889ba5f2707418c6fd88","7758":"c8d106364298e7d288f0","9039":"f72736f47fedeff521e2","9567":"ff782480a4c66e306027"}[chunkId] + ".js";
139
+ /******/ return "" + (chunkId === 3694 ? "compute" : chunkId) + ".bundle." + {"3694":"5e9691bc58308d865058","4287":"4f28e48c1e39a46dfc87","6354":"929febcf6d326e582e00","7537":"88314e5a6269f96a0bae","7758":"c8d106364298e7d288f0","9039":"f5db80328c99cd11293b","9567":"ff782480a4c66e306027"}[chunkId] + ".js";
140
140
  /******/ };
141
141
  /******/ })();
142
142
  /******/