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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.772ce244eee25d9b7316.js} +50 -15
  2. package/dist/{121.bundle.a6063e0272df61cefccc.js → 121.bundle.b582314ec0024fdf2d15.js} +1 -0
  3. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.3221590f5e6855086889.js} +318 -41
  4. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.d3a631d79ee8952e3c60.js} +388 -55
  5. package/dist/{188.bundle.b31173cb165eb21c3ec6.js → 243.bundle.866dc990219240efa81f.js} +8 -8
  6. package/dist/{325.bundle.47f5b8a085837ee6b512.js → 325.bundle.d8bf863ddebb832dcaab.js} +10 -11
  7. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  8. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  9. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.baa389d217c390b0e92b.js} +81 -10
  10. package/dist/{206.bundle.e98e6ba9bfd9f36dc508.js → 390.bundle.504391bda56219cc9ef9.js} +37 -26
  11. package/dist/{448.bundle.94a6da9fac68fc69f8c2.js → 448.bundle.67539d1552db51aaca85.js} +2 -2
  12. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  13. package/dist/{487.bundle.71a2893d94d214741e13.js → 487.bundle.3f0e64e16189f92fcebc.js} +2 -2
  14. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.7d5003758fa3ffbb344b.js} +750 -247
  15. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  16. package/dist/{544.bundle.b005b8c8b9b08aaa3324.js → 544.bundle.4d1fb477b572f50f4220.js} +3 -3
  17. package/dist/{321.bundle.07e853e559665d6e15b6.js → 550.bundle.41e6a1eacc49db2358c5.js} +50 -19
  18. package/dist/{574.bundle.88b619217339b5e93d3e.js → 574.bundle.0bcd9d70f4b1eea48082.js} +35 -32
  19. package/dist/{41.bundle.faaf3b05d1083e3c8831.js → 682.bundle.066197792e6a0d01b669.js} +26 -6
  20. package/dist/{699.bundle.8210579412d62beafa91.js → 699.bundle.428f20dd60662f1e5edd.js} +32 -3
  21. package/dist/{669.bundle.84745782e36f25eb05bc.js → 721.bundle.d21827d733e8811e0b18.js} +73 -73
  22. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  23. package/dist/{724.bundle.519141a0c4d0d1a3192a.js → 776.bundle.981d8227b59f97f11dd8.js} +17 -12
  24. package/dist/{862.bundle.4a0bd82b803ba158018f.js → 862.bundle.7a102f04ef4d12686894.js} +1 -1
  25. package/dist/{889.bundle.9fbab4f0bbf643306879.js → 889.bundle.ed8937ba0c5455ed894d.js} +8 -8
  26. package/dist/{905.bundle.7e940707e10096970ca1.js → 905.bundle.b101088a20887c27945d.js} +2 -2
  27. package/dist/{907.bundle.f5aa0414d0f77e575a1f.js → 907.bundle.e8d22a858051cd255c9c.js} +2 -2
  28. package/dist/{94.bundle.ecaaba845625d93bad6b.js → 94.bundle.b4f45b237188a8550a35.js} +38 -8
  29. package/dist/{961.bundle.ff7da8afd7d8495d0bbe.js → 961.bundle.b86b71c712fa83e526d3.js} +2 -2
  30. package/dist/{7.bundle.3a17fe8266b2149334a6.js → 981.bundle.7b03f5a200c7dbcbaf1d.js} +10 -9
  31. package/dist/{594.bundle.01b124740b2b3f8a6d20.js → 989.bundle.e81da55a6954a12e5ea1.js} +5 -5
  32. package/dist/{633.bundle.ff1a1d0bdb0d1ef143af.js → 998.bundle.37015da90e590043cda0.js} +7 -7
  33. package/dist/app-config.js +5 -1
  34. package/dist/{app.bundle.c53b289734d5f7178a39.js → app.bundle.a6bfec031243c17f92e9.js} +686 -555
  35. package/dist/app.bundle.css +1 -1
  36. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  37. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  38. package/dist/google.js +1 -0
  39. package/dist/index.html +1 -1
  40. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.b0392069f29e128b4efa.js} +3 -3
  41. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.f823d84fae4ce6865f9a.js} +3 -3
  42. package/dist/sw.js +1 -1
  43. package/package.json +20 -19
  44. /package/dist/{321.css → 550.css} +0 -0
  45. /package/dist/{783.bundle.86c38ee55f4d01b111ca.js → 783.bundle.c5b7e2433ecb9d8e2541.js} +0 -0
  46. /package/dist/{633.css → 998.css} +0 -0
@@ -103,8 +103,8 @@ Compose.propTypes = {
103
103
  var ui_src = __webpack_require__(5085);
104
104
  // EXTERNAL MODULE: ./state/index.js + 1 modules
105
105
  var state = __webpack_require__(15575);
106
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
107
- var core_src = __webpack_require__(55411);
106
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
107
+ var core_src = __webpack_require__(8633);
108
108
  // EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
109
109
  var react_router_dist = __webpack_require__(10971);
110
110
  // EXTERNAL MODULE: ./hooks/useSearchParams.ts
@@ -879,6 +879,7 @@ function WorkList({
879
879
  const studyTime = time && moment_default()(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).isValid() && moment_default()(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format(t('Common:localTimeFormat', 'hh:mm A'));
880
880
  return {
881
881
  dataCY: `studyRow-${studyInstanceUid}`,
882
+ clickableCY: studyInstanceUid,
882
883
  row: [{
883
884
  key: 'patientName',
884
885
  content: patientName ? /*#__PURE__*/react.createElement(ui_src/* TooltipClipboard */.ax, null, patientName) : /*#__PURE__*/react.createElement("span", {
@@ -1004,8 +1005,8 @@ function WorkList({
1004
1005
  };
1005
1006
  });
1006
1007
  const hasStudies = numOfStudies > 0;
1007
- const versionNumber = "3.9.0-beta.2";
1008
- const commitHash = "730f4349100f21b4489a21707dbb2dca9dbfbba2";
1008
+ const versionNumber = "3.9.0-beta.21";
1009
+ const commitHash = "8960b89911a9342d93bf1a62bec97a696f101fd4";
1009
1010
  const menuOptions = [{
1010
1011
  title: t('Header:About'),
1011
1012
  icon: 'info',
@@ -1132,7 +1133,7 @@ WorkList.propTypes = {
1132
1133
  getConfig: (prop_types_default()).func
1133
1134
  }).isRequired,
1134
1135
  isLoadingData: (prop_types_default()).bool.isRequired,
1135
- servicesManager: prop_types_default().instanceOf(core_src/* ServicesManager */.CS)
1136
+ servicesManager: (prop_types_default()).object.isRequired
1136
1137
  };
1137
1138
  const defaultFilterValues = {
1138
1139
  patientName: '',
@@ -1174,7 +1175,7 @@ function WorkList_getQueryFilterValues(params) {
1174
1175
  sortBy: params.get('sortby'),
1175
1176
  sortDirection: params.get('sortdirection'),
1176
1177
  pageNumber: _tryParseInt(params.get('pagenumber'), undefined),
1177
- resultsPerPage: _tryParseInt(params.get('resultsperpage'), undefined),
1178
+ resultsPerPage: _tryParseInt(params.get('resultsPerPage'), undefined),
1178
1179
  datasources: params.get('datasources'),
1179
1180
  configUrl: params.get('configurl')
1180
1181
  };
@@ -1864,7 +1865,7 @@ function ViewerViewportGrid(props) {
1864
1865
  }
1865
1866
  ViewerViewportGrid.propTypes = {
1866
1867
  viewportComponents: (prop_types_default()).array.isRequired,
1867
- servicesManager: prop_types_default().instanceOf(core_src/* ServicesManager */.CS)
1868
+ servicesManager: prop_types_default().instanceOf(Object).isRequired
1868
1869
  };
1869
1870
  ViewerViewportGrid.defaultProps = {
1870
1871
  viewportComponents: []
@@ -1924,27 +1925,27 @@ modes.push("@ohif/mode-preclinical-4d");
1924
1925
  async function loadModule(module) {
1925
1926
  if (typeof module !== 'string') return module;
1926
1927
  if (module === "@ohif/extension-default") {
1927
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(206), __webpack_require__.e(481)]).then(__webpack_require__.bind(__webpack_require__, 7206));
1928
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(390), __webpack_require__.e(481)]).then(__webpack_require__.bind(__webpack_require__, 47390));
1928
1929
  return imported.default;
1929
1930
  }
1930
1931
  if (module === "@ohif/extension-cornerstone") {
1931
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(722), __webpack_require__.e(445), __webpack_require__.e(321)]).then(__webpack_require__.bind(__webpack_require__, 12702));
1932
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(722), __webpack_require__.e(445), __webpack_require__.e(550)]).then(__webpack_require__.bind(__webpack_require__, 550));
1932
1933
  return imported.default;
1933
1934
  }
1934
1935
  if (module === "@ohif/extension-measurement-tracking") {
1935
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(835), __webpack_require__.e(206), __webpack_require__.e(669), __webpack_require__.e(325)]).then(__webpack_require__.bind(__webpack_require__, 84284));
1936
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(835), __webpack_require__.e(390), __webpack_require__.e(721), __webpack_require__.e(325)]).then(__webpack_require__.bind(__webpack_require__, 84284));
1936
1937
  return imported.default;
1937
1938
  }
1938
1939
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
1939
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(669)]).then(__webpack_require__.bind(__webpack_require__, 61669));
1940
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(721)]).then(__webpack_require__.bind(__webpack_require__, 14721));
1940
1941
  return imported.default;
1941
1942
  }
1942
1943
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
1943
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(726), __webpack_require__.e(206), __webpack_require__.e(633)]).then(__webpack_require__.bind(__webpack_require__, 27400));
1944
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(726), __webpack_require__.e(390), __webpack_require__.e(998)]).then(__webpack_require__.bind(__webpack_require__, 32009));
1944
1945
  return imported.default;
1945
1946
  }
1946
1947
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
1947
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(487)]).then(__webpack_require__.bind(__webpack_require__, 26487));
1948
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(487)]).then(__webpack_require__.bind(__webpack_require__, 26487));
1948
1949
  return imported.default;
1949
1950
  }
1950
1951
  if (module === "@ohif/extension-dicom-microscopy") {
@@ -1960,7 +1961,7 @@ async function loadModule(module) {
1960
1961
  return imported.default;
1961
1962
  }
1962
1963
  if (module === "@ohif/extension-tmtv") {
1963
- const imported = await Promise.all(/* import() */[__webpack_require__.e(806), __webpack_require__.e(473), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(7)]).then(__webpack_require__.bind(__webpack_require__, 89007));
1964
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(981)]).then(__webpack_require__.bind(__webpack_require__, 93981));
1964
1965
  return imported.default;
1965
1966
  }
1966
1967
  if (module === "@ohif/extension-test") {
@@ -1968,11 +1969,11 @@ async function loadModule(module) {
1968
1969
  return imported.default;
1969
1970
  }
1970
1971
  if (module === "@ohif/extension-cornerstone-dicom-rt") {
1971
- const imported = await __webpack_require__.e(/* import() */ 188).then(__webpack_require__.bind(__webpack_require__, 99188));
1972
+ const imported = await __webpack_require__.e(/* import() */ 243).then(__webpack_require__.bind(__webpack_require__, 5243));
1972
1973
  return imported.default;
1973
1974
  }
1974
1975
  if (module === "@ohif/mode-longitudinal") {
1975
- const imported = await __webpack_require__.e(/* import() */ 41).then(__webpack_require__.bind(__webpack_require__, 97041));
1976
+ const imported = await __webpack_require__.e(/* import() */ 682).then(__webpack_require__.bind(__webpack_require__, 82682));
1976
1977
  return imported.default;
1977
1978
  }
1978
1979
  if (module === "@ohif/mode-segmentation") {
@@ -1980,7 +1981,7 @@ async function loadModule(module) {
1980
1981
  return imported.default;
1981
1982
  }
1982
1983
  if (module === "@ohif/mode-tmtv") {
1983
- const imported = await __webpack_require__.e(/* import() */ 724).then(__webpack_require__.bind(__webpack_require__, 28724));
1984
+ const imported = await __webpack_require__.e(/* import() */ 776).then(__webpack_require__.bind(__webpack_require__, 40776));
1984
1985
  return imported.default;
1985
1986
  }
1986
1987
  if (module === "@ohif/mode-microscopy") {
@@ -1996,7 +1997,7 @@ async function loadModule(module) {
1996
1997
  return imported.default;
1997
1998
  }
1998
1999
  if (module === "@ohif/mode-basic-dev-mode") {
1999
- const imported = await __webpack_require__.e(/* import() */ 594).then(__webpack_require__.bind(__webpack_require__, 26594));
2000
+ const imported = await __webpack_require__.e(/* import() */ 989).then(__webpack_require__.bind(__webpack_require__, 50989));
2000
2001
  return imported.default;
2001
2002
  }
2002
2003
  return (await import( /* webpackIgnore: true */module)).default;
@@ -2488,20 +2489,18 @@ function ModeRoute({
2488
2489
  */
2489
2490
  const filters = Array.from(query.keys()).reduce((acc, val) => {
2490
2491
  const lowerVal = val.toLowerCase();
2491
- if (lowerVal !== 'studyinstanceuids') {
2492
- // Not sure why the case matters here - it doesn't in the URL
2493
- if (lowerVal === 'seriesinstanceuids') {
2494
- const seriesUIDs = Mode_getSplitParam(lowerVal, query);
2495
- return {
2496
- ...acc,
2497
- seriesInstanceUID: seriesUIDs
2498
- };
2499
- }
2492
+ // Not sure why the case matters here - it doesn't in the URL
2493
+ if (lowerVal === 'seriesinstanceuids') {
2494
+ const seriesUIDs = Mode_getSplitParam(lowerVal, query);
2500
2495
  return {
2501
2496
  ...acc,
2502
- [val]: Mode_getSplitParam(lowerVal, query)
2497
+ seriesInstanceUID: seriesUIDs
2503
2498
  };
2504
2499
  }
2500
+ return {
2501
+ ...acc,
2502
+ [val]: Mode_getSplitParam(lowerVal, query)
2503
+ };
2505
2504
  }, {}) ?? {};
2506
2505
  let unsubs;
2507
2506
  if (route.init) {
@@ -2842,7 +2841,7 @@ const createRoutes = ({
2842
2841
  exact: true,
2843
2842
  path: route.path,
2844
2843
  element: /*#__PURE__*/react.createElement(routes_PrivateRoute, {
2845
- handleUnauthenticated: userAuthenticationService.handleUnauthenticated
2844
+ handleUnauthenticated: () => userAuthenticationService.handleUnauthenticated()
2846
2845
  }, /*#__PURE__*/react.createElement(RouteWithErrorBoundary, {
2847
2846
  route: route
2848
2847
  }))
@@ -4706,8 +4705,8 @@ const progressTrackingUtils = {
4706
4705
  removeObserver
4707
4706
  };
4708
4707
  /* harmony default export */ const utils_progressTrackingUtils = (progressTrackingUtils);
4709
- // EXTERNAL MODULE: ../../core/src/utils/isLowPriorityModality.js
4710
- var isLowPriorityModality = __webpack_require__(17610);
4708
+ // EXTERNAL MODULE: ../../core/src/utils/isLowPriorityModality.ts
4709
+ var isLowPriorityModality = __webpack_require__(74420);
4711
4710
  // EXTERNAL MODULE: ../../core/src/utils/isImage.js
4712
4711
  var isImage = __webpack_require__(8094);
4713
4712
  // EXTERNAL MODULE: ../../core/src/utils/isDisplaySetReconstructable.js
@@ -5348,20 +5347,6 @@ const isImage = SOPClassUID => {
5348
5347
 
5349
5348
  /***/ }),
5350
5349
 
5351
- /***/ 17610:
5352
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5353
-
5354
- "use strict";
5355
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5356
- /* harmony export */ A: () => (/* binding */ isLowPriorityModality)
5357
- /* harmony export */ });
5358
- const LOW_PRIORITY_MODALITIES = Object.freeze(['SEG', 'KO', 'PR', 'SR', 'RTSTRUCT']);
5359
- function isLowPriorityModality(Modality) {
5360
- return LOW_PRIORITY_MODALITIES.includes(Modality);
5361
- }
5362
-
5363
- /***/ }),
5364
-
5365
5350
  /***/ 48085:
5366
5351
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
5367
5352
 
@@ -6616,7 +6601,7 @@ const detectionOptions = {
6616
6601
  }
6617
6602
  });
6618
6603
  ;// CONCATENATED MODULE: ../../i18n/package.json
6619
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.1"}');
6604
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.20"}');
6620
6605
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
6621
6606
  const languagesMap = {
6622
6607
  ar: 'Arabic',
@@ -19271,8 +19256,8 @@ ViewportDialogProvider.propTypes = {
19271
19256
  // EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
19272
19257
  var lodash_merge = __webpack_require__(40592);
19273
19258
  var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
19274
- // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
19275
- var src = __webpack_require__(55411);
19259
+ // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
19260
+ var src = __webpack_require__(8633);
19276
19261
  ;// CONCATENATED MODULE: ../../ui/src/utils/viewportLabels.ts
19277
19262
  const viewportLabels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
19278
19263
  /* harmony default export */ const utils_viewportLabels = (viewportLabels);
@@ -31716,6 +31701,13 @@ const Select_Select = ({
31716
31701
  placeholder: placeholder,
31717
31702
  options: options,
31718
31703
  blurInputOnSelect: true,
31704
+ menuPortalTarget: document.body,
31705
+ styles: {
31706
+ menuPortal: base => ({
31707
+ ...base,
31708
+ zIndex: 9999
31709
+ })
31710
+ },
31719
31711
  value: value && Array.isArray(value) ? selectedOptions : value,
31720
31712
  onChange: (selectedOptions, {
31721
31713
  action
@@ -32887,7 +32879,6 @@ const MeasurementTable = ({
32887
32879
  onDelete,
32888
32880
  servicesManager
32889
32881
  }) => {
32890
- servicesManager = servicesManager;
32891
32882
  const {
32892
32883
  customizationService,
32893
32884
  measurementService
@@ -35232,7 +35223,10 @@ const ListMenu = ({
35232
35223
  }));
35233
35224
  };
35234
35225
  return /*#__PURE__*/react.createElement("div", {
35235
- className: "bg-secondary-dark flex flex-col gap-[4px] rounded-md p-1"
35226
+ className: "bg-secondary-dark flex flex-col gap-[4px] overflow-auto rounded-md p-1",
35227
+ style: {
35228
+ maxHeight: 'calc(100vh - 5rem)'
35229
+ }
35236
35230
  }, items.map((item, index) => {
35237
35231
  return /*#__PURE__*/react.createElement(ListItem, {
35238
35232
  key: `ListItem${index}`,
@@ -37141,7 +37135,8 @@ const StudyListTableRow = props => {
37141
37135
  expandedContent,
37142
37136
  onClickRow,
37143
37137
  isExpanded,
37144
- dataCY
37138
+ dataCY,
37139
+ clickableCY
37145
37140
  } = tableData;
37146
37141
  return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("tr", {
37147
37142
  className: "select-none",
@@ -37164,7 +37159,8 @@ const StudyListTableRow = props => {
37164
37159
  }, {
37165
37160
  'bg-secondary-dark': isExpanded
37166
37161
  }),
37167
- onClick: onClickRow
37162
+ onClick: onClickRow,
37163
+ "data-cy": clickableCY
37168
37164
  }, row.map((cell, index) => {
37169
37165
  const {
37170
37166
  content,
@@ -37212,7 +37208,8 @@ StudyListTableRow.propTypes = {
37212
37208
  expandedContent: (prop_types_default()).node.isRequired,
37213
37209
  onClickRow: (prop_types_default()).func.isRequired,
37214
37210
  isExpanded: (prop_types_default()).bool.isRequired,
37215
- dataCY: (prop_types_default()).string
37211
+ dataCY: (prop_types_default()).string,
37212
+ clickableCY: (prop_types_default()).string
37216
37213
  })
37217
37214
  };
37218
37215
  /* harmony default export */ const StudyListTable_StudyListTableRow = (StudyListTableRow);
@@ -59743,7 +59740,6 @@ SwiperSlide.displayName = 'SwiperSlide';
59743
59740
 
59744
59741
 
59745
59742
 
59746
-
59747
59743
  const LegacySidePanel_borderSize = 4;
59748
59744
  const expandedWidth = 248;
59749
59745
  const LegacySidePanel_collapsedWidth = 25;
@@ -59936,7 +59932,7 @@ LegacySidePanel_LegacySidePanel.defaultProps = {
59936
59932
  defaultComponentOpen: null
59937
59933
  };
59938
59934
  LegacySidePanel_LegacySidePanel.propTypes = {
59939
- servicesManager: prop_types_default().instanceOf(src/* ServicesManager */.CS),
59935
+ servicesManager: (prop_types_default()).object.isRequired,
59940
59936
  side: prop_types_default().oneOf(['left', 'right']).isRequired,
59941
59937
  className: (prop_types_default()).string,
59942
59938
  activeTabIndex: (prop_types_default()).number,
@@ -62929,7 +62925,8 @@ const InvestigationalUseDialog = ({
62929
62925
  }, "Learn more about OHIF Viewer")))), /*#__PURE__*/react.createElement(components_Button, {
62930
62926
  type: type.primary,
62931
62927
  onClick: handleConfirmAndHide,
62932
- className: "bg-primary-main"
62928
+ className: "bg-primary-main",
62929
+ dataCY: "confirm-and-hide-button"
62933
62930
  }, "Confirm and Hide")));
62934
62931
  };
62935
62932
  InvestigationalUseDialog.propTypes = {
@@ -63326,7 +63323,7 @@ function _getImageOrientationPatient(image) {
63326
63323
 
63327
63324
  /***/ }),
63328
63325
 
63329
- /***/ 55411:
63326
+ /***/ 8633:
63330
63327
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
63331
63328
 
63332
63329
  "use strict";
@@ -63354,10 +63351,10 @@ __webpack_require__.d(__webpack_exports__, {
63354
63351
  CS: () => (/* reexport */ ServicesManager),
63355
63352
  wb: () => (/* reexport */ services_StateSyncService),
63356
63353
  ToolbarService: () => (/* reexport */ ToolBarService),
63357
- u$: () => (/* reexport */ UIDialogService),
63354
+ u$: () => (/* reexport */ services_UIDialogService),
63358
63355
  zo: () => (/* reexport */ services_UIModalService),
63359
63356
  v4: () => (/* reexport */ services_UINotificationService),
63360
- A$: () => (/* reexport */ UIViewportDialogService),
63357
+ A$: () => (/* reexport */ services_UIViewportDialogService),
63361
63358
  pS: () => (/* reexport */ services_UserAuthenticationService),
63362
63359
  sI: () => (/* reexport */ services_ViewportGridService),
63363
63360
  Ai: () => (/* reexport */ services_WorkflowStepsService),
@@ -64172,142 +64169,89 @@ class ServiceProvidersManager {
64172
64169
  this.providers[serviceName] = provider;
64173
64170
  }
64174
64171
  }
64175
- ;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/index.js
64176
- /**
64177
- * A UI Element Position
64178
- *
64179
- * @typedef {Object} ElementPosition
64180
- * @property {number} top -
64181
- * @property {number} left -
64182
- * @property {number} right -
64183
- * @property {number} bottom -
64184
- */
64172
+ ;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/UIDialogService.ts
64173
+ var _UIDialogService;
64185
64174
 
64186
- /**
64187
- * UI Dialog
64188
- *
64189
- * @typedef {Object} DialogProps
64190
- * @property {string} id The dialog id.
64191
- * @property {ReactElement|HTMLElement} content The dialog content.
64192
- * @property {Object} contentProps The dialog content props.
64193
- * @property {boolean} [isDraggable=true] Controls if dialog content is draggable or not.
64194
- * @property {boolean} [showOverlay=false] Controls dialog overlay.
64195
- * @property {boolean} [centralize=false] Center the dialog on the screen.
64196
- * @property {boolean} [preservePosition=true] Use last position instead of default.
64197
- * @property {ElementPosition} defaultPosition Specifies the `x` and `y` that the dragged item should start at.
64198
- * @property {Function} onStart Called when dragging starts. If `false` is returned any handler, the action will cancel.
64199
- * @property {Function} onStop Called when dragging stops.
64200
- * @property {Function} onDrag Called while dragging.
64201
- */
64202
-
64203
- const UIDialogService_name = 'uiDialogService';
64204
- const publicAPI = {
64205
- name: UIDialogService_name,
64206
- dismiss: _dismiss,
64207
- dismissAll: _dismissAll,
64208
- create: _create,
64209
- setServiceImplementation
64210
- };
64211
- const serviceImplementation = {
64212
- _dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
64213
- _dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
64214
- _create: () => console.warn('create() NOT IMPLEMENTED')
64215
- };
64216
-
64217
- /**
64218
- * Show a new UI dialog;
64219
- *
64220
- * @param {DialogProps} props { id, content, contentProps, onStart, onDrag, onStop, centralize, isDraggable, showOverlay, preservePosition, defaultPosition }
64221
- */
64222
- function _create({
64223
- id,
64224
- content,
64225
- contentProps,
64226
- onStart,
64227
- onDrag,
64228
- onStop,
64229
- centralize = false,
64230
- preservePosition = true,
64231
- isDraggable = true,
64232
- showOverlay = false,
64233
- onClickOutside,
64234
- defaultPosition
64235
- }) {
64236
- return serviceImplementation._create({
64175
+ class UIDialogService extends pubSubServiceInterface/* PubSubService */.R {
64176
+ constructor() {
64177
+ super(UIDialogService.EVENTS);
64178
+ this.serviceImplementation = {
64179
+ _dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
64180
+ _dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
64181
+ _create: () => console.warn('create() NOT IMPLEMENTED')
64182
+ };
64183
+ this.serviceImplementation = {
64184
+ ...this.serviceImplementation
64185
+ };
64186
+ }
64187
+ create({
64237
64188
  id,
64238
64189
  content,
64239
64190
  contentProps,
64240
64191
  onStart,
64241
64192
  onDrag,
64242
64193
  onStop,
64243
- centralize,
64244
- preservePosition,
64245
- isDraggable,
64246
- onClickOutside,
64247
- showOverlay,
64194
+ centralize = false,
64195
+ preservePosition = true,
64196
+ isDraggable = true,
64197
+ showOverlay = false,
64248
64198
  defaultPosition
64249
- });
64250
- }
64251
-
64252
- /**
64253
- * Destroys all dialogs, if any
64254
- *
64255
- * @returns void
64256
- */
64257
- function _dismissAll() {
64258
- return serviceImplementation._dismissAll();
64259
- }
64260
-
64261
- /**
64262
- * Destroy the dialog, if currently created
64263
- *
64264
- * @returns void
64265
- */
64266
- function _dismiss({
64267
- id
64268
- }) {
64269
- return serviceImplementation._dismiss({
64199
+ }) {
64200
+ return this.serviceImplementation._create({
64201
+ id,
64202
+ content,
64203
+ contentProps,
64204
+ onStart,
64205
+ onDrag,
64206
+ onStop,
64207
+ centralize,
64208
+ preservePosition,
64209
+ isDraggable,
64210
+ showOverlay,
64211
+ defaultPosition
64212
+ });
64213
+ }
64214
+ dismiss({
64270
64215
  id
64271
- });
64272
- }
64273
-
64274
- /**
64275
- *
64276
- *
64277
- * @param {*} {
64278
- * dismiss: dismissImplementation,
64279
- * dismissAll: dismissAllImplementation,
64280
- * create: createImplementation,
64281
- * }
64282
- */
64283
- function setServiceImplementation({
64284
- dismiss: dismissImplementation,
64285
- dismissAll: dismissAllImplementation,
64286
- create: createImplementation
64287
- }) {
64288
- if (dismissImplementation) {
64289
- serviceImplementation._dismiss = dismissImplementation;
64216
+ }) {
64217
+ return this.serviceImplementation._dismiss({
64218
+ id
64219
+ });
64290
64220
  }
64291
- if (dismissAllImplementation) {
64292
- serviceImplementation._dismissAll = dismissAllImplementation;
64221
+ dismissAll() {
64222
+ return this.serviceImplementation._dismissAll();
64293
64223
  }
64294
- if (createImplementation) {
64295
- serviceImplementation._create = createImplementation;
64224
+ setServiceImplementation({
64225
+ dismiss: dismissImplementation,
64226
+ dismissAll: dismissAllImplementation,
64227
+ create: createImplementation
64228
+ }) {
64229
+ if (dismissImplementation) {
64230
+ this.serviceImplementation._dismiss = dismissImplementation;
64231
+ }
64232
+ if (dismissAllImplementation) {
64233
+ this.serviceImplementation._dismissAll = dismissAllImplementation;
64234
+ }
64235
+ if (createImplementation) {
64236
+ this.serviceImplementation._create = createImplementation;
64237
+ }
64296
64238
  }
64297
64239
  }
64298
-
64299
- // TODO - export type here
64300
- /* harmony default export */ const UIDialogService = ({
64301
- REGISTRATION: {
64302
- name: UIDialogService_name,
64303
- altName: 'UIDialogService',
64304
- create: ({
64305
- configuration = {}
64306
- }) => {
64307
- return publicAPI;
64308
- }
64240
+ _UIDialogService = UIDialogService;
64241
+ UIDialogService.EVENTS = {};
64242
+ UIDialogService.REGISTRATION = {
64243
+ name: 'uiDialogService',
64244
+ altName: 'UIDialogService',
64245
+ create: ({
64246
+ configuration = {}
64247
+ }) => {
64248
+ return new _UIDialogService();
64309
64249
  }
64310
- });
64250
+ };
64251
+ /* harmony default export */ const UIDialogService_UIDialogService = (UIDialogService);
64252
+ ;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/index.ts
64253
+
64254
+ /* harmony default export */ const services_UIDialogService = (UIDialogService_UIDialogService);
64311
64255
  ;// CONCATENATED MODULE: ../../core/src/services/UIModalService/index.ts
64312
64256
  var _UIModalService;
64313
64257
  /**
@@ -64324,7 +64268,7 @@ var _UIModalService;
64324
64268
  */
64325
64269
 
64326
64270
  const UIModalService_name = 'uiModalService';
64327
- const UIModalService_serviceImplementation = {
64271
+ const serviceImplementation = {
64328
64272
  _hide: () => console.warn('hide() NOT IMPLEMENTED'),
64329
64273
  _show: () => console.warn('show() NOT IMPLEMENTED')
64330
64274
  };
@@ -64349,7 +64293,7 @@ class UIModalService {
64349
64293
  containerDimensions = null,
64350
64294
  contentDimensions = null
64351
64295
  }) {
64352
- return UIModalService_serviceImplementation._show({
64296
+ return serviceImplementation._show({
64353
64297
  content,
64354
64298
  contentProps,
64355
64299
  shouldCloseOnEsc,
@@ -64369,7 +64313,7 @@ class UIModalService {
64369
64313
  * @returns void
64370
64314
  */
64371
64315
  hide() {
64372
- return UIModalService_serviceImplementation._hide();
64316
+ return serviceImplementation._hide();
64373
64317
  }
64374
64318
 
64375
64319
  /**
@@ -64385,10 +64329,10 @@ class UIModalService {
64385
64329
  show: showImplementation
64386
64330
  }) {
64387
64331
  if (hideImplementation) {
64388
- UIModalService_serviceImplementation._hide = hideImplementation;
64332
+ serviceImplementation._hide = hideImplementation;
64389
64333
  }
64390
64334
  if (showImplementation) {
64391
- UIModalService_serviceImplementation._show = showImplementation;
64335
+ serviceImplementation._show = showImplementation;
64392
64336
  }
64393
64337
  }
64394
64338
  }
@@ -64494,44 +64438,21 @@ UINotificationService.REGISTRATION = {
64494
64438
  }
64495
64439
  };
64496
64440
  /* harmony default export */ const services_UINotificationService = (UINotificationService);
64497
- ;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/index.js
64498
- /**
64499
- * Viewport Dialog
64500
- *
64501
- * @typedef {Object} ViewportDialogProps
64502
- * @property {ReactElement|HTMLElement} [content=null] Modal content.
64503
- * @property {Object} [contentProps=null] Modal content props.
64504
- * @property {boolean} [viewportId=false] Modal is dismissible via the esc key.
64505
- */
64441
+ ;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/UIViewportDialogService.ts
64442
+ var _UIViewportDialogService;
64506
64443
 
64507
- const UIViewportDialogService_name = 'uiViewportDialogService';
64508
- const UIViewportDialogService_publicAPI = {
64509
- name: UIViewportDialogService_name,
64510
- hide: _hide,
64511
- show: _show,
64512
- setServiceImplementation: UIViewportDialogService_setServiceImplementation
64513
- };
64514
- const UIViewportDialogService_serviceImplementation = {
64515
- _hide: () => console.warn('hide() NOT IMPLEMENTED'),
64516
- _show: () => console.warn('show() NOT IMPLEMENTED')
64517
- };
64518
-
64519
- /**
64520
- * Show a new UI viewport dialog on the specified viewportId;
64521
- *
64522
- * @param {ViewportDialogProps} props { content, contentProps, viewportId }
64523
- */
64524
- function _show({
64525
- viewportId,
64526
- id,
64527
- type,
64528
- message,
64529
- actions,
64530
- onSubmit,
64531
- onOutsideClick,
64532
- onKeyPress
64533
- }) {
64534
- return UIViewportDialogService_serviceImplementation._show({
64444
+ class UIViewportDialogService extends pubSubServiceInterface/* PubSubService */.R {
64445
+ constructor() {
64446
+ super(UIViewportDialogService.EVENTS);
64447
+ this.serviceImplementation = {
64448
+ _hide: () => console.warn('hide() NOT IMPLEMENTED'),
64449
+ _show: () => console.warn('show() NOT IMPLEMENTED')
64450
+ };
64451
+ this.serviceImplementation = {
64452
+ ...this.serviceImplementation
64453
+ };
64454
+ }
64455
+ show({
64535
64456
  viewportId,
64536
64457
  id,
64537
64458
  type,
@@ -64540,47 +64461,48 @@ function _show({
64540
64461
  onSubmit,
64541
64462
  onOutsideClick,
64542
64463
  onKeyPress
64543
- });
64544
- }
64545
-
64546
- /**
64547
- * Hides/dismisses the viewport dialog, if currently shown
64548
- */
64549
- function _hide() {
64550
- return UIViewportDialogService_serviceImplementation._hide();
64551
- }
64552
-
64553
- /**
64554
- *
64555
- *
64556
- * @param {*} {
64557
- * hide: hideImplementation,
64558
- * show: showImplementation,
64559
- * viewportId,
64560
- * }
64561
- */
64562
- function UIViewportDialogService_setServiceImplementation({
64563
- hide: hideImplementation,
64564
- show: showImplementation
64565
- }) {
64566
- if (hideImplementation) {
64567
- UIViewportDialogService_serviceImplementation._hide = hideImplementation;
64464
+ }) {
64465
+ return this.serviceImplementation._show({
64466
+ viewportId,
64467
+ id,
64468
+ type,
64469
+ message,
64470
+ actions,
64471
+ onSubmit,
64472
+ onOutsideClick,
64473
+ onKeyPress
64474
+ });
64568
64475
  }
64569
- if (showImplementation) {
64570
- UIViewportDialogService_serviceImplementation._show = showImplementation;
64476
+ hide() {
64477
+ return this.serviceImplementation._hide();
64571
64478
  }
64572
- }
64573
- /* harmony default export */ const UIViewportDialogService = ({
64574
- REGISTRATION: {
64575
- name: UIViewportDialogService_name,
64576
- altName: 'UIViewportDialogService',
64577
- create: ({
64578
- configuration = {}
64579
- }) => {
64580
- return UIViewportDialogService_publicAPI;
64479
+ setServiceImplementation({
64480
+ hide: hideImplementation,
64481
+ show: showImplementation
64482
+ }) {
64483
+ if (hideImplementation) {
64484
+ this.serviceImplementation._hide = hideImplementation;
64485
+ }
64486
+ if (showImplementation) {
64487
+ this.serviceImplementation._show = showImplementation;
64581
64488
  }
64582
64489
  }
64583
- });
64490
+ }
64491
+ _UIViewportDialogService = UIViewportDialogService;
64492
+ UIViewportDialogService.EVENTS = {};
64493
+ UIViewportDialogService.REGISTRATION = {
64494
+ name: 'uiViewportDialogService',
64495
+ altName: 'UIViewportDialogService',
64496
+ create: ({
64497
+ configuration = {}
64498
+ }) => {
64499
+ return new _UIViewportDialogService();
64500
+ }
64501
+ };
64502
+ /* harmony default export */ const UIViewportDialogService_UIViewportDialogService = (UIViewportDialogService);
64503
+ ;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/index.ts
64504
+
64505
+ /* harmony default export */ const services_UIViewportDialogService = (UIViewportDialogService_UIViewportDialogService);
64584
64506
  // EXTERNAL MODULE: ../../core/src/services/DicomMetadataStore/DicomMetadataStore.ts + 2 modules
64585
64507
  var DicomMetadataStore = __webpack_require__(23221);
64586
64508
  ;// CONCATENATED MODULE: ../../core/src/services/DicomMetadataStore/index.ts
@@ -68229,96 +68151,94 @@ HangingProtocolService.REGISTRATION = {
68229
68151
  ;// CONCATENATED MODULE: ../../core/src/services/HangingProtocolService/index.ts
68230
68152
 
68231
68153
  /* harmony default export */ const services_HangingProtocolService = (HangingProtocolService);
68232
- ;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.js
68233
- const UserAuthenticationService_name = 'userAuthenticationService';
68234
- const UserAuthenticationService_publicAPI = {
68235
- name: UserAuthenticationService_name,
68236
- getState: _getState,
68237
- setUser: _setUser,
68238
- getUser: _getUser,
68239
- getAuthorizationHeader: _getAuthorizationHeader,
68240
- handleUnauthenticated: _handleUnauthenticated,
68241
- setServiceImplementation: UserAuthenticationService_setServiceImplementation,
68242
- reset: _reset,
68243
- set: _set
68244
- };
68245
- const UserAuthenticationService_serviceImplementation = {
68246
- _getState: () => console.warn('getState() NOT IMPLEMENTED'),
68247
- _setUser: () => console.warn('_setUser() NOT IMPLEMENTED'),
68248
- _getUser: () => console.warn('_setUser() NOT IMPLEMENTED'),
68249
- _getAuthorizationHeader: () => {},
68250
- // TODO: have enabled/disabled state?
68251
- //console.warn('_getAuthorizationHeader() NOT IMPLEMENTED'),
68252
- _handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
68253
- _reset: () => console.warn('reset() NOT IMPLEMENTED'),
68254
- _set: () => console.warn('set() NOT IMPLEMENTED')
68255
- };
68256
- function _getState() {
68257
- return UserAuthenticationService_serviceImplementation._getState();
68258
- }
68259
- function _setUser(user) {
68260
- return UserAuthenticationService_serviceImplementation._setUser(user);
68261
- }
68262
- function _getUser() {
68263
- return UserAuthenticationService_serviceImplementation._getUser();
68264
- }
68265
- function _getAuthorizationHeader() {
68266
- return UserAuthenticationService_serviceImplementation._getAuthorizationHeader();
68267
- }
68268
- function _handleUnauthenticated() {
68269
- return UserAuthenticationService_serviceImplementation._handleUnauthenticated();
68270
- }
68271
- function _set(state) {
68272
- return UserAuthenticationService_serviceImplementation._set(state);
68273
- }
68274
- function _reset() {
68275
- return UserAuthenticationService_serviceImplementation._reset({});
68276
- }
68277
- function UserAuthenticationService_setServiceImplementation({
68278
- getState: getStateImplementation,
68279
- setUser: setUserImplementation,
68280
- getUser: getUserImplementation,
68281
- getAuthorizationHeader: getAuthorizationHeaderImplementation,
68282
- handleUnauthenticated: handleUnauthenticatedImplementation,
68283
- reset: resetImplementation,
68284
- set: setImplementation
68285
- }) {
68286
- if (getStateImplementation) {
68287
- UserAuthenticationService_serviceImplementation._getState = getStateImplementation;
68154
+ ;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.ts
68155
+ var _UserAuthenticationService;
68156
+
68157
+ class UserAuthenticationService extends pubSubServiceInterface/* PubSubService */.R {
68158
+ constructor() {
68159
+ super(UserAuthenticationService.EVENTS);
68160
+ this.serviceImplementation = {
68161
+ _getState: () => console.warn('getState() NOT IMPLEMENTED'),
68162
+ _setUser: () => console.warn('_setUser() NOT IMPLEMENTED'),
68163
+ _getUser: () => console.warn('_getUser() NOT IMPLEMENTED'),
68164
+ _getAuthorizationHeader: () => {},
68165
+ // TODO: Implement this method
68166
+ _handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
68167
+ _reset: () => console.warn('reset() NOT IMPLEMENTED'),
68168
+ _set: () => console.warn('set() NOT IMPLEMENTED')
68169
+ };
68170
+ this.serviceImplementation = {
68171
+ ...this.serviceImplementation
68172
+ };
68288
68173
  }
68289
- if (setUserImplementation) {
68290
- UserAuthenticationService_serviceImplementation._setUser = setUserImplementation;
68174
+ getState() {
68175
+ return this.serviceImplementation._getState();
68291
68176
  }
68292
- if (getUserImplementation) {
68293
- UserAuthenticationService_serviceImplementation._getUser = getUserImplementation;
68177
+ setUser(user) {
68178
+ return this.serviceImplementation._setUser(user);
68294
68179
  }
68295
- if (getAuthorizationHeaderImplementation) {
68296
- UserAuthenticationService_serviceImplementation._getAuthorizationHeader = getAuthorizationHeaderImplementation;
68180
+ getUser() {
68181
+ return this.serviceImplementation._getUser();
68297
68182
  }
68298
- if (handleUnauthenticatedImplementation) {
68299
- UserAuthenticationService_serviceImplementation._handleUnauthenticated = handleUnauthenticatedImplementation;
68183
+ getAuthorizationHeader() {
68184
+ return this.serviceImplementation._getAuthorizationHeader();
68300
68185
  }
68301
- if (resetImplementation) {
68302
- UserAuthenticationService_serviceImplementation._reset = resetImplementation;
68186
+ handleUnauthenticated() {
68187
+ return this.serviceImplementation._handleUnauthenticated();
68303
68188
  }
68304
- if (setImplementation) {
68305
- UserAuthenticationService_serviceImplementation._set = setImplementation;
68189
+ reset() {
68190
+ return this.serviceImplementation._reset();
68306
68191
  }
68307
- }
68308
- /* harmony default export */ const UserAuthenticationService = ({
68309
- REGISTRATION: {
68310
- name: UserAuthenticationService_name,
68311
- altName: 'UserAuthenticationService',
68312
- create: ({
68313
- configuration = {}
68314
- }) => {
68315
- return UserAuthenticationService_publicAPI;
68192
+ set(state) {
68193
+ return this.serviceImplementation._set(state);
68194
+ }
68195
+ setServiceImplementation({
68196
+ getState: getStateImplementation,
68197
+ setUser: setUserImplementation,
68198
+ getUser: getUserImplementation,
68199
+ getAuthorizationHeader: getAuthorizationHeaderImplementation,
68200
+ handleUnauthenticated: handleUnauthenticatedImplementation,
68201
+ reset: resetImplementation,
68202
+ set: setImplementation
68203
+ }) {
68204
+ if (getStateImplementation) {
68205
+ this.serviceImplementation._getState = getStateImplementation;
68206
+ }
68207
+ if (setUserImplementation) {
68208
+ this.serviceImplementation._setUser = setUserImplementation;
68209
+ }
68210
+ if (getUserImplementation) {
68211
+ this.serviceImplementation._getUser = getUserImplementation;
68212
+ }
68213
+ if (getAuthorizationHeaderImplementation) {
68214
+ this.serviceImplementation._getAuthorizationHeader = getAuthorizationHeaderImplementation;
68215
+ }
68216
+ if (handleUnauthenticatedImplementation) {
68217
+ this.serviceImplementation._handleUnauthenticated = handleUnauthenticatedImplementation;
68218
+ }
68219
+ if (resetImplementation) {
68220
+ this.serviceImplementation._reset = resetImplementation;
68221
+ }
68222
+ if (setImplementation) {
68223
+ this.serviceImplementation._set = setImplementation;
68316
68224
  }
68317
68225
  }
68318
- });
68319
- ;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/index.js
68226
+ }
68227
+ _UserAuthenticationService = UserAuthenticationService;
68228
+ UserAuthenticationService.EVENTS = {};
68229
+ UserAuthenticationService.REGISTRATION = {
68230
+ name: 'userAuthenticationService',
68231
+ altName: 'UserAuthenticationService',
68232
+ create: ({
68233
+ configuration = {}
68234
+ }) => {
68235
+ return new _UserAuthenticationService();
68236
+ }
68237
+ };
68238
+ /* harmony default export */ const UserAuthenticationService_UserAuthenticationService = (UserAuthenticationService);
68239
+ ;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/index.ts
68320
68240
 
68321
- /* harmony default export */ const services_UserAuthenticationService = (UserAuthenticationService);
68241
+ /* harmony default export */ const services_UserAuthenticationService = (UserAuthenticationService_UserAuthenticationService);
68322
68242
  // EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
68323
68243
  var lodash_merge = __webpack_require__(40592);
68324
68244
  var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
@@ -71594,10 +71514,10 @@ const OHIF = {
71594
71514
  CineService: services_CineService,
71595
71515
  CustomizationService: services_CustomizationService,
71596
71516
  StateSyncService: services_StateSyncService,
71597
- UIDialogService: UIDialogService,
71517
+ UIDialogService: services_UIDialogService,
71598
71518
  UIModalService: services_UIModalService,
71599
71519
  UINotificationService: services_UINotificationService,
71600
- UIViewportDialogService: UIViewportDialogService,
71520
+ UIViewportDialogService: services_UIViewportDialogService,
71601
71521
  DisplaySetService: services_DisplaySetService,
71602
71522
  MeasurementService: services_MeasurementService,
71603
71523
  ToolbarService: ToolBarService,
@@ -72101,6 +72021,20 @@ class PubSubService {
72101
72021
 
72102
72022
  /***/ }),
72103
72023
 
72024
+ /***/ 74420:
72025
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
72026
+
72027
+ "use strict";
72028
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
72029
+ /* harmony export */ A: () => (/* binding */ isLowPriorityModality)
72030
+ /* harmony export */ });
72031
+ const LOW_PRIORITY_MODALITIES = Object.freeze(['SEG', 'KO', 'PR', 'SR', 'RTSTRUCT', 'RTDOSE', 'RTPLAN', 'RTRECORD', 'REG']);
72032
+ function isLowPriorityModality(Modality) {
72033
+ return LOW_PRIORITY_MODALITIES.includes(Modality);
72034
+ }
72035
+
72036
+ /***/ }),
72037
+
72104
72038
  /***/ 44563:
72105
72039
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
72106
72040
 
@@ -72166,7 +72100,7 @@ function sortInstances(instances) {
72166
72100
  /* harmony export */ y1: () => (/* binding */ sortingCriteria)
72167
72101
  /* harmony export */ });
72168
72102
  /* unused harmony export default */
72169
- /* harmony import */ var _isLowPriorityModality__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17610);
72103
+ /* harmony import */ var _isLowPriorityModality__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74420);
72170
72104
 
72171
72105
  const compareSeriesDateTime = (a, b) => {
72172
72106
  const seriesDateA = Date.parse(`${a.seriesDate ?? a.SeriesDate} ${a.seriesTime ?? a.SeriesTime}`);
@@ -72681,7 +72615,7 @@ webpackContext.id = 64692;
72681
72615
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
72682
72616
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
72683
72617
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82041);
72684
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35678);
72618
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20228);
72685
72619
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90601);
72686
72620
  /* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46820);
72687
72621
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(11512);
@@ -72923,13 +72857,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
72923
72857
  static get useCustomRenderingPipeline() {
72924
72858
  return false;
72925
72859
  }
72926
- applyViewOrientation(orientation) {
72860
+ applyViewOrientation(orientation, resetCamera = true) {
72927
72861
  const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
72928
72862
  const camera = this.getVtkActiveCamera();
72929
72863
  camera.setDirectionOfProjection(-viewPlaneNormal[0], -viewPlaneNormal[1], -viewPlaneNormal[2]);
72930
72864
  camera.setViewUpFrom(viewUp);
72931
72865
  this.initialViewUp = viewUp;
72932
- this.resetCamera();
72866
+ if (resetCamera) {
72867
+ this.resetCamera();
72868
+ }
72933
72869
  }
72934
72870
  initializeVolumeNewImageEventDispatcher() {
72935
72871
  const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
@@ -73158,15 +73094,26 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
73158
73094
  }
73159
73095
  getViewReference(viewRefSpecifier = {}) {
73160
73096
  const target = super.getViewReference(viewRefSpecifier);
73097
+ const volumeId = this.getVolumeId(viewRefSpecifier);
73161
73098
  if (viewRefSpecifier?.forFrameOfReference !== false) {
73162
- target.volumeId = this.getVolumeId(viewRefSpecifier);
73163
- }
73164
- return {
73165
- ...target,
73166
- sliceIndex: this.getCurrentImageIdIndex(),
73167
- };
73099
+ target.volumeId = volumeId;
73100
+ }
73101
+ if (typeof viewRefSpecifier?.sliceIndex !== 'number') {
73102
+ return target;
73103
+ }
73104
+ const { viewPlaneNormal } = target;
73105
+ const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
73106
+ const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
73107
+ const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
73108
+ const { focalPoint, position } = camera;
73109
+ const { newFocalPoint } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
73110
+ target.cameraFocalPoint = newFocalPoint;
73111
+ return target;
73168
73112
  }
73169
73113
  isReferenceViewable(viewRef, options) {
73114
+ if (!viewRef.FrameOfReferenceUID) {
73115
+ return false;
73116
+ }
73170
73117
  if (!super.isReferenceViewable(viewRef, options)) {
73171
73118
  return false;
73172
73119
  }
@@ -73180,6 +73127,63 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
73180
73127
  }
73181
73128
  return sliceIndex === undefined || sliceIndex === currentSliceIndex;
73182
73129
  }
73130
+ scroll(delta = 1) {
73131
+ const volumeId = this.getVolumeId();
73132
+ const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
73133
+ if (!sliceRangeInfo) {
73134
+ return;
73135
+ }
73136
+ const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
73137
+ const { focalPoint, viewPlaneNormal, position } = camera;
73138
+ const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
73139
+ this.setCamera({
73140
+ focalPoint: newFocalPoint,
73141
+ position: newPosition,
73142
+ });
73143
+ }
73144
+ setViewReference(viewRef) {
73145
+ if (!viewRef) {
73146
+ return;
73147
+ }
73148
+ const volumeId = this.getVolumeId();
73149
+ const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
73150
+ let { sliceIndex } = viewRef;
73151
+ const { focalPoint, viewPlaneNormal, position } = this.getCamera();
73152
+ const isNegativeNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
73153
+ const isSameNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(viewPlaneNormal, refViewPlaneNormal);
73154
+ if (typeof sliceIndex === 'number' &&
73155
+ viewRef.volumeId === volumeId &&
73156
+ (isNegativeNormal || isSameNormal)) {
73157
+ const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
73158
+ const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
73159
+ if (isNegativeNormal) {
73160
+ sliceIndex = numScrollSteps - sliceIndex - 1;
73161
+ }
73162
+ const delta = sliceIndex - currentStepIndex;
73163
+ const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
73164
+ this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
73165
+ }
73166
+ else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
73167
+ if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
73168
+ this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
73169
+ return this.setViewReference(viewRef);
73170
+ }
73171
+ if (cameraFocalPoint) {
73172
+ const focalDelta = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.subtract */ .eR.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
73173
+ const useNormal = refViewPlaneNormal ?? viewPlaneNormal;
73174
+ const normalDot = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.dot */ .eR.dot(focalDelta, useNormal);
73175
+ if (!(0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(normalDot, 0)) {
73176
+ gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.scale */ .eR.scale(focalDelta, useNormal, normalDot);
73177
+ }
73178
+ const newFocal = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], focalPoint, focalDelta);
73179
+ const newPosition = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], position, focalDelta);
73180
+ this.setCamera({ focalPoint: newFocal, position: newPosition });
73181
+ }
73182
+ }
73183
+ else {
73184
+ throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
73185
+ }
73186
+ }
73183
73187
  setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
73184
73188
  if (this.globalDefaultProperties == null) {
73185
73189
  this.setDefaultProperties({
@@ -73338,7 +73342,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
73338
73342
  this.render();
73339
73343
  }
73340
73344
  }
73341
- setOrientation(orientation, immediate = true) {
73345
+ setOrientation(_orientation, _immediate = true) {
73342
73346
  console.warn('Method "setOrientation" needs implementation');
73343
73347
  }
73344
73348
  initializeColorTransferFunction(volumeInputArray) {
@@ -73474,14 +73478,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
73474
73478
  return volume.getScalarData()[voxelIndex];
73475
73479
  }
73476
73480
  getVolumeId(specifier) {
73481
+ const actorEntries = this.getActors();
73482
+ if (!actorEntries) {
73483
+ return;
73484
+ }
73477
73485
  if (!specifier?.volumeId) {
73478
- const actorEntries = this.getActors();
73479
- if (!actorEntries) {
73480
- return;
73481
- }
73482
73486
  return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
73483
73487
  }
73484
- return specifier.volumeId;
73488
+ return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
73489
+ actorEntry.uid === specifier.volumeId)?.uid;
73485
73490
  }
73486
73491
  getReferenceId(specifier = {}) {
73487
73492
  let { volumeId, sliceIndex: sliceIndex } = specifier;
@@ -73492,7 +73497,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
73492
73497
  }
73493
73498
  volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
73494
73499
  }
73495
- sliceIndex ??= this.getCurrentImageIdIndex();
73500
+ const currentIndex = this.getCurrentImageIdIndex();
73501
+ sliceIndex ??= currentIndex;
73496
73502
  const { viewPlaneNormal, focalPoint } = this.getCamera();
73497
73503
  const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
73498
73504
  return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
@@ -74420,8 +74426,8 @@ var metaData = __webpack_require__(55692);
74420
74426
  // EXTERNAL MODULE: ../../../node_modules/lodash.clonedeep/index.js
74421
74427
  var lodash_clonedeep = __webpack_require__(48463);
74422
74428
  var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);
74423
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
74424
- var utilities = __webpack_require__(35678);
74429
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
74430
+ var utilities = __webpack_require__(20228);
74425
74431
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
74426
74432
  var Viewport = __webpack_require__(11512);
74427
74433
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js + 2 modules
@@ -74631,20 +74637,8 @@ class StackViewport extends Viewport/* default */.A {
74631
74637
  resize(this._cpuFallbackEnabledElement);
74632
74638
  }
74633
74639
  };
74634
- this.getFrameOfReferenceUID = () => {
74635
- const imageId = this.getCurrentImageId();
74636
- if (!imageId) {
74637
- return;
74638
- }
74639
- const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
74640
- if (!imagePlaneModule) {
74641
- return;
74642
- }
74643
- return imagePlaneModule.frameOfReferenceUID;
74644
- };
74645
- this.getCornerstoneImage = () => {
74646
- return this.csImage;
74647
- };
74640
+ this.getFrameOfReferenceUID = (sliceIndex) => this.getImagePlaneReferenceData(sliceIndex)?.FrameOfReferenceUID;
74641
+ this.getCornerstoneImage = () => this.csImage;
74648
74642
  this.createActorMapper = (imageData) => {
74649
74643
  const mapper = vtkImageMapper$1.newInstance();
74650
74644
  mapper.setInputData(imageData);
@@ -74807,9 +74801,6 @@ class StackViewport extends Viewport/* default */.A {
74807
74801
  this.getCurrentImageIdIndex = () => {
74808
74802
  return this.currentImageIdIndex;
74809
74803
  };
74810
- this.getSliceIndex = () => {
74811
- return this.currentImageIdIndex;
74812
- };
74813
74804
  this.getTargetImageIdIndex = () => {
74814
74805
  return this.targetImageIdIndex;
74815
74806
  };
@@ -75620,6 +75611,25 @@ class StackViewport extends Viewport/* default */.A {
75620
75611
  imagePixelModule,
75621
75612
  };
75622
75613
  }
75614
+ getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
75615
+ const imageId = this.imageIds[sliceIndex];
75616
+ if (!imageId) {
75617
+ return;
75618
+ }
75619
+ const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
75620
+ const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
75621
+ let { rowCosines, columnCosines } = imagePlaneModule;
75622
+ rowCosines ||= [1, 0, 0];
75623
+ columnCosines ||= [0, 1, 0];
75624
+ const viewPlaneNormal = (esm/* vec3.cross */.eR.cross([0, 0, 0], columnCosines, rowCosines));
75625
+ return {
75626
+ FrameOfReferenceUID,
75627
+ viewPlaneNormal,
75628
+ cameraFocalPoint: imagePositionPatient,
75629
+ referencedImageId: imageId,
75630
+ sliceIndex,
75631
+ };
75632
+ }
75623
75633
  _getCameraOrientation(imageDataDirection) {
75624
75634
  const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
75625
75635
  const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
@@ -75935,7 +75945,7 @@ class StackViewport extends Viewport/* default */.A {
75935
75945
  this.cpuRenderingInvalidated = true;
75936
75946
  this._cpuFallbackEnabledElement.transform = (0,calculateTransform/* default */.A)(this._cpuFallbackEnabledElement);
75937
75947
  }
75938
- async addImages(stackInputs) {
75948
+ addImages(stackInputs) {
75939
75949
  const actors = this.getActors();
75940
75950
  stackInputs.forEach((stackInput) => {
75941
75951
  const image = cache/* default */.Ay.getImage(stackInput.imageId);
@@ -76230,24 +76240,39 @@ class StackViewport extends Viewport/* default */.A {
76230
76240
  return referencedImageId?.endsWith(imageURI);
76231
76241
  }
76232
76242
  getViewReference(viewRefSpecifier = {}) {
76233
- const { sliceIndex: sliceIndex = this.currentImageIdIndex } = viewRefSpecifier;
76234
- return {
76235
- ...super.getViewReference(viewRefSpecifier),
76236
- referencedImageId: `${this.imageIds[sliceIndex]}`,
76237
- sliceIndex: sliceIndex,
76238
- };
76239
- }
76240
- setView(viewRef, viewPres) {
76241
- const camera = this.getCamera();
76242
- super.setView(viewRef, viewPres);
76243
- if (viewRef) {
76244
- const { viewPlaneNormal, sliceIndex } = viewRef;
76245
- if (viewPlaneNormal &&
76246
- !(0,utilities.isEqual)(viewPlaneNormal, camera.viewPlaneNormal)) {
76243
+ const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
76244
+ const reference = super.getViewReference(viewRefSpecifier);
76245
+ const referencedImageId = this.imageIds[sliceIndex];
76246
+ if (!referencedImageId) {
76247
+ return;
76248
+ }
76249
+ reference.referencedImageId = referencedImageId;
76250
+ if (this.getCurrentImageIdIndex() !== sliceIndex) {
76251
+ const referenceData = this.getImagePlaneReferenceData(sliceIndex);
76252
+ if (!referenceData) {
76247
76253
  return;
76248
76254
  }
76249
- if (sliceIndex || sliceIndex === 0) {
76250
- this.setImageIdIndex(sliceIndex);
76255
+ Object.assign(reference, referenceData);
76256
+ }
76257
+ return reference;
76258
+ }
76259
+ setViewReference(viewRef) {
76260
+ if (!viewRef) {
76261
+ return;
76262
+ }
76263
+ const { referencedImageId, sliceIndex, volumeId } = viewRef;
76264
+ if (typeof sliceIndex === 'number' &&
76265
+ referencedImageId &&
76266
+ referencedImageId === this.imageIds[sliceIndex]) {
76267
+ this.setImageIdIndex(sliceIndex);
76268
+ }
76269
+ else {
76270
+ const foundIndex = this.imageIds.indexOf(referencedImageId);
76271
+ if (foundIndex !== -1) {
76272
+ this.setImageIdIndex(foundIndex);
76273
+ }
76274
+ else {
76275
+ throw new Error('Unsupported - referenced image id not found');
76251
76276
  }
76252
76277
  }
76253
76278
  }
@@ -76371,8 +76396,8 @@ var enums = __webpack_require__(98362);
76371
76396
  var metaData = __webpack_require__(55692);
76372
76397
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
76373
76398
  var rendering_transform = __webpack_require__(18714);
76374
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
76375
- var utilities = __webpack_require__(35678);
76399
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
76400
+ var utilities = __webpack_require__(20228);
76376
76401
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
76377
76402
  var Viewport = __webpack_require__(11512);
76378
76403
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -77283,7 +77308,7 @@ class VideoViewport extends Viewport/* default */.A {
77283
77308
  /* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17702);
77284
77309
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
77285
77310
  /* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94070);
77286
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
77311
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
77287
77312
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
77288
77313
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
77289
77314
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
@@ -77583,7 +77608,7 @@ class Viewport {
77583
77608
  this.setDisplayAreaScale(displayArea);
77584
77609
  }
77585
77610
  else {
77586
- this.setInterpolationType(this.getProperties().interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
77611
+ this.setInterpolationType(this.getProperties()?.interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
77587
77612
  this.setDisplayAreaFit(displayArea);
77588
77613
  }
77589
77614
  if (storeAsInitialCamera) {
@@ -77812,6 +77837,9 @@ class Viewport {
77812
77837
  }, storeAsInitialCamera);
77813
77838
  }
77814
77839
  getZoom(compareCamera = this.initialCamera) {
77840
+ if (!compareCamera) {
77841
+ return 1;
77842
+ }
77815
77843
  const activeCamera = this.getVtkActiveCamera();
77816
77844
  const { parallelScale: initialParallelScale } = compareCamera;
77817
77845
  return initialParallelScale / activeCamera.getParallelScale();
@@ -78065,11 +78093,12 @@ class Viewport {
78065
78093
  return { widthWorld: maxX - minX, heightWorld: maxY - minY };
78066
78094
  }
78067
78095
  getViewReference(viewRefSpecifier = {}) {
78068
- const { focalPoint: cameraFocalPoint, viewPlaneNormal } = this.getCamera();
78096
+ const { focalPoint: cameraFocalPoint, viewPlaneNormal, viewUp, } = this.getCamera();
78069
78097
  const target = {
78070
78098
  FrameOfReferenceUID: this.getFrameOfReferenceUID(),
78071
78099
  cameraFocalPoint,
78072
78100
  viewPlaneNormal,
78101
+ viewUp,
78073
78102
  sliceIndex: viewRefSpecifier.sliceIndex ?? this.getCurrentImageIdIndex(),
78074
78103
  };
78075
78104
  return target;
@@ -78084,7 +78113,7 @@ class Viewport {
78084
78113
  if (viewPlaneNormal &&
78085
78114
  !(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(viewPlaneNormal, camera.viewPlaneNormal) &&
78086
78115
  !(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.negate */ .eR.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
78087
- return options?.asVolume === true;
78116
+ return options?.withOrientation === true;
78088
78117
  }
78089
78118
  return true;
78090
78119
  }
@@ -78112,19 +78141,22 @@ class Viewport {
78112
78141
  }
78113
78142
  return target;
78114
78143
  }
78115
- setView(viewRef, viewPres) {
78116
- if (viewPres) {
78117
- const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
78118
- if (displayArea !== this.getDisplayArea()) {
78119
- this.setDisplayArea(displayArea);
78120
- }
78121
- this.setZoom(zoom);
78122
- if (pan) {
78123
- this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
78124
- }
78125
- if (rotation >= 0) {
78126
- this.setRotation(rotation);
78127
- }
78144
+ setViewReference(viewRef) {
78145
+ }
78146
+ setViewPresentation(viewPres) {
78147
+ if (!viewPres) {
78148
+ return;
78149
+ }
78150
+ const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
78151
+ if (displayArea !== this.getDisplayArea()) {
78152
+ this.setDisplayArea(displayArea);
78153
+ }
78154
+ this.setZoom(zoom);
78155
+ if (pan) {
78156
+ this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
78157
+ }
78158
+ if (rotation >= 0) {
78159
+ this.setRotation(rotation);
78128
78160
  }
78129
78161
  }
78130
78162
  _shouldUseNativeDataType() {
@@ -78213,15 +78245,15 @@ class Viewport {
78213
78245
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
78214
78246
  /* harmony export */ });
78215
78247
  /* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84441);
78216
- /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
78217
- /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13320);
78218
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88903);
78219
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98362);
78220
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35678);
78221
- /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6203);
78222
- /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83853);
78223
- /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22350);
78224
- /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(97508);
78248
+ /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
78249
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
78250
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
78251
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
78252
+ /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
78253
+ /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
78254
+ /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
78255
+ /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
78256
+ /* harmony import */ var _utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62255);
78225
78257
 
78226
78258
 
78227
78259
 
@@ -78232,43 +78264,34 @@ class Viewport {
78232
78264
 
78233
78265
 
78234
78266
 
78235
- class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A {
78267
+ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A {
78236
78268
  constructor(props) {
78237
78269
  super(props);
78238
78270
  this._useAcquisitionPlaneForViewPlane = false;
78239
78271
  this.getNumberOfSlices = () => {
78240
- const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
78272
+ const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
78241
78273
  return numberOfSlices;
78242
78274
  };
78243
78275
  this.getSliceIndex = () => {
78244
- const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
78276
+ const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
78245
78277
  return imageIndex;
78246
78278
  };
78247
- this.getCurrentImageIdIndex = (volumeId) => {
78248
- const { viewPlaneNormal, focalPoint } = this.getCamera();
78249
- const imageData = this.getImageData(volumeId);
78250
- if (!imageData) {
78251
- return;
78252
- }
78253
- const { origin, direction, spacing } = imageData;
78254
- const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
78255
- const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
78256
- gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
78257
- const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
78258
- return Math.round(Math.abs(distance) / spacingInNormal);
78279
+ this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
78280
+ const { currentStepIndex } = (0,_utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this, volumeId || this.getVolumeId(), useSlabThickness);
78281
+ return currentStepIndex;
78259
78282
  };
78260
78283
  this.getCurrentImageId = () => {
78261
78284
  const actorEntry = this.getDefaultActor();
78262
- if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_5__.actorIsA)(actorEntry, 'vtkVolume')) {
78285
+ if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
78263
78286
  return;
78264
78287
  }
78265
78288
  const { uid } = actorEntry;
78266
- const volume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(uid);
78289
+ const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(uid);
78267
78290
  if (!volume) {
78268
78291
  return;
78269
78292
  }
78270
78293
  const { viewPlaneNormal, focalPoint } = this.getCamera();
78271
- return (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
78294
+ return (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
78272
78295
  };
78273
78296
  this.getSlicePlaneCoordinates = () => {
78274
78297
  const actorEntry = this.getDefaultActor();
@@ -78277,30 +78300,30 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78277
78300
  return [];
78278
78301
  }
78279
78302
  const volumeId = actorEntry.uid;
78280
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeId);
78303
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
78281
78304
  const camera = this.getCamera();
78282
78305
  const { focalPoint, position, viewPlaneNormal } = camera;
78283
- const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
78284
- const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
78306
+ const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
78307
+ const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
78285
78308
  const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
78286
78309
  const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
78287
78310
  const currentSliceIndex = this.getSliceIndex();
78288
78311
  const focalPoints = [];
78289
78312
  for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
78290
- const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
78313
+ const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
78291
78314
  focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
78292
78315
  }
78293
78316
  return focalPoints;
78294
78317
  };
78295
78318
  const { orientation } = this.options;
78296
- if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_4__.OrientationAxis.ACQUISITION) {
78319
+ if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_3__.OrientationAxis.ACQUISITION) {
78297
78320
  this.applyViewOrientation(orientation);
78298
78321
  return;
78299
78322
  }
78300
78323
  this._useAcquisitionPlaneForViewPlane = true;
78301
78324
  }
78302
78325
  async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
78303
- const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
78326
+ const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
78304
78327
  if (!firstImageVolume) {
78305
78328
  throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
78306
78329
  }
@@ -78311,7 +78334,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78311
78334
  return super.setVolumes(volumeInputArray, immediate, suppressEvents);
78312
78335
  }
78313
78336
  async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
78314
- const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
78337
+ const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
78315
78338
  if (!firstImageVolume) {
78316
78339
  throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
78317
78340
  }
@@ -78324,8 +78347,8 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78324
78347
  setOrientation(orientation, immediate = true) {
78325
78348
  let viewPlaneNormal, viewUp;
78326
78349
  if (typeof orientation === 'string') {
78327
- if (_constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[orientation]) {
78328
- ({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[orientation]);
78350
+ if (_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]) {
78351
+ ({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]);
78329
78352
  }
78330
78353
  else if (orientation === 'acquisition') {
78331
78354
  ({ viewPlaneNormal, viewUp } = this._getAcquisitionPlaneOrientation());
@@ -78354,7 +78377,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78354
78377
  return;
78355
78378
  }
78356
78379
  const volumeId = actorEntry.uid;
78357
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeId);
78380
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
78358
78381
  if (!imageVolume) {
78359
78382
  throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
78360
78383
  }
@@ -78399,12 +78422,15 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78399
78422
  this.render();
78400
78423
  }
78401
78424
  }
78402
- resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false) {
78425
+ resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
78426
+ const { orientation } = this.viewportProperties;
78427
+ if (orientation) {
78428
+ this.applyViewOrientation(orientation, false);
78429
+ }
78403
78430
  super.resetCamera(resetPan, resetZoom, resetToCenter);
78404
78431
  this.resetVolumeViewportClippingRange();
78405
78432
  const activeCamera = this.getVtkActiveCamera();
78406
78433
  const viewPlaneNormal = activeCamera.getViewPlaneNormal();
78407
- const viewUp = activeCamera.getViewUp();
78408
78434
  const focalPoint = activeCamera.getFocalPoint();
78409
78435
  const actorEntries = this.getActors();
78410
78436
  actorEntries.forEach((actorEntry) => {
@@ -78417,7 +78443,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78417
78443
  const clipPlane1 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
78418
78444
  const clipPlane2 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
78419
78445
  const newVtkPlanes = [clipPlane1, clipPlane2];
78420
- let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78446
+ let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78421
78447
  if (actorEntry.slabThickness) {
78422
78448
  slabThickness = actorEntry.slabThickness;
78423
78449
  }
@@ -78427,13 +78453,22 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78427
78453
  }
78428
78454
  });
78429
78455
  if (resetRotation &&
78430
- _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
78431
- const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
78456
+ _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
78457
+ const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
78432
78458
  this.setCameraNoEvent({
78433
78459
  viewUp: viewToReset.viewUp,
78434
78460
  viewPlaneNormal: viewToReset.viewPlaneNormal,
78435
78461
  });
78436
78462
  }
78463
+ if (!supressEvents) {
78464
+ const eventDetail = {
78465
+ viewportId: this.id,
78466
+ camera: this.getCamera(),
78467
+ renderingEngineId: this.renderingEngineId,
78468
+ element: this.element,
78469
+ };
78470
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.CAMERA_RESET, eventDetail);
78471
+ }
78437
78472
  return true;
78438
78473
  }
78439
78474
  setSlabThickness(slabThickness, filterActorUIDs = []) {
@@ -78447,7 +78482,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78447
78482
  });
78448
78483
  }
78449
78484
  actorEntries.forEach((actorEntry) => {
78450
- if ((0,_utilities__WEBPACK_IMPORTED_MODULE_5__.actorIsA)(actorEntry, 'vtkVolume')) {
78485
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
78451
78486
  actorEntry.slabThickness = slabThickness;
78452
78487
  }
78453
78488
  });
@@ -78456,6 +78491,27 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78456
78491
  this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
78457
78492
  this.viewportProperties.slabThickness = slabThickness;
78458
78493
  }
78494
+ resetSlabThickness() {
78495
+ const actorEntries = this.getActors();
78496
+ actorEntries.forEach((actorEntry) => {
78497
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
78498
+ actorEntry.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78499
+ }
78500
+ });
78501
+ const currentCamera = this.getCamera();
78502
+ this.updateClippingPlanesForActors(currentCamera);
78503
+ this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
78504
+ this.viewportProperties.slabThickness = undefined;
78505
+ }
78506
+ getViewReference(viewRefSpecifier = {}) {
78507
+ const viewRef = super.getViewReference(viewRefSpecifier);
78508
+ if (!viewRef?.volumeId) {
78509
+ return;
78510
+ }
78511
+ const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(viewRef.volumeId);
78512
+ viewRef.referencedImageId = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, viewRef.cameraFocalPoint, viewRef.viewPlaneNormal);
78513
+ return viewRef;
78514
+ }
78459
78515
  resetProperties(volumeId) {
78460
78516
  this._resetProperties(volumeId);
78461
78517
  }
@@ -78467,20 +78523,20 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78467
78523
  throw new Error(`No actor found for the given volumeId: ${volumeId}`);
78468
78524
  }
78469
78525
  if (volumeActor.slabThickness) {
78470
- volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78526
+ volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78471
78527
  this.viewportProperties.slabThickness = undefined;
78472
78528
  this.updateClippingPlanesForActors(this.getCamera());
78473
78529
  }
78474
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
78530
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
78475
78531
  if (!imageVolume) {
78476
78532
  throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
78477
78533
  }
78478
- (0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
78479
- if ((0,_utilities__WEBPACK_IMPORTED_MODULE_5__.isImageActor)(volumeActor)) {
78534
+ (0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
78535
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.isImageActor)(volumeActor)) {
78480
78536
  const transferFunction = volumeActor.actor
78481
78537
  .getProperty()
78482
78538
  .getRGBTransferFunction(0);
78483
- (0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_8__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
78539
+ (0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
78484
78540
  }
78485
78541
  const eventDetails = {
78486
78542
  ...super.getVOIModifiedEventDetail(volumeId),
@@ -78490,12 +78546,12 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
78490
78546
  const resetToCenter = true;
78491
78547
  const resetCameraRotation = true;
78492
78548
  this.resetCamera(resetPan, resetZoom, resetToCenter, resetCameraRotation);
78493
- (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_4__.Events.VOI_MODIFIED, eventDetails);
78549
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.VOI_MODIFIED, eventDetails);
78494
78550
  }
78495
78551
  getSlicesClippingPlanes() {
78496
78552
  const focalPoints = this.getSlicePlaneCoordinates();
78497
78553
  const { viewPlaneNormal } = this.getCamera();
78498
- const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78554
+ const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
78499
78555
  return focalPoints.map(({ point, sliceIndex }) => {
78500
78556
  const vtkPlanes = [_kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance(), _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance()];
78501
78557
  this.setOrientationOfClippingPlanes(vtkPlanes, slabThickness, viewPlaneNormal, point);
@@ -78558,6 +78614,9 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
78558
78614
  resetProperties(volumeId) {
78559
78615
  return null;
78560
78616
  }
78617
+ resetSlabThickness() {
78618
+ return null;
78619
+ }
78561
78620
  }
78562
78621
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeViewport3D);
78563
78622
 
@@ -79855,8 +79914,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
79855
79914
  }
79856
79915
  /* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
79857
79916
 
79858
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
79859
- var utilities = __webpack_require__(35678);
79917
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
79918
+ var utilities = __webpack_require__(20228);
79860
79919
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
79861
79920
 
79862
79921
 
@@ -80912,8 +80971,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
80912
80971
  return volumeMapper;
80913
80972
  }
80914
80973
 
80915
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
80916
- var utilities = __webpack_require__(35678);
80974
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
80975
+ var utilities = __webpack_require__(20228);
80917
80976
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
80918
80977
  var enums = __webpack_require__(98362);
80919
80978
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
@@ -81026,7 +81085,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
81026
81085
  /* harmony export */ });
81027
81086
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
81028
81087
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
81029
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
81088
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20228);
81030
81089
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
81031
81090
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
81032
81091
 
@@ -81174,7 +81233,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
81174
81233
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
81175
81234
  /* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
81176
81235
  /* harmony export */ });
81177
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
81236
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
81178
81237
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
81179
81238
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
81180
81239
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
@@ -81244,8 +81303,8 @@ var Events = __webpack_require__(11731);
81244
81303
  var renderingEngineCache = __webpack_require__(94070);
81245
81304
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
81246
81305
  var eventTarget = __webpack_require__(51884);
81247
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
81248
- var utilities = __webpack_require__(35678);
81306
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
81307
+ var utilities = __webpack_require__(20228);
81249
81308
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
81250
81309
  var vtkClasses = __webpack_require__(69585);
81251
81310
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
@@ -81577,7 +81636,12 @@ class RenderingEngine {
81577
81636
  const prevCamera = vp.getCamera();
81578
81637
  const rotation = vp.getRotation();
81579
81638
  const { flipHorizontal } = prevCamera;
81580
- vp.resetCamera();
81639
+ const resetPan = true;
81640
+ const resetZoom = true;
81641
+ const resetToCenter = true;
81642
+ const resetRotation = false;
81643
+ const supressEvents = true;
81644
+ vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
81581
81645
  const displayArea = vp.getDisplayArea();
81582
81646
  if (keepCamera) {
81583
81647
  if (displayArea) {
@@ -88235,7 +88299,7 @@ Settings.getDefaultSettings().set('useCursors', true);
88235
88299
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
88236
88300
  /* harmony export */ });
88237
88301
  /* unused harmony export Cache */
88238
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
88302
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
88239
88303
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51884);
88240
88304
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
88241
88305
  /* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77076);
@@ -88251,7 +88315,7 @@ class Cache {
88251
88315
  this._imageCacheSize = 0;
88252
88316
  this._volumeCacheSize = 0;
88253
88317
  this._maxCacheSize = 3 * ONE_GB;
88254
- this._maxInstanceSize = 2 * ONE_GB - 8;
88318
+ this._maxInstanceSize = 4 * ONE_GB - 8;
88255
88319
  this.setMaxCacheSize = (newMaxCacheSize) => {
88256
88320
  if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
88257
88321
  const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
@@ -88717,8 +88781,8 @@ function isTypedArray(obj) {
88717
88781
  obj instanceof Float64Array);
88718
88782
  }
88719
88783
 
88720
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
88721
- var utilities = __webpack_require__(35678);
88784
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
88785
+ var utilities = __webpack_require__(20228);
88722
88786
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
88723
88787
  var vtkClasses = __webpack_require__(69585);
88724
88788
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
@@ -96803,8 +96867,8 @@ async function createAndCacheGeometry(geometryId, options) {
96803
96867
 
96804
96868
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
96805
96869
  var ProgressiveRetrieveImages = __webpack_require__(71090);
96806
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
96807
- var utilities = __webpack_require__(35678);
96870
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
96871
+ var utilities = __webpack_require__(20228);
96808
96872
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
96809
96873
  var triggerEvent = __webpack_require__(13292);
96810
96874
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -96872,8 +96936,8 @@ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{
96872
96936
  var enums = __webpack_require__(98362);
96873
96937
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
96874
96938
  var getRenderingEngine = __webpack_require__(49184);
96875
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
96876
- var utilities = __webpack_require__(35678);
96939
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
96940
+ var utilities = __webpack_require__(20228);
96877
96941
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
96878
96942
  var webWorkerManager = __webpack_require__(61874);
96879
96943
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
@@ -97195,8 +97259,8 @@ const interleavedRetrieveConfiguration = [
97195
97259
 
97196
97260
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
97197
97261
  var imageLoader = __webpack_require__(79220);
97198
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
97199
- var utilities = __webpack_require__(35678);
97262
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
97263
+ var utilities = __webpack_require__(20228);
97200
97264
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
97201
97265
  var imageLoadPoolManager = __webpack_require__(775);
97202
97266
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
@@ -97497,7 +97561,7 @@ __webpack_require__.r(__webpack_exports__);
97497
97561
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
97498
97562
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
97499
97563
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51884);
97500
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
97564
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
97501
97565
  /* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(775);
97502
97566
  /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92136);
97503
97567
 
@@ -97767,7 +97831,7 @@ __webpack_require__.r(__webpack_exports__);
97767
97831
  /* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13292);
97768
97832
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463);
97769
97833
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
97770
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
97834
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
97771
97835
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71702);
97772
97836
  /* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51631);
97773
97837
 
@@ -98064,8 +98128,22 @@ function generateVolumeScalarData(targetBuffer, scalarLength) {
98064
98128
  }
98065
98129
  let volumeScalarData;
98066
98130
  if (targetBuffer?.sharedArrayBuffer) {
98067
- const buffer = new SharedArrayBuffer(numBytes);
98068
- volumeScalarData = new TypedArrayConstructor(buffer);
98131
+ switch (targetBuffer.type) {
98132
+ case 'Float32Array':
98133
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createFloat32SharedArray)(scalarLength);
98134
+ break;
98135
+ case 'Uint8Array':
98136
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint8SharedArray)(scalarLength);
98137
+ break;
98138
+ case 'Uint16Array':
98139
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
98140
+ break;
98141
+ case 'Int16Array':
98142
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
98143
+ break;
98144
+ default:
98145
+ throw new Error('generateVolumeScalarData: SharedArrayBuffer is not supported for the specified target buffer type');
98146
+ }
98069
98147
  }
98070
98148
  else {
98071
98149
  volumeScalarData = new TypedArrayConstructor(scalarLength);
@@ -98155,7 +98233,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
98155
98233
  /* harmony export */ R: () => (/* binding */ RequestPoolManager)
98156
98234
  /* harmony export */ });
98157
98235
  /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15453);
98158
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35678);
98236
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20228);
98159
98237
 
98160
98238
 
98161
98239
  class RequestPoolManager {
@@ -98466,7 +98544,7 @@ function findMatchingColormap(rgbPoints, actor) {
98466
98544
  return false;
98467
98545
  }
98468
98546
  for (let i = 0; i < presetRGBPoints.length; i += 4) {
98469
- if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
98547
+ if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
98470
98548
  return false;
98471
98549
  }
98472
98550
  }
@@ -98495,6 +98573,7 @@ function findMatchingColormap(rgbPoints, actor) {
98495
98573
  }
98496
98574
  return {
98497
98575
  name: matchedColormap.Name,
98576
+ opacity,
98498
98577
  };
98499
98578
  }
98500
98579
 
@@ -98799,6 +98878,73 @@ const getVolumeId = (targetId) => {
98799
98878
  };
98800
98879
 
98801
98880
 
98881
+ /***/ }),
98882
+
98883
+ /***/ 76399:
98884
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
98885
+
98886
+ "use strict";
98887
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
98888
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
98889
+ /* harmony export */ });
98890
+ /* harmony import */ var _getSliceRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51849);
98891
+ /* harmony import */ var _getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94172);
98892
+
98893
+
98894
+ function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
98895
+ const camera = viewport.getCamera();
98896
+ const { focalPoint, viewPlaneNormal } = camera;
98897
+ const { spacingInNormalDirection, actorUID } = (0,_getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(viewport, camera, volumeId, useSlabThickness);
98898
+ if (!actorUID) {
98899
+ throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
98900
+ }
98901
+ const actorEntry = viewport.getActor(actorUID);
98902
+ if (!actorEntry) {
98903
+ console.warn('No actor found for with actorUID of', actorUID);
98904
+ return null;
98905
+ }
98906
+ const volumeActor = actorEntry.actor;
98907
+ const sliceRange = (0,_getSliceRange__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(volumeActor, viewPlaneNormal, focalPoint);
98908
+ return {
98909
+ sliceRange,
98910
+ spacingInNormalDirection,
98911
+ camera,
98912
+ };
98913
+ }
98914
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeSliceRangeInfo);
98915
+
98916
+
98917
+ /***/ }),
98918
+
98919
+ /***/ 62255:
98920
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
98921
+
98922
+ "use strict";
98923
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
98924
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
98925
+ /* harmony export */ });
98926
+ /* harmony import */ var _getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76399);
98927
+
98928
+ function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
98929
+ const { sliceRange, spacingInNormalDirection, camera } = (0,_getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(viewport, volumeId, useSlabThickness);
98930
+ const { min, max, current } = sliceRange;
98931
+ const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
98932
+ const fraction = (current - min) / (max - min);
98933
+ const floatingStepNumber = fraction * numScrollSteps;
98934
+ const currentStepIndex = Math.round(floatingStepNumber);
98935
+ return {
98936
+ numScrollSteps,
98937
+ currentStepIndex,
98938
+ sliceRangeInfo: {
98939
+ sliceRange,
98940
+ spacingInNormalDirection,
98941
+ camera,
98942
+ },
98943
+ };
98944
+ }
98945
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeViewportScrollInfo);
98946
+
98947
+
98802
98948
  /***/ }),
98803
98949
 
98804
98950
  /***/ 73139:
@@ -98818,7 +98964,7 @@ function hasNaNValues(input) {
98818
98964
 
98819
98965
  /***/ }),
98820
98966
 
98821
- /***/ 35678:
98967
+ /***/ 20228:
98822
98968
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
98823
98969
 
98824
98970
  "use strict";
@@ -98829,6 +98975,7 @@ __webpack_require__.r(__webpack_exports__);
98829
98975
  __webpack_require__.d(__webpack_exports__, {
98830
98976
  PointsManager: () => (/* reexport */ PointsManager),
98831
98977
  ProgressiveIterator: () => (/* reexport */ ProgressiveIterator),
98978
+ RLEVoxelMap: () => (/* reexport */ RLEVoxelMap),
98832
98979
  VoxelManager: () => (/* reexport */ VoxelManager),
98833
98980
  actorIsA: () => (/* reexport */ actorCheck/* actorIsA */.N),
98834
98981
  applyPreset: () => (/* reexport */ applyPreset),
@@ -98874,8 +99021,8 @@ __webpack_require__.d(__webpack_exports__, {
98874
99021
  getVoiFromSigmoidRGBTransferFunction: () => (/* reexport */ getVoiFromSigmoidRGBTransferFunction),
98875
99022
  getVolumeActorCorners: () => (/* reexport */ getVolumeActorCorners/* default */.A),
98876
99023
  getVolumeId: () => (/* reexport */ getVolumeId/* getVolumeId */.A),
98877
- getVolumeSliceRangeInfo: () => (/* reexport */ utilities_getVolumeSliceRangeInfo),
98878
- getVolumeViewportScrollInfo: () => (/* reexport */ utilities_getVolumeViewportScrollInfo),
99024
+ getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
99025
+ getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
98879
99026
  getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
98880
99027
  hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters),
98881
99028
  hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
@@ -98884,7 +99031,9 @@ __webpack_require__.d(__webpack_exports__, {
98884
99031
  imageToWorldCoords: () => (/* reexport */ imageToWorldCoords),
98885
99032
  indexWithinDimensions: () => (/* reexport */ indexWithinDimensions),
98886
99033
  invertRgbTransferFunction: () => (/* reexport */ invertRgbTransferFunction),
98887
- isEqual: () => (/* reexport */ isEqual/* default */.A),
99034
+ isEqual: () => (/* reexport */ isEqual/* isEqual */.n4),
99035
+ isEqualAbs: () => (/* reexport */ isEqual/* isEqualAbs */.Ph),
99036
+ isEqualNegative: () => (/* reexport */ isEqual/* isEqualNegative */.WC),
98888
99037
  isImageActor: () => (/* reexport */ actorCheck/* isImageActor */.e),
98889
99038
  isOpposite: () => (/* reexport */ isOpposite),
98890
99039
  isPTPrescaledWithSUV: () => (/* reexport */ utilities_isPTPrescaledWithSUV),
@@ -99315,6 +99464,9 @@ function createUint8SharedArray(length) {
99315
99464
 
99316
99465
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/createFloat32SharedArray.js
99317
99466
 
99467
+ const SMALL_MEMORY_LIMIT = 2 * 1024 * 1024 * 1024 - 2;
99468
+ const BIG_MEMORY_LIMIT = SMALL_MEMORY_LIMIT * 2;
99469
+ const PAGE_SIZE = 65536;
99318
99470
  function createFloat32SharedArray(length) {
99319
99471
  if (!(0,init/* getShouldUseSharedArrayBuffer */.TB)()) {
99320
99472
  throw new Error('Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated');
@@ -99322,8 +99474,20 @@ function createFloat32SharedArray(length) {
99322
99474
  if (window.SharedArrayBuffer === undefined) {
99323
99475
  throw new Error('SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/');
99324
99476
  }
99325
- const sharedArrayBuffer = new SharedArrayBuffer(length * 4);
99326
- return new Float32Array(sharedArrayBuffer);
99477
+ const byteLength = length * 4;
99478
+ if (byteLength < SMALL_MEMORY_LIMIT) {
99479
+ const sharedArrayBuffer = new SharedArrayBuffer(byteLength);
99480
+ return new Float32Array(sharedArrayBuffer);
99481
+ }
99482
+ else if (byteLength < BIG_MEMORY_LIMIT) {
99483
+ const pages = Math.ceil(byteLength / PAGE_SIZE);
99484
+ const memory = new WebAssembly.Memory({
99485
+ initial: pages,
99486
+ maximum: pages,
99487
+ shared: true,
99488
+ });
99489
+ return new Float32Array(memory.buffer, 0, length);
99490
+ }
99327
99491
  }
99328
99492
  /* harmony default export */ const utilities_createFloat32SharedArray = (createFloat32SharedArray);
99329
99493
 
@@ -99714,54 +99878,12 @@ function imageToWorldCoords(imageId, imageCoords) {
99714
99878
  return Array.from(imageCoordsInWorld);
99715
99879
  }
99716
99880
 
99881
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
99882
+ var getVolumeSliceRangeInfo = __webpack_require__(76399);
99883
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
99884
+ var getVolumeViewportScrollInfo = __webpack_require__(62255);
99717
99885
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSliceRange.js
99718
99886
  var getSliceRange = __webpack_require__(51849);
99719
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
99720
-
99721
-
99722
- function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
99723
- const camera = viewport.getCamera();
99724
- const { focalPoint, viewPlaneNormal } = camera;
99725
- const { spacingInNormalDirection, actorUID } = (0,getTargetVolumeAndSpacingInNormalDir/* default */.A)(viewport, camera, volumeId, useSlabThickness);
99726
- if (!actorUID) {
99727
- throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
99728
- }
99729
- const actorEntry = viewport.getActor(actorUID);
99730
- if (!actorEntry) {
99731
- console.warn('No actor found for with actorUID of', actorUID);
99732
- return null;
99733
- }
99734
- const volumeActor = actorEntry.actor;
99735
- const sliceRange = (0,getSliceRange/* default */.A)(volumeActor, viewPlaneNormal, focalPoint);
99736
- return {
99737
- sliceRange,
99738
- spacingInNormalDirection,
99739
- camera,
99740
- };
99741
- }
99742
- /* harmony default export */ const utilities_getVolumeSliceRangeInfo = (getVolumeSliceRangeInfo);
99743
-
99744
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
99745
-
99746
- function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
99747
- const { sliceRange, spacingInNormalDirection, camera } = utilities_getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
99748
- const { min, max, current } = sliceRange;
99749
- const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
99750
- const fraction = (current - min) / (max - min);
99751
- const floatingStepNumber = fraction * numScrollSteps;
99752
- const currentStepIndex = Math.round(floatingStepNumber);
99753
- return {
99754
- numScrollSteps,
99755
- currentStepIndex,
99756
- sliceRangeInfo: {
99757
- sliceRange,
99758
- spacingInNormalDirection,
99759
- camera,
99760
- },
99761
- };
99762
- }
99763
- /* harmony default export */ const utilities_getVolumeViewportScrollInfo = (getVolumeViewportScrollInfo);
99764
-
99765
99887
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/snapFocalPointToSlice.js
99766
99888
 
99767
99889
  function snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, deltaFrames) {
@@ -100662,8 +100784,8 @@ function isValidVolume(imageIds) {
100662
100784
  modality === baseMetadata.modality &&
100663
100785
  columns === baseMetadata.columns &&
100664
100786
  rows === baseMetadata.rows &&
100665
- (0,isEqual/* default */.A)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
100666
- (0,isEqual/* default */.A)(pixelSpacing, baseMetadata.pixelSpacing));
100787
+ (0,isEqual/* default */.Ay)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
100788
+ (0,isEqual/* default */.Ay)(pixelSpacing, baseMetadata.pixelSpacing));
100667
100789
  });
100668
100790
  return validVolume;
100669
100791
  }
@@ -101496,7 +101618,7 @@ class VoxelManager {
101496
101618
  return [scalarData[index++], scalarData[index++], scalarData[index++]];
101497
101619
  }, (index, v) => {
101498
101620
  index *= 3;
101499
- const isChanged = !(0,isEqual/* default */.A)(scalarData[index], v);
101621
+ const isChanged = !(0,isEqual/* default */.Ay)(scalarData[index], v);
101500
101622
  scalarData[index++] = v[0];
101501
101623
  scalarData[index++] = v[1];
101502
101624
  scalarData[index++] = v[2];
@@ -101850,6 +101972,7 @@ function hexToRgb(hex) {
101850
101972
 
101851
101973
 
101852
101974
 
101975
+
101853
101976
 
101854
101977
 
101855
101978
  /***/ }),
@@ -101859,7 +101982,10 @@ function hexToRgb(hex) {
101859
101982
 
101860
101983
  "use strict";
101861
101984
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
101862
- /* harmony export */ A: () => (/* binding */ isEqual)
101985
+ /* harmony export */ Ay: () => (/* binding */ isEqual),
101986
+ /* harmony export */ Ph: () => (/* binding */ isEqualAbs),
101987
+ /* harmony export */ WC: () => (/* binding */ isEqualNegative),
101988
+ /* harmony export */ n4: () => (/* binding */ isEqual)
101863
101989
  /* harmony export */ });
101864
101990
  function areNumbersEqualWithTolerance(num1, num2, tolerance) {
101865
101991
  return Math.abs(num1 - num2) <= tolerance;
@@ -101893,6 +102019,11 @@ function isEqual(v1, v2, tolerance = 1e-5) {
101893
102019
  }
101894
102020
  return false;
101895
102021
  }
102022
+ const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
102023
+ const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
102024
+ const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
102025
+ const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
102026
+
101896
102027
 
101897
102028
 
101898
102029
  /***/ }),
@@ -102132,7 +102263,7 @@ class CentralizedWorkerManager {
102132
102263
  /***/ 54578:
102133
102264
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
102134
102265
 
102135
- !function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):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:p,Z_DATA_ERROR:h,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&&0==(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===h&&(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 p:case h: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|0,o=e>>>16&65535|0,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|0}},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-1^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,p,h,x,b,w,y,k,T,D,S,I,P;const v=e.state;n=e.next_in,I=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=v.dmax,c=v.wsize,u=v.whave,f=v.wnext,d=v.window,m=v.hold,g=v.bits,p=v.lencode,h=v.distcode,x=(1<<v.lenbits)-1,b=(1<<v.distbits)-1;e:do{g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=p[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(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){v.mode=16191;break e}e.msg="invalid literal/length code",v.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=I[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=h[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",v.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=I[n++]<<g,g+=8,g<y&&(m+=I[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",v.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&v.sane){e.msg="invalid distance too far back",v.mode=t;break e}if(D=0,S=d,0===f){if(D+=c-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}else if(f<y){if(D+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[D++]}while(--y);if(D=0,f<k){y=f,k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}}else if(D+=f-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}for(;k>2;)P[o++]=S[D++],P[o++]=S[D++],P[o++]=S[D++],k-=3;k&&(P[o++]=S[D++],k>1&&(P[o++]=S[D++]))}else{D=o-T;do{P[o++]=P[D++],P[o++]=P[D++],P[o++]=P[D++],k-=3}while(k>2);k&&(P[o++]=P[D++],k>1&&(P[o++]=P[D++]))}break}}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),v.hold=m,v.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:p,Z_BUF_ERROR:h,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,D=16199,S=16200,I=16206,P=16209,v=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))},R=(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 M,F,U=!0;const B=e=>{if(U){M=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,M,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}),U=!1}e.lencode=M,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=>R(e,15),e.exports.inflateInit2=R,e.exports.inflate=(e,t)=>{let r,A,L,C,O,R,M,F,U,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,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=r.bits,j=R,G=M,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=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,U-=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,U=0;break;case 16181:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16182;case 16182:for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16183;case 16183:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16184;case 16184:if(1024&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(V=r.length,V>R&&(V=R),V&&(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+V),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,r.length-=V),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,U=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(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}e.adler=r.check=E(F),F=0,U=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,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&U,U-=7&U,r.mode=I;break}for(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}switch(r.last=1&F,F>>>=1,U-=1,3&F){case 0:r.mode=16193;break;case 1:if(B(r),r.mode=D,t===c){F>>>=2,U-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,U-=2;break;case 16193:for(F>>>=7&U,U-=7&U;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,U=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(V=r.length,V){if(V>R&&(V=R),V>M&&(V=M),0===V)break e;L.set(A.subarray(C,C+V),O),R-=V,C+=V,M-=V,O+=V,r.length-=V;break}r.mode=y;break;case 16196:for(;U<14;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(r.nlen=257+(31&F),F>>>=5,U-=5,r.ndist=1+(31&F),F>>>=5,U-=5,r.ncode=4+(15&F),F>>>=4,U-=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(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,U-=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Y<16)F>>>=q,U-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(F>>>=q,U-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],V=3+(3&F),F>>>=2,U-=2}else if(17===Y){for(re=q+3;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=3+(7&F),F>>>=3,U-=3}else{for(re=q+7;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=11+(127&F),F>>>=7,U-=7}if(r.have+V>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;V--;)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=D,t===c)break e;case D:r.mode=S;case S:if(R>=6&&M>=258){e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,o(e,G),O=e.next_out,L=e.output,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Z&&0==(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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=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;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,U-=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(0==(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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=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;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,U-=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===M)break e;if(V=G-M,r.offset>V){if(V=r.offset-V,V>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}V>r.wnext?(V-=r.wnext,$=r.wsize-V):$=r.wnext-V,V>r.length&&(V=r.length),W=r.window}else W=L,$=O-r.offset,V=r.length;V>M&&(V=M),M-=V,r.length-=V;do{L[O++]=W[$++]}while(--V);0===r.length&&(r.mode=S);break;case 16205:if(0===M)break e;L[O++]=r.length,M--,r.mode=S;break;case I:if(r.wrap){for(;U<32;){if(0===R)break e;R--,F|=A[C++]<<U,U+=8}if(G-=M,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,O-G):n(r.check,L,G,O-G)),G=M,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,U=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,U=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case v:return p;default:return m}return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,(r.wsize||G!==e.avail_out&&r.mode<P&&(r.mode<I||t!==s))&&N(e,e.output,e.next_out,G-e.avail_out)?(r.mode=v,p):(j-=e.avail_in,G-=e.avail_out,e.total_in+=j,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,e.next_out-G):n(r.check,L,G,e.next_out-G)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===D||r.mode===T?256:0),(0===j&&0===G||t===s)&&K===u&&(K=h),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 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},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=v,p):(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,p,h,x,b,w,y=0,k=0,T=0,D=0,S=0,I=0,P=0,v=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,R,M,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(S=m,D=t;D>=1&&0===L[D];D--);if(S>D&&(S=D),0===D)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<D&&0===L[T];T++);for(S<T&&(S=T),v=1,y=1;y<=t;y++)if(v<<=1,v-=L[y],v<0)return-1;if(v>0&&(0===e||1!==D))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,I=S,P=0,h=-1,E=1<<S,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(R=0,M=f[k]):f[k]>=w?(R=F[f[k]-w],M=_[f[k]-w]):(R=96,M=0),g=1<<y-P,p=1<<I,T=p;do{p-=g,c[b+(A>>P)+p]=O<<24|R<<16|M|0}while(0!==p);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===D)break;y=i[s+f[k]]}if(y>S&&(A&x)!==h){for(0===P&&(P=S),b+=T,I=y-P,v=1<<I;I+P<D&&(v-=L[I+P],!(v<=0));)I++,v<<=1;if(E+=1<<I,1===e&&E>852||2===e&&E>592)return 1;h=A&x,c[h]=S<<24|I<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=S,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 not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer 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 not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer 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("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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:()=>ke,decodeImageFrame:()=>pe,decodeJPEGBaseline8BitColor:()=>J,default:()=>Dt,external:()=>bt,getImageFrame:()=>he,getMinMax:()=>H,getPixelData:()=>z,internal:()=>B,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ee,wadouri:()=>mt,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:h[`${r}1`],frame:n}}const p={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let h=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=p.isMultiframe(t),h[r]=t},get:function(e){const t=u(e),r=h[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=p._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);h[t]=void 0,x[t]=void 0},purge:function(){h=[],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 D(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 S(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[I(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const I=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function v(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=v(e,"0018602C"),r=v(e,"0018602E"),n=v(e,"00186024"),a=v(e,"00186026");return{regionLocationMinY0:v(e,"0018601A"),regionLocationMaxY1:v(e,"0018601E"),regionLocationMinX0:v(e,"00186018"),regionLocationMaxX1:v(e,"0018601C"),referencePixelX0:v(e,"00186020"),referencePixelY0:v(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:v(e,"0018602A"),referencePhysicalPixelValueX:v(e,"00186028"),regionSpatialFormat:v(e,"00186012"),regionDataType:v(e,"00186014"),regionFlags:v(e,"00186016"),transducerFrequency:v(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=p.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:D(o),sliceThickness:l(o["00180050"]),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=D(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=bt.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?S(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 R={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function M(e){R=Object.assign(R,e)}function F(){return R}const U=function(e,t,r={},n={}){const{cornerstone:a}=bt,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},B={xhrRequest:U,setOptions:M,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function G(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:V}=N.Enums;function $(e,t=!0){return t?e.imageQualityStatus??V.FULL_RESOLUTION:V.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=G(u,m,i),p=$(o,d),h={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:p,done:d};n.add(h,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=G(c,n,{isPartial:!0}),m=$(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=U(s,t,i),{xhr:c}=l;return l.then((function(e){const t=G(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=$(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("decodeRGB: ybrBuffer must not be undefined");if(e.length%2!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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.f4bda803c15bc6359d5f.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 pe=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 he=function(e){const{cornerstone:t}=bt,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}const be={"1.2.840.10008.1.2.1":"application/octet-stream","1.2.840.10008.1.2":"application/octet-stream","1.2.840.10008.1.2.2":"application/octet-stream","1.2.840.10008.1.2.5":"image/dicom-rle"};let we="";function ye(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 ke=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}=bt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=he(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);const u=pe(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,l)=>{u.then((function(l){if(n.skipCreateImage)return t(l);let c=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:r=0,length:a}=n.targetBuffer,o=l.pixelDataLength,i=r,s=null!=a?a:o-i,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(s!==l.pixelDataLength)throw new Error(`target array for image does not have the same length (${s}) as the decoded image length (${l.pixelDataLength}).`);const d=u[t],m=e?new d(e,i,s):new d(l.pixelData);if(s!==l.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");l.pixelData=m,c=!0}c||ye(l);const u=o.metaData.get(i.IMAGE_PLANE,e)||{},m=o.metaData.get(i.VOI_LUT,e)||{},g=o.metaData.get(i.MODALITY_LUT,e)||{},p=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{};if(d){const{rows:e,columns:t}=l;if(be[r]){s.height=l.rows,s.width=l.columns;let e=s.getContext("2d").createImageData(l.columns,l.rows);a||(e={...e,data:new Uint8ClampedArray(l.samplesPerPixel*l.columns*l.rows)}),X(l,e.data,a),l.imageData=e,l.pixelData=e.data,l.pixelDataLength=e.data.length}else if(!a&&l.pixelDataLength===4*e*t){const e=new Uint8Array(l.pixelData.length/4*3);l.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}(l.pixelData,e),l.pixelDataLength=l.pixelData.length}const n=H(l.pixelData);l.smallestPixelValue=n.min,l.largestPixelValue=n.max}const x={imageId:e,color:d,calibration:h,columnPixelSpacing:u.columnPixelSpacing,columns:l.columns,height:l.rows,preScale:l.preScale,intercept:g.rescaleIntercept?g.rescaleIntercept:0,slope:g.rescaleSlope?g.rescaleSlope:1,invert:"MONOCHROME1"===l.photometricInterpretation,minPixelValue:l.smallestPixelValue,maxPixelValue:l.largestPixelValue,rowPixelSpacing:u.rowPixelSpacing,rows:l.rows,sizeInBytes:l.pixelData.byteLength,width:l.columns,windowCenter:m.windowCenter?m.windowCenter[0]:void 0,windowWidth:m.windowWidth?m.windowWidth[0]:void 0,voiLUTFunction:m.voiLUTFunction?m.voiLUTFunction:void 0,decodeTimeInMS:l.decodeTimeInMS,floatPixelData:void 0,imageFrame:l,rgba:d&&a,getPixelData:()=>l.pixelData,getCanvas:void 0,numComps:void 0};var b;if(x.color&&(x.getCanvas=function(){if(we===e)return s;const t=x.columns,r=x.rows;s.height=r,s.width=t;const n=s.getContext("2d"),a=n.createImageData(t,r),o=l.pixelData;if(o.length===t*r*4)for(let e=0;e<o.length;e++)a.data[e]=o[e];else if(o.length===t*r*3){let e=0;for(let t=0;t<o.length;t+=3)a.data[e++]=o[t],a.data[e++]=o[t+1],a.data[e++]=o[t+2],a.data[e++]=255}return l.pixelData=a.data,l.pixelDataLength=a.data.length,l.imageData=a,n.putImageData(l.imageData,0,0),we=e,s}),g.modalityLUTSequence&&g.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(b=p.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==b)&&(x.modalityLUT=g.modalityLUTSequence[0]),m.voiLUTSequence&&m.voiLUTSequence.length>0&&(x.voiLUT=m.voiLUTSequence[0]),x.color&&(x.windowWidth=256,x.windowCenter=128),void 0===x.windowCenter||void 0===x.windowWidth){const e=x.imageFrame.minAfterScale,t=x.imageFrame.maxAfterScale;x.windowWidth=t-e,x.windowCenter=(t+e)/2}t(x)}),l)}))},{ProgressiveIterator:Te}=N.utilities,{ImageQualityStatus:De}=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 Ie(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 Pe(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 ve=function(e,t={}){const r=bt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new Te("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=Te.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=De.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=Ie(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===De.FULL_RESOLUTION?0:Pe(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ke(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 Ee={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:ve,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",ve),e.metaData.addProvider(L)}};function Ae(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 _e(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 Le=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=Ae(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ae(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ae(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=_e(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=_e(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=_e(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Ce(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 Oe=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Ce(e,t.items[n].dataSet);a&&r.push(a)}return r};const Re=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 Fe=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 Ue(e){const{dicomParser:t}=bt;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=Ue(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 Ne(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 je(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 Ge(e){if(qe[e])return qe[e]}function Ve(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const $e={_get:Ge,generateMultiframeWADOURIs:function(e){const t=[],r=Ge(e);if(Ve(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=qe[r]?qe[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return Ve(Ge(e))}};let We=0,qe={},Ze={};function Ye(){return{cacheSizeInBytes:We,numberOfDataSetsCached:Object.keys(qe).length}}const ze={isLoaded:function(e){return void 0!==qe[e]},load:function(e,t=U,r){const{cornerstone:n,dicomParser:a}=bt;if(qe[e])return new Promise((t=>{qe[e].cacheCount++,t(qe[e].dataSet)}));if(Ze[e])return Ze[e].cacheCount++,Ze[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)}qe[e]={dataSet:f,cacheCount:i.cacheCount},We+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ye()})}),l).then((()=>{delete Ze[e]}),(()=>{delete Ze[e]}))}));return i.cacheCount=1,Ze[e]=i,i},unload:function(e){const{cornerstone:t}=bt;qe[e]&&(qe[e].cacheCount--,0===qe[e].cacheCount&&(We-=qe[e].dataSet.byteArray.length,delete qe[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ye()})))},getInfo:Ye,purge:function(){qe={},Ze={},We=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=$e.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=je(t);if(n||r>1){const{shared:r,perFrame:i}=Ne(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else qe[e]&&(t=qe[e].dataSet);return t},update:function(e,t){const r=qe[e];r?(We-=r.dataSet.byteArray.length,r.dataSet=t,We+=t.byteArray.length,bt.cornerstone.triggerEvent(bt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ye()})):console.error(`No loaded dataSet for uri ${e}`)}};function He(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function Qe(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=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Xe(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=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Ke(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Je(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 et=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(Array.isArray(r))return;const o=Fe(r);if(t===n.MULTIFRAME){const e=$e.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=je(e);if(n||r>1){const{shared:e,perFrame:o}=Ne(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=ze.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=He(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:Qe(s),imagePositionPatient:Xe(s),sliceThickness:Je(s),pixelSpacing:Ke(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=Qe(s),t=Xe(s),r=Ke(s),n=Je(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 Le(s);if(t===n.VOI_LUT){const e=Re(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Oe(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Oe(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")}}}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=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):"transferSyntax"===t?{transferSyntaxUID:s.string("x00020010")}: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?S(r,e,P):void 0}};let tt=[];const rt={add:function(e){return"dicomfile:"+(tt.push(e)-1)},get:function(e){return tt[e]},remove:function(e){tt[e]=void 0},purge:function(){tt=[]}};var nt=a(713);function at(e,t){const{dicomParser:r}=bt;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 nt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,nt.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 ot(e,t){return e&1<<t}const it=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]=ot(r,o)?1:0}return n};const st=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 it(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 lt=function(e){const t=Fe(e),r=parseInt(t.url,10),n=rt.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 ct=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?at(e,t):st(e,t):null};function ut(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=ct(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ke(t,u,f,a);!function(e,t){e.decache=function(){const e=Fe(t);ze.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 ft(e){return"dicomweb"===e||"wadouri"===e?U:"dicomfile"===e?lt:void 0}function dt(e,t={}){const r=Fe(e);delete(t=Object.assign({},t)).loader;const n=ft(r.scheme);if(ze.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=ct(e,r),o=e.string("x00020010");c=ke(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}}(ze.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ut(ze.load(r.url,n,e),e,r.frame,r.url,t)}const mt={metaData:{getImagePixelModule:Le,getLUTs:Oe,getModalityLUTOutputPixelRepresentation:Re,getNumberValues:Me,metaDataProvider:et},dataSetCacheManager:ze,fileManager:rt,getEncapsulatedImageFrame:at,getUncompressedImageFrame:st,loadFileRequest:lt,loadImageFromPromise:ut,getLoaderForScheme:ft,loadImage:dt,parseImageId:Fe,unpackBinaryFrame:it,register:function(e){e.registerImageLoader("dicomweb",dt),e.registerImageLoader("wadouri",dt),e.registerImageLoader("dicomfile",dt),e.metaData.addProvider(et)}};const gt=function(e){Ee.register(e),mt.register(e)};let pt,ht;const xt={set cornerstone(e){pt=e,gt(pt)},get cornerstone(){if(!pt){if(pt=window&&window.cornerstone,!pt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");gt(pt)}return pt},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}},bt=xt;function wt(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 yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;let o=e.redPaletteColorLookupTableData;o||(o=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.redPaletteColorLookupTableData);let i=e.greenPaletteColorLookupTableData;i||(i=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.greenPaletteColorLookupTableData);let s=e.bluePaletteColorLookupTableData;if(s||(s=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.bluePaletteColorLookupTableData),!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=e.redPaletteColorLookupTableData.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=wt(o,d),g=wt(i,d),p=wt(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++]=p[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++]=p[e]}}const kt=function(e){M(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},Dt={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:mt,wadors:Ee,configure:kt,convertColorSpace:X,createImage:ke,decodeImageFrame:pe,decodeJPEGBaseline8BitColor:J,getImageFrame:he,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:B,external:xt}})(),o})()));
102266
+ !function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):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:p,Z_DATA_ERROR:h,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&&0==(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===h&&(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 p:case h: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|0,o=e>>>16&65535|0,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|0}},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-1^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,p,h,x,b,w,y,k,T,D,S,I,P;const v=e.state;n=e.next_in,I=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=v.dmax,c=v.wsize,u=v.whave,f=v.wnext,d=v.window,m=v.hold,g=v.bits,p=v.lencode,h=v.distcode,x=(1<<v.lenbits)-1,b=(1<<v.distbits)-1;e:do{g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=p[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(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){v.mode=16191;break e}e.msg="invalid literal/length code",v.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=I[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=h[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",v.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=I[n++]<<g,g+=8,g<y&&(m+=I[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",v.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&v.sane){e.msg="invalid distance too far back",v.mode=t;break e}if(D=0,S=d,0===f){if(D+=c-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}else if(f<y){if(D+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[D++]}while(--y);if(D=0,f<k){y=f,k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}}else if(D+=f-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}for(;k>2;)P[o++]=S[D++],P[o++]=S[D++],P[o++]=S[D++],k-=3;k&&(P[o++]=S[D++],k>1&&(P[o++]=S[D++]))}else{D=o-T;do{P[o++]=P[D++],P[o++]=P[D++],P[o++]=P[D++],k-=3}while(k>2);k&&(P[o++]=P[D++],k>1&&(P[o++]=P[D++]))}break}}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),v.hold=m,v.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:p,Z_BUF_ERROR:h,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,D=16199,S=16200,I=16206,P=16209,v=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))},R=(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 M,F,U=!0;const B=e=>{if(U){M=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,M,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}),U=!1}e.lencode=M,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=>R(e,15),e.exports.inflateInit2=R,e.exports.inflate=(e,t)=>{let r,A,L,C,O,R,M,F,U,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,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=r.bits,j=R,G=M,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=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,U-=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,U=0;break;case 16181:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16182;case 16182:for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16183;case 16183:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0,r.mode=16184;case 16184:if(1024&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=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,U=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(V=r.length,V>R&&(V=R),V&&(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+V),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,r.length-=V),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,U=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(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}e.adler=r.check=E(F),F=0,U=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,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&U,U-=7&U,r.mode=I;break}for(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}switch(r.last=1&F,F>>>=1,U-=1,3&F){case 0:r.mode=16193;break;case 1:if(B(r),r.mode=D,t===c){F>>>=2,U-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,U-=2;break;case 16193:for(F>>>=7&U,U-=7&U;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,U=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(V=r.length,V){if(V>R&&(V=R),V>M&&(V=M),0===V)break e;L.set(A.subarray(C,C+V),O),R-=V,C+=V,M-=V,O+=V,r.length-=V;break}r.mode=y;break;case 16196:for(;U<14;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(r.nlen=257+(31&F),F>>>=5,U-=5,r.ndist=1+(31&F),F>>>=5,U-=5,r.ncode=4+(15&F),F>>>=4,U-=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(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,U-=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Y<16)F>>>=q,U-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(F>>>=q,U-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],V=3+(3&F),F>>>=2,U-=2}else if(17===Y){for(re=q+3;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=3+(7&F),F>>>=3,U-=3}else{for(re=q+7;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=11+(127&F),F>>>=7,U-=7}if(r.have+V>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;V--;)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=D,t===c)break e;case D:r.mode=S;case S:if(R>=6&&M>=258){e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,o(e,G),O=e.next_out,L=e.output,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Z&&0==(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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=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;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,U-=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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(0==(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<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=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;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,U-=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===M)break e;if(V=G-M,r.offset>V){if(V=r.offset-V,V>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}V>r.wnext?(V-=r.wnext,$=r.wsize-V):$=r.wnext-V,V>r.length&&(V=r.length),W=r.window}else W=L,$=O-r.offset,V=r.length;V>M&&(V=M),M-=V,r.length-=V;do{L[O++]=W[$++]}while(--V);0===r.length&&(r.mode=S);break;case 16205:if(0===M)break e;L[O++]=r.length,M--,r.mode=S;break;case I:if(r.wrap){for(;U<32;){if(0===R)break e;R--,F|=A[C++]<<U,U+=8}if(G-=M,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,O-G):n(r.check,L,G,O-G)),G=M,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,U=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,U=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case v:return p;default:return m}return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,(r.wsize||G!==e.avail_out&&r.mode<P&&(r.mode<I||t!==s))&&N(e,e.output,e.next_out,G-e.avail_out)?(r.mode=v,p):(j-=e.avail_in,G-=e.avail_out,e.total_in+=j,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,e.next_out-G):n(r.check,L,G,e.next_out-G)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===D||r.mode===T?256:0),(0===j&&0===G||t===s)&&K===u&&(K=h),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 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},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=v,p):(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,p,h,x,b,w,y=0,k=0,T=0,D=0,S=0,I=0,P=0,v=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,R,M,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(S=m,D=t;D>=1&&0===L[D];D--);if(S>D&&(S=D),0===D)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<D&&0===L[T];T++);for(S<T&&(S=T),v=1,y=1;y<=t;y++)if(v<<=1,v-=L[y],v<0)return-1;if(v>0&&(0===e||1!==D))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,I=S,P=0,h=-1,E=1<<S,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(R=0,M=f[k]):f[k]>=w?(R=F[f[k]-w],M=_[f[k]-w]):(R=96,M=0),g=1<<y-P,p=1<<I,T=p;do{p-=g,c[b+(A>>P)+p]=O<<24|R<<16|M|0}while(0!==p);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===D)break;y=i[s+f[k]]}if(y>S&&(A&x)!==h){for(0===P&&(P=S),b+=T,I=y-P,v=1<<I;I+P<D&&(v-=L[I+P],!(v<=0));)I++,v<<=1;if(E+=1<<I,1===e&&E>852||2===e&&E>592)return 1;h=A&x,c[h]=S<<24|I<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=S,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 not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer 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 not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer 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("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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:()=>ke,decodeImageFrame:()=>pe,decodeJPEGBaseline8BitColor:()=>J,default:()=>Dt,external:()=>bt,getImageFrame:()=>he,getMinMax:()=>H,getPixelData:()=>z,internal:()=>B,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ee,wadouri:()=>mt,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:h[`${r}1`],frame:n}}const p={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let h=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=p.isMultiframe(t),h[r]=t},get:function(e){const t=u(e),r=h[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=p._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);h[t]=void 0,x[t]=void 0},purge:function(){h=[],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 D(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 S(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[I(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const I=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function v(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=v(e,"0018602C"),r=v(e,"0018602E"),n=v(e,"00186024"),a=v(e,"00186026");return{regionLocationMinY0:v(e,"0018601A"),regionLocationMaxY1:v(e,"0018601E"),regionLocationMinX0:v(e,"00186018"),regionLocationMaxX1:v(e,"0018601C"),referencePixelX0:v(e,"00186020"),referencePixelY0:v(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:v(e,"0018602A"),referencePhysicalPixelValueX:v(e,"00186028"),regionSpatialFormat:v(e,"00186012"),regionDataType:v(e,"00186014"),regionFlags:v(e,"00186016"),transducerFrequency:v(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=p.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:D(o),sliceThickness:l(o["00180050"]),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=D(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=bt.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?S(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 R={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function M(e){R=Object.assign(R,e)}function F(){return R}const U=function(e,t,r={},n={}){const{cornerstone:a}=bt,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},B={xhrRequest:U,setOptions:M,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function G(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:V}=N.Enums;function $(e,t=!0){return t?e.imageQualityStatus??V.FULL_RESOLUTION:V.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=G(u,m,i),p=$(o,d),h={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:p,done:d};n.add(h,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=G(c,n,{isPartial:!0}),m=$(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=U(s,t,i),{xhr:c}=l;return l.then((function(e){const t=G(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=$(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("decodeRGB: ybrBuffer must not be undefined");if(e.length%2!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble 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.f4bda803c15bc6359d5f.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 pe=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 he=function(e){const{cornerstone:t}=bt,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}const be={"1.2.840.10008.1.2.1":"application/octet-stream","1.2.840.10008.1.2":"application/octet-stream","1.2.840.10008.1.2.2":"application/octet-stream","1.2.840.10008.1.2.5":"image/dicom-rle"};let we="";function ye(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 ke=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}=bt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=he(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);const u=pe(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,l)=>{u.then((function(l){if(n.skipCreateImage)return t(l);let c=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:r=0,length:a}=n.targetBuffer,o=l.pixelDataLength,i=r,s=null!=a?a:o-i,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(s!==l.pixelDataLength)throw new Error(`target array for image does not have the same length (${s}) as the decoded image length (${l.pixelDataLength}).`);const d=u[t],m=e?new d(e,i,s):new d(l.pixelData);if(s!==l.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");l.pixelData=m,c=!0}c||ye(l);const u=o.metaData.get(i.IMAGE_PLANE,e)||{},m=o.metaData.get(i.VOI_LUT,e)||{},g=o.metaData.get(i.MODALITY_LUT,e)||{},p=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{};if(d){const{rows:e,columns:t}=l;if(be[r]){s.height=l.rows,s.width=l.columns;let e=s.getContext("2d").createImageData(l.columns,l.rows);a||(e={...e,data:new Uint8ClampedArray(l.samplesPerPixel*l.columns*l.rows)}),X(l,e.data,a),l.imageData=e,l.pixelData=e.data,l.pixelDataLength=e.data.length}else if(!a&&l.pixelDataLength===4*e*t){const e=new Uint8Array(l.pixelData.length/4*3);l.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}(l.pixelData,e),l.pixelDataLength=l.pixelData.length}const n=H(l.pixelData);l.smallestPixelValue=n.min,l.largestPixelValue=n.max}const x={imageId:e,color:d,calibration:h,columnPixelSpacing:u.columnPixelSpacing,columns:l.columns,height:l.rows,preScale:l.preScale,intercept:g.rescaleIntercept?g.rescaleIntercept:0,slope:g.rescaleSlope?g.rescaleSlope:1,invert:"MONOCHROME1"===l.photometricInterpretation,minPixelValue:l.smallestPixelValue,maxPixelValue:l.largestPixelValue,rowPixelSpacing:u.rowPixelSpacing,rows:l.rows,sizeInBytes:l.pixelData.byteLength,width:l.columns,windowCenter:m.windowCenter?m.windowCenter[0]:void 0,windowWidth:m.windowWidth?m.windowWidth[0]:void 0,voiLUTFunction:m.voiLUTFunction?m.voiLUTFunction:void 0,decodeTimeInMS:l.decodeTimeInMS,floatPixelData:void 0,imageFrame:l,rgba:d&&a,getPixelData:()=>l.pixelData,getCanvas:void 0,numComps:void 0};var b;if(x.color&&(x.getCanvas=function(){if(we===e)return s;const t=x.columns,r=x.rows;s.height=r,s.width=t;const n=s.getContext("2d"),a=n.createImageData(t,r),o=l.pixelData;if(o.length===t*r*4)for(let e=0;e<o.length;e++)a.data[e]=o[e];else if(o.length===t*r*3){let e=0;for(let t=0;t<o.length;t+=3)a.data[e++]=o[t],a.data[e++]=o[t+1],a.data[e++]=o[t+2],a.data[e++]=255}return l.pixelData=a.data,l.pixelDataLength=a.data.length,l.imageData=a,n.putImageData(l.imageData,0,0),we=e,s}),g.modalityLUTSequence&&g.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(b=p.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==b)&&(x.modalityLUT=g.modalityLUTSequence[0]),m.voiLUTSequence&&m.voiLUTSequence.length>0&&(x.voiLUT=m.voiLUTSequence[0]),x.color&&(x.windowWidth=256,x.windowCenter=128),void 0===x.windowCenter||void 0===x.windowWidth){const e=x.imageFrame.minAfterScale,t=x.imageFrame.maxAfterScale;x.windowWidth=t-e,x.windowCenter=(t+e)/2}t(x)}),l)}))},{ProgressiveIterator:Te}=N.utilities,{ImageQualityStatus:De}=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 Ie(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 Pe(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 ve=function(e,t={}){const r=bt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new Te("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=Te.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=De.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=Ie(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===De.FULL_RESOLUTION?0:Pe(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ke(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 Ee={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:ve,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",ve),e.metaData.addProvider(L)}};function Ae(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 _e(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 Le=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=Ae(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ae(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ae(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=_e(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=_e(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=_e(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Ce(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 Oe=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Ce(e,t.items[n].dataSet);a&&r.push(a)}return r};const Re=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 Fe=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 Ue(e){const{dicomParser:t}=bt;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=Ue(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 Ne(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 je(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 Ge(e){if(qe[e])return qe[e]}function Ve(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const $e={_get:Ge,generateMultiframeWADOURIs:function(e){const t=[],r=Ge(e);if(Ve(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=qe[r]?qe[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return Ve(Ge(e))}};let We=0,qe={},Ze={};function Ye(){return{cacheSizeInBytes:We,numberOfDataSetsCached:Object.keys(qe).length}}const ze={isLoaded:function(e){return void 0!==qe[e]},load:function(e,t=U,r){const{cornerstone:n,dicomParser:a}=bt;if(qe[e])return new Promise((t=>{qe[e].cacheCount++,t(qe[e].dataSet)}));if(Ze[e])return Ze[e].cacheCount++,Ze[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)}qe[e]={dataSet:f,cacheCount:i.cacheCount},We+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ye()})}),l).then((()=>{delete Ze[e]}),(()=>{delete Ze[e]}))}));return i.cacheCount=1,Ze[e]=i,i},unload:function(e){const{cornerstone:t}=bt;qe[e]&&(qe[e].cacheCount--,0===qe[e].cacheCount&&(We-=qe[e].dataSet.byteArray.length,delete qe[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ye()})))},getInfo:Ye,purge:function(){qe={},Ze={},We=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=$e.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=je(t);if(n||r>1){const{shared:r,perFrame:i}=Ne(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else qe[e]&&(t=qe[e].dataSet);return t},update:function(e,t){const r=qe[e];r?(We-=r.dataSet.byteArray.length,r.dataSet=t,We+=t.byteArray.length,bt.cornerstone.triggerEvent(bt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ye()})):console.error(`No loaded dataSet for uri ${e}`)}};function He(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function Qe(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=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Xe(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=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Ke(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Je(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 et=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(Array.isArray(r))return;const o=Fe(r);if(t===n.MULTIFRAME){const e=$e.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=je(e);if(n||r>1){const{shared:e,perFrame:o}=Ne(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=ze.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=He(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:Qe(s),imagePositionPatient:Xe(s),sliceThickness:Je(s),pixelSpacing:Ke(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=Qe(s),t=Xe(s),r=Ke(s),n=Je(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 Le(s);if(t===n.VOI_LUT){const e=Re(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Oe(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Oe(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?S(r,e,P):void 0}};let tt=[];const rt={add:function(e){return"dicomfile:"+(tt.push(e)-1)},get:function(e){return tt[e]},remove:function(e){tt[e]=void 0},purge:function(){tt=[]}};var nt=a(713);function at(e,t){const{dicomParser:r}=bt;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 nt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,nt.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 ot(e,t){return e&1<<t}const it=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]=ot(r,o)?1:0}return n};const st=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 it(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 lt=function(e){const t=Fe(e),r=parseInt(t.url,10),n=rt.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 ct=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?at(e,t):st(e,t):null};function ut(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=ct(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ke(t,u,f,a);!function(e,t){e.decache=function(){const e=Fe(t);ze.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 ft(e){return"dicomweb"===e||"wadouri"===e?U:"dicomfile"===e?lt:void 0}function dt(e,t={}){const r=Fe(e);delete(t=Object.assign({},t)).loader;const n=ft(r.scheme);if(ze.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=ct(e,r),o=e.string("x00020010");c=ke(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}}(ze.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ut(ze.load(r.url,n,e),e,r.frame,r.url,t)}const mt={metaData:{getImagePixelModule:Le,getLUTs:Oe,getModalityLUTOutputPixelRepresentation:Re,getNumberValues:Me,metaDataProvider:et},dataSetCacheManager:ze,fileManager:rt,getEncapsulatedImageFrame:at,getUncompressedImageFrame:st,loadFileRequest:lt,loadImageFromPromise:ut,getLoaderForScheme:ft,loadImage:dt,parseImageId:Fe,unpackBinaryFrame:it,register:function(e){e.registerImageLoader("dicomweb",dt),e.registerImageLoader("wadouri",dt),e.registerImageLoader("dicomfile",dt),e.metaData.addProvider(et)}};const gt=function(e){Ee.register(e),mt.register(e)};let pt,ht;const xt={set cornerstone(e){pt=e,gt(pt)},get cornerstone(){if(!pt){if(pt=window&&window.cornerstone,!pt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");gt(pt)}return pt},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}},bt=xt;function wt(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 yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;let o=e.redPaletteColorLookupTableData;o||(o=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.redPaletteColorLookupTableData);let i=e.greenPaletteColorLookupTableData;i||(i=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.greenPaletteColorLookupTableData);let s=e.bluePaletteColorLookupTableData;if(s||(s=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.bluePaletteColorLookupTableData),!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=e.redPaletteColorLookupTableData.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=wt(o,d),g=wt(i,d),p=wt(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++]=p[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++]=p[e]}}const kt=function(e){M(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},Dt={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:mt,wadors:Ee,configure:kt,convertColorSpace:X,createImage:ke,decodeImageFrame:pe,decodeJPEGBaseline8BitColor:J,getImageFrame:he,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:B,external:xt}})(),o})()));
102136
102267
 
102137
102268
 
102138
102269
  /***/ }),
@@ -258059,7 +258190,7 @@ var selectOrdinal = function selectOrdinal() {
258059
258190
  /******/ // This function allow to reference async chunks
258060
258191
  /******/ __webpack_require__.u = (chunkId) => {
258061
258192
  /******/ // return url for filenames based on template
258062
- /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"7":"3a17fe8266b2149334a6","41":"faaf3b05d1083e3c8831","54":"829e14ec12c2b41a4323","94":"ecaaba845625d93bad6b","109":"b4fee2a22b622839baf5","121":"a6063e0272df61cefccc","188":"b31173cb165eb21c3ec6","206":"e98e6ba9bfd9f36dc508","236":"4ca7987e1d57f60ec13a","295":"9926ff25c6dbf53845b1","297":"194d8985ab974839b5b6","321":"07e853e559665d6e15b6","325":"47f5b8a085837ee6b512","342":"340982440de15f540a89","445":"38c6d2af64e41cd7c614","448":"94a6da9fac68fc69f8c2","473":"6cd4be953853f35b29c3","481":"a2b01ffe06a262fa9375","483":"a353efc5a5dd563c903c","487":"71a2893d94d214741e13","525":"d3a56dc9f62df5e11019","530":"207b38c15c4c01e4db0e","544":"b005b8c8b9b08aaa3324","572":"1799686b019040500219","574":"88b619217339b5e93d3e","584":"25f8b85eab9ec06da48d","594":"01b124740b2b3f8a6d20","633":"ff1a1d0bdb0d1ef143af","644":"1e77691d2eeb96a423b0","669":"84745782e36f25eb05bc","699":"8210579412d62beafa91","722":"2547630541b670f10d6e","724":"519141a0c4d0d1a3192a","726":"c8de818cf1a3ff0cf7d2","783":"86c38ee55f4d01b111ca","806":"50e039eb624382ee1fce","835":"4c0eaa2c1a427ee41817","862":"4a0bd82b803ba158018f","889":"9fbab4f0bbf643306879","905":"7e940707e10096970ca1","907":"f5aa0414d0f77e575a1f","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"ff7da8afd7d8495d0bbe"}[chunkId] + ".js";
258193
+ /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"54":"829e14ec12c2b41a4323","94":"b4f45b237188a8550a35","109":"b4fee2a22b622839baf5","121":"b582314ec0024fdf2d15","236":"d3a631d79ee8952e3c60","243":"866dc990219240efa81f","295":"9926ff25c6dbf53845b1","297":"194d8985ab974839b5b6","325":"d8bf863ddebb832dcaab","342":"67c49f2e52829a5696a4","367":"6a0746aeca702ae6eba6","370":"baa389d217c390b0e92b","390":"504391bda56219cc9ef9","445":"38c6d2af64e41cd7c614","448":"67539d1552db51aaca85","481":"a2b01ffe06a262fa9375","483":"016de3c3ec209d9fa42a","487":"3f0e64e16189f92fcebc","525":"d3a56dc9f62df5e11019","530":"17b9a34fefff133e5379","544":"4d1fb477b572f50f4220","550":"41e6a1eacc49db2358c5","572":"b0392069f29e128b4efa","574":"0bcd9d70f4b1eea48082","584":"f823d84fae4ce6865f9a","644":"1e77691d2eeb96a423b0","682":"066197792e6a0d01b669","699":"428f20dd60662f1e5edd","721":"d21827d733e8811e0b18","722":"1242e0348afc63ca4f5e","726":"c8de818cf1a3ff0cf7d2","776":"981d8227b59f97f11dd8","783":"c5b7e2433ecb9d8e2541","835":"4c0eaa2c1a427ee41817","862":"7a102f04ef4d12686894","889":"ed8937ba0c5455ed894d","905":"b101088a20887c27945d","907":"e8d22a858051cd255c9c","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"b86b71c712fa83e526d3","981":"7b03f5a200c7dbcbaf1d","989":"e81da55a6954a12e5ea1","998":"37015da90e590043cda0"}[chunkId] + ".js";
258063
258194
  /******/ };
258064
258195
  /******/ })();
258065
258196
  /******/
@@ -258230,7 +258361,7 @@ var selectOrdinal = function selectOrdinal() {
258230
258361
  /******/ };
258231
258362
  /******/
258232
258363
  /******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
258233
- /******/ var cssChunks = {"321":1,"325":1,"481":1,"544":1,"574":1,"633":1};
258364
+ /******/ var cssChunks = {"325":1,"481":1,"544":1,"550":1,"574":1,"998":1};
258234
258365
  /******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
258235
258366
  /******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
258236
258367
  /******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
@@ -258354,20 +258485,17 @@ var selectOrdinal = function selectOrdinal() {
258354
258485
  /******/ /* webpack/runtime/chunk prefetch trigger */
258355
258486
  /******/ (() => {
258356
258487
  /******/ var chunkToChildrenMap = {
258357
- /******/ "188": [
258488
+ /******/ "243": [
258358
258489
  /******/ 121
258359
258490
  /******/ ],
258360
- /******/ "321": [
258361
- /******/ 574
258362
- /******/ ],
258363
258491
  /******/ "325": [
258364
258492
  /******/ 530,
258365
258493
  /******/ 862
258366
258494
  /******/ ],
258367
- /******/ "633": [
258368
- /******/ 295
258495
+ /******/ "550": [
258496
+ /******/ 574
258369
258497
  /******/ ],
258370
- /******/ "669": [
258498
+ /******/ "721": [
258371
258499
  /******/ 530
258372
258500
  /******/ ],
258373
258501
  /******/ "907": [
@@ -258375,6 +258503,9 @@ var selectOrdinal = function selectOrdinal() {
258375
258503
  /******/ ],
258376
258504
  /******/ "961": [
258377
258505
  /******/ 939
258506
+ /******/ ],
258507
+ /******/ "998": [
258508
+ /******/ 295
258378
258509
  /******/ ]
258379
258510
  /******/ };
258380
258511
  /******/ __webpack_require__.f.prefetch = (chunkId, promises) => (Promise.all(promises).then(() => {