@ohif/app 3.9.0-beta.57 → 3.9.0-beta.59

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 (41) hide show
  1. package/dist/{29.bundle.976319462f33868497c2.js → 117.bundle.403581eea72534ff9c7e.js} +1765 -582
  2. package/dist/{169.bundle.483057ed84ca3e92513a.js → 169.bundle.d28df3cf2d600fc3e146.js} +7 -5
  3. package/dist/{210.bundle.368d53177dc659dc6af0.js → 210.bundle.ea52c75bb27ab002dc4d.js} +2 -2
  4. package/dist/{281.bundle.49da07d997da7cc01705.js → 281.bundle.719e9e222fecb4e9e9c6.js} +18 -4
  5. package/dist/{360.bundle.2c117803c05f0bc31424.js → 360.bundle.9a0c682beae1ef7e40b1.js} +5 -5
  6. package/dist/{372.bundle.d97377781382080306bd.js → 372.bundle.9891a9938b28db4b36ce.js} +5 -4
  7. package/dist/424.bundle.1caecbb1bbefc271b621.js +663 -0
  8. package/dist/{497.bundle.ee102d6243f984113f08.js → 497.bundle.bbc07cef12d598653a65.js} +149 -117
  9. package/dist/{498.bundle.bb47c493dd02451f77ef.js → 498.bundle.e5ccb2bc38e4bfdd564b.js} +1 -1
  10. package/dist/{516.bundle.d777e4126814a5a47117.js → 516.bundle.e59c26f055d145ce835e.js} +47 -12
  11. package/dist/{196.bundle.cf8c2311aafb5312bbf7.js → 579.bundle.0b78fc095924efac431d.js} +1705 -493
  12. package/dist/{552.bundle.85aaefb5e22d6d1bffa9.js → 65.bundle.d15cc84a0b991e182649.js} +15 -680
  13. package/dist/{129.bundle.3102eccbd5c78524c3dd.js → 650.bundle.a65389abf76ad921aa17.js} +2671 -2975
  14. package/dist/{793.bundle.c92f52ddff0e3bf506e6.js → 793.bundle.e4c759b5cdfcc3c7494f.js} +2 -2
  15. package/dist/{818.bundle.cda4e369fdee5459a544.js → 818.bundle.b64fae7e982e16a82ca2.js} +133 -69
  16. package/dist/{842.bundle.a5533bc77e6f57b0ee30.js → 842.bundle.cccbb7e3611e3d220f07.js} +2 -2
  17. package/dist/{888.bundle.7ff5dfd3c14072cee2a9.js → 888.bundle.d3b2a82cb17155725342.js} +9 -3
  18. package/dist/{428.bundle.744fc5865b2d747de88a.js → 904.bundle.008f8a2095669f4eabba.js} +88 -50
  19. package/dist/{962.bundle.d5f55c85407221bbce7b.js → 962.bundle.868b30361a52b0ffa504.js} +2 -2
  20. package/dist/{993.bundle.aa31ebda5a5f62c44de5.js → 993.bundle.302a286ebb6e3fc0c35a.js} +1265 -485
  21. package/dist/{994.bundle.c4709bfb7fd9dcde0551.js → 994.bundle.3b5f396b62cce2990c03.js} +15 -1
  22. package/dist/{app.bundle.a69624a3e0becd131c65.js → app.bundle.14f126e3ec4491bb1948.js} +1393 -1321
  23. package/dist/app.bundle.css +2 -2
  24. package/dist/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map +1 -0
  25. package/dist/{histogram-worker.bundle.e7e9fea2c3236b0e747a.js → histogram-worker.bundle.89729ccb99d170ff2f2f.js} +2 -1
  26. package/dist/index.html +3 -1
  27. package/dist/{polySeg.bundle.b25c61224998018d0f79.js → polySeg.bundle.d8943427beee7694621a.js} +3 -22
  28. package/dist/{suv-peak-worker.bundle.eb11e71db02e52601ecf.js → suv-peak-worker.bundle.15dcb8d1ab8e0528bfd9.js} +3 -22
  29. package/dist/sw.js +1 -1
  30. package/package.json +18 -18
  31. /package/dist/{153.bundle.62dad8e9c7532474e95c.js → 153.bundle.42a66f99ced5972aa0c0.js} +0 -0
  32. /package/dist/{202.bundle.bb0e8196739bb896dc9e.js → 202.bundle.f6d9ca4b1c16b1aa227f.js} +0 -0
  33. /package/dist/{246.bundle.27aca95ea22cd5fcd414.js → 246.bundle.912e9f8342cd5d6228e6.js} +0 -0
  34. /package/dist/{353.bundle.a741604612f3f1d18398.js → 353.bundle.5b11e6b395c5d5cc33bf.js} +0 -0
  35. /package/dist/{376.bundle.2657056d8bc2b11fb0e8.js → 376.bundle.ac0e23dc830cd982fd18.js} +0 -0
  36. /package/dist/{552.css → 424.css} +0 -0
  37. /package/dist/{502.bundle.e7e6c345146aef00a169.js → 502.bundle.823682db96d52df1b8cf.js} +0 -0
  38. /package/dist/{591.bundle.aa91409b528ae6b601e0.js → 591.bundle.39fa1e6e7285929f2e29.js} +0 -0
  39. /package/dist/{791.bundle.d614182fa975e92cf4f5.js → 791.bundle.ecf9b1f8892d5f8962a3.js} +0 -0
  40. /package/dist/{944.bundle.c2bcb49d5077bd6fcc87.js → 944.bundle.93eddec203a43754e826.js} +0 -0
  41. /package/dist/{978.bundle.cd27543a62e7230557b2.js → 978.bundle.c12902cf44dca926bcb8.js} +0 -0
@@ -1,25 +1,6 @@
1
1
  /******/ (() => { // webpackBootstrap
2
2
  /******/ var __webpack_modules__ = ({
3
3
 
4
- /***/ 30684:
5
- /***/ ((module) => {
6
-
7
- function webpackEmptyAsyncContext(req) {
8
- // Here Promise.resolve().then() is used instead of new Promise() to prevent
9
- // uncaught exception popping up in devtools
10
- return Promise.resolve().then(() => {
11
- var e = new Error("Cannot find module '" + req + "'");
12
- e.code = 'MODULE_NOT_FOUND';
13
- throw e;
14
- });
15
- }
16
- webpackEmptyAsyncContext.keys = () => ([]);
17
- webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
18
- webpackEmptyAsyncContext.id = 30684;
19
- module.exports = webpackEmptyAsyncContext;
20
-
21
- /***/ }),
22
-
23
4
  /***/ 75213:
24
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
25
6
 
@@ -1048,8 +1029,8 @@ function WorkList({
1048
1029
  };
1049
1030
  });
1050
1031
  const hasStudies = numOfStudies > 0;
1051
- const versionNumber = "3.9.0-beta.57";
1052
- const commitHash = "32762e6bce8828a5047abe4dba6ffa5bcead4daf";
1032
+ const versionNumber = "3.9.0-beta.59";
1033
+ const commitHash = "24c511f4bc04c4143bbd3d0d48029f41f7f36014";
1053
1034
  const menuOptions = [{
1054
1035
  title: t('Header:About'),
1055
1036
  icon: 'info',
@@ -1929,31 +1910,31 @@ modes.push("@ohif/mode-preclinical-4d");
1929
1910
  async function loadModule(module) {
1930
1911
  if (typeof module !== 'string') return module;
1931
1912
  if (module === "@ohif/extension-default") {
1932
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(281), __webpack_require__.e(757)]).then(__webpack_require__.bind(__webpack_require__, 32281));
1913
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(281), __webpack_require__.e(757)]).then(__webpack_require__.bind(__webpack_require__, 32281));
1933
1914
  return imported.default;
1934
1915
  }
1935
1916
  if (module === "@ohif/extension-cornerstone") {
1936
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(793), __webpack_require__.e(10), __webpack_require__.e(516)]).then(__webpack_require__.bind(__webpack_require__, 15516));
1917
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(793), __webpack_require__.e(10), __webpack_require__.e(516)]).then(__webpack_require__.bind(__webpack_require__, 15516));
1937
1918
  return imported.default;
1938
1919
  }
1939
1920
  if (module === "@ohif/extension-measurement-tracking") {
1940
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(530), __webpack_require__.e(281), __webpack_require__.e(360), __webpack_require__.e(994)]).then(__webpack_require__.bind(__webpack_require__, 64595));
1921
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(530), __webpack_require__.e(281), __webpack_require__.e(360), __webpack_require__.e(994)]).then(__webpack_require__.bind(__webpack_require__, 64595));
1941
1922
  return imported.default;
1942
1923
  }
1943
1924
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
1944
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(360)]).then(__webpack_require__.bind(__webpack_require__, 97360));
1925
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(360)]).then(__webpack_require__.bind(__webpack_require__, 97360));
1945
1926
  return imported.default;
1946
1927
  }
1947
1928
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
1948
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(831), __webpack_require__.e(281), __webpack_require__.e(210)]).then(__webpack_require__.bind(__webpack_require__, 18291));
1929
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(831), __webpack_require__.e(281), __webpack_require__.e(210)]).then(__webpack_require__.bind(__webpack_require__, 18291));
1949
1930
  return imported.default;
1950
1931
  }
1951
1932
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
1952
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(793), __webpack_require__.e(962)]).then(__webpack_require__.bind(__webpack_require__, 63962));
1933
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(793), __webpack_require__.e(962)]).then(__webpack_require__.bind(__webpack_require__, 63962));
1953
1934
  return imported.default;
1954
1935
  }
1955
1936
  if (module === "@ohif/extension-dicom-microscopy") {
1956
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(931), __webpack_require__.e(281), __webpack_require__.e(552)]).then(__webpack_require__.bind(__webpack_require__, 82065));
1937
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(931), __webpack_require__.e(65)]).then(__webpack_require__.bind(__webpack_require__, 82065));
1957
1938
  return imported.default;
1958
1939
  }
1959
1940
  if (module === "@ohif/extension-dicom-pdf") {
@@ -1965,7 +1946,7 @@ async function loadModule(module) {
1965
1946
  return imported.default;
1966
1947
  }
1967
1948
  if (module === "@ohif/extension-tmtv") {
1968
- const imported = await Promise.all(/* import() */[__webpack_require__.e(428), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(372)]).then(__webpack_require__.bind(__webpack_require__, 94372));
1949
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(372)]).then(__webpack_require__.bind(__webpack_require__, 94372));
1969
1950
  return imported.default;
1970
1951
  }
1971
1952
  if (module === "@ohif/extension-test") {
@@ -2004,7 +1985,11 @@ async function loadModule(module) {
2004
1985
  const imported = await __webpack_require__.e(/* import() */ 246).then(__webpack_require__.bind(__webpack_require__, 27246));
2005
1986
  return imported.default;
2006
1987
  }
2007
- return (await import( /* webpackIgnore: true */module)).default;
1988
+ if (module === "dicom-microscopy-viewer") {
1989
+ const imported = await window.browserImportFunction('/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js');
1990
+ return window["dicomMicroscopyViewer"];
1991
+ }
1992
+ return (await window.browserImportFunction(module)).default;
2008
1993
  }
2009
1994
 
2010
1995
  // Import a list of items (modules or string names)
@@ -2880,9 +2865,11 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) {
2880
2865
  const appConfig = {
2881
2866
  ...(typeof appConfigOrFunc === 'function' ? await appConfigOrFunc({
2882
2867
  servicesManager,
2883
- loadModules: importItems
2868
+ peerImport: loadModule
2884
2869
  }) : appConfigOrFunc)
2885
2870
  };
2871
+ // Default the peer import function
2872
+ appConfig.peerImport ||= loadModule;
2886
2873
  const extensionManager = new core_src/* ExtensionManager */.W$({
2887
2874
  commandsManager,
2888
2875
  servicesManager,
@@ -5027,7 +5014,7 @@ const detectionOptions = {
5027
5014
  }
5028
5015
  });
5029
5016
  ;// CONCATENATED MODULE: ../../i18n/package.json
5030
- const package_namespaceObject = JSON.parse('{"i8":"3.9.0-beta.56"}');
5017
+ const package_namespaceObject = JSON.parse('{"i8":"3.9.0-beta.58"}');
5031
5018
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
5032
5019
  const languagesMap = {
5033
5020
  ar: 'Arabic',
@@ -34291,6 +34278,7 @@ const Thumbnail = ({
34291
34278
  className: classnames_default()(className, 'group mb-8 flex flex-1 cursor-pointer select-none flex-col px-3 outline-none'),
34292
34279
  id: `thumbnail-${displaySetInstanceUID}`,
34293
34280
  "data-cy": `study-browser-thumbnail`,
34281
+ "data-series": seriesNumber,
34294
34282
  onClick: onClick,
34295
34283
  onDoubleClick: onDoubleClick,
34296
34284
  onTouchEnd: handleTouchEnd,
@@ -34317,7 +34305,7 @@ const Thumbnail = ({
34317
34305
  name: countIcon || 'group-layers',
34318
34306
  className: "mr-2 w-3"
34319
34307
  }), ` ${numInstances}`), /*#__PURE__*/react.createElement("div", {
34320
- className: "flex mr-2 last:mr-0"
34308
+ className: "mr-2 flex last:mr-0"
34321
34309
  }, loadingProgress && loadingProgress < 1 && /*#__PURE__*/react.createElement(react.Fragment, null, Math.round(loadingProgress * 100), "%"), loadingProgress && loadingProgress === 1 && /*#__PURE__*/react.createElement(Icon/* default */.Z, {
34322
34310
  name: 'database',
34323
34311
  className: "w-3"
@@ -67936,6 +67924,7 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
67936
67924
  this.dataSourceDefs = void 0;
67937
67925
  this.defaultDataSourceName = void 0;
67938
67926
  this.activeDataSource = void 0;
67927
+ this.peerImport = void 0;
67939
67928
  /**
67940
67929
  * An array of extensions, or an array of arrays that contains extension
67941
67930
  * configuration pairs.
@@ -68208,6 +68197,7 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
68208
68197
  this.dataSourceDefs = {};
68209
68198
  this.defaultDataSourceName = appConfig.defaultDataSourceName;
68210
68199
  this.activeDataSource = appConfig.defaultDataSourceName;
68200
+ this.peerImport = appConfig.peerImport;
68211
68201
  }
68212
68202
  setActiveDataSource(dataSource) {
68213
68203
  if (this.activeDataSource === dataSource) {
@@ -68373,6 +68363,9 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
68373
68363
  });
68374
68364
  });
68375
68365
  }
68366
+ get appConfig() {
68367
+ return this._appConfig;
68368
+ }
68376
68369
  }
68377
68370
 
68378
68371
  /**
@@ -69626,7 +69619,9 @@ const WADO_IMAGE_LOADER = {
69626
69619
  columns: (0,toNumber/* default */.Z)(instance.Columns),
69627
69620
  imageOrientationPatient: (0,toNumber/* default */.Z)(ImageOrientationPatient),
69628
69621
  rowCosines: (0,toNumber/* default */.Z)(rowCosines || [0, 1, 0]),
69622
+ isDefaultValueSetForRowCosine: (0,toNumber/* default */.Z)(rowCosines) ? false : true,
69629
69623
  columnCosines: (0,toNumber/* default */.Z)(columnCosines || [0, 0, -1]),
69624
+ isDefaultValueSetForColumnCosine: (0,toNumber/* default */.Z)(columnCosines) ? false : true,
69630
69625
  imagePositionPatient: (0,toNumber/* default */.Z)(instance.ImagePositionPatient || [0, 0, 0]),
69631
69626
  sliceThickness: (0,toNumber/* default */.Z)(instance.SliceThickness),
69632
69627
  sliceLocation: (0,toNumber/* default */.Z)(instance.SliceLocation),
@@ -188469,13 +188464,13 @@ webpackContext.id = 84179;
188469
188464
  /* harmony import */ var _kitware_vtk_js_Common_DataModel_PiecewiseFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44031);
188470
188465
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72076);
188471
188466
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82253);
188472
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48588);
188467
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19247);
188473
188468
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7187);
188474
188469
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68032);
188475
188470
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74238);
188476
188471
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28719);
188477
188472
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18588);
188478
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11723);
188473
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(56309);
188479
188474
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(25281);
188480
188475
  /* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(41957);
188481
188476
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(77614);
@@ -188717,6 +188712,9 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
188717
188712
  static get useCustomRenderingPipeline() {
188718
188713
  return false;
188719
188714
  }
188715
+ resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false, resetOrientation = true) {
188716
+ return super.resetCamera();
188717
+ }
188720
188718
  applyViewOrientation(orientation, resetCamera = true) {
188721
188719
  const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
188722
188720
  const camera = this.getVtkActiveCamera();
@@ -188724,7 +188722,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
188724
188722
  camera.setViewUpFrom(viewUp);
188725
188723
  this.initialViewUp = viewUp;
188726
188724
  if (resetCamera) {
188727
- this.resetCamera();
188725
+ const resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, suppressEvents = true, resetOrientation = false;
188726
+ this.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, suppressEvents, resetOrientation);
188728
188727
  }
188729
188728
  }
188730
188729
  initializeVolumeNewImageEventDispatcher() {
@@ -189367,6 +189366,218 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
189367
189366
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BaseVolumeViewport);
189368
189367
 
189369
189368
 
189369
+ /***/ }),
189370
+
189371
+ /***/ 40046:
189372
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
189373
+
189374
+ "use strict";
189375
+
189376
+ // EXPORTS
189377
+ __webpack_require__.d(__webpack_exports__, {
189378
+ Z: () => (/* binding */ CanvasActor)
189379
+ });
189380
+
189381
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js
189382
+ class CanvasProperties {
189383
+ constructor(actor) {
189384
+ this.opacity = 0.4;
189385
+ this.outlineOpacity = 0.4;
189386
+ this.transferFunction = [];
189387
+ this.actor = actor;
189388
+ }
189389
+ setRGBTransferFunction(index, cfun) {
189390
+ this.transferFunction[index] = cfun;
189391
+ }
189392
+ setScalarOpacity(opacity) {
189393
+ }
189394
+ setInterpolationTypeToNearest() {
189395
+ }
189396
+ setUseLabelOutline() {
189397
+ }
189398
+ setLabelOutlineOpacity(opacity) {
189399
+ this.outlineOpacity = opacity;
189400
+ }
189401
+ setLabelOutlineThickness() {
189402
+ }
189403
+ getColor(index) {
189404
+ const cfun = this.transferFunction[0];
189405
+ const r = cfun.getRedValue(index);
189406
+ const g = cfun.getGreenValue(index);
189407
+ const b = cfun.getBlueValue(index);
189408
+ return [r, g, b, this.opacity];
189409
+ }
189410
+ }
189411
+
189412
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js
189413
+ class CanvasMapper {
189414
+ constructor(actor) {
189415
+ this.actor = actor;
189416
+ }
189417
+ getInputData() {
189418
+ return this.actor.getImage();
189419
+ }
189420
+ }
189421
+
189422
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/index.js
189423
+
189424
+
189425
+ class CanvasActor {
189426
+ constructor(viewport, derivedImage) {
189427
+ this.canvasProperties = new CanvasProperties(this);
189428
+ this.visibility = false;
189429
+ this.mapper = new CanvasMapper(this);
189430
+ this.className = 'CanvasActor';
189431
+ this.derivedImage = derivedImage;
189432
+ this.viewport = viewport;
189433
+ }
189434
+ renderRLE(viewport, context, voxelManager) {
189435
+ const { width, height } = this.image;
189436
+ let { canvas } = this;
189437
+ if (!canvas || canvas.width !== width || canvas.height !== height) {
189438
+ this.canvas = canvas = new window.OffscreenCanvas(width, height);
189439
+ }
189440
+ const localContext = canvas.getContext('2d');
189441
+ const imageData = localContext.createImageData(width, height);
189442
+ const { data: imageArray } = imageData;
189443
+ imageArray.fill(0);
189444
+ const { map } = voxelManager;
189445
+ let dirtyX = Infinity;
189446
+ let dirtyY = Infinity;
189447
+ let dirtyX2 = -Infinity;
189448
+ let dirtyY2 = -Infinity;
189449
+ for (let y = 0; y < height; y++) {
189450
+ const row = map.getRun(y, 0);
189451
+ if (!row) {
189452
+ continue;
189453
+ }
189454
+ dirtyY = Math.min(dirtyY, y);
189455
+ dirtyY2 = Math.max(dirtyY2, y);
189456
+ const baseOffset = (y * width) << 2;
189457
+ let indicesToDelete;
189458
+ for (const run of row) {
189459
+ const { start, end, value: segmentIndex } = run;
189460
+ if (segmentIndex === 0) {
189461
+ indicesToDelete ||= [];
189462
+ indicesToDelete.push(row.indexOf(run));
189463
+ continue;
189464
+ }
189465
+ dirtyX = Math.min(dirtyX, start);
189466
+ dirtyX2 = Math.max(dirtyX2, end);
189467
+ const rgb = this.canvasProperties
189468
+ .getColor(segmentIndex)
189469
+ .map((v) => v * 255);
189470
+ let startOffset = baseOffset + (start << 2);
189471
+ for (let i = start; i < end; i++) {
189472
+ imageArray[startOffset++] = rgb[0];
189473
+ imageArray[startOffset++] = rgb[1];
189474
+ imageArray[startOffset++] = rgb[2];
189475
+ imageArray[startOffset++] = rgb[3];
189476
+ }
189477
+ }
189478
+ }
189479
+ if (dirtyX > width) {
189480
+ return;
189481
+ }
189482
+ const dirtyWidth = dirtyX2 - dirtyX;
189483
+ const dirtyHeight = dirtyY2 - dirtyY;
189484
+ localContext.putImageData(imageData, 0, 0, dirtyX - 1, dirtyY - 1, dirtyWidth + 2, dirtyHeight + 2);
189485
+ context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
189486
+ }
189487
+ render(viewport, context) {
189488
+ if (!this.visibility) {
189489
+ return;
189490
+ }
189491
+ const image = this.image || this.getImage();
189492
+ const { width, height } = image;
189493
+ const data = image.getScalarData();
189494
+ if (!data) {
189495
+ return;
189496
+ }
189497
+ const { voxelManager } = image;
189498
+ if (voxelManager) {
189499
+ if (voxelManager.map.getRun) {
189500
+ return this.renderRLE(viewport, context, voxelManager);
189501
+ }
189502
+ }
189503
+ let { canvas } = this;
189504
+ if (!canvas || canvas.width !== width || canvas.height !== height) {
189505
+ this.canvas = canvas = new window.OffscreenCanvas(width, height);
189506
+ }
189507
+ const localContext = canvas.getContext('2d');
189508
+ const imageData = localContext.createImageData(width, height);
189509
+ const { data: imageArray } = imageData;
189510
+ let offset = 0;
189511
+ let destOffset = 0;
189512
+ let dirtyX = Infinity;
189513
+ let dirtyY = Infinity;
189514
+ let dirtyX2 = -Infinity;
189515
+ let dirtyY2 = -Infinity;
189516
+ for (let y = 0; y < height; y++) {
189517
+ for (let x = 0; x < width; x++) {
189518
+ const segmentIndex = data[offset++];
189519
+ if (segmentIndex) {
189520
+ dirtyX = Math.min(x, dirtyX);
189521
+ dirtyY = Math.min(y, dirtyY);
189522
+ dirtyX2 = Math.max(x, dirtyX2);
189523
+ dirtyY2 = Math.max(y, dirtyY2);
189524
+ const rgb = this.canvasProperties.getColor(segmentIndex);
189525
+ imageArray[destOffset] = rgb[0] * 255;
189526
+ imageArray[destOffset + 1] = rgb[1] * 255;
189527
+ imageArray[destOffset + 2] = rgb[2] * 255;
189528
+ imageArray[destOffset + 3] = 127;
189529
+ }
189530
+ destOffset += 4;
189531
+ }
189532
+ }
189533
+ if (dirtyX > width) {
189534
+ return;
189535
+ }
189536
+ const dirtyWidth = dirtyX2 - dirtyX + 1;
189537
+ const dirtyHeight = dirtyY2 - dirtyY + 1;
189538
+ localContext.putImageData(imageData, 0, 0, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
189539
+ context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
189540
+ }
189541
+ getClassName() {
189542
+ return this.className;
189543
+ }
189544
+ getProperty() {
189545
+ return this.canvasProperties;
189546
+ }
189547
+ setVisibility(visibility) {
189548
+ this.visibility = visibility;
189549
+ }
189550
+ getMapper() {
189551
+ return this.mapper;
189552
+ }
189553
+ isA(actorType) {
189554
+ return actorType === this.className;
189555
+ }
189556
+ getImage() {
189557
+ if (this.image) {
189558
+ return this.image;
189559
+ }
189560
+ this.image = { ...this.derivedImage };
189561
+ const imageData = this.viewport.getImageData();
189562
+ Object.assign(this.image, {
189563
+ worldToIndex: (worldPos) => imageData.imageData.worldToIndex(worldPos),
189564
+ indexToWorld: (index, destPoint) => imageData.imageData.indexToWorld(index, destPoint),
189565
+ getDimensions: () => imageData.dimensions,
189566
+ getScalarData: () => this.derivedImage?.getPixelData(),
189567
+ getDirection: () => imageData.direction,
189568
+ getSpacing: () => imageData.spacing,
189569
+ setOrigin: () => null,
189570
+ setDerivedImage: (image) => {
189571
+ this.derivedImage = image;
189572
+ this.image = null;
189573
+ },
189574
+ modified: () => null,
189575
+ });
189576
+ return this.image;
189577
+ }
189578
+ }
189579
+
189580
+
189370
189581
  /***/ }),
189371
189582
 
189372
189583
  /***/ 98715:
@@ -189388,7 +189599,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
189388
189599
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30023);
189389
189600
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(11677);
189390
189601
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10__);
189391
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11723);
189602
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(56309);
189392
189603
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(77614);
189393
189604
  /* harmony import */ var _helpers_cpuFallback_colors_index__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(43877);
189394
189605
  /* harmony import */ var _helpers_cpuFallback_drawImageSync__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(98165);
@@ -191096,16 +191307,16 @@ class StackViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_12__/* ["default"
191096
191307
  if (!viewRef) {
191097
191308
  return;
191098
191309
  }
191099
- const { referencedImageId, sliceIndex, volumeId } = viewRef;
191310
+ const { referencedImageId, sliceIndex } = viewRef;
191100
191311
  if (typeof sliceIndex === 'number' &&
191101
191312
  referencedImageId &&
191102
191313
  referencedImageId === this.imageIds[sliceIndex]) {
191103
- this.setImageIdIndex(sliceIndex);
191314
+ this.scroll(sliceIndex - this.targetImageIdIndex);
191104
191315
  }
191105
191316
  else {
191106
191317
  const foundIndex = this.imageIds.indexOf(referencedImageId);
191107
191318
  if (foundIndex !== -1) {
191108
- this.setImageIdIndex(foundIndex);
191319
+ this.scroll(foundIndex - this.targetImageIdIndex);
191109
191320
  }
191110
191321
  else {
191111
191322
  throw new Error('Unsupported - referenced image id not found');
@@ -191214,232 +191425,22 @@ class StackViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_12__/* ["default"
191214
191425
 
191215
191426
  /***/ }),
191216
191427
 
191217
- /***/ 11062:
191428
+ /***/ 49001:
191218
191429
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
191219
191430
 
191220
191431
  "use strict";
191221
-
191222
- // EXPORTS
191223
- __webpack_require__.d(__webpack_exports__, {
191224
- Z: () => (/* binding */ RenderingEngine_VideoViewport)
191225
- });
191226
-
191227
- // EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
191228
- var esm = __webpack_require__(72076);
191229
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
191230
- var enums = __webpack_require__(7187);
191231
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/metaData.js
191232
- var metaData = __webpack_require__(30023);
191233
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
191234
- var rendering_transform = __webpack_require__(30742);
191235
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
191236
- var utilities = __webpack_require__(11723);
191237
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
191238
- var Viewport = __webpack_require__(77614);
191239
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
191240
- var helpers = __webpack_require__(25281);
191241
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js
191242
- class CanvasProperties {
191243
- constructor(actor) {
191244
- this.opacity = 0.4;
191245
- this.outlineOpacity = 0.4;
191246
- this.transferFunction = [];
191247
- this.actor = actor;
191248
- }
191249
- setRGBTransferFunction(index, cfun) {
191250
- this.transferFunction[index] = cfun;
191251
- }
191252
- setScalarOpacity(opacity) {
191253
- }
191254
- setInterpolationTypeToNearest() {
191255
- }
191256
- setUseLabelOutline() {
191257
- }
191258
- setLabelOutlineOpacity(opacity) {
191259
- this.outlineOpacity = opacity;
191260
- }
191261
- setLabelOutlineThickness() {
191262
- }
191263
- getColor(index) {
191264
- const cfun = this.transferFunction[0];
191265
- const r = cfun.getRedValue(index);
191266
- const g = cfun.getGreenValue(index);
191267
- const b = cfun.getBlueValue(index);
191268
- return [r, g, b, this.opacity];
191269
- }
191270
- }
191271
-
191272
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js
191273
- class CanvasMapper {
191274
- constructor(actor) {
191275
- this.actor = actor;
191276
- }
191277
- getInputData() {
191278
- return this.actor.getImage();
191279
- }
191280
- }
191281
-
191282
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/index.js
191283
-
191284
-
191285
- class CanvasActor {
191286
- constructor(viewport, derivedImage) {
191287
- this.canvasProperties = new CanvasProperties(this);
191288
- this.visibility = false;
191289
- this.mapper = new CanvasMapper(this);
191290
- this.className = 'CanvasActor';
191291
- this.derivedImage = derivedImage;
191292
- this.viewport = viewport;
191293
- }
191294
- renderRLE(viewport, context, voxelManager) {
191295
- const { width, height } = this.image;
191296
- let { canvas } = this;
191297
- if (!canvas || canvas.width !== width || canvas.height !== height) {
191298
- this.canvas = canvas = new window.OffscreenCanvas(width, height);
191299
- }
191300
- const localContext = canvas.getContext('2d');
191301
- const imageData = localContext.createImageData(width, height);
191302
- const { data: imageArray } = imageData;
191303
- imageArray.fill(0);
191304
- const { map } = voxelManager;
191305
- let dirtyX = Infinity;
191306
- let dirtyY = Infinity;
191307
- let dirtyX2 = -Infinity;
191308
- let dirtyY2 = -Infinity;
191309
- for (let y = 0; y < height; y++) {
191310
- const row = map.getRun(y, 0);
191311
- if (!row) {
191312
- continue;
191313
- }
191314
- dirtyY = Math.min(dirtyY, y);
191315
- dirtyY2 = Math.max(dirtyY2, y);
191316
- const baseOffset = (y * width) << 2;
191317
- let indicesToDelete;
191318
- for (const run of row) {
191319
- const { start, end, value: segmentIndex } = run;
191320
- if (segmentIndex === 0) {
191321
- indicesToDelete ||= [];
191322
- indicesToDelete.push(row.indexOf(run));
191323
- continue;
191324
- }
191325
- dirtyX = Math.min(dirtyX, start);
191326
- dirtyX2 = Math.max(dirtyX2, end);
191327
- const rgb = this.canvasProperties
191328
- .getColor(segmentIndex)
191329
- .map((v) => v * 255);
191330
- let startOffset = baseOffset + (start << 2);
191331
- for (let i = start; i < end; i++) {
191332
- imageArray[startOffset++] = rgb[0];
191333
- imageArray[startOffset++] = rgb[1];
191334
- imageArray[startOffset++] = rgb[2];
191335
- imageArray[startOffset++] = rgb[3];
191336
- }
191337
- }
191338
- }
191339
- if (dirtyX > width) {
191340
- return;
191341
- }
191342
- const dirtyWidth = dirtyX2 - dirtyX;
191343
- const dirtyHeight = dirtyY2 - dirtyY;
191344
- localContext.putImageData(imageData, 0, 0, dirtyX - 1, dirtyY - 1, dirtyWidth + 2, dirtyHeight + 2);
191345
- context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
191346
- }
191347
- render(viewport, context) {
191348
- if (!this.visibility) {
191349
- return;
191350
- }
191351
- const image = this.image || this.getImage();
191352
- const { width, height } = image;
191353
- const data = image.getScalarData();
191354
- if (!data) {
191355
- return;
191356
- }
191357
- const { voxelManager } = image;
191358
- if (voxelManager) {
191359
- if (voxelManager.map.getRun) {
191360
- return this.renderRLE(viewport, context, voxelManager);
191361
- }
191362
- }
191363
- let { canvas } = this;
191364
- if (!canvas || canvas.width !== width || canvas.height !== height) {
191365
- this.canvas = canvas = new window.OffscreenCanvas(width, height);
191366
- }
191367
- const localContext = canvas.getContext('2d');
191368
- const imageData = localContext.createImageData(width, height);
191369
- const { data: imageArray } = imageData;
191370
- let offset = 0;
191371
- let destOffset = 0;
191372
- let dirtyX = Infinity;
191373
- let dirtyY = Infinity;
191374
- let dirtyX2 = -Infinity;
191375
- let dirtyY2 = -Infinity;
191376
- for (let y = 0; y < height; y++) {
191377
- for (let x = 0; x < width; x++) {
191378
- const segmentIndex = data[offset++];
191379
- if (segmentIndex) {
191380
- dirtyX = Math.min(x, dirtyX);
191381
- dirtyY = Math.min(y, dirtyY);
191382
- dirtyX2 = Math.max(x, dirtyX2);
191383
- dirtyY2 = Math.max(y, dirtyY2);
191384
- const rgb = this.canvasProperties.getColor(segmentIndex);
191385
- imageArray[destOffset] = rgb[0] * 255;
191386
- imageArray[destOffset + 1] = rgb[1] * 255;
191387
- imageArray[destOffset + 2] = rgb[2] * 255;
191388
- imageArray[destOffset + 3] = 127;
191389
- }
191390
- destOffset += 4;
191391
- }
191392
- }
191393
- if (dirtyX > width) {
191394
- return;
191395
- }
191396
- const dirtyWidth = dirtyX2 - dirtyX + 1;
191397
- const dirtyHeight = dirtyY2 - dirtyY + 1;
191398
- localContext.putImageData(imageData, 0, 0, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
191399
- context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
191400
- }
191401
- getClassName() {
191402
- return this.className;
191403
- }
191404
- getProperty() {
191405
- return this.canvasProperties;
191406
- }
191407
- setVisibility(visibility) {
191408
- this.visibility = visibility;
191409
- }
191410
- getMapper() {
191411
- return this.mapper;
191412
- }
191413
- isA(actorType) {
191414
- return actorType === this.className;
191415
- }
191416
- getImage() {
191417
- if (this.image) {
191418
- return this.image;
191419
- }
191420
- this.image = { ...this.derivedImage };
191421
- const imageData = this.viewport.getImageData();
191422
- Object.assign(this.image, {
191423
- worldToIndex: (worldPos) => imageData.imageData.worldToIndex(worldPos),
191424
- indexToWorld: (index, destPoint) => imageData.imageData.indexToWorld(index, destPoint),
191425
- getDimensions: () => imageData.dimensions,
191426
- getScalarData: () => this.derivedImage?.getPixelData(),
191427
- getDirection: () => imageData.direction,
191428
- getSpacing: () => imageData.spacing,
191429
- setOrigin: () => null,
191430
- setDerivedImage: (image) => {
191431
- this.derivedImage = image;
191432
- this.image = null;
191433
- },
191434
- modified: () => null,
191435
- });
191436
- return this.image;
191437
- }
191438
- }
191439
-
191440
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
191441
- var cache = __webpack_require__(82253);
191442
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
191432
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
191433
+ /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
191434
+ /* harmony export */ });
191435
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
191436
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
191437
+ /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30023);
191438
+ /* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30742);
191439
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
191440
+ /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77614);
191441
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25281);
191442
+ /* harmony import */ var _CanvasActor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40046);
191443
+ /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82253);
191443
191444
 
191444
191445
 
191445
191446
 
@@ -191449,11 +191450,11 @@ var cache = __webpack_require__(82253);
191449
191450
 
191450
191451
 
191451
191452
 
191452
- class VideoViewport extends Viewport/* default */.Z {
191453
+ class VideoViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z {
191453
191454
  constructor(props) {
191454
191455
  super({
191455
191456
  ...props,
191456
- canvas: props.canvas || (0,helpers/* getOrCreateCanvas */.uy)(props.element),
191457
+ canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_6__/* .getOrCreateCanvas */ .uy)(props.element),
191457
191458
  });
191458
191459
  this.videoWidth = 0;
191459
191460
  this.videoHeight = 0;
@@ -191555,7 +191556,7 @@ class VideoViewport extends Viewport/* default */.Z {
191555
191556
  actor.actor.render(this, this.canvasContext);
191556
191557
  }
191557
191558
  this.canvasContext.resetTransform();
191558
- (0,utilities.triggerEvent)(this.element, enums.Events.STACK_NEW_IMAGE, {
191559
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.STACK_NEW_IMAGE, {
191559
191560
  element: this.element,
191560
191561
  viewportId: this.id,
191561
191562
  viewport: this,
@@ -191563,10 +191564,12 @@ class VideoViewport extends Viewport/* default */.Z {
191563
191564
  time: this.videoElement.currentTime,
191564
191565
  duration: this.videoElement.duration,
191565
191566
  });
191566
- (0,utilities.triggerEvent)(this.element, enums.Events.IMAGE_RENDERED, {
191567
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
191567
191568
  element: this.element,
191568
191569
  viewportId: this.id,
191569
191570
  viewport: this,
191571
+ imageIndex: this.getCurrentImageIdIndex(),
191572
+ numberOfSlices: this.numberOfFrames,
191570
191573
  renderingEngineId: this.renderingEngineId,
191571
191574
  time: this.videoElement.currentTime,
191572
191575
  duration: this.videoElement.duration,
@@ -191610,10 +191613,10 @@ class VideoViewport extends Viewport/* default */.Z {
191610
191613
  return true;
191611
191614
  }
191612
191615
  addEventListeners() {
191613
- this.canvas.addEventListener(enums.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
191616
+ this.canvas.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
191614
191617
  }
191615
191618
  removeEventListeners() {
191616
- this.canvas.removeEventListener(enums.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
191619
+ this.canvas.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
191617
191620
  }
191618
191621
  elementDisabledHandler() {
191619
191622
  this.removeEventListeners();
@@ -191621,18 +191624,18 @@ class VideoViewport extends Viewport/* default */.Z {
191621
191624
  }
191622
191625
  getImageDataMetadata(image) {
191623
191626
  const imageId = typeof image === 'string' ? image : image.imageId;
191624
- const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
191627
+ const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, imageId);
191625
191628
  let rowCosines = imagePlaneModule.rowCosines;
191626
191629
  let columnCosines = imagePlaneModule.columnCosines;
191627
191630
  if (rowCosines == null || columnCosines == null) {
191628
191631
  rowCosines = [1, 0, 0];
191629
191632
  columnCosines = [0, 1, 0];
191630
191633
  }
191631
- const rowCosineVec = esm/* vec3.fromValues */.R3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
191632
- const colCosineVec = esm/* vec3.fromValues */.R3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
191634
+ const rowCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
191635
+ const colCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
191633
191636
  const { rows, columns } = imagePlaneModule;
191634
- const scanAxisNormal = esm/* vec3.create */.R3.create();
191635
- esm/* vec3.cross */.R3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
191637
+ const scanAxisNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .R3.create();
191638
+ gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.cross */ .R3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
191636
191639
  let origin = imagePlaneModule.imagePositionPatient;
191637
191640
  if (origin == null) {
191638
191641
  origin = [0, 0, 0];
@@ -191663,15 +191666,15 @@ class VideoViewport extends Viewport/* default */.Z {
191663
191666
  }
191664
191667
  setVideo(imageId, frameNumber) {
191665
191668
  this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
191666
- const imageUrlModule = metaData.get(enums.MetadataModules.IMAGE_URL, imageId);
191669
+ const imageUrlModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_URL, imageId);
191667
191670
  if (!imageUrlModule?.rendered) {
191668
191671
  throw new Error(`Video Image ID ${imageId} does not have a rendered video view`);
191669
191672
  }
191670
191673
  const { rendered } = imageUrlModule;
191671
- const generalSeries = metaData.get(enums.MetadataModules.GENERAL_SERIES, imageId);
191674
+ const generalSeries = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.GENERAL_SERIES, imageId);
191672
191675
  this.modality = generalSeries?.Modality;
191673
191676
  this.metadata = this.getImageDataMetadata(imageId);
191674
- let { cineRate, numberOfFrames } = metaData.get(enums.MetadataModules.CINE, imageId);
191677
+ let { cineRate, numberOfFrames } = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.CINE, imageId);
191675
191678
  this.numberOfFrames = numberOfFrames;
191676
191679
  return this.setVideoURL(rendered).then(() => {
191677
191680
  if (!numberOfFrames || numberOfFrames === 1) {
@@ -191731,18 +191734,18 @@ class VideoViewport extends Viewport/* default */.Z {
191731
191734
  async play() {
191732
191735
  try {
191733
191736
  if (!this.isPlaying) {
191734
- await this.videoElement.play();
191735
191737
  this.isPlaying = true;
191738
+ await this.videoElement.play();
191736
191739
  this.renderWhilstPlaying();
191737
191740
  }
191738
191741
  }
191739
191742
  catch (e) {
191740
191743
  }
191741
191744
  }
191742
- async pause() {
191745
+ pause() {
191743
191746
  try {
191744
- await this.videoElement.pause();
191745
191747
  this.isPlaying = false;
191748
+ this.videoElement.pause();
191746
191749
  }
191747
191750
  catch (e) {
191748
191751
  }
@@ -191841,9 +191844,9 @@ class VideoViewport extends Viewport/* default */.Z {
191841
191844
  this.videoElement.playbackRate = rate;
191842
191845
  this.play();
191843
191846
  }
191844
- setScrollSpeed(scrollSpeed = 1, unit = enums.VideoEnums.SpeedUnit.FRAME) {
191847
+ setScrollSpeed(scrollSpeed = 1, unit = _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.FRAME) {
191845
191848
  this.scrollSpeed =
191846
- unit === enums.VideoEnums.SpeedUnit.SECOND
191849
+ unit === _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.SECOND
191847
191850
  ? scrollSpeed * this.fps
191848
191851
  : scrollSpeed;
191849
191852
  }
@@ -192030,6 +192033,14 @@ class VideoViewport extends Viewport/* default */.Z {
192030
192033
  const frame = currentIndex + 1;
192031
192034
  return range[0] <= frame && frame <= (range[1] ?? range[0]);
192032
192035
  }
192036
+ setViewReference(viewRef) {
192037
+ if (typeof viewRef.sliceIndex === 'number') {
192038
+ this.setFrameNumber(viewRef.sliceIndex + 1);
192039
+ }
192040
+ else if (Array.isArray(viewRef.sliceIndex)) {
192041
+ this.setFrameRange(viewRef.sliceIndex);
192042
+ }
192043
+ }
192033
192044
  getViewReference(viewRefSpecifier) {
192034
192045
  let sliceIndex = viewRefSpecifier?.sliceIndex;
192035
192046
  if (!sliceIndex) {
@@ -192050,7 +192061,7 @@ class VideoViewport extends Viewport/* default */.Z {
192050
192061
  return Math.round(this.videoElement.currentTime * this.fps);
192051
192062
  }
192052
192063
  getSliceIndex() {
192053
- return this.getCurrentImageIdIndex();
192064
+ return this.getCurrentImageIdIndex() / this.scrollSpeed;
192054
192065
  }
192055
192066
  getCamera() {
192056
192067
  const { parallelScale } = this.videoCamera;
@@ -192068,6 +192079,9 @@ class VideoViewport extends Viewport/* default */.Z {
192068
192079
  viewPlaneNormal: [0, 0, 1],
192069
192080
  };
192070
192081
  }
192082
+ getFrameRate() {
192083
+ return this.fps;
192084
+ }
192071
192085
  getPan() {
192072
192086
  const panWorld = this.videoCamera.panWorld;
192073
192087
  return [panWorld[0], panWorld[1]];
@@ -192105,7 +192119,7 @@ class VideoViewport extends Viewport/* default */.Z {
192105
192119
  halfCanvas[0] * canvasToWorldRatio,
192106
192120
  halfCanvas[1] * canvasToWorldRatio,
192107
192121
  ];
192108
- const transform = new rendering_transform/* Transform */.w();
192122
+ const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__/* .Transform */ .w();
192109
192123
  transform.scale(devicePixelRatio, devicePixelRatio);
192110
192124
  transform.translate(halfCanvas[0], halfCanvas[1]);
192111
192125
  transform.scale(worldToCanvasRatio, worldToCanvasRatio);
@@ -192118,7 +192132,7 @@ class VideoViewport extends Viewport/* default */.Z {
192118
192132
  addImages(stackInputs) {
192119
192133
  const actors = this.getActors();
192120
192134
  stackInputs.forEach((stackInput) => {
192121
- const image = cache/* default */.ZP.getImage(stackInput.imageId);
192135
+ const image = _cache__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP.getImage(stackInput.imageId);
192122
192136
  const imageActor = this.createActorMapper(image);
192123
192137
  if (imageActor) {
192124
192138
  actors.push({ uid: stackInput.actorUID, actor: imageActor });
@@ -192130,10 +192144,10 @@ class VideoViewport extends Viewport/* default */.Z {
192130
192144
  this.setActors(actors);
192131
192145
  }
192132
192146
  createActorMapper(image) {
192133
- return new CanvasActor(this, image);
192147
+ return new _CanvasActor__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z(this, image);
192134
192148
  }
192135
192149
  }
192136
- /* harmony default export */ const RenderingEngine_VideoViewport = (VideoViewport);
192150
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoViewport);
192137
192151
 
192138
192152
 
192139
192153
  /***/ }),
@@ -192155,9 +192169,9 @@ class VideoViewport extends Viewport/* default */.Z {
192155
192169
  /* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84659);
192156
192170
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68032);
192157
192171
  /* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90872);
192158
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11723);
192172
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56309);
192159
192173
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1483);
192160
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(48588);
192174
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(19247);
192161
192175
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(28719);
192162
192176
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7187);
192163
192177
 
@@ -193099,9 +193113,9 @@ class Viewport {
193099
193113
  /* harmony export */ });
193100
193114
  /* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3969);
193101
193115
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82253);
193102
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48588);
193116
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19247);
193103
193117
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7187);
193104
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11723);
193118
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
193105
193119
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36205);
193106
193120
  /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98230);
193107
193121
  /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54526);
@@ -193122,7 +193136,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
193122
193136
  super(props);
193123
193137
  this._useAcquisitionPlaneForViewPlane = false;
193124
193138
  this.getNumberOfSlices = () => {
193125
- const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this);
193139
+ const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this) || {};
193126
193140
  return numberOfSlices;
193127
193141
  };
193128
193142
  this.getCurrentImageIdIndex = (volumeId) => {
@@ -193139,7 +193153,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
193139
193153
  return Math.round(Math.abs(distance) / spacingInNormal);
193140
193154
  };
193141
193155
  this.getSliceIndex = () => {
193142
- const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this);
193156
+ const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this) || {};
193143
193157
  return imageIndex;
193144
193158
  };
193145
193159
  this.getCurrentImageId = () => {
@@ -193284,9 +193298,9 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
193284
193298
  this.render();
193285
193299
  }
193286
193300
  }
193287
- resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
193301
+ resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false, resetOrientation = true) {
193288
193302
  const { orientation } = this.viewportProperties;
193289
- if (orientation) {
193303
+ if (orientation && resetOrientation) {
193290
193304
  this.applyViewOrientation(orientation, false);
193291
193305
  }
193292
193306
  super.resetCamera(resetPan, resetZoom, resetToCenter);
@@ -193494,12 +193508,16 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
193494
193508
  /* harmony export */ });
193495
193509
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
193496
193510
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
193497
- /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30023);
193498
- /* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30742);
193499
- /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77614);
193500
- /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25281);
193501
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48588);
193502
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11723);
193511
+ /* harmony import */ var _utilities_uuidv4__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47741);
193512
+ /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30023);
193513
+ /* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30742);
193514
+ /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77614);
193515
+ /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25281);
193516
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19247);
193517
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(56309);
193518
+ /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28719);
193519
+
193520
+
193503
193521
 
193504
193522
 
193505
193523
 
@@ -193510,11 +193528,11 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
193510
193528
 
193511
193529
  const _map = Symbol.for('map');
193512
193530
  const EVENT_POSTRENDER = 'postrender';
193513
- class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z {
193531
+ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z {
193514
193532
  constructor(props) {
193515
193533
  super({
193516
193534
  ...props,
193517
- canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_5__/* .getOrCreateCanvas */ .uy)(props.element),
193535
+ canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_6__/* .getOrCreateCanvas */ .uy)(props.element),
193518
193536
  });
193519
193537
  this.internalCamera = {
193520
193538
  rotation: 0,
@@ -193580,7 +193598,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193580
193598
  };
193581
193599
  this.postrender = () => {
193582
193600
  this.refreshRenderValues();
193583
- (0,_utilities__WEBPACK_IMPORTED_MODULE_7__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
193601
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_8__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
193584
193602
  element: this.element,
193585
193603
  viewportId: this.id,
193586
193604
  viewport: this,
@@ -193604,7 +193622,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193604
193622
  this.element.setAttribute('data-rendering-engine-uid', this.renderingEngineId);
193605
193623
  this.element.style.position = 'relative';
193606
193624
  this.microscopyElement = document.createElement('div');
193607
- this.microscopyElement.id = crypto.randomUUID();
193625
+ this.microscopyElement.id = (0,_utilities_uuidv4__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
193608
193626
  this.microscopyElement.innerText = 'Initial';
193609
193627
  this.microscopyElement.style.background = 'grey';
193610
193628
  this.microscopyElement.style.width = '100%';
@@ -193634,7 +193652,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193634
193652
  return maxImage?.NumberOfFrames < image.NumberOfFrames ? image : maxImage;
193635
193653
  });
193636
193654
  const { TotalPixelMatrixColumns: columns, TotalPixelMatrixRows: rows, ImageOrientationSlide, ImagedVolumeWidth: width, ImagedVolumeHeight: height, ImagedVolumeDepth: depth, } = maxImage;
193637
- const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, this.imageIds[imageIndex]);
193655
+ const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, this.imageIds[imageIndex]);
193638
193656
  let rowCosines = ImageOrientationSlide.slice(0, 3);
193639
193657
  let columnCosines = ImageOrientationSlide.slice(3, 6);
193640
193658
  if (rowCosines == null || columnCosines == null) {
@@ -193682,7 +193700,10 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193682
193700
  }
193683
193701
  getImageData() {
193684
193702
  const { metadata } = this;
193685
- const spacing = metadata.spacing;
193703
+ if (!metadata) {
193704
+ return;
193705
+ }
193706
+ const { spacing } = metadata;
193686
193707
  return {
193687
193708
  dimensions: metadata.dimensions,
193688
193709
  spacing,
@@ -193759,22 +193780,21 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193759
193780
  viewPlaneNormal: [0, 0, 1],
193760
193781
  };
193761
193782
  }
193762
- getImportPath() {
193763
- return '/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js';
193764
- }
193783
+ static { this.getDicomMicroscopyViewer = async () => {
193784
+ return (0,_init__WEBPACK_IMPORTED_MODULE_9__/* .peerImport */ .Dm)('dicom-microscopy-viewer');
193785
+ }; }
193765
193786
  setDataIds(imageIds) {
193766
- const webClient = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.WEB_CLIENT, imageIds[0]);
193787
+ const webClient = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.WEB_CLIENT, imageIds[0]);
193767
193788
  if (!webClient) {
193768
193789
  throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}`);
193769
193790
  }
193770
- this.setWSI(imageIds, webClient);
193791
+ return this.setWSI(imageIds, webClient);
193771
193792
  }
193772
193793
  async setWSI(imageIds, client) {
193773
193794
  this.microscopyElement.style.background = 'red';
193774
193795
  this.microscopyElement.innerText = 'Loading';
193775
193796
  this.imageIds = imageIds;
193776
- await __webpack_require__(30684)(this.getImportPath());
193777
- const DicomMicroscopyViewer = window.dicomMicroscopyViewer;
193797
+ const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
193778
193798
  this.frameOfReferenceUID = null;
193779
193799
  const metadataDicomweb = this.imageIds.map((imageId) => {
193780
193800
  const imageMetadata = client.getDICOMwebMetadata(imageId);
@@ -193808,6 +193828,9 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193808
193828
  if (imageFlavor === 'VOLUME' || imageFlavor === 'THUMBNAIL') {
193809
193829
  volumeImages.push(image);
193810
193830
  }
193831
+ else {
193832
+ console.log('Unknown image type', image.ImageType);
193833
+ }
193811
193834
  });
193812
193835
  this.metadataDicomweb = volumeImages;
193813
193836
  const viewer = new DicomMicroscopyViewer.viewer.VolumeImageViewer({
@@ -193859,7 +193882,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193859
193882
  return;
193860
193883
  }
193861
193884
  const resolution = view.getResolution();
193862
- if (!resolution || resolution < _constants__WEBPACK_IMPORTED_MODULE_6__.EPSILON) {
193885
+ if (!resolution || resolution < _constants__WEBPACK_IMPORTED_MODULE_7__.EPSILON) {
193863
193886
  return;
193864
193887
  }
193865
193888
  const centerIndex = view.getCenter();
@@ -193889,7 +193912,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
193889
193912
  this.refreshRenderValues();
193890
193913
  const { centerIndex: center, resolution, rotation } = this.internalCamera;
193891
193914
  const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
193892
- const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__/* .Transform */ .w();
193915
+ const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_4__/* .Transform */ .w();
193893
193916
  transform.translate(halfCanvas[0], halfCanvas[1]);
193894
193917
  transform.rotate(rotation);
193895
193918
  transform.scale(1 / resolution, -1 / resolution);
@@ -195210,8 +195233,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
195210
195233
  }
195211
195234
  /* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
195212
195235
 
195213
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
195214
- var utilities = __webpack_require__(11723);
195236
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
195237
+ var utilities = __webpack_require__(56309);
195215
195238
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
195216
195239
 
195217
195240
 
@@ -196098,8 +196121,8 @@ var vtkVolume$1 = {
196098
196121
  var volumeLoader = __webpack_require__(18588);
196099
196122
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/createVolumeMapper.js
196100
196123
  var createVolumeMapper = __webpack_require__(49046);
196101
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
196102
- var utilities = __webpack_require__(11723);
196124
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
196125
+ var utilities = __webpack_require__(56309);
196103
196126
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
196104
196127
  var enums = __webpack_require__(7187);
196105
196128
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
@@ -196314,7 +196337,7 @@ var addImageSlicesToViewports = __webpack_require__(68467);
196314
196337
  /* harmony export */ });
196315
196338
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62990);
196316
196339
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30023);
196317
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11723);
196340
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56309);
196318
196341
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7187);
196319
196342
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82253);
196320
196343
 
@@ -196468,7 +196491,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
196468
196491
  /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__),
196469
196492
  /* harmony export */ t: () => (/* binding */ resetVolumeNewImageState)
196470
196493
  /* harmony export */ });
196471
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11723);
196494
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56309);
196472
196495
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
196473
196496
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9138);
196474
196497
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36205);
@@ -196538,8 +196561,8 @@ var Events = __webpack_require__(19546);
196538
196561
  var renderingEngineCache = __webpack_require__(90872);
196539
196562
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
196540
196563
  var eventTarget = __webpack_require__(74238);
196541
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
196542
- var utilities = __webpack_require__(11723);
196564
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
196565
+ var utilities = __webpack_require__(56309);
196543
196566
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 25 modules
196544
196567
  var vtkClasses = __webpack_require__(63466);
196545
196568
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
@@ -196552,8 +196575,8 @@ var BaseVolumeViewport = __webpack_require__(36205);
196552
196575
  var StackViewport = __webpack_require__(98715);
196553
196576
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport3D.js
196554
196577
  var VolumeViewport3D = __webpack_require__(46190);
196555
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js + 3 modules
196556
- var VideoViewport = __webpack_require__(11062);
196578
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
196579
+ var VideoViewport = __webpack_require__(49001);
196557
196580
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/WSIViewport.js
196558
196581
  var WSIViewport = __webpack_require__(86057);
196559
196582
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js
@@ -196870,8 +196893,8 @@ class RenderingEngine {
196870
196893
  const resetZoom = true;
196871
196894
  const resetToCenter = true;
196872
196895
  const resetRotation = false;
196873
- const supressEvents = true;
196874
- vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
196896
+ const suppressEvents = true;
196897
+ vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, suppressEvents);
196875
196898
  const displayArea = vp.getDisplayArea();
196876
196899
  if (keepCamera) {
196877
196900
  if (displayArea) {
@@ -203164,211 +203187,6 @@ function vtkSlabCamera(publicAPI, model) {
203164
203187
 
203165
203188
 
203166
203189
 
203167
- /***/ }),
203168
-
203169
- /***/ 90261:
203170
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
203171
-
203172
- "use strict";
203173
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
203174
- /* harmony export */ Z: () => (/* binding */ Settings)
203175
- /* harmony export */ });
203176
- const DEFAULT_SETTINGS = Symbol('DefaultSettings');
203177
- const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
203178
- const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
203179
- const DICTIONARY = Symbol('Dictionary');
203180
- class Settings {
203181
- constructor(base) {
203182
- const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
203183
- ? base[DICTIONARY]
203184
- : null));
203185
- Object.seal(Object.defineProperty(this, DICTIONARY, {
203186
- value: dictionary,
203187
- }));
203188
- }
203189
- set(key, value) {
203190
- return set(this[DICTIONARY], key, value, null);
203191
- }
203192
- get(key) {
203193
- return get(this[DICTIONARY], key);
203194
- }
203195
- unset(key) {
203196
- return unset(this[DICTIONARY], key + '');
203197
- }
203198
- forEach(callback) {
203199
- iterate(this[DICTIONARY], callback);
203200
- }
203201
- extend() {
203202
- return new Settings(this);
203203
- }
203204
- import(root) {
203205
- if (isPlainObject(root)) {
203206
- Object.keys(root).forEach((key) => {
203207
- set(this[DICTIONARY], key, root[key], null);
203208
- });
203209
- }
203210
- }
203211
- dump() {
203212
- const context = {};
203213
- iterate(this[DICTIONARY], (key, value) => {
203214
- if (typeof value !== 'undefined') {
203215
- deepSet(context, key, value);
203216
- }
203217
- });
203218
- return context;
203219
- }
203220
- static assert(subject) {
203221
- return subject instanceof Settings
203222
- ? subject
203223
- : Settings.getRuntimeSettings();
203224
- }
203225
- static getDefaultSettings(subfield = null) {
203226
- let defaultSettings = Settings[DEFAULT_SETTINGS];
203227
- if (!(defaultSettings instanceof Settings)) {
203228
- defaultSettings = new Settings();
203229
- Settings[DEFAULT_SETTINGS] = defaultSettings;
203230
- }
203231
- if (subfield) {
203232
- const settingObj = {};
203233
- defaultSettings.forEach((name) => {
203234
- if (name.startsWith(subfield)) {
203235
- const setting = name.split(`${subfield}.`)[1];
203236
- settingObj[setting] = defaultSettings.get(name);
203237
- }
203238
- });
203239
- return settingObj;
203240
- }
203241
- return defaultSettings;
203242
- }
203243
- static getRuntimeSettings() {
203244
- let runtimeSettings = Settings[RUNTIME_SETTINGS];
203245
- if (!(runtimeSettings instanceof Settings)) {
203246
- runtimeSettings = new Settings(Settings.getDefaultSettings());
203247
- Settings[RUNTIME_SETTINGS] = runtimeSettings;
203248
- }
203249
- return runtimeSettings;
203250
- }
203251
- static getObjectSettings(subject, from) {
203252
- let settings = null;
203253
- if (subject instanceof Settings) {
203254
- settings = subject;
203255
- }
203256
- else if (typeof subject === 'object' && subject !== null) {
203257
- let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
203258
- if (!(objectSettingsMap instanceof WeakMap)) {
203259
- objectSettingsMap = new WeakMap();
203260
- Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
203261
- }
203262
- settings = objectSettingsMap.get(subject);
203263
- if (!(settings instanceof Settings)) {
203264
- settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
203265
- objectSettingsMap.set(subject, settings);
203266
- }
203267
- }
203268
- return settings;
203269
- }
203270
- static extendRuntimeSettings() {
203271
- return Settings.getRuntimeSettings().extend();
203272
- }
203273
- }
203274
- function unset(dictionary, name) {
203275
- if (name.endsWith('.')) {
203276
- let deleteCount = 0;
203277
- const namespace = name;
203278
- const base = namespace.slice(0, -1);
203279
- const deleteAll = base.length === 0;
203280
- for (const key in dictionary) {
203281
- if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
203282
- (deleteAll || key.startsWith(namespace) || key === base)) {
203283
- delete dictionary[key];
203284
- ++deleteCount;
203285
- }
203286
- }
203287
- return deleteCount > 0;
203288
- }
203289
- return delete dictionary[name];
203290
- }
203291
- function iterate(dictionary, callback) {
203292
- for (const key in dictionary) {
203293
- callback(key, dictionary[key]);
203294
- }
203295
- }
203296
- function setAll(dictionary, prefix, record, references) {
203297
- let failCount;
203298
- if (references.has(record)) {
203299
- return set(dictionary, prefix, null, references);
203300
- }
203301
- references.add(record);
203302
- failCount = 0;
203303
- for (const field in record) {
203304
- if (Object.prototype.hasOwnProperty.call(record, field)) {
203305
- const key = field.length === 0 ? prefix : `${prefix}.${field}`;
203306
- if (!set(dictionary, key, record[field], references)) {
203307
- ++failCount;
203308
- }
203309
- }
203310
- }
203311
- references.delete(record);
203312
- return failCount === 0;
203313
- }
203314
- function set(dictionary, key, value, references) {
203315
- if (isValidKey(key)) {
203316
- if (isPlainObject(value)) {
203317
- return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
203318
- }
203319
- dictionary[key] = value;
203320
- return true;
203321
- }
203322
- return false;
203323
- }
203324
- function get(dictionary, key) {
203325
- return dictionary[key];
203326
- }
203327
- function isValidKey(key) {
203328
- let last, current, previous;
203329
- if (typeof key !== 'string' || (last = key.length - 1) < 0) {
203330
- return false;
203331
- }
203332
- previous = -1;
203333
- while ((current = key.indexOf('.', previous + 1)) >= 0) {
203334
- if (current - previous < 2 || current === last) {
203335
- return false;
203336
- }
203337
- previous = current;
203338
- }
203339
- return true;
203340
- }
203341
- function isPlainObject(subject) {
203342
- if (typeof subject === 'object' && subject !== null) {
203343
- const prototype = Object.getPrototypeOf(subject);
203344
- if (prototype === Object.prototype || prototype === null) {
203345
- return true;
203346
- }
203347
- }
203348
- return false;
203349
- }
203350
- function deepSet(context, key, value) {
203351
- const separator = key.indexOf('.');
203352
- if (separator >= 0) {
203353
- const subKey = key.slice(0, separator);
203354
- let subContext = context[subKey];
203355
- if (typeof subContext !== 'object' || subContext === null) {
203356
- const subContextValue = subContext;
203357
- subContext = {};
203358
- if (typeof subContextValue !== 'undefined') {
203359
- subContext[''] = subContextValue;
203360
- }
203361
- context[subKey] = subContext;
203362
- }
203363
- deepSet(subContext, key.slice(separator + 1, key.length), value);
203364
- }
203365
- else {
203366
- context[key] = value;
203367
- }
203368
- }
203369
- Settings.getDefaultSettings().set('useCursors', true);
203370
-
203371
-
203372
203190
  /***/ }),
203373
203191
 
203374
203192
  /***/ 5287:
@@ -203379,7 +203197,7 @@ Settings.getDefaultSettings().set('useCursors', true);
203379
203197
  /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
203380
203198
  /* harmony export */ });
203381
203199
  /* unused harmony export Cache */
203382
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11723);
203200
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56309);
203383
203201
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74238);
203384
203202
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
203385
203203
  /* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84326);
@@ -203416,7 +203234,11 @@ class Cache {
203416
203234
  this.getMaxInstanceSize = () => this._maxInstanceSize;
203417
203235
  this.getCacheSize = () => this._imageCacheSize + this._volumeCacheSize;
203418
203236
  this._decacheImage = (imageId) => {
203419
- const { imageLoadObject } = this._imageCache.get(imageId);
203237
+ const cachedImage = this._imageCache.get(imageId);
203238
+ if (!cachedImage) {
203239
+ return;
203240
+ }
203241
+ const { imageLoadObject } = cachedImage;
203420
203242
  if (imageLoadObject.cancelFn) {
203421
203243
  imageLoadObject.cancelFn();
203422
203244
  }
@@ -203427,7 +203249,13 @@ class Cache {
203427
203249
  };
203428
203250
  this._decacheVolume = (volumeId) => {
203429
203251
  const cachedVolume = this._volumeCache.get(volumeId);
203252
+ if (!cachedVolume) {
203253
+ return;
203254
+ }
203430
203255
  const { volumeLoadObject, volume } = cachedVolume;
203256
+ if (!volume) {
203257
+ return;
203258
+ }
203431
203259
  if (volume.cancelLoading) {
203432
203260
  volume.cancelLoading();
203433
203261
  }
@@ -203473,7 +203301,7 @@ class Cache {
203473
203301
  throw new Error('getVolumeLoadObject: volumeId must not be undefined');
203474
203302
  }
203475
203303
  const cachedVolume = this._volumeCache.get(volumeId);
203476
- if (cachedVolume === undefined) {
203304
+ if (!cachedVolume) {
203477
203305
  return;
203478
203306
  }
203479
203307
  cachedVolume.timeStamp = Date.now();
@@ -203484,7 +203312,7 @@ class Cache {
203484
203312
  throw new Error('getGeometry: geometryId must not be undefined');
203485
203313
  }
203486
203314
  const cachedGeometry = this._geometryCache.get(geometryId);
203487
- if (cachedGeometry === undefined) {
203315
+ if (!cachedGeometry) {
203488
203316
  return;
203489
203317
  }
203490
203318
  cachedGeometry.timeStamp = Date.now();
@@ -203495,7 +203323,7 @@ class Cache {
203495
203323
  throw new Error('getImage: imageId must not be undefined');
203496
203324
  }
203497
203325
  const cachedImage = this._imageCache.get(imageId);
203498
- if (cachedImage === undefined) {
203326
+ if (!cachedImage) {
203499
203327
  return;
203500
203328
  }
203501
203329
  cachedImage.timeStamp = Date.now();
@@ -203506,7 +203334,7 @@ class Cache {
203506
203334
  throw new Error('getVolume: volumeId must not be undefined');
203507
203335
  }
203508
203336
  const cachedVolume = this._volumeCache.get(volumeId);
203509
- if (cachedVolume === undefined) {
203337
+ if (!cachedVolume) {
203510
203338
  return;
203511
203339
  }
203512
203340
  cachedVolume.timeStamp = Date.now();
@@ -203527,7 +203355,7 @@ class Cache {
203527
203355
  throw new Error('removeImageLoadObject: imageId must not be undefined');
203528
203356
  }
203529
203357
  const cachedImage = this._imageCache.get(imageId);
203530
- if (cachedImage === undefined) {
203358
+ if (!cachedImage) {
203531
203359
  throw new Error('removeImageLoadObject: imageId was not present in imageCache');
203532
203360
  }
203533
203361
  this.incrementImageCacheSize(-cachedImage.sizeInBytes);
@@ -203543,7 +203371,7 @@ class Cache {
203543
203371
  throw new Error('removeVolumeLoadObject: volumeId must not be undefined');
203544
203372
  }
203545
203373
  const cachedVolume = this._volumeCache.get(volumeId);
203546
- if (cachedVolume === undefined) {
203374
+ if (!cachedVolume) {
203547
203375
  throw new Error('removeVolumeLoadObject: volumeId was not present in volumeCache');
203548
203376
  }
203549
203377
  this.incrementVolumeCacheSize(-cachedVolume.sizeInBytes);
@@ -203710,7 +203538,7 @@ class Cache {
203710
203538
  throw new Error('getImageLoadObject: imageId must not be undefined');
203711
203539
  }
203712
203540
  const cachedImage = this._imageCache.get(imageId);
203713
- if (cachedImage === undefined) {
203541
+ if (!cachedImage) {
203714
203542
  return;
203715
203543
  }
203716
203544
  cachedImage.timeStamp = Date.now();
@@ -203728,6 +203556,9 @@ class Cache {
203728
203556
  const imageIdToUse = (0,_utilities__WEBPACK_IMPORTED_MODULE_0__.imageIdToURI)(imageId);
203729
203557
  for (const volumeId of volumeIds) {
203730
203558
  const cachedVolume = this._volumeCache.get(volumeId);
203559
+ if (!cachedVolume) {
203560
+ return;
203561
+ }
203731
203562
  const { volume } = cachedVolume;
203732
203563
  if (!volume?.imageIds?.length) {
203733
203564
  return;
@@ -203861,8 +203692,8 @@ function isTypedArray(obj) {
203861
203692
  obj instanceof Float64Array);
203862
203693
  }
203863
203694
 
203864
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
203865
- var utilities = __webpack_require__(11723);
203695
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
203696
+ var utilities = __webpack_require__(56309);
203866
203697
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 25 modules
203867
203698
  var vtkClasses = __webpack_require__(63466);
203868
203699
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
@@ -204293,6 +204124,21 @@ class Surface {
204293
204124
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_cache__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);
204294
204125
 
204295
204126
 
204127
+ /***/ }),
204128
+
204129
+ /***/ 43220:
204130
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
204131
+
204132
+ "use strict";
204133
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
204134
+ /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
204135
+ /* harmony export */ });
204136
+ const backgroundColors = {
204137
+ slicer3D: [160 / 255, 164 / 255, 217 / 255],
204138
+ };
204139
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (backgroundColors);
204140
+
204141
+
204296
204142
  /***/ }),
204297
204143
 
204298
204144
  /***/ 52813:
@@ -205831,42 +205677,65 @@ const colormapsData = {
205831
205677
 
205832
205678
  /***/ }),
205833
205679
 
205834
- /***/ 34061:
205680
+ /***/ 19247:
205835
205681
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
205836
205682
 
205837
205683
  "use strict";
205838
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
205839
- /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
205840
- /* harmony export */ });
205684
+ // ESM COMPAT FLAG
205685
+ __webpack_require__.r(__webpack_exports__);
205686
+
205687
+ // EXPORTS
205688
+ __webpack_require__.d(__webpack_exports__, {
205689
+ BACKGROUND_COLORS: () => (/* reexport */ backgroundColors/* default */.Z),
205690
+ CPU_COLORMAPS: () => (/* reexport */ cpuColormaps/* default */.Z),
205691
+ EPSILON: () => (/* reexport */ epsilon),
205692
+ MPR_CAMERA_VALUES: () => (/* reexport */ mprCameraValues/* default */.Z),
205693
+ RENDERING_DEFAULTS: () => (/* reexport */ rendering),
205694
+ VIEWPORT_PRESETS: () => (/* reexport */ viewportPresets/* default */.Z)
205695
+ });
205696
+
205697
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/cpuColormaps.js
205698
+ var cpuColormaps = __webpack_require__(52813);
205699
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/rendering.js
205700
+ const RENDERING_DEFAULTS = {
205701
+ MINIMUM_SLAB_THICKNESS: 5e-2,
205702
+ MAXIMUM_RAY_DISTANCE: 1e6,
205703
+ };
205704
+ Object.freeze(RENDERING_DEFAULTS);
205705
+ /* harmony default export */ const rendering = (RENDERING_DEFAULTS);
205706
+
205707
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/epsilon.js
205841
205708
  const EPSILON = 1e-3;
205842
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EPSILON);
205709
+ /* harmony default export */ const epsilon = (EPSILON);
205710
+
205711
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/mprCameraValues.js + 1 modules
205712
+ var mprCameraValues = __webpack_require__(21306);
205713
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/viewportPresets.js
205714
+ var viewportPresets = __webpack_require__(89469);
205715
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/backgroundColors.js
205716
+ var backgroundColors = __webpack_require__(43220);
205717
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js
205718
+
205719
+
205720
+
205721
+
205722
+
205723
+
205724
+
205843
205725
 
205844
205726
 
205845
205727
  /***/ }),
205846
205728
 
205847
- /***/ 48588:
205729
+ /***/ 21306:
205848
205730
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
205849
205731
 
205850
205732
  "use strict";
205851
- // ESM COMPAT FLAG
205852
- __webpack_require__.r(__webpack_exports__);
205853
205733
 
205854
205734
  // EXPORTS
205855
205735
  __webpack_require__.d(__webpack_exports__, {
205856
- BACKGROUND_COLORS: () => (/* reexport */ constants_backgroundColors),
205857
- CPU_COLORMAPS: () => (/* reexport */ cpuColormaps/* default */.Z),
205858
- EPSILON: () => (/* reexport */ epsilon/* default */.Z),
205859
- MPR_CAMERA_VALUES: () => (/* reexport */ constants_mprCameraValues),
205860
- RENDERING_DEFAULTS: () => (/* reexport */ rendering/* default */.Z),
205861
- VIEWPORT_PRESETS: () => (/* reexport */ viewportPresets)
205736
+ Z: () => (/* binding */ constants_mprCameraValues)
205862
205737
  });
205863
205738
 
205864
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/cpuColormaps.js
205865
- var cpuColormaps = __webpack_require__(52813);
205866
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/rendering.js
205867
- var rendering = __webpack_require__(87525);
205868
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/epsilon.js
205869
- var epsilon = __webpack_require__(34061);
205870
205739
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/deepFreeze.js
205871
205740
  function deepFreeze(object) {
205872
205741
  const propNames = Object.getOwnPropertyNames(object);
@@ -205899,7 +205768,16 @@ const MPR_CAMERA_VALUES = {
205899
205768
  const mprCameraValues = utilities_deepFreeze(MPR_CAMERA_VALUES);
205900
205769
  /* harmony default export */ const constants_mprCameraValues = (mprCameraValues);
205901
205770
 
205902
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/viewportPresets.js
205771
+
205772
+ /***/ }),
205773
+
205774
+ /***/ 89469:
205775
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
205776
+
205777
+ "use strict";
205778
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
205779
+ /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
205780
+ /* harmony export */ });
205903
205781
  const presets = [
205904
205782
  {
205905
205783
  name: 'CT-AAA',
@@ -206214,39 +206092,7 @@ const presets = [
206214
206092
  interpolation: '1',
206215
206093
  },
206216
206094
  ];
206217
- /* harmony default export */ const viewportPresets = (presets);
206218
-
206219
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/backgroundColors.js
206220
- const backgroundColors = {
206221
- slicer3D: [160 / 255, 164 / 255, 217 / 255],
206222
- };
206223
- /* harmony default export */ const constants_backgroundColors = (backgroundColors);
206224
-
206225
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js
206226
-
206227
-
206228
-
206229
-
206230
-
206231
-
206232
-
206233
-
206234
-
206235
- /***/ }),
206236
-
206237
- /***/ 87525:
206238
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
206239
-
206240
- "use strict";
206241
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
206242
- /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
206243
- /* harmony export */ });
206244
- const RENDERING_DEFAULTS = {
206245
- MINIMUM_SLAB_THICKNESS: 5e-2,
206246
- MAXIMUM_RAY_DISTANCE: 1e6,
206247
- };
206248
- Object.freeze(RENDERING_DEFAULTS);
206249
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RENDERING_DEFAULTS);
206095
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (presets);
206250
206096
 
206251
206097
 
206252
206098
  /***/ }),
@@ -206803,7 +206649,7 @@ function getEnabledElements() {
206803
206649
 
206804
206650
  /***/ }),
206805
206651
 
206806
- /***/ 62709:
206652
+ /***/ 12651:
206807
206653
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
206808
206654
 
206809
206655
  "use strict";
@@ -206819,7 +206665,7 @@ __webpack_require__.d(__webpack_exports__, {
206819
206665
  ImageVolume: () => (/* reexport */ cache/* ImageVolume */.JI),
206820
206666
  ProgressiveRetrieveImages: () => (/* reexport */ ProgressiveRetrieveImages/* default */.ZP),
206821
206667
  RenderingEngine: () => (/* reexport */ RenderingEngine/* default */.ZP),
206822
- Settings: () => (/* reexport */ Settings/* default */.Z),
206668
+ Settings: () => (/* reexport */ Settings),
206823
206669
  StackViewport: () => (/* reexport */ StackViewport/* default */.Z),
206824
206670
  Surface: () => (/* reexport */ cache/* Surface */.Tg),
206825
206671
  VideoViewport: () => (/* reexport */ VideoViewport/* default */.Z),
@@ -206834,7 +206680,7 @@ __webpack_require__.d(__webpack_exports__, {
206834
206680
  createVolumeActor: () => (/* reexport */ RenderingEngine/* createVolumeActor */.TS),
206835
206681
  createVolumeMapper: () => (/* reexport */ RenderingEngine/* createVolumeMapper */.hi),
206836
206682
  eventTarget: () => (/* reexport */ eventTarget/* default */.Z),
206837
- geometryLoader: () => (/* reexport */ geometryLoader_namespaceObject),
206683
+ geometryLoader: () => (/* reexport */ geometryLoader),
206838
206684
  getConfiguration: () => (/* reexport */ init/* getConfiguration */.P_),
206839
206685
  getEnabledElement: () => (/* reexport */ getEnabledElement/* default */.ZP),
206840
206686
  getEnabledElementByIds: () => (/* reexport */ getEnabledElement/* getEnabledElementByIds */.O),
@@ -206848,10 +206694,11 @@ __webpack_require__.d(__webpack_exports__, {
206848
206694
  getWebWorkerManager: () => (/* reexport */ init/* getWebWorkerManager */.Pt),
206849
206695
  imageLoadPoolManager: () => (/* reexport */ imageLoadPoolManager/* default */.Z),
206850
206696
  imageLoader: () => (/* reexport */ imageLoader),
206851
- imageRetrievalPoolManager: () => (/* reexport */ requestPool_imageRetrievalPoolManager),
206697
+ imageRetrievalPoolManager: () => (/* reexport */ imageRetrievalPoolManager/* default */.Z),
206852
206698
  init: () => (/* reexport */ init/* init */.S1),
206853
206699
  isCornerstoneInitialized: () => (/* reexport */ init/* isCornerstoneInitialized */.uF),
206854
206700
  metaData: () => (/* reexport */ metaData),
206701
+ peerImport: () => (/* reexport */ init/* peerImport */.Dm),
206855
206702
  registerImageLoader: () => (/* reexport */ imageLoader.registerImageLoader),
206856
206703
  requestPoolManager: () => (/* reexport */ imageLoadPoolManager/* default */.Z),
206857
206704
  resetUseCPURendering: () => (/* reexport */ init/* resetUseCPURendering */.Y0),
@@ -206866,17 +206713,10 @@ __webpack_require__.d(__webpack_exports__, {
206866
206713
  volumeLoader: () => (/* reexport */ volumeLoader)
206867
206714
  });
206868
206715
 
206869
- // NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/geometryLoader.js
206870
- var geometryLoader_namespaceObject = {};
206871
- __webpack_require__.r(geometryLoader_namespaceObject);
206872
- __webpack_require__.d(geometryLoader_namespaceObject, {
206873
- createAndCacheGeometry: () => (createAndCacheGeometry)
206874
- });
206875
-
206876
206716
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
206877
206717
  var enums = __webpack_require__(7187);
206878
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 4 modules
206879
- var constants = __webpack_require__(48588);
206718
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
206719
+ var constants = __webpack_require__(19247);
206880
206720
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/index.js + 3 modules
206881
206721
  var RenderingEngine = __webpack_require__(69552);
206882
206722
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport.js
@@ -206887,8 +206727,8 @@ var VolumeViewport3D = __webpack_require__(46190);
206887
206727
  var BaseVolumeViewport = __webpack_require__(36205);
206888
206728
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/StackViewport.js
206889
206729
  var StackViewport = __webpack_require__(98715);
206890
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js + 3 modules
206891
- var VideoViewport = __webpack_require__(11062);
206730
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
206731
+ var VideoViewport = __webpack_require__(49001);
206892
206732
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/WSIViewport.js
206893
206733
  var WSIViewport = __webpack_require__(86057);
206894
206734
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
@@ -206899,20 +206739,8 @@ var eventTarget = __webpack_require__(74238);
206899
206739
  var getRenderingEngine = __webpack_require__(9138);
206900
206740
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
206901
206741
  var cache = __webpack_require__(82253);
206902
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/requestPoolManager.js
206903
- var requestPoolManager = __webpack_require__(42961);
206904
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/RequestType.js
206905
- var RequestType = __webpack_require__(49334);
206906
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageRetrievalPoolManager.js
206907
-
206908
-
206909
- const imageRetrievalPoolManager = new requestPoolManager/* RequestPoolManager */.P('imageRetrievalPool');
206910
- imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Interaction, 200);
206911
- imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Thumbnail, 200);
206912
- imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Prefetch, 200);
206913
- imageRetrievalPoolManager.grabDelay = 0;
206914
- /* harmony default export */ const requestPool_imageRetrievalPoolManager = (imageRetrievalPoolManager);
206915
-
206742
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageRetrievalPoolManager.js
206743
+ var imageRetrievalPoolManager = __webpack_require__(22717);
206916
206744
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
206917
206745
  var imageLoadPoolManager = __webpack_require__(96506);
206918
206746
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/getEnabledElement.js
@@ -206921,12 +206749,889 @@ var getEnabledElement = __webpack_require__(65279);
206921
206749
  var metaData = __webpack_require__(30023);
206922
206750
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js + 1 modules
206923
206751
  var init = __webpack_require__(28719);
206924
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/Settings.js
206925
- var Settings = __webpack_require__(90261);
206752
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/Settings.js
206753
+ const DEFAULT_SETTINGS = Symbol('DefaultSettings');
206754
+ const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
206755
+ const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
206756
+ const DICTIONARY = Symbol('Dictionary');
206757
+ class Settings {
206758
+ constructor(base) {
206759
+ const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
206760
+ ? base[DICTIONARY]
206761
+ : null));
206762
+ Object.seal(Object.defineProperty(this, DICTIONARY, {
206763
+ value: dictionary,
206764
+ }));
206765
+ }
206766
+ set(key, value) {
206767
+ return set(this[DICTIONARY], key, value, null);
206768
+ }
206769
+ get(key) {
206770
+ return get(this[DICTIONARY], key);
206771
+ }
206772
+ unset(key) {
206773
+ return unset(this[DICTIONARY], key + '');
206774
+ }
206775
+ forEach(callback) {
206776
+ iterate(this[DICTIONARY], callback);
206777
+ }
206778
+ extend() {
206779
+ return new Settings(this);
206780
+ }
206781
+ import(root) {
206782
+ if (isPlainObject(root)) {
206783
+ Object.keys(root).forEach((key) => {
206784
+ set(this[DICTIONARY], key, root[key], null);
206785
+ });
206786
+ }
206787
+ }
206788
+ dump() {
206789
+ const context = {};
206790
+ iterate(this[DICTIONARY], (key, value) => {
206791
+ if (typeof value !== 'undefined') {
206792
+ deepSet(context, key, value);
206793
+ }
206794
+ });
206795
+ return context;
206796
+ }
206797
+ static assert(subject) {
206798
+ return subject instanceof Settings
206799
+ ? subject
206800
+ : Settings.getRuntimeSettings();
206801
+ }
206802
+ static getDefaultSettings(subfield = null) {
206803
+ let defaultSettings = Settings[DEFAULT_SETTINGS];
206804
+ if (!(defaultSettings instanceof Settings)) {
206805
+ defaultSettings = new Settings();
206806
+ Settings[DEFAULT_SETTINGS] = defaultSettings;
206807
+ }
206808
+ if (subfield) {
206809
+ const settingObj = {};
206810
+ defaultSettings.forEach((name) => {
206811
+ if (name.startsWith(subfield)) {
206812
+ const setting = name.split(`${subfield}.`)[1];
206813
+ settingObj[setting] = defaultSettings.get(name);
206814
+ }
206815
+ });
206816
+ return settingObj;
206817
+ }
206818
+ return defaultSettings;
206819
+ }
206820
+ static getRuntimeSettings() {
206821
+ let runtimeSettings = Settings[RUNTIME_SETTINGS];
206822
+ if (!(runtimeSettings instanceof Settings)) {
206823
+ runtimeSettings = new Settings(Settings.getDefaultSettings());
206824
+ Settings[RUNTIME_SETTINGS] = runtimeSettings;
206825
+ }
206826
+ return runtimeSettings;
206827
+ }
206828
+ static getObjectSettings(subject, from) {
206829
+ let settings = null;
206830
+ if (subject instanceof Settings) {
206831
+ settings = subject;
206832
+ }
206833
+ else if (typeof subject === 'object' && subject !== null) {
206834
+ let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
206835
+ if (!(objectSettingsMap instanceof WeakMap)) {
206836
+ objectSettingsMap = new WeakMap();
206837
+ Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
206838
+ }
206839
+ settings = objectSettingsMap.get(subject);
206840
+ if (!(settings instanceof Settings)) {
206841
+ settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
206842
+ objectSettingsMap.set(subject, settings);
206843
+ }
206844
+ }
206845
+ return settings;
206846
+ }
206847
+ static extendRuntimeSettings() {
206848
+ return Settings.getRuntimeSettings().extend();
206849
+ }
206850
+ }
206851
+ function unset(dictionary, name) {
206852
+ if (name.endsWith('.')) {
206853
+ let deleteCount = 0;
206854
+ const namespace = name;
206855
+ const base = namespace.slice(0, -1);
206856
+ const deleteAll = base.length === 0;
206857
+ for (const key in dictionary) {
206858
+ if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
206859
+ (deleteAll || key.startsWith(namespace) || key === base)) {
206860
+ delete dictionary[key];
206861
+ ++deleteCount;
206862
+ }
206863
+ }
206864
+ return deleteCount > 0;
206865
+ }
206866
+ return delete dictionary[name];
206867
+ }
206868
+ function iterate(dictionary, callback) {
206869
+ for (const key in dictionary) {
206870
+ callback(key, dictionary[key]);
206871
+ }
206872
+ }
206873
+ function setAll(dictionary, prefix, record, references) {
206874
+ let failCount;
206875
+ if (references.has(record)) {
206876
+ return set(dictionary, prefix, null, references);
206877
+ }
206878
+ references.add(record);
206879
+ failCount = 0;
206880
+ for (const field in record) {
206881
+ if (Object.prototype.hasOwnProperty.call(record, field)) {
206882
+ const key = field.length === 0 ? prefix : `${prefix}.${field}`;
206883
+ if (!set(dictionary, key, record[field], references)) {
206884
+ ++failCount;
206885
+ }
206886
+ }
206887
+ }
206888
+ references.delete(record);
206889
+ return failCount === 0;
206890
+ }
206891
+ function set(dictionary, key, value, references) {
206892
+ if (isValidKey(key)) {
206893
+ if (isPlainObject(value)) {
206894
+ return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
206895
+ }
206896
+ dictionary[key] = value;
206897
+ return true;
206898
+ }
206899
+ return false;
206900
+ }
206901
+ function get(dictionary, key) {
206902
+ return dictionary[key];
206903
+ }
206904
+ function isValidKey(key) {
206905
+ let last, current, previous;
206906
+ if (typeof key !== 'string' || (last = key.length - 1) < 0) {
206907
+ return false;
206908
+ }
206909
+ previous = -1;
206910
+ while ((current = key.indexOf('.', previous + 1)) >= 0) {
206911
+ if (current - previous < 2 || current === last) {
206912
+ return false;
206913
+ }
206914
+ previous = current;
206915
+ }
206916
+ return true;
206917
+ }
206918
+ function isPlainObject(subject) {
206919
+ if (typeof subject === 'object' && subject !== null) {
206920
+ const prototype = Object.getPrototypeOf(subject);
206921
+ if (prototype === Object.prototype || prototype === null) {
206922
+ return true;
206923
+ }
206924
+ }
206925
+ return false;
206926
+ }
206927
+ function deepSet(context, key, value) {
206928
+ const separator = key.indexOf('.');
206929
+ if (separator >= 0) {
206930
+ const subKey = key.slice(0, separator);
206931
+ let subContext = context[subKey];
206932
+ if (typeof subContext !== 'object' || subContext === null) {
206933
+ const subContextValue = subContext;
206934
+ subContext = {};
206935
+ if (typeof subContextValue !== 'undefined') {
206936
+ subContext[''] = subContextValue;
206937
+ }
206938
+ context[subKey] = subContext;
206939
+ }
206940
+ deepSet(subContext, key.slice(separator + 1, key.length), value);
206941
+ }
206942
+ else {
206943
+ context[key] = value;
206944
+ }
206945
+ }
206946
+ Settings.getDefaultSettings().set('useCursors', true);
206947
+
206926
206948
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/volumeLoader.js
206927
206949
  var volumeLoader = __webpack_require__(18588);
206928
206950
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
206929
206951
  var imageLoader = __webpack_require__(62990);
206952
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/geometryLoader.js + 26 modules
206953
+ var geometryLoader = __webpack_require__(59469);
206954
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
206955
+ var ProgressiveRetrieveImages = __webpack_require__(27654);
206956
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
206957
+ var utilities = __webpack_require__(56309);
206958
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
206959
+ var triggerEvent = __webpack_require__(85041);
206960
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
206961
+ var helpers = __webpack_require__(25281);
206962
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
206963
+
206964
+
206965
+
206966
+
206967
+
206968
+
206969
+
206970
+
206971
+
206972
+
206973
+
206974
+
206975
+
206976
+
206977
+
206978
+
206979
+
206980
+
206981
+
206982
+
206983
+
206984
+
206985
+
206986
+
206987
+
206988
+
206989
+
206990
+
206991
+
206992
+
206993
+
206994
+
206995
+ /***/ }),
206996
+
206997
+ /***/ 28719:
206998
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
206999
+
207000
+ "use strict";
207001
+
207002
+ // EXPORTS
207003
+ __webpack_require__.d(__webpack_exports__, {
207004
+ uz: () => (/* binding */ canRenderFloatTextures),
207005
+ P_: () => (/* binding */ getConfiguration),
207006
+ L_: () => (/* binding */ getShouldUseCPURendering),
207007
+ hG: () => (/* binding */ getShouldUseSharedArrayBuffer),
207008
+ Pt: () => (/* binding */ getWebWorkerManager),
207009
+ S1: () => (/* binding */ init),
207010
+ uF: () => (/* binding */ isCornerstoneInitialized),
207011
+ Dm: () => (/* binding */ peerImport),
207012
+ Y0: () => (/* binding */ resetUseCPURendering),
207013
+ zr: () => (/* binding */ resetUseSharedArrayBuffer),
207014
+ Dg: () => (/* binding */ setConfiguration),
207015
+ wy: () => (/* binding */ setPreferSizeOverAccuracy),
207016
+ dQ: () => (/* binding */ setUseCPURendering),
207017
+ fK: () => (/* binding */ setUseSharedArrayBuffer)
207018
+ });
207019
+
207020
+ ;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
207021
+ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const t=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function r(e){return e=e.toLowerCase().replace(/.*angle ?\((.+)\)(?: on vulkan [0-9.]+)?$/i,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e),isFirefox:/Firefox/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15],["a15",a,15],["a16",a,15],["a17",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}class i extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const c=[],d=[];function l(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,o-=i,0===n)return o;let l,s,f=0,u=0,g=0;for(;u<n;)d[u]=e.charCodeAt(i+u),c[u]=++u;for(;g<o;)for(a=t.charCodeAt(i+g),l=g++,f=g,u=0;u<n;u++)s=a===d[u]?l:l+1,l=c[u],f=c[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function s(e){return null!=e}const f=({mobileTiers:c=[0,15,30,60],desktopTiers:d=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:g=!1,benchmarksURL:h="https://unpkg.com/detect-gpu@5.0.38/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${h}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new i("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let S,b="";if(A)A=r(A),S=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,g);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=(null==o?void 0:o.isFirefox)?null:e.getExtension("WEBGL_debug_renderer_info");if(A=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),!A)return P(1,"FALLBACK");b=A,A=r(A),S=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const E=(yield Promise.all(S.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr","samsung"]:["intel","apple","amd","radeon","nvidia","geforce","adreno"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof i)throw e;return}const c=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let d=a.filter((([,e])=>e===c));d.length||(d=a.filter((([e])=>e.includes(t))));const s=d.length;if(0===s)return;const f=t.split(/[.,()\[\]/\s]/g).sort().filter(((e,t,r)=>0===t||e!==r[t-1])).join(" ");let u,[g,,,,h]=s>1?d.map((e=>[e,l(f,e[2])])).sort((([,e],[,t])=>e-t))[0][0]:d[0],A=Number.MAX_VALUE;const{devicePixelRatio:P}=window,S=w.width*P*w.height*P;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(S-n);o<A&&(A=o,u=e)}if(!u)return;const[,,b,E]=u;return[A,b,g,E]}))})))).filter(s).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!E.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${b})`)}const[,y,C,L]=E[0];if(-1===y)return P(0,"BLOCKLISTED",C,y,L);const M=v?c:d;let $=0;for(let e=0;e<M.length;e++)y>=M[e]&&($=e);return P($,"BENCHMARK",C,y,L)}));
207022
+
207023
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
207024
+ var enums = __webpack_require__(7187);
207025
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
207026
+ var getRenderingEngine = __webpack_require__(9138);
207027
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
207028
+ var utilities = __webpack_require__(56309);
207029
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
207030
+ var webWorkerManager = __webpack_require__(15291);
207031
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
207032
+
207033
+
207034
+
207035
+ let csRenderInitialized = false;
207036
+ let useSharedArrayBuffer = true;
207037
+ let sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
207038
+
207039
+
207040
+ const defaultConfig = {
207041
+ gpuTier: undefined,
207042
+ detectGPUConfig: {},
207043
+ isMobile: false,
207044
+ rendering: {
207045
+ useCPURendering: false,
207046
+ preferSizeOverAccuracy: false,
207047
+ useNorm16Texture: false,
207048
+ strictZSpacingForVolumeViewport: true,
207049
+ },
207050
+ enableCacheOptimization: true,
207051
+ peerImport: (moduleId) => null,
207052
+ };
207053
+ let config = {
207054
+ ...defaultConfig,
207055
+ rendering: { ...defaultConfig.rendering },
207056
+ };
207057
+ let init_webWorkerManager = null;
207058
+ function _getGLContext() {
207059
+ const canvas = document.createElement('canvas');
207060
+ const gl = canvas.getContext('webgl2') ||
207061
+ canvas.getContext('webgl') ||
207062
+ canvas.getContext('experimental-webgl');
207063
+ return gl;
207064
+ }
207065
+ function _hasActiveWebGLContext() {
207066
+ const gl = _getGLContext();
207067
+ return (gl instanceof WebGLRenderingContext || gl instanceof WebGL2RenderingContext);
207068
+ }
207069
+ function hasSharedArrayBuffer() {
207070
+ try {
207071
+ if (new SharedArrayBuffer(0)) {
207072
+ return true;
207073
+ }
207074
+ else {
207075
+ return false;
207076
+ }
207077
+ }
207078
+ catch {
207079
+ return false;
207080
+ }
207081
+ }
207082
+ function _hasNorm16TextureSupport() {
207083
+ const gl = _getGLContext();
207084
+ if (gl) {
207085
+ const ext = gl.getExtension('EXT_texture_norm16');
207086
+ if (ext) {
207087
+ return true;
207088
+ }
207089
+ }
207090
+ return false;
207091
+ }
207092
+ function isIOS() {
207093
+ if (/iPad|iPhone|iPod/.test(navigator.platform)) {
207094
+ return true;
207095
+ }
207096
+ else {
207097
+ return (navigator.maxTouchPoints &&
207098
+ navigator.maxTouchPoints > 2 &&
207099
+ /MacIntel/.test(navigator.platform));
207100
+ }
207101
+ }
207102
+ async function init(configuration = config) {
207103
+ if (csRenderInitialized) {
207104
+ return csRenderInitialized;
207105
+ }
207106
+ config = (0,utilities.deepMerge)(defaultConfig, configuration);
207107
+ if (isIOS()) {
207108
+ config.rendering.useNorm16Texture = _hasNorm16TextureSupport();
207109
+ if (!config.rendering.useNorm16Texture) {
207110
+ if (configuration.rendering?.preferSizeOverAccuracy) {
207111
+ config.rendering.preferSizeOverAccuracy = true;
207112
+ }
207113
+ else {
207114
+ console.log('norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits');
207115
+ }
207116
+ }
207117
+ }
207118
+ const hasWebGLContext = _hasActiveWebGLContext();
207119
+ if (!hasWebGLContext) {
207120
+ console.log('CornerstoneRender: GPU not detected, using CPU rendering');
207121
+ config.rendering.useCPURendering = true;
207122
+ }
207123
+ else {
207124
+ config.gpuTier =
207125
+ config.gpuTier || (await f(config.detectGPUConfig));
207126
+ console.log('CornerstoneRender: Using detect-gpu to get the GPU benchmark:', config.gpuTier);
207127
+ if (config.gpuTier?.tier < 1) {
207128
+ console.log('CornerstoneRender: GPU is not powerful enough, using CPU rendering');
207129
+ config.rendering.useCPURendering = true;
207130
+ }
207131
+ else {
207132
+ console.log('CornerstoneRender: using GPU rendering');
207133
+ }
207134
+ }
207135
+ setUseSharedArrayBuffer(sharedArrayBufferMode);
207136
+ csRenderInitialized = true;
207137
+ if (!init_webWorkerManager) {
207138
+ init_webWorkerManager = new webWorkerManager/* default */.Z();
207139
+ }
207140
+ return csRenderInitialized;
207141
+ }
207142
+ function setUseCPURendering(status) {
207143
+ config.rendering.useCPURendering = status;
207144
+ csRenderInitialized = true;
207145
+ _updateRenderingPipelinesForAllViewports();
207146
+ }
207147
+ function setPreferSizeOverAccuracy(status) {
207148
+ config.rendering.preferSizeOverAccuracy = status;
207149
+ csRenderInitialized = true;
207150
+ _updateRenderingPipelinesForAllViewports();
207151
+ }
207152
+ function canRenderFloatTextures() {
207153
+ if (!isIOS()) {
207154
+ return true;
207155
+ }
207156
+ return false;
207157
+ }
207158
+ function resetUseCPURendering() {
207159
+ config.rendering.useCPURendering = !_hasActiveWebGLContext();
207160
+ _updateRenderingPipelinesForAllViewports();
207161
+ }
207162
+ function getShouldUseCPURendering() {
207163
+ return config.rendering.useCPURendering;
207164
+ }
207165
+ function setUseSharedArrayBuffer(mode) {
207166
+ if (mode == enums.SharedArrayBufferModes.AUTO) {
207167
+ sharedArrayBufferMode = enums.SharedArrayBufferModes.AUTO;
207168
+ const hasSharedBuffer = hasSharedArrayBuffer();
207169
+ if (!hasSharedBuffer) {
207170
+ useSharedArrayBuffer = false;
207171
+ console.warn(`CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.
207172
+ Try ensuring page is cross-origin isolated to enable SharedArrayBuffer.`);
207173
+ }
207174
+ else {
207175
+ useSharedArrayBuffer = true;
207176
+ console.log('CornerstoneRender: using SharedArrayBuffer');
207177
+ }
207178
+ return;
207179
+ }
207180
+ if (mode == enums.SharedArrayBufferModes.TRUE || mode == true) {
207181
+ sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
207182
+ useSharedArrayBuffer = true;
207183
+ return;
207184
+ }
207185
+ if (mode == enums.SharedArrayBufferModes.FALSE || mode == false) {
207186
+ sharedArrayBufferMode = enums.SharedArrayBufferModes.FALSE;
207187
+ useSharedArrayBuffer = false;
207188
+ return;
207189
+ }
207190
+ }
207191
+ function resetUseSharedArrayBuffer() {
207192
+ setUseSharedArrayBuffer(sharedArrayBufferMode);
207193
+ }
207194
+ function getShouldUseSharedArrayBuffer() {
207195
+ return useSharedArrayBuffer;
207196
+ }
207197
+ function isCornerstoneInitialized() {
207198
+ return csRenderInitialized;
207199
+ }
207200
+ function getConfiguration() {
207201
+ return config;
207202
+ }
207203
+ function setConfiguration(c) {
207204
+ config = c;
207205
+ _updateRenderingPipelinesForAllViewports();
207206
+ }
207207
+ function _updateRenderingPipelinesForAllViewports() {
207208
+ (0,getRenderingEngine/* getRenderingEngines */.Uu)().forEach((engine) => engine
207209
+ .getViewports()
207210
+ .forEach((viewport) => viewport.updateRenderingPipeline?.()));
207211
+ }
207212
+ function getWebWorkerManager() {
207213
+ if (!init_webWorkerManager) {
207214
+ init_webWorkerManager = new webWorkerManager/* default */.Z();
207215
+ }
207216
+ return init_webWorkerManager;
207217
+ }
207218
+ function peerImport(moduleId) {
207219
+ return config.peerImport(moduleId);
207220
+ }
207221
+
207222
+
207223
+
207224
+ /***/ }),
207225
+
207226
+ /***/ 27654:
207227
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
207228
+
207229
+ "use strict";
207230
+
207231
+ // EXPORTS
207232
+ __webpack_require__.d(__webpack_exports__, {
207233
+ RJ: () => (/* binding */ createProgressive),
207234
+ ZP: () => (/* binding */ loaders_ProgressiveRetrieveImages)
207235
+ });
207236
+
207237
+ // UNUSED EXPORTS: ProgressiveRetrieveImages, interleavedRetrieveStages, sequentialRetrieveStages, singleRetrieveStages
207238
+
207239
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/singleRetrieve.js
207240
+ const singleRetrieveStages = [
207241
+ {
207242
+ id: 'initialImages',
207243
+ retrieveType: 'single',
207244
+ },
207245
+ {
207246
+ id: 'errorRetrieve',
207247
+ },
207248
+ ];
207249
+ /* harmony default export */ const singleRetrieve = (singleRetrieveStages);
207250
+
207251
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/sequentialRetrieve.js
207252
+ const sequentialRetrieveStages = [
207253
+ {
207254
+ id: 'lossySequential',
207255
+ retrieveType: 'singleFast',
207256
+ },
207257
+ {
207258
+ id: 'finalSequential',
207259
+ retrieveType: 'singleFinal',
207260
+ },
207261
+ ];
207262
+ /* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
207263
+
207264
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
207265
+ var enums = __webpack_require__(7187);
207266
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
207267
+
207268
+ const nearbyFrames = [
207269
+ {
207270
+ offset: -1,
207271
+ imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
207272
+ },
207273
+ {
207274
+ offset: +1,
207275
+ imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
207276
+ },
207277
+ { offset: +2, imageQualityStatus: enums.ImageQualityStatus.FAR_REPLICATE },
207278
+ ];
207279
+ const interleavedRetrieveConfiguration = [
207280
+ {
207281
+ id: 'initialImages',
207282
+ positions: [0.5, 0, -1],
207283
+ retrieveType: 'default',
207284
+ requestType: enums.RequestType.Thumbnail,
207285
+ priority: 5,
207286
+ nearbyFrames,
207287
+ },
207288
+ {
207289
+ id: 'quarterThumb',
207290
+ decimate: 4,
207291
+ offset: 3,
207292
+ requestType: enums.RequestType.Thumbnail,
207293
+ retrieveType: 'multipleFast',
207294
+ priority: 6,
207295
+ nearbyFrames,
207296
+ },
207297
+ {
207298
+ id: 'halfThumb',
207299
+ decimate: 4,
207300
+ offset: 1,
207301
+ priority: 7,
207302
+ requestType: enums.RequestType.Thumbnail,
207303
+ retrieveType: 'multipleFast',
207304
+ nearbyFrames,
207305
+ },
207306
+ {
207307
+ id: 'quarterFull',
207308
+ decimate: 4,
207309
+ offset: 2,
207310
+ priority: 8,
207311
+ requestType: enums.RequestType.Thumbnail,
207312
+ retrieveType: 'multipleFinal',
207313
+ },
207314
+ {
207315
+ id: 'halfFull',
207316
+ decimate: 4,
207317
+ offset: 0,
207318
+ priority: 9,
207319
+ requestType: enums.RequestType.Thumbnail,
207320
+ retrieveType: 'multipleFinal',
207321
+ },
207322
+ {
207323
+ id: 'threeQuarterFull',
207324
+ decimate: 4,
207325
+ offset: 1,
207326
+ priority: 10,
207327
+ requestType: enums.RequestType.Thumbnail,
207328
+ retrieveType: 'multipleFinal',
207329
+ },
207330
+ {
207331
+ id: 'finalFull',
207332
+ decimate: 4,
207333
+ offset: 3,
207334
+ priority: 11,
207335
+ requestType: enums.RequestType.Thumbnail,
207336
+ retrieveType: 'multipleFinal',
207337
+ },
207338
+ {
207339
+ id: 'errorRetrieve',
207340
+ },
207341
+ ];
207342
+ /* harmony default export */ const interleavedRetrieve = (interleavedRetrieveConfiguration);
207343
+
207344
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
207345
+ var imageLoader = __webpack_require__(62990);
207346
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
207347
+ var utilities = __webpack_require__(56309);
207348
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
207349
+ var imageLoadPoolManager = __webpack_require__(96506);
207350
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
207351
+ var cache = __webpack_require__(82253);
207352
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
207353
+ var eventTarget = __webpack_require__(74238);
207354
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/fillNearbyFrames.js
207355
+ function fillNearbyFrames(listener, imageQualityStatusMap, request, image, options) {
207356
+ if (!request?.nearbyRequests?.length) {
207357
+ return;
207358
+ }
207359
+ const { arrayBuffer, offset: srcOffset, type, length: frameLength, } = options.targetBuffer;
207360
+ if (!arrayBuffer || srcOffset === undefined || !type) {
207361
+ return;
207362
+ }
207363
+ const scalarData = new Float32Array(arrayBuffer);
207364
+ const bytesPerPixel = scalarData.byteLength / scalarData.length;
207365
+ const offset = options.targetBuffer.offset / bytesPerPixel;
207366
+ const src = scalarData.slice(offset, offset + frameLength);
207367
+ for (const nearbyItem of request.nearbyRequests) {
207368
+ try {
207369
+ const { itemId: targetId, imageQualityStatus } = nearbyItem;
207370
+ const targetStatus = imageQualityStatusMap.get(targetId);
207371
+ if (targetStatus !== undefined && targetStatus >= imageQualityStatus) {
207372
+ continue;
207373
+ }
207374
+ const targetOptions = listener.getLoaderImageOptions(targetId);
207375
+ const { offset: targetOffset } = targetOptions.targetBuffer;
207376
+ scalarData.set(src, targetOffset / bytesPerPixel);
207377
+ const nearbyImage = {
207378
+ ...image,
207379
+ imageQualityStatus,
207380
+ };
207381
+ listener.successCallback(targetId, nearbyImage);
207382
+ imageQualityStatusMap.set(targetId, imageQualityStatus);
207383
+ }
207384
+ catch (e) {
207385
+ console.log("Couldn't fill nearby item ", nearbyItem.itemId, e);
207386
+ }
207387
+ }
207388
+ }
207389
+
207390
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js
207391
+
207392
+
207393
+
207394
+
207395
+
207396
+
207397
+
207398
+
207399
+
207400
+
207401
+
207402
+ class ProgressiveRetrieveImages {
207403
+ constructor(imageRetrieveConfiguration) {
207404
+ this.stages = imageRetrieveConfiguration.stages || singleRetrieve;
207405
+ this.retrieveOptions = imageRetrieveConfiguration.retrieveOptions || {};
207406
+ }
207407
+ static { this.createProgressive = createProgressive; }
207408
+ static { this.interleavedRetrieveStages = {
207409
+ stages: interleavedRetrieve,
207410
+ }; }
207411
+ static { this.singleRetrieveStages = {
207412
+ stages: singleRetrieve,
207413
+ }; }
207414
+ static { this.sequentialRetrieveStages = {
207415
+ stages: sequentialRetrieve,
207416
+ }; }
207417
+ loadImages(imageIds, listener) {
207418
+ const instance = new ProgressiveRetrieveImagesInstance(this, imageIds, listener);
207419
+ return instance.loadImages();
207420
+ }
207421
+ }
207422
+ class ProgressiveRetrieveImagesInstance {
207423
+ constructor(configuration, imageIds, listener) {
207424
+ this.outstandingRequests = 0;
207425
+ this.stageStatusMap = new Map();
207426
+ this.imageQualityStatusMap = new Map();
207427
+ this.displayedIterator = new utilities.ProgressiveIterator('displayed');
207428
+ this.stages = configuration.stages;
207429
+ this.retrieveOptions = configuration.retrieveOptions;
207430
+ this.imageIds = imageIds;
207431
+ this.listener = listener;
207432
+ }
207433
+ async loadImages() {
207434
+ const interleaved = this.createStageRequests();
207435
+ this.outstandingRequests = interleaved.length;
207436
+ for (const request of interleaved) {
207437
+ this.addRequest(request);
207438
+ }
207439
+ if (this.outstandingRequests === 0) {
207440
+ return Promise.resolve(null);
207441
+ }
207442
+ return this.displayedIterator.getDonePromise();
207443
+ }
207444
+ sendRequest(request, options) {
207445
+ const { imageId, next } = request;
207446
+ const errorCallback = (reason, done) => {
207447
+ this.listener.errorCallback(imageId, complete || !next, reason);
207448
+ if (done) {
207449
+ this.updateStageStatus(request.stage, reason);
207450
+ }
207451
+ };
207452
+ const loadedPromise = (options.loader || imageLoader.loadAndCacheImage)(imageId, options);
207453
+ const uncompressedIterator = utilities.ProgressiveIterator.as(loadedPromise);
207454
+ let complete = false;
207455
+ uncompressedIterator
207456
+ .forEach(async (image, done) => {
207457
+ const oldStatus = this.imageQualityStatusMap.get(imageId);
207458
+ if (!image) {
207459
+ console.warn('No image retrieved', imageId);
207460
+ return;
207461
+ }
207462
+ const { imageQualityStatus } = image;
207463
+ complete ||= imageQualityStatus === enums.ImageQualityStatus.FULL_RESOLUTION;
207464
+ if (oldStatus !== undefined && oldStatus > imageQualityStatus) {
207465
+ this.updateStageStatus(request.stage, null, true);
207466
+ return;
207467
+ }
207468
+ this.listener.successCallback(imageId, image);
207469
+ this.imageQualityStatusMap.set(imageId, imageQualityStatus);
207470
+ this.displayedIterator.add(image);
207471
+ if (done) {
207472
+ this.updateStageStatus(request.stage);
207473
+ }
207474
+ fillNearbyFrames(this.listener, this.imageQualityStatusMap, request, image, options);
207475
+ }, errorCallback)
207476
+ .finally(() => {
207477
+ if (!complete && next) {
207478
+ if (cache/* default */.ZP.getImageLoadObject(imageId)) {
207479
+ cache/* default */.ZP.removeImageLoadObject(imageId);
207480
+ }
207481
+ this.addRequest(next, options.streamingData);
207482
+ }
207483
+ else {
207484
+ if (!complete) {
207485
+ this.listener.errorCallback(imageId, true, "Couldn't decode");
207486
+ }
207487
+ this.outstandingRequests--;
207488
+ for (let skip = next; skip; skip = skip.next) {
207489
+ this.updateStageStatus(skip.stage, null, true);
207490
+ }
207491
+ }
207492
+ if (this.outstandingRequests <= 0) {
207493
+ this.displayedIterator.resolve();
207494
+ }
207495
+ });
207496
+ const doneLoad = uncompressedIterator.getDonePromise();
207497
+ return doneLoad.catch((e) => null);
207498
+ }
207499
+ addRequest(request, streamingData = {}) {
207500
+ const { imageId, stage } = request;
207501
+ const baseOptions = this.listener.getLoaderImageOptions(imageId);
207502
+ if (!baseOptions) {
207503
+ return;
207504
+ }
207505
+ const { retrieveType = 'default' } = stage;
207506
+ const { retrieveOptions: keyedRetrieveOptions } = this;
207507
+ const retrieveOptions = keyedRetrieveOptions[retrieveType] || keyedRetrieveOptions.default;
207508
+ const options = {
207509
+ ...baseOptions,
207510
+ retrieveType,
207511
+ retrieveOptions,
207512
+ streamingData,
207513
+ };
207514
+ const priority = stage.priority ?? -5;
207515
+ const requestType = stage.requestType || enums.RequestType.Interaction;
207516
+ const additionalDetails = { imageId };
207517
+ imageLoadPoolManager/* default */.Z.addRequest(this.sendRequest.bind(this, request, options), requestType, additionalDetails, priority);
207518
+ }
207519
+ updateStageStatus(stage, failure, skipped = false) {
207520
+ const { id } = stage;
207521
+ const stageStatus = this.stageStatusMap.get(id);
207522
+ if (!stageStatus) {
207523
+ return;
207524
+ }
207525
+ stageStatus.imageLoadPendingCount--;
207526
+ if (failure) {
207527
+ stageStatus.imageLoadFailedCount++;
207528
+ }
207529
+ else if (!skipped) {
207530
+ stageStatus.totalImageCount++;
207531
+ }
207532
+ if (!skipped && !stageStatus.stageStartTime) {
207533
+ stageStatus.stageStartTime = Date.now();
207534
+ }
207535
+ if (!stageStatus.imageLoadPendingCount) {
207536
+ const { imageLoadFailedCount: numberOfFailures, totalImageCount: numberOfImages, stageStartTime = Date.now(), startTime, } = stageStatus;
207537
+ const detail = {
207538
+ stageId: id,
207539
+ numberOfFailures,
207540
+ numberOfImages,
207541
+ stageDurationInMS: stageStartTime ? Date.now() - stageStartTime : null,
207542
+ startDurationInMS: Date.now() - startTime,
207543
+ };
207544
+ (0,utilities.triggerEvent)(eventTarget/* default */.Z, enums.Events.IMAGE_RETRIEVAL_STAGE, detail);
207545
+ this.stageStatusMap.delete(id);
207546
+ }
207547
+ }
207548
+ createStageRequests() {
207549
+ const interleaved = new Array();
207550
+ const imageRequests = new Map();
207551
+ const addStageInstance = (stage, position) => {
207552
+ const index = position < 0
207553
+ ? this.imageIds.length + position
207554
+ : position < 1
207555
+ ? Math.floor((this.imageIds.length - 1) * position)
207556
+ : position;
207557
+ const imageId = this.imageIds[index];
207558
+ if (!imageId) {
207559
+ throw new Error(`No value found to add to requests at ${position}`);
207560
+ }
207561
+ const request = {
207562
+ imageId,
207563
+ stage,
207564
+ nearbyRequests: this.findNearbyRequests(index, stage),
207565
+ };
207566
+ this.addStageStatus(stage);
207567
+ const existingRequest = imageRequests.get(imageId);
207568
+ if (existingRequest) {
207569
+ existingRequest.next = request;
207570
+ }
207571
+ else {
207572
+ interleaved.push(request);
207573
+ }
207574
+ imageRequests.set(imageId, request);
207575
+ };
207576
+ for (const stage of this.stages) {
207577
+ const indices = stage.positions ||
207578
+ (0,utilities.decimate)(this.imageIds, stage.decimate || 1, stage.offset ?? 0);
207579
+ indices.forEach((index) => addStageInstance(stage, index));
207580
+ }
207581
+ return interleaved;
207582
+ }
207583
+ findNearbyRequests(index, stage) {
207584
+ const nearby = new Array();
207585
+ if (!stage.nearbyFrames) {
207586
+ return nearby;
207587
+ }
207588
+ for (const nearbyItem of stage.nearbyFrames) {
207589
+ const nearbyIndex = index + nearbyItem.offset;
207590
+ if (nearbyIndex < 0 || nearbyIndex >= this.imageIds.length) {
207591
+ continue;
207592
+ }
207593
+ nearby.push({
207594
+ itemId: this.imageIds[nearbyIndex],
207595
+ imageQualityStatus: nearbyItem.imageQualityStatus,
207596
+ });
207597
+ }
207598
+ return nearby;
207599
+ }
207600
+ addStageStatus(stage) {
207601
+ const { id } = stage;
207602
+ const stageStatus = this.stageStatusMap.get(id) || {
207603
+ stageId: id,
207604
+ startTime: Date.now(),
207605
+ stageStartTime: null,
207606
+ totalImageCount: 0,
207607
+ imageLoadFailedCount: 0,
207608
+ imageLoadPendingCount: 0,
207609
+ };
207610
+ stageStatus.imageLoadPendingCount++;
207611
+ this.stageStatusMap.set(id, stageStatus);
207612
+ return stageStatus;
207613
+ }
207614
+ }
207615
+ function createProgressive(configuration) {
207616
+ return new ProgressiveRetrieveImages(configuration);
207617
+ }
207618
+ /* harmony default export */ const loaders_ProgressiveRetrieveImages = (ProgressiveRetrieveImages);
207619
+
207620
+
207621
+ /***/ }),
207622
+
207623
+ /***/ 59469:
207624
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
207625
+
207626
+ "use strict";
207627
+ // ESM COMPAT FLAG
207628
+ __webpack_require__.r(__webpack_exports__);
207629
+
207630
+ // EXPORTS
207631
+ __webpack_require__.d(__webpack_exports__, {
207632
+ createAndCacheGeometry: () => (/* binding */ createAndCacheGeometry)
207633
+ });
207634
+
206930
207635
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js
206931
207636
  var Camera = __webpack_require__(34349);
206932
207637
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js
@@ -211692,6 +212397,10 @@ var WebGPU_PixelSpaceCallbackMapper = __webpack_require__(28378);
211692
212397
 
211693
212398
 
211694
212399
 
212400
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
212401
+ var cache = __webpack_require__(82253);
212402
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
212403
+ var enums = __webpack_require__(7187);
211695
212404
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/utils/contourSet/validateContourSet.js
211696
212405
  function validateContourSet(contourSetData) {
211697
212406
  if (!contourSetData || contourSetData.data.length === 0) {
@@ -211935,675 +212644,6 @@ async function createAndCacheGeometry(geometryId, options) {
211935
212644
  }
211936
212645
 
211937
212646
 
211938
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
211939
- var ProgressiveRetrieveImages = __webpack_require__(27654);
211940
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
211941
- var utilities = __webpack_require__(11723);
211942
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
211943
- var triggerEvent = __webpack_require__(85041);
211944
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
211945
- var helpers = __webpack_require__(25281);
211946
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
211947
-
211948
-
211949
-
211950
-
211951
-
211952
-
211953
-
211954
-
211955
-
211956
-
211957
-
211958
-
211959
-
211960
-
211961
-
211962
-
211963
-
211964
-
211965
-
211966
-
211967
-
211968
-
211969
-
211970
-
211971
-
211972
-
211973
-
211974
-
211975
-
211976
-
211977
-
211978
-
211979
- /***/ }),
211980
-
211981
- /***/ 28719:
211982
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
211983
-
211984
- "use strict";
211985
-
211986
- // EXPORTS
211987
- __webpack_require__.d(__webpack_exports__, {
211988
- uz: () => (/* binding */ canRenderFloatTextures),
211989
- P_: () => (/* binding */ getConfiguration),
211990
- L_: () => (/* binding */ getShouldUseCPURendering),
211991
- hG: () => (/* binding */ getShouldUseSharedArrayBuffer),
211992
- Pt: () => (/* binding */ getWebWorkerManager),
211993
- S1: () => (/* binding */ init),
211994
- uF: () => (/* binding */ isCornerstoneInitialized),
211995
- Y0: () => (/* binding */ resetUseCPURendering),
211996
- zr: () => (/* binding */ resetUseSharedArrayBuffer),
211997
- Dg: () => (/* binding */ setConfiguration),
211998
- wy: () => (/* binding */ setPreferSizeOverAccuracy),
211999
- dQ: () => (/* binding */ setUseCPURendering),
212000
- fK: () => (/* binding */ setUseSharedArrayBuffer)
212001
- });
212002
-
212003
- ;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
212004
- function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}const t=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function r(e){return e=e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}const i=[],c=[];function d(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,d=0;for(;d<n&&e.charCodeAt(d)===t.charCodeAt(d);)d++;if(n-=d,o-=d,0===n)return o;let l,s,f=0,u=0,h=0;for(;u<n;)c[u]=e.charCodeAt(d+u),i[u]=++u;for(;h<o;)for(a=t.charCodeAt(d+h),l=h++,f=h,u=0;u<n;u++)s=a===c[u]?l:l+1,l=i[u],f=i[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function l(e){return null!=e}class s extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const f=({mobileTiers:i=[0,15,30,60],desktopTiers:c=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:h=!1,benchmarksURL:g="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${g}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new s("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let b,S="";if(A)A=r(A),b=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,h);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(A=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!A)return P(1,"FALLBACK");S=A,A=r(A),b=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const y=(yield Promise.all(b.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof s)throw e;return}const i=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let c=a.filter((([,e])=>e===i));c.length||(c=a.filter((([e])=>e.includes(t))));const l=c.length;if(0===l)return;let f,[u,,,h]=l>1?c.map((e=>[e,d(t,e[0])])).sort((([,e],[,t])=>e-t))[0][0]:c[0],g=Number.MAX_VALUE;const{devicePixelRatio:A}=window,P=w.width*A*w.height*A;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(P-n);o<g&&(g=o,f=e)}if(!f)return;const[,,b,S]=f;return[g,b,u,S]}))})))).filter(l).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!y.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${S})`)}const[,C,E,L]=y[0];if(-1===C)return P(0,"BLOCKLISTED",E,C,L);const M=v?i:c;let $=0;for(let e=0;e<M.length;e++)C>=M[e]&&($=e);return P($,"BENCHMARK",E,C,L)}));
212005
-
212006
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
212007
- var enums = __webpack_require__(7187);
212008
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
212009
- var getRenderingEngine = __webpack_require__(9138);
212010
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
212011
- var utilities = __webpack_require__(11723);
212012
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
212013
- var webWorkerManager = __webpack_require__(15291);
212014
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
212015
-
212016
-
212017
-
212018
- let csRenderInitialized = false;
212019
- let useSharedArrayBuffer = true;
212020
- let sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
212021
-
212022
-
212023
- const defaultConfig = {
212024
- gpuTier: undefined,
212025
- detectGPUConfig: {},
212026
- isMobile: false,
212027
- rendering: {
212028
- useCPURendering: false,
212029
- preferSizeOverAccuracy: false,
212030
- useNorm16Texture: false,
212031
- strictZSpacingForVolumeViewport: true,
212032
- },
212033
- enableCacheOptimization: true,
212034
- };
212035
- let config = {
212036
- gpuTier: undefined,
212037
- detectGPUConfig: {},
212038
- isMobile: false,
212039
- rendering: {
212040
- useCPURendering: false,
212041
- preferSizeOverAccuracy: false,
212042
- useNorm16Texture: false,
212043
- strictZSpacingForVolumeViewport: true,
212044
- },
212045
- enableCacheOptimization: true,
212046
- };
212047
- let init_webWorkerManager = null;
212048
- function _getGLContext() {
212049
- const canvas = document.createElement('canvas');
212050
- const gl = canvas.getContext('webgl2') ||
212051
- canvas.getContext('webgl') ||
212052
- canvas.getContext('experimental-webgl');
212053
- return gl;
212054
- }
212055
- function _hasActiveWebGLContext() {
212056
- const gl = _getGLContext();
212057
- return (gl instanceof WebGLRenderingContext || gl instanceof WebGL2RenderingContext);
212058
- }
212059
- function hasSharedArrayBuffer() {
212060
- try {
212061
- if (new SharedArrayBuffer(0)) {
212062
- return true;
212063
- }
212064
- else {
212065
- return false;
212066
- }
212067
- }
212068
- catch {
212069
- return false;
212070
- }
212071
- }
212072
- function _hasNorm16TextureSupport() {
212073
- const gl = _getGLContext();
212074
- if (gl) {
212075
- const ext = gl.getExtension('EXT_texture_norm16');
212076
- if (ext) {
212077
- return true;
212078
- }
212079
- }
212080
- return false;
212081
- }
212082
- function isIOS() {
212083
- if (/iPad|iPhone|iPod/.test(navigator.platform)) {
212084
- return true;
212085
- }
212086
- else {
212087
- return (navigator.maxTouchPoints &&
212088
- navigator.maxTouchPoints > 2 &&
212089
- /MacIntel/.test(navigator.platform));
212090
- }
212091
- }
212092
- async function init(configuration = config) {
212093
- if (csRenderInitialized) {
212094
- return csRenderInitialized;
212095
- }
212096
- config = (0,utilities.deepMerge)(defaultConfig, configuration);
212097
- if (isIOS()) {
212098
- config.rendering.useNorm16Texture = _hasNorm16TextureSupport();
212099
- if (!config.rendering.useNorm16Texture) {
212100
- if (configuration.rendering?.preferSizeOverAccuracy) {
212101
- config.rendering.preferSizeOverAccuracy = true;
212102
- }
212103
- else {
212104
- console.log('norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits');
212105
- }
212106
- }
212107
- }
212108
- const hasWebGLContext = _hasActiveWebGLContext();
212109
- if (!hasWebGLContext) {
212110
- console.log('CornerstoneRender: GPU not detected, using CPU rendering');
212111
- config.rendering.useCPURendering = true;
212112
- }
212113
- else {
212114
- config.gpuTier =
212115
- config.gpuTier || (await f(config.detectGPUConfig));
212116
- console.log('CornerstoneRender: Using detect-gpu to get the GPU benchmark:', config.gpuTier);
212117
- if (config.gpuTier?.tier < 1) {
212118
- console.log('CornerstoneRender: GPU is not powerful enough, using CPU rendering');
212119
- config.rendering.useCPURendering = true;
212120
- }
212121
- else {
212122
- console.log('CornerstoneRender: using GPU rendering');
212123
- }
212124
- }
212125
- setUseSharedArrayBuffer(sharedArrayBufferMode);
212126
- csRenderInitialized = true;
212127
- if (!init_webWorkerManager) {
212128
- init_webWorkerManager = new webWorkerManager/* default */.Z();
212129
- }
212130
- return csRenderInitialized;
212131
- }
212132
- function setUseCPURendering(status) {
212133
- config.rendering.useCPURendering = status;
212134
- csRenderInitialized = true;
212135
- _updateRenderingPipelinesForAllViewports();
212136
- }
212137
- function setPreferSizeOverAccuracy(status) {
212138
- config.rendering.preferSizeOverAccuracy = status;
212139
- csRenderInitialized = true;
212140
- _updateRenderingPipelinesForAllViewports();
212141
- }
212142
- function canRenderFloatTextures() {
212143
- if (!isIOS()) {
212144
- return true;
212145
- }
212146
- return false;
212147
- }
212148
- function resetUseCPURendering() {
212149
- config.rendering.useCPURendering = !_hasActiveWebGLContext();
212150
- _updateRenderingPipelinesForAllViewports();
212151
- }
212152
- function getShouldUseCPURendering() {
212153
- return config.rendering.useCPURendering;
212154
- }
212155
- function setUseSharedArrayBuffer(mode) {
212156
- if (mode == enums.SharedArrayBufferModes.AUTO) {
212157
- sharedArrayBufferMode = enums.SharedArrayBufferModes.AUTO;
212158
- const hasSharedBuffer = hasSharedArrayBuffer();
212159
- if (!hasSharedBuffer) {
212160
- useSharedArrayBuffer = false;
212161
- console.warn(`CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.
212162
- Try ensuring page is cross-origin isolated to enable SharedArrayBuffer.`);
212163
- }
212164
- else {
212165
- useSharedArrayBuffer = true;
212166
- console.log('CornerstoneRender: using SharedArrayBuffer');
212167
- }
212168
- return;
212169
- }
212170
- if (mode == enums.SharedArrayBufferModes.TRUE || mode == true) {
212171
- sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
212172
- useSharedArrayBuffer = true;
212173
- return;
212174
- }
212175
- if (mode == enums.SharedArrayBufferModes.FALSE || mode == false) {
212176
- sharedArrayBufferMode = enums.SharedArrayBufferModes.FALSE;
212177
- useSharedArrayBuffer = false;
212178
- return;
212179
- }
212180
- }
212181
- function resetUseSharedArrayBuffer() {
212182
- setUseSharedArrayBuffer(sharedArrayBufferMode);
212183
- }
212184
- function getShouldUseSharedArrayBuffer() {
212185
- return useSharedArrayBuffer;
212186
- }
212187
- function isCornerstoneInitialized() {
212188
- return csRenderInitialized;
212189
- }
212190
- function getConfiguration() {
212191
- return config;
212192
- }
212193
- function setConfiguration(c) {
212194
- config = c;
212195
- _updateRenderingPipelinesForAllViewports();
212196
- }
212197
- function _updateRenderingPipelinesForAllViewports() {
212198
- (0,getRenderingEngine/* getRenderingEngines */.Uu)().forEach((engine) => engine
212199
- .getViewports()
212200
- .forEach((viewport) => viewport.updateRenderingPipeline?.()));
212201
- }
212202
- function getWebWorkerManager() {
212203
- if (!init_webWorkerManager) {
212204
- init_webWorkerManager = new webWorkerManager/* default */.Z();
212205
- }
212206
- return init_webWorkerManager;
212207
- }
212208
-
212209
-
212210
-
212211
- /***/ }),
212212
-
212213
- /***/ 27654:
212214
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
212215
-
212216
- "use strict";
212217
-
212218
- // EXPORTS
212219
- __webpack_require__.d(__webpack_exports__, {
212220
- RJ: () => (/* binding */ createProgressive),
212221
- ZP: () => (/* binding */ loaders_ProgressiveRetrieveImages)
212222
- });
212223
-
212224
- // UNUSED EXPORTS: ProgressiveRetrieveImages, interleavedRetrieveStages, sequentialRetrieveStages, singleRetrieveStages
212225
-
212226
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/singleRetrieve.js
212227
- const singleRetrieveStages = [
212228
- {
212229
- id: 'initialImages',
212230
- retrieveType: 'single',
212231
- },
212232
- {
212233
- id: 'errorRetrieve',
212234
- },
212235
- ];
212236
- /* harmony default export */ const singleRetrieve = (singleRetrieveStages);
212237
-
212238
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/sequentialRetrieve.js
212239
- const sequentialRetrieveStages = [
212240
- {
212241
- id: 'lossySequential',
212242
- retrieveType: 'singleFast',
212243
- },
212244
- {
212245
- id: 'finalSequential',
212246
- retrieveType: 'singleFinal',
212247
- },
212248
- ];
212249
- /* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
212250
-
212251
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
212252
- var enums = __webpack_require__(7187);
212253
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
212254
-
212255
- const nearbyFrames = [
212256
- {
212257
- offset: -1,
212258
- imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
212259
- },
212260
- {
212261
- offset: +1,
212262
- imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
212263
- },
212264
- { offset: +2, imageQualityStatus: enums.ImageQualityStatus.FAR_REPLICATE },
212265
- ];
212266
- const interleavedRetrieveConfiguration = [
212267
- {
212268
- id: 'initialImages',
212269
- positions: [0.5, 0, -1],
212270
- retrieveType: 'default',
212271
- requestType: enums.RequestType.Thumbnail,
212272
- priority: 5,
212273
- nearbyFrames,
212274
- },
212275
- {
212276
- id: 'quarterThumb',
212277
- decimate: 4,
212278
- offset: 3,
212279
- requestType: enums.RequestType.Thumbnail,
212280
- retrieveType: 'multipleFast',
212281
- priority: 6,
212282
- nearbyFrames,
212283
- },
212284
- {
212285
- id: 'halfThumb',
212286
- decimate: 4,
212287
- offset: 1,
212288
- priority: 7,
212289
- requestType: enums.RequestType.Thumbnail,
212290
- retrieveType: 'multipleFast',
212291
- nearbyFrames,
212292
- },
212293
- {
212294
- id: 'quarterFull',
212295
- decimate: 4,
212296
- offset: 2,
212297
- priority: 8,
212298
- requestType: enums.RequestType.Thumbnail,
212299
- retrieveType: 'multipleFinal',
212300
- },
212301
- {
212302
- id: 'halfFull',
212303
- decimate: 4,
212304
- offset: 0,
212305
- priority: 9,
212306
- requestType: enums.RequestType.Thumbnail,
212307
- retrieveType: 'multipleFinal',
212308
- },
212309
- {
212310
- id: 'threeQuarterFull',
212311
- decimate: 4,
212312
- offset: 1,
212313
- priority: 10,
212314
- requestType: enums.RequestType.Thumbnail,
212315
- retrieveType: 'multipleFinal',
212316
- },
212317
- {
212318
- id: 'finalFull',
212319
- decimate: 4,
212320
- offset: 3,
212321
- priority: 11,
212322
- requestType: enums.RequestType.Thumbnail,
212323
- retrieveType: 'multipleFinal',
212324
- },
212325
- {
212326
- id: 'errorRetrieve',
212327
- },
212328
- ];
212329
- /* harmony default export */ const interleavedRetrieve = (interleavedRetrieveConfiguration);
212330
-
212331
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
212332
- var imageLoader = __webpack_require__(62990);
212333
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
212334
- var utilities = __webpack_require__(11723);
212335
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
212336
- var imageLoadPoolManager = __webpack_require__(96506);
212337
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
212338
- var cache = __webpack_require__(82253);
212339
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
212340
- var eventTarget = __webpack_require__(74238);
212341
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/fillNearbyFrames.js
212342
- function fillNearbyFrames(listener, imageQualityStatusMap, request, image, options) {
212343
- if (!request?.nearbyRequests?.length) {
212344
- return;
212345
- }
212346
- const { arrayBuffer, offset: srcOffset, type, length: frameLength, } = options.targetBuffer;
212347
- if (!arrayBuffer || srcOffset === undefined || !type) {
212348
- return;
212349
- }
212350
- const scalarData = new Float32Array(arrayBuffer);
212351
- const bytesPerPixel = scalarData.byteLength / scalarData.length;
212352
- const offset = options.targetBuffer.offset / bytesPerPixel;
212353
- const src = scalarData.slice(offset, offset + frameLength);
212354
- for (const nearbyItem of request.nearbyRequests) {
212355
- try {
212356
- const { itemId: targetId, imageQualityStatus } = nearbyItem;
212357
- const targetStatus = imageQualityStatusMap.get(targetId);
212358
- if (targetStatus !== undefined && targetStatus >= imageQualityStatus) {
212359
- continue;
212360
- }
212361
- const targetOptions = listener.getLoaderImageOptions(targetId);
212362
- const { offset: targetOffset } = targetOptions.targetBuffer;
212363
- scalarData.set(src, targetOffset / bytesPerPixel);
212364
- const nearbyImage = {
212365
- ...image,
212366
- imageQualityStatus,
212367
- };
212368
- listener.successCallback(targetId, nearbyImage);
212369
- imageQualityStatusMap.set(targetId, imageQualityStatus);
212370
- }
212371
- catch (e) {
212372
- console.log("Couldn't fill nearby item ", nearbyItem.itemId, e);
212373
- }
212374
- }
212375
- }
212376
-
212377
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js
212378
-
212379
-
212380
-
212381
-
212382
-
212383
-
212384
-
212385
-
212386
-
212387
-
212388
-
212389
- class ProgressiveRetrieveImages {
212390
- constructor(imageRetrieveConfiguration) {
212391
- this.stages = imageRetrieveConfiguration.stages || singleRetrieve;
212392
- this.retrieveOptions = imageRetrieveConfiguration.retrieveOptions || {};
212393
- }
212394
- static { this.createProgressive = createProgressive; }
212395
- static { this.interleavedRetrieveStages = {
212396
- stages: interleavedRetrieve,
212397
- }; }
212398
- static { this.singleRetrieveStages = {
212399
- stages: singleRetrieve,
212400
- }; }
212401
- static { this.sequentialRetrieveStages = {
212402
- stages: sequentialRetrieve,
212403
- }; }
212404
- loadImages(imageIds, listener) {
212405
- const instance = new ProgressiveRetrieveImagesInstance(this, imageIds, listener);
212406
- return instance.loadImages();
212407
- }
212408
- }
212409
- class ProgressiveRetrieveImagesInstance {
212410
- constructor(configuration, imageIds, listener) {
212411
- this.outstandingRequests = 0;
212412
- this.stageStatusMap = new Map();
212413
- this.imageQualityStatusMap = new Map();
212414
- this.displayedIterator = new utilities.ProgressiveIterator('displayed');
212415
- this.stages = configuration.stages;
212416
- this.retrieveOptions = configuration.retrieveOptions;
212417
- this.imageIds = imageIds;
212418
- this.listener = listener;
212419
- }
212420
- async loadImages() {
212421
- const interleaved = this.createStageRequests();
212422
- this.outstandingRequests = interleaved.length;
212423
- for (const request of interleaved) {
212424
- this.addRequest(request);
212425
- }
212426
- if (this.outstandingRequests === 0) {
212427
- return Promise.resolve(null);
212428
- }
212429
- return this.displayedIterator.getDonePromise();
212430
- }
212431
- sendRequest(request, options) {
212432
- const { imageId, next } = request;
212433
- const errorCallback = (reason, done) => {
212434
- this.listener.errorCallback(imageId, complete || !next, reason);
212435
- if (done) {
212436
- this.updateStageStatus(request.stage, reason);
212437
- }
212438
- };
212439
- const loadedPromise = (options.loader || imageLoader.loadAndCacheImage)(imageId, options);
212440
- const uncompressedIterator = utilities.ProgressiveIterator.as(loadedPromise);
212441
- let complete = false;
212442
- uncompressedIterator
212443
- .forEach(async (image, done) => {
212444
- const oldStatus = this.imageQualityStatusMap.get(imageId);
212445
- if (!image) {
212446
- console.warn('No image retrieved', imageId);
212447
- return;
212448
- }
212449
- const { imageQualityStatus } = image;
212450
- complete ||= imageQualityStatus === enums.ImageQualityStatus.FULL_RESOLUTION;
212451
- if (oldStatus !== undefined && oldStatus > imageQualityStatus) {
212452
- this.updateStageStatus(request.stage, null, true);
212453
- return;
212454
- }
212455
- this.listener.successCallback(imageId, image);
212456
- this.imageQualityStatusMap.set(imageId, imageQualityStatus);
212457
- this.displayedIterator.add(image);
212458
- if (done) {
212459
- this.updateStageStatus(request.stage);
212460
- }
212461
- fillNearbyFrames(this.listener, this.imageQualityStatusMap, request, image, options);
212462
- }, errorCallback)
212463
- .finally(() => {
212464
- if (!complete && next) {
212465
- if (cache/* default */.ZP.getImageLoadObject(imageId)) {
212466
- cache/* default */.ZP.removeImageLoadObject(imageId);
212467
- }
212468
- this.addRequest(next, options.streamingData);
212469
- }
212470
- else {
212471
- if (!complete) {
212472
- this.listener.errorCallback(imageId, true, "Couldn't decode");
212473
- }
212474
- this.outstandingRequests--;
212475
- for (let skip = next; skip; skip = skip.next) {
212476
- this.updateStageStatus(skip.stage, null, true);
212477
- }
212478
- }
212479
- if (this.outstandingRequests <= 0) {
212480
- this.displayedIterator.resolve();
212481
- }
212482
- });
212483
- const doneLoad = uncompressedIterator.getDonePromise();
212484
- return doneLoad.catch((e) => null);
212485
- }
212486
- addRequest(request, streamingData = {}) {
212487
- const { imageId, stage } = request;
212488
- const baseOptions = this.listener.getLoaderImageOptions(imageId);
212489
- if (!baseOptions) {
212490
- return;
212491
- }
212492
- const { retrieveType = 'default' } = stage;
212493
- const { retrieveOptions: keyedRetrieveOptions } = this;
212494
- const retrieveOptions = keyedRetrieveOptions[retrieveType] || keyedRetrieveOptions.default;
212495
- const options = {
212496
- ...baseOptions,
212497
- retrieveType,
212498
- retrieveOptions,
212499
- streamingData,
212500
- };
212501
- const priority = stage.priority ?? -5;
212502
- const requestType = stage.requestType || enums.RequestType.Interaction;
212503
- const additionalDetails = { imageId };
212504
- imageLoadPoolManager/* default */.Z.addRequest(this.sendRequest.bind(this, request, options), requestType, additionalDetails, priority);
212505
- }
212506
- updateStageStatus(stage, failure, skipped = false) {
212507
- const { id } = stage;
212508
- const stageStatus = this.stageStatusMap.get(id);
212509
- if (!stageStatus) {
212510
- return;
212511
- }
212512
- stageStatus.imageLoadPendingCount--;
212513
- if (failure) {
212514
- stageStatus.imageLoadFailedCount++;
212515
- }
212516
- else if (!skipped) {
212517
- stageStatus.totalImageCount++;
212518
- }
212519
- if (!skipped && !stageStatus.stageStartTime) {
212520
- stageStatus.stageStartTime = Date.now();
212521
- }
212522
- if (!stageStatus.imageLoadPendingCount) {
212523
- const { imageLoadFailedCount: numberOfFailures, totalImageCount: numberOfImages, stageStartTime = Date.now(), startTime, } = stageStatus;
212524
- const detail = {
212525
- stageId: id,
212526
- numberOfFailures,
212527
- numberOfImages,
212528
- stageDurationInMS: stageStartTime ? Date.now() - stageStartTime : null,
212529
- startDurationInMS: Date.now() - startTime,
212530
- };
212531
- (0,utilities.triggerEvent)(eventTarget/* default */.Z, enums.Events.IMAGE_RETRIEVAL_STAGE, detail);
212532
- this.stageStatusMap.delete(id);
212533
- }
212534
- }
212535
- createStageRequests() {
212536
- const interleaved = new Array();
212537
- const imageRequests = new Map();
212538
- const addStageInstance = (stage, position) => {
212539
- const index = position < 0
212540
- ? this.imageIds.length + position
212541
- : position < 1
212542
- ? Math.floor((this.imageIds.length - 1) * position)
212543
- : position;
212544
- const imageId = this.imageIds[index];
212545
- if (!imageId) {
212546
- throw new Error(`No value found to add to requests at ${position}`);
212547
- }
212548
- const request = {
212549
- imageId,
212550
- stage,
212551
- nearbyRequests: this.findNearbyRequests(index, stage),
212552
- };
212553
- this.addStageStatus(stage);
212554
- const existingRequest = imageRequests.get(imageId);
212555
- if (existingRequest) {
212556
- existingRequest.next = request;
212557
- }
212558
- else {
212559
- interleaved.push(request);
212560
- }
212561
- imageRequests.set(imageId, request);
212562
- };
212563
- for (const stage of this.stages) {
212564
- const indices = stage.positions ||
212565
- (0,utilities.decimate)(this.imageIds, stage.decimate || 1, stage.offset ?? 0);
212566
- indices.forEach((index) => addStageInstance(stage, index));
212567
- }
212568
- return interleaved;
212569
- }
212570
- findNearbyRequests(index, stage) {
212571
- const nearby = new Array();
212572
- if (!stage.nearbyFrames) {
212573
- return nearby;
212574
- }
212575
- for (const nearbyItem of stage.nearbyFrames) {
212576
- const nearbyIndex = index + nearbyItem.offset;
212577
- if (nearbyIndex < 0 || nearbyIndex >= this.imageIds.length) {
212578
- continue;
212579
- }
212580
- nearby.push({
212581
- itemId: this.imageIds[nearbyIndex],
212582
- imageQualityStatus: nearbyItem.imageQualityStatus,
212583
- });
212584
- }
212585
- return nearby;
212586
- }
212587
- addStageStatus(stage) {
212588
- const { id } = stage;
212589
- const stageStatus = this.stageStatusMap.get(id) || {
212590
- stageId: id,
212591
- startTime: Date.now(),
212592
- stageStartTime: null,
212593
- totalImageCount: 0,
212594
- imageLoadFailedCount: 0,
212595
- imageLoadPendingCount: 0,
212596
- };
212597
- stageStatus.imageLoadPendingCount++;
212598
- this.stageStatusMap.set(id, stageStatus);
212599
- return stageStatus;
212600
- }
212601
- }
212602
- function createProgressive(configuration) {
212603
- return new ProgressiveRetrieveImages(configuration);
212604
- }
212605
- /* harmony default export */ const loaders_ProgressiveRetrieveImages = (ProgressiveRetrieveImages);
212606
-
212607
212647
 
212608
212648
  /***/ }),
212609
212649
 
@@ -212632,9 +212672,9 @@ __webpack_require__.r(__webpack_exports__);
212632
212672
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82253);
212633
212673
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
212634
212674
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74238);
212635
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(11723);
212675
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
212636
212676
  /* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96506);
212637
- /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62709);
212677
+ /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12651);
212638
212678
 
212639
212679
 
212640
212680
 
@@ -212914,7 +212954,7 @@ __webpack_require__.r(__webpack_exports__);
212914
212954
  /* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(85041);
212915
212955
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11677);
212916
212956
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
212917
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(11723);
212957
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56309);
212918
212958
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28719);
212919
212959
  /* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(85654);
212920
212960
 
@@ -213306,6 +213346,27 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
213306
213346
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (imageLoadPoolManager);
213307
213347
 
213308
213348
 
213349
+ /***/ }),
213350
+
213351
+ /***/ 22717:
213352
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
213353
+
213354
+ "use strict";
213355
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
213356
+ /* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
213357
+ /* harmony export */ });
213358
+ /* harmony import */ var _requestPoolManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42961);
213359
+ /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49334);
213360
+
213361
+
213362
+ const imageRetrievalPoolManager = new _requestPoolManager__WEBPACK_IMPORTED_MODULE_0__/* .RequestPoolManager */ .P('imageRetrievalPool');
213363
+ imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Interaction, 200);
213364
+ imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Thumbnail, 200);
213365
+ imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Prefetch, 200);
213366
+ imageRetrievalPoolManager.grabDelay = 0;
213367
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (imageRetrievalPoolManager);
213368
+
213369
+
213309
213370
  /***/ }),
213310
213371
 
213311
213372
  /***/ 42961:
@@ -213316,7 +213377,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
213316
213377
  /* harmony export */ P: () => (/* binding */ RequestPoolManager)
213317
213378
  /* harmony export */ });
213318
213379
  /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49334);
213319
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11723);
213380
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56309);
213320
213381
 
213321
213382
 
213322
213383
  class RequestPoolManager {
@@ -213947,7 +214008,7 @@ function getImageSliceDataForVolumeViewport(viewport) {
213947
214008
  /* harmony export */ });
213948
214009
  /* harmony import */ var _kitware_vtk_js_Common_Core_MatrixBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45802);
213949
214010
  /* harmony import */ var _getVolumeActorCorners__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210);
213950
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48588);
214011
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19247);
213951
214012
 
213952
214013
 
213953
214014
 
@@ -214044,7 +214105,7 @@ function getSpacingInNormalDirection(imageVolume, viewPlaneNormal) {
214044
214105
  /* harmony export */ Z: () => (/* binding */ getTargetVolumeAndSpacingInNormalDir)
214045
214106
  /* harmony export */ });
214046
214107
  /* harmony import */ var _cache_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5287);
214047
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48588);
214108
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19247);
214048
214109
  /* harmony import */ var _getSpacingInNormalDirection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49018);
214049
214110
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18588);
214050
214111
  /* harmony import */ var _getVolumeId__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77059);
@@ -214157,8 +214218,8 @@ const getVolumeId = (targetId) => {
214157
214218
  const str = targetId.includes(prefix)
214158
214219
  ? targetId.substring(prefix.length)
214159
214220
  : targetId;
214160
- const index = str.indexOf('?');
214161
- return index === -1 ? str : str.substring(0, index);
214221
+ const index = str.indexOf('sliceIndex=');
214222
+ return index === -1 ? str : str.substring(0, index - 1);
214162
214223
  };
214163
214224
 
214164
214225
 
@@ -214181,7 +214242,7 @@ function hasNaNValues(input) {
214181
214242
 
214182
214243
  /***/ }),
214183
214244
 
214184
- /***/ 11723:
214245
+ /***/ 56309:
214185
214246
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
214186
214247
 
214187
214248
  "use strict";
@@ -214272,7 +214333,7 @@ __webpack_require__.d(__webpack_exports__, {
214272
214333
  transformWorldToIndex: () => (/* reexport */ transformWorldToIndex/* default */.Z),
214273
214334
  triggerEvent: () => (/* reexport */ triggerEvent/* default */.Z),
214274
214335
  updateVTKImageDataWithCornerstoneImage: () => (/* reexport */ updateVTKImageDataWithCornerstoneImage),
214275
- uuidv4: () => (/* reexport */ uuidv4),
214336
+ uuidv4: () => (/* reexport */ uuidv4/* default */.Z),
214276
214337
  windowLevel: () => (/* reexport */ windowLevel_namespaceObject),
214277
214338
  worldToImageCoords: () => (/* reexport */ utilities_worldToImageCoords)
214278
214339
  });
@@ -214399,11 +214460,8 @@ function scaleRGBTransferFunction(rgbTransferFunction, scalingFactor) {
214399
214460
 
214400
214461
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
214401
214462
  var triggerEvent = __webpack_require__(85041);
214402
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/uuidv4.js
214403
- function uuidv4() {
214404
- return crypto.randomUUID();
214405
- }
214406
-
214463
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/uuidv4.js
214464
+ var uuidv4 = __webpack_require__(47741);
214407
214465
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getMinMax.js
214408
214466
  function getMinMax(storedPixelData) {
214409
214467
  let min = storedPixelData[0];
@@ -214586,8 +214644,8 @@ var esm = __webpack_require__(72076);
214586
214644
  var metaData = __webpack_require__(30023);
214587
214645
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSpacingInNormalDirection.js
214588
214646
  var getSpacingInNormalDirection = __webpack_require__(49018);
214589
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 4 modules
214590
- var constants = __webpack_require__(48588);
214647
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
214648
+ var constants = __webpack_require__(19247);
214591
214649
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getClosestImageId.js
214592
214650
 
214593
214651
 
@@ -214929,8 +214987,8 @@ function loadImageToCanvas(options) {
214929
214987
  });
214930
214988
  }
214931
214989
 
214932
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
214933
- var dist_esm = __webpack_require__(62709);
214990
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
214991
+ var dist_esm = __webpack_require__(12651);
214934
214992
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/worldToImageCoords.js
214935
214993
 
214936
214994
 
@@ -217245,6 +217303,20 @@ function triggerEvent(el = _eventTarget__WEBPACK_IMPORTED_MODULE_0__/* ["default
217245
217303
  }
217246
217304
 
217247
217305
 
217306
+ /***/ }),
217307
+
217308
+ /***/ 47741:
217309
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
217310
+
217311
+ "use strict";
217312
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
217313
+ /* harmony export */ Z: () => (/* binding */ uuidv4)
217314
+ /* harmony export */ });
217315
+ function uuidv4() {
217316
+ return crypto.randomUUID?.() || ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
217317
+ }
217318
+
217319
+
217248
217320
  /***/ }),
217249
217321
 
217250
217322
  /***/ 15291:
@@ -217410,7 +217482,7 @@ class CentralizedWorkerManager {
217410
217482
  /***/ 61539:
217411
217483
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
217412
217484
 
217413
- !function(e,t){ true?module.exports=t(__webpack_require__(62709),__webpack_require__(56660)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e,o=e>>>16&65535,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return~e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}w=h[(65535&w)+(m&(1<<y)-1)];continue t}for(k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,16&y){if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}if(64&y){e.msg="invalid distance code",I.mode=t;break e}w=p[(65535&w)+(m&(1<<y)-1)]}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&!(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(!(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 2&r.wrap?(r.head=t,t.done=!1,u):m},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u}}return 0!==A&&(c[b+A]=y-P<<24|64<<16),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);Object.defineProperty(t,"isMultiframe",{value:h.isMultiframe(t),enumerable:!1}),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.5a5a581362c14598c3d9.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
217485
+ !function(e,t){ true?module.exports=t(__webpack_require__(12651),__webpack_require__(56660)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e,o=e>>>16&65535,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return~e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}w=h[(65535&w)+(m&(1<<y)-1)];continue t}for(k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,16&y){if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}if(64&y){e.msg="invalid distance code",I.mode=t;break e}w=p[(65535&w)+(m&(1<<y)-1)]}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&!(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(!(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 2&r.wrap?(r.head=t,t.done=!1,u):m},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u}}return 0!==A&&(c[b+A]=y-P<<24|64<<16),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);Object.defineProperty(t,"isMultiframe",{value:h.isMultiframe(t),enumerable:!1}),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.5a5a581362c14598c3d9.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
217414
217486
 
217415
217487
 
217416
217488
  /***/ }),
@@ -393826,7 +393898,7 @@ function __disposeResources(env) {
393826
393898
  /******/ // This function allow to reference async chunks
393827
393899
  /******/ __webpack_require__.u = (chunkId) => {
393828
393900
  /******/ // return url for filenames based on template
393829
- /******/ return "" + ({"158":"histogram-worker","607":"suv-peak-worker","985":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"10":"c626810bd199ab63f3a2","153":"62dad8e9c7532474e95c","158":"e7e9fea2c3236b0e747a","169":"483057ed84ca3e92513a","202":"bb0e8196739bb896dc9e","210":"368d53177dc659dc6af0","246":"27aca95ea22cd5fcd414","281":"49da07d997da7cc01705","286":"985c5ebbb2158c7e59ab","315":"f7f9e6c76811f8a6a30f","353":"a741604612f3f1d18398","360":"2c117803c05f0bc31424","372":"d97377781382080306bd","376":"2657056d8bc2b11fb0e8","412":"836f106f6e2896dc42a5","417":"abf8bcee0f246002acb9","428":"744fc5865b2d747de88a","497":"ee102d6243f984113f08","498":"bb47c493dd02451f77ef","502":"e7e6c345146aef00a169","516":"d777e4126814a5a47117","530":"87f8b13ff55bf7b2a6d1","552":"85aaefb5e22d6d1bffa9","571":"2b4e21bc61d7685a5fdb","591":"aa91409b528ae6b601e0","604":"83f50929b208c60e48da","607":"eb11e71db02e52601ecf","658":"358716d6aee4c190f2cd","757":"1900204cf3e21d28e3b0","791":"d614182fa975e92cf4f5","793":"c92f52ddff0e3bf506e6","818":"cda4e369fdee5459a544","831":"9e1a3495947e5bb49756","842":"a5533bc77e6f57b0ee30","888":"7ff5dfd3c14072cee2a9","931":"f6fa2a436ace89ebf60f","944":"c2bcb49d5077bd6fcc87","962":"d5f55c85407221bbce7b","978":"cd27543a62e7230557b2","985":"b25c61224998018d0f79","993":"aa31ebda5a5f62c44de5","994":"c4709bfb7fd9dcde0551"}[chunkId] + ".js";
393901
+ /******/ return "" + ({"158":"histogram-worker","607":"suv-peak-worker","985":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"10":"c626810bd199ab63f3a2","65":"d15cc84a0b991e182649","153":"42a66f99ced5972aa0c0","158":"89729ccb99d170ff2f2f","169":"d28df3cf2d600fc3e146","202":"f6d9ca4b1c16b1aa227f","210":"ea52c75bb27ab002dc4d","246":"912e9f8342cd5d6228e6","281":"719e9e222fecb4e9e9c6","286":"985c5ebbb2158c7e59ab","315":"f7f9e6c76811f8a6a30f","353":"5b11e6b395c5d5cc33bf","360":"9a0c682beae1ef7e40b1","372":"9891a9938b28db4b36ce","376":"ac0e23dc830cd982fd18","412":"836f106f6e2896dc42a5","417":"abf8bcee0f246002acb9","424":"1caecbb1bbefc271b621","497":"bbc07cef12d598653a65","498":"e5ccb2bc38e4bfdd564b","502":"823682db96d52df1b8cf","516":"e59c26f055d145ce835e","530":"87f8b13ff55bf7b2a6d1","571":"2b4e21bc61d7685a5fdb","591":"39fa1e6e7285929f2e29","604":"83f50929b208c60e48da","607":"15dcb8d1ab8e0528bfd9","658":"358716d6aee4c190f2cd","757":"1900204cf3e21d28e3b0","791":"ecf9b1f8892d5f8962a3","793":"e4c759b5cdfcc3c7494f","818":"b64fae7e982e16a82ca2","831":"9e1a3495947e5bb49756","842":"cccbb7e3611e3d220f07","888":"d3b2a82cb17155725342","904":"008f8a2095669f4eabba","931":"f6fa2a436ace89ebf60f","944":"93eddec203a43754e826","962":"868b30361a52b0ffa504","978":"c12902cf44dca926bcb8","985":"d8943427beee7694621a","993":"302a286ebb6e3fc0c35a","994":"3b5f396b62cce2990c03"}[chunkId] + ".js";
393830
393902
  /******/ };
393831
393903
  /******/ })();
393832
393904
  /******/
@@ -393998,7 +394070,7 @@ function __disposeResources(env) {
393998
394070
  /******/ };
393999
394071
  /******/
394000
394072
  /******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
394001
- /******/ var cssChunks = {"169":1,"210":1,"286":1,"516":1,"552":1,"757":1,"994":1};
394073
+ /******/ var cssChunks = {"169":1,"210":1,"286":1,"424":1,"516":1,"757":1,"994":1};
394002
394074
  /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
394003
394075
  /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
394004
394076
  /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
@@ -394013,7 +394085,7 @@ function __disposeResources(env) {
394013
394085
  /******/ // no hmr
394014
394086
  /******/
394015
394087
  /******/ __webpack_require__.F.miniCss = (chunkId) => {
394016
- /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(143|169|210|286|516|552|757|994)$/.test(chunkId)) {
394088
+ /******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(143|169|210|286|424|516|757|994)$/.test(chunkId)) {
394017
394089
  /******/ installedCssChunks[chunkId] = null;
394018
394090
  /******/ var link = document.createElement('link');
394019
394091
  /******/