@ohif/app 3.7.0-beta.11 → 3.7.0-beta.110

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 (66) hide show
  1. package/dist/{917.bundle.b9983325adf849bff6fd.js → 12.bundle.5ea15cb6633d8028e47d.js} +6 -6
  2. package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.253395f320b72180da63.js} +6 -6
  3. package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.ceb057236403bcb630ac.js} +226 -204
  4. package/dist/{351.css → 181.css} +1 -1
  5. package/dist/{744.bundle.4c4b884f90eb70482821.js → 19.bundle.03f809886c36c388d05c.js} +240 -381
  6. package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.d3490836f71e001dd30f.js} +2089 -692
  7. package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
  8. package/dist/221.bundle.dc6dac346d724d6baeae.js +1779 -0
  9. package/dist/221.css +2 -0
  10. package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
  11. package/dist/{976.bundle.9cc2382162214ea0af2b.js → 236.bundle.7b906cd27864d65f32c0.js} +89 -105
  12. package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.8084960e3318cda37317.js} +52 -36
  13. package/dist/{973.bundle.4584df05b320b94cace5.js → 281.bundle.c9854cc25c839e49c2c8.js} +18 -14
  14. package/dist/{82.bundle.9a0e7f08d4bce18d302f.js → 342.bundle.7d6c1e6bda1c67d729a7.js} +1802 -489
  15. package/dist/{404.bundle.3d65ff813eead20462d3.js → 359.bundle.72d017719489ff11057b.js} +47 -134
  16. package/dist/{192.bundle.950e5380ea63c6d635d5.js → 370.bundle.e55d75ff1bdccee16cde.js} +117 -103
  17. package/dist/{790.bundle.7327fec7833ceea2784b.js → 410.bundle.5b41c68cb0f210a83f13.js} +11 -9
  18. package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.af0a207c29b109f84159.js} +49 -17
  19. package/dist/{569.bundle.c8e771a8d28e237b32be.js → 451.bundle.9fd36f52ff69594f0669.js} +86 -106
  20. package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.b3d77b83b1593c09a504.js} +78 -99
  21. package/dist/{199.bundle.f50ffd85a4334de2f5c1.js → 506.bundle.468dc6db2a9bfa96bb44.js} +11 -9
  22. package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 530.bundle.a03b6f942ace3e1baa1e.js} +726 -447
  23. package/dist/579.css +1 -0
  24. package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
  25. package/dist/613.bundle.74d59dec1983ef3efcdc.js +532 -0
  26. package/dist/{984.bundle.119557c018e6371b4628.js → 663.bundle.a6196baf5853e7d3f7c7.js} +68 -38
  27. package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.dccef1f36e4bc79bcc48.js} +6 -6
  28. package/dist/{50.bundle.65ff60818862eda39d12.js → 687.bundle.e2c9c42ad3989a14d513.js} +218 -9
  29. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 743.bundle.489f7df3a089d4d374e1.js} +26294 -21326
  30. package/dist/757.bundle.ec8301d8e70d2b990f65.js +17067 -0
  31. package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.4b2dc46a35012b898e1a.js} +95 -64
  32. package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
  33. package/dist/{283.bundle.1015e87c3a47b1f1379c.js → 788.bundle.f4493409508bdffa7af8.js} +120 -370
  34. package/dist/{642.bundle.8905e515ce593e57ceb1.js → 814.bundle.10a2cbf02b044387e68b.js} +6 -6
  35. package/dist/{707.bundle.f774f3e4a687ddd60a32.js → 82.bundle.9c6461625afd2e38b997.js} +1203 -804
  36. package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.891f2e57b1b7bc2f4cb4.js} +81 -34
  37. package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.4b3a7f2079d085fdbcb3.js} +34 -29
  38. package/dist/945.min.worker.js +1 -1
  39. package/dist/945.min.worker.js.map +1 -1
  40. package/dist/{270.bundle.4564621556b0f963a004.js → 957.bundle.9ea4506963ef8b2d84ba.js} +7095 -979
  41. package/dist/{208.bundle.7f610a302dc54c4924da.js → 99.bundle.334c4bd4e4e81aaf45ad.js} +86 -105
  42. package/dist/_redirects +1 -1
  43. package/dist/app-config.js +35 -17
  44. package/dist/app.bundle.css +13 -12
  45. package/dist/{app.bundle.3d598a4738bdc22950d3.js → app.bundle.fd6ac18b8874825722a0.js} +72771 -67313
  46. package/dist/assets/yandex-browser-manifest.json +1 -1
  47. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  48. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  49. package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
  50. package/dist/es6-shim.min.js +3569 -2
  51. package/dist/google.js +8 -7
  52. package/dist/index.html +2 -1
  53. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
  54. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
  55. package/dist/init-service-worker.js +3 -5
  56. package/dist/oidc-client.min.js +10857 -39
  57. package/dist/polyfill.min.js +184 -1
  58. package/dist/silent-refresh.html +18 -9
  59. package/dist/sw.js +1 -1
  60. package/package.json +21 -22
  61. package/dist/616.bundle.de530ae226dfa5573f6e.js +0 -685
  62. package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
  63. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  64. /package/dist/{806.css → 19.css} +0 -0
  65. /package/dist/{55.css → 250.css} +0 -0
  66. /package/dist/{707.css → 82.css} +0 -0
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[799],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[822],{
3
3
 
4
- /***/ 91799:
4
+ /***/ 86822:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32735);
12
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60216);
11
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48501);
15
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28619);
16
- /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21572);
17
- /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57270);
18
- /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43418);
19
- /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(77331);
14
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71771);
15
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71783);
16
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69190);
17
+ /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14957);
18
+ /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41832);
19
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(3743);
20
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
21
 
22
22
 
@@ -32,30 +32,29 @@ const {
32
32
  function TrackedCornerstoneViewport(props) {
33
33
  const {
34
34
  displaySets,
35
- viewportIndex,
35
+ viewportId,
36
36
  viewportLabel,
37
37
  servicesManager,
38
- extensionManager,
39
- viewportOptions
38
+ extensionManager
40
39
  } = props;
41
40
  const {
42
41
  t
43
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('TrackedViewport');
42
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('Common');
44
43
  const {
45
44
  measurementService,
46
- cornerstoneViewportService
45
+ cornerstoneViewportService,
46
+ viewportGridService
47
47
  } = servicesManager.services;
48
48
 
49
49
  // Todo: handling more than one displaySet on the same viewport
50
50
  const displaySet = displaySets[0];
51
- const [trackedMeasurements] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
51
+ const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
52
52
  const [isTracked, setIsTracked] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
53
53
  const [trackedMeasurementUID, setTrackedMeasurementUID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
54
54
  const [viewportElem, setViewportElem] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
55
55
  const {
56
56
  trackedSeries
57
57
  } = trackedMeasurements.context;
58
- const viewportId = viewportOptions.viewportId;
59
58
  const {
60
59
  SeriesDate,
61
60
  SeriesDescription,
@@ -69,10 +68,11 @@ function TrackedCornerstoneViewport(props) {
69
68
  PatientAge,
70
69
  SliceThickness,
71
70
  SpacingBetweenSlices,
71
+ StudyDate,
72
72
  ManufacturerModelName
73
73
  } = displaySet.images[0];
74
74
  const updateIsTracked = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
75
- const viewport = cornerstoneViewportService.getCornerstoneViewportByIndex(viewportIndex);
75
+ const viewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
76
76
  if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.BaseVolumeViewport) {
77
77
  // A current image id will only exist for volume viewports that can have measurements tracked.
78
78
  // Typically these are those volume viewports for the series of acquisition.
@@ -87,7 +87,7 @@ function TrackedCornerstoneViewport(props) {
87
87
  if (trackedSeries.includes(SeriesInstanceUID) !== isTracked) {
88
88
  setIsTracked(!isTracked);
89
89
  }
90
- }, [isTracked, trackedMeasurements, viewportIndex, SeriesInstanceUID]);
90
+ }, [isTracked, trackedMeasurements, viewportId, SeriesInstanceUID]);
91
91
  const onElementEnabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(evt => {
92
92
  if (evt.detail.element !== viewportElem) {
93
93
  // The VOLUME_VIEWPORT_NEW_VOLUME event allows updateIsTracked to reliably fetch the image id for a volume viewport.
@@ -103,7 +103,7 @@ function TrackedCornerstoneViewport(props) {
103
103
  const {
104
104
  unsubscribe
105
105
  } = cornerstoneViewportService.subscribe(cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED, props => {
106
- if (props.viewportIndex !== viewportIndex) {
106
+ if (props.viewportId !== viewportId) {
107
107
  return;
108
108
  }
109
109
  updateIsTracked();
@@ -111,7 +111,7 @@ function TrackedCornerstoneViewport(props) {
111
111
  return () => {
112
112
  unsubscribe();
113
113
  };
114
- }, [updateIsTracked, viewportIndex]);
114
+ }, [updateIsTracked, viewportId]);
115
115
  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
116
116
  if (isTracked) {
117
117
  _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {
@@ -132,13 +132,60 @@ function TrackedCornerstoneViewport(props) {
132
132
  _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {});
133
133
  };
134
134
  }, [isTracked]);
135
+
136
+ /**
137
+ * The effect for listening to measurement service measurement added events
138
+ * and in turn firing an event to update the measurement tracking state machine.
139
+ * The TrackedCornerstoneViewport is the best place for this because when
140
+ * a measurement is added, at least one TrackedCornerstoneViewport will be in
141
+ * the DOM and thus can react to the events fired.
142
+ */
143
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
144
+ const added = measurementService.EVENTS.MEASUREMENT_ADDED;
145
+ const addedRaw = measurementService.EVENTS.RAW_MEASUREMENT_ADDED;
146
+ const subscriptions = [];
147
+ [added, addedRaw].forEach(evt => {
148
+ subscriptions.push(measurementService.subscribe(evt, _ref => {
149
+ let {
150
+ source,
151
+ measurement
152
+ } = _ref;
153
+ const {
154
+ activeViewportId
155
+ } = viewportGridService.getState();
156
+
157
+ // Each TrackedCornerstoneViewport receives the MeasurementService's events.
158
+ // Only send the tracked measurements event for the active viewport to avoid
159
+ // sending it more than once.
160
+ if (viewportId === activeViewportId) {
161
+ const {
162
+ referenceStudyUID: StudyInstanceUID,
163
+ referenceSeriesUID: SeriesInstanceUID
164
+ } = measurement;
165
+ sendTrackedMeasurementsEvent('SET_DIRTY', {
166
+ SeriesInstanceUID
167
+ });
168
+ sendTrackedMeasurementsEvent('TRACK_SERIES', {
169
+ viewportId,
170
+ StudyInstanceUID,
171
+ SeriesInstanceUID
172
+ });
173
+ }
174
+ }).unsubscribe);
175
+ });
176
+ return () => {
177
+ subscriptions.forEach(unsub => {
178
+ unsub();
179
+ });
180
+ };
181
+ }, [measurementService, sendTrackedMeasurementsEvent, viewportId, viewportGridService]);
135
182
  function switchMeasurement(direction) {
136
183
  const newTrackedMeasurementUID = _getNextMeasurementUID(direction, servicesManager, trackedMeasurementUID, trackedMeasurements);
137
184
  if (!newTrackedMeasurementUID) {
138
185
  return;
139
186
  }
140
187
  setTrackedMeasurementUID(newTrackedMeasurementUID);
141
- measurementService.jumpToMeasurement(viewportIndex, newTrackedMeasurementUID);
188
+ measurementService.jumpToMeasurement(viewportId, newTrackedMeasurementUID);
142
189
  }
143
190
  const getCornerstoneViewport = () => {
144
191
  const {
@@ -159,8 +206,7 @@ function TrackedCornerstoneViewport(props) {
159
206
  getStatusComponent: () => _getStatusComponent(isTracked),
160
207
  studyData: {
161
208
  label: viewportLabel,
162
- studyDate: formatDate(SeriesDate),
163
- // TODO: This is series date. Is that ok?
209
+ studyDate: formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'),
164
210
  currentSeries: SeriesNumber,
165
211
  // TODO - switch entire currentSeries to be UID based or actual position based
166
212
  seriesDescription: SeriesDescription,
@@ -169,18 +215,19 @@ function TrackedCornerstoneViewport(props) {
169
215
  patientSex: PatientSex || '',
170
216
  patientAge: PatientAge || '',
171
217
  MRN: PatientID || '',
172
- thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '',
218
+ thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '',
219
+ thicknessUnits: 'mm',
173
220
  spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` : '',
174
221
  scanner: ManufacturerModelName || ''
175
222
  }
176
223
  }
177
224
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
178
- className: "relative flex flex-row w-full h-full overflow-hidden"
225
+ className: "relative flex h-full w-full flex-row overflow-hidden"
179
226
  }, getCornerstoneViewport()));
180
227
  }
181
228
  TrackedCornerstoneViewport.propTypes = {
182
229
  displaySets: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_1___default().object).isRequired).isRequired,
183
- viewportIndex: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number).isRequired,
230
+ viewportId: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,
184
231
  dataSource: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
185
232
  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
186
233
  customProps: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object)
@@ -195,12 +242,12 @@ function _getNextMeasurementUID(direction, servicesManager, trackedMeasurementId
195
242
  } = servicesManager.services;
196
243
  const measurements = measurementService.getMeasurements();
197
244
  const {
198
- activeViewportIndex,
245
+ activeViewportId,
199
246
  viewports
200
247
  } = viewportGridService.getState();
201
248
  const {
202
249
  displaySetInstanceUIDs: activeViewportDisplaySetInstanceUIDs
203
- } = viewports[activeViewportIndex];
250
+ } = viewports.get(activeViewportId);
204
251
  const {
205
252
  trackedSeries
206
253
  } = trackedMeasurements.context;
@@ -249,19 +296,19 @@ function _getStatusComponent(isTracked) {
249
296
  className: "flex pt-1"
250
297
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
251
298
  name: "info-link",
252
- className: "w-4 text-primary-main"
299
+ className: "text-primary-main w-4"
253
300
  })), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
254
- className: "flex ml-4"
301
+ className: "ml-4 flex"
255
302
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
256
- className: "text-base text-common-light"
303
+ className: "text-common-light text-base"
257
304
  }, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Series is", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
258
305
  className: "font-bold text-white"
259
- }, " tracked"), " and can be viewed ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " in the measurement panel") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Measurements for", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
306
+ }, " tracked"), " and can be viewed ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), ' ', "in the measurement panel") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Measurements for", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
260
307
  className: "font-bold text-white"
261
308
  }, " untracked "), "series ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " will not be shown in the ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " measurements panel"))))
262
309
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
263
310
  name: trackedIcon,
264
- className: "text-primary-light"
311
+ className: "text-aqua-pale"
265
312
  })));
266
313
  }
267
314
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TrackedCornerstoneViewport);
@@ -1,21 +1,22 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[953],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[886],{
3
3
 
4
- /***/ 27953:
4
+ /***/ 48886:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60216);
11
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3827);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32735);
14
- /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21572);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48501);
16
- /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94709);
17
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28619);
18
- /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68525);
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43001);
14
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69190);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71771);
16
+ /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64035);
17
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(71783);
18
+ /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38965);
19
+ /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(62657);
19
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
20
21
 
21
22
 
@@ -24,6 +25,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
24
25
 
25
26
 
26
27
 
28
+
27
29
  const {
28
30
  formatDate
29
31
  } = _ohif_core__WEBPACK_IMPORTED_MODULE_3__.utils;
@@ -34,17 +36,18 @@ function OHIFCornerstoneSRViewport(props) {
34
36
  children,
35
37
  dataSource,
36
38
  displaySets,
37
- viewportIndex,
38
39
  viewportLabel,
39
40
  viewportOptions,
40
41
  servicesManager,
41
42
  extensionManager
42
43
  } = props;
44
+ const [appConfig] = (0,_state__WEBPACK_IMPORTED_MODULE_7__/* .useAppConfig */ .M)();
43
45
  const {
44
46
  displaySetService,
45
47
  cornerstoneViewportService,
46
48
  measurementService
47
49
  } = servicesManager.services;
50
+ const viewportId = viewportOptions.viewportId;
48
51
 
49
52
  // SR viewport will always have a single display set
50
53
  if (displaySets.length > 1) {
@@ -59,7 +62,7 @@ function OHIFCornerstoneSRViewport(props) {
59
62
  const [element, setElement] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
60
63
  const {
61
64
  viewports,
62
- activeViewportIndex
65
+ activeViewportId
63
66
  } = viewportGrid;
64
67
 
65
68
  // Optional hook into tracking extension, if present.
@@ -84,12 +87,13 @@ function OHIFCornerstoneSRViewport(props) {
84
87
  SeriesInstanceUIDs
85
88
  } = (0,_utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)({
86
89
  servicesManager,
87
- extensionManager
90
+ extensionManager,
91
+ appConfig
88
92
  }, displaySetInstanceUID);
89
93
  const displaySets = displaySetService.getDisplaySetsForSeries(SeriesInstanceUIDs[0]);
90
94
  if (displaySets.length) {
91
95
  viewportGridService.setDisplaySetsForViewports([{
92
- viewportIndex: activeViewportIndex,
96
+ viewportId: activeViewportId,
93
97
  displaySetInstanceUIDs: [displaySets[0].displaySetInstanceUID]
94
98
  }]);
95
99
  }
@@ -148,8 +152,7 @@ function OHIFCornerstoneSRViewport(props) {
148
152
  // imageIdIndex will handle it by updating the viewport, but if they
149
153
  // are the same we just need to use measurementService to jump to the
150
154
  // new measurement
151
- const viewportInfo = cornerstoneViewportService.getViewportInfoByIndex(viewportIndex);
152
- const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportInfo.getViewportId());
155
+ const csViewport = cornerstoneViewportService.getCornerstoneViewport(viewportId);
153
156
  const imageIds = csViewport.getImageIds();
154
157
  const imageIdIndex = imageIds.indexOf(measurements[newMeasurementSelected].imageId);
155
158
  if (imageIdIndex !== -1) {
@@ -157,7 +160,7 @@ function OHIFCornerstoneSRViewport(props) {
157
160
  }
158
161
  }
159
162
  });
160
- }, [dataSource, srDisplaySet, activeImageDisplaySetData, viewportIndex]);
163
+ }, [dataSource, srDisplaySet, activeImageDisplaySetData, viewportId]);
161
164
  const getCornerstoneViewport = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
162
165
  if (!activeImageDisplaySetData) {
163
166
  return null;
@@ -193,9 +196,10 @@ function OHIFCornerstoneSRViewport(props) {
193
196
  positionIds: null
194
197
  },
195
198
  onElementEnabled: onElementEnabled,
196
- initialImageIndex: initialImageIndex
199
+ initialImageIndex: initialImageIndex,
200
+ isJumpToMeasurementDisabled: true
197
201
  }));
198
- }, [activeImageDisplaySetData, viewportIndex, measurementSelected]);
202
+ }, [activeImageDisplaySetData, viewportId, measurementSelected]);
199
203
  const onMeasurementChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(direction => {
200
204
  let newMeasurementSelected = measurementSelected;
201
205
  if (direction === 'right') {
@@ -221,10 +225,10 @@ function OHIFCornerstoneSRViewport(props) {
221
225
  let {
222
226
  displaySetInstanceUIDs
223
227
  } = _ref3;
224
- const activeViewport = viewports[activeViewportIndex];
228
+ const activeViewport = viewports.get(activeViewportId);
225
229
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
226
230
  viewportGridService.setDisplaySetsForViewport({
227
- viewportIndex: activeViewportIndex,
231
+ viewportId: activeViewportId,
228
232
  displaySetInstanceUIDs: []
229
233
  });
230
234
  }
@@ -285,7 +289,7 @@ function OHIFCornerstoneSRViewport(props) {
285
289
  if (children && children.length) {
286
290
  childrenWithProps = children.map((child, index) => {
287
291
  return child && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(child, {
288
- viewportIndex,
292
+ viewportId,
289
293
  key: index
290
294
  });
291
295
  });
@@ -312,7 +316,7 @@ function OHIFCornerstoneSRViewport(props) {
312
316
  onArrowsClick: onMeasurementChange,
313
317
  getStatusComponent: () => _getStatusComponent({
314
318
  srDisplaySet,
315
- viewportIndex,
319
+ viewportId,
316
320
  isTracked: false,
317
321
  isRehydratable: srDisplaySet.isRehydratable,
318
322
  isLocked,
@@ -335,12 +339,12 @@ function OHIFCornerstoneSRViewport(props) {
335
339
  }
336
340
  }
337
341
  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
338
- className: "relative flex flex-row w-full h-full overflow-hidden"
342
+ className: "relative flex h-full w-full flex-row overflow-hidden"
339
343
  }, getCornerstoneViewport(), childrenWithProps));
340
344
  }
341
345
  OHIFCornerstoneSRViewport.propTypes = {
342
346
  displaySets: prop_types__WEBPACK_IMPORTED_MODULE_0___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_0___default().object)),
343
- viewportIndex: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number).isRequired,
347
+ viewportId: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string).isRequired,
344
348
  dataSource: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
345
349
  children: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().node),
346
350
  viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
@@ -384,7 +388,7 @@ async function _getViewportReferencedDisplaySetData(displaySet, measurementSelec
384
388
  function _getStatusComponent(_ref4) {
385
389
  let {
386
390
  srDisplaySet,
387
- viewportIndex,
391
+ viewportId,
388
392
  isRehydratable,
389
393
  isLocked,
390
394
  sendTrackedMeasurementsEvent
@@ -392,7 +396,7 @@ function _getStatusComponent(_ref4) {
392
396
  const handleMouseUp = () => {
393
397
  sendTrackedMeasurementsEvent('HYDRATE_SR', {
394
398
  displaySetInstanceUID: srDisplaySet.displaySetInstanceUID,
395
- viewportIndex
399
+ viewportId
396
400
  });
397
401
  };
398
402
  const {
@@ -421,18 +425,19 @@ function _getStatusComponent(_ref4) {
421
425
  break;
422
426
  case 3:
423
427
  StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
428
+ className: "text-aqua-pale",
424
429
  name: "status-untracked"
425
430
  });
426
431
  ToolTipMessage = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, `Click ${loadStr} to restore measurements.`);
427
432
  }
428
433
  const StatusArea = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
429
- className: "flex h-6 leading-6 cursor-default text-sm text-white"
434
+ className: "flex h-6 cursor-default text-sm leading-6 text-white"
430
435
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
431
- className: "min-w-[45px] flex items-center p-1 rounded-l-xl rounded-r bg-customgray-100"
436
+ className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
432
437
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(StatusIcon, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("span", {
433
438
  className: "ml-1"
434
439
  }, "SR")), state === 3 && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
435
- className: "ml-1 px-1.5 rounded cursor-pointer hover:text-black bg-primary-main hover:bg-primary-light"
440
+ className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
436
441
  // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
437
442
  ,
438
443
  onMouseUp: handleMouseUp
@@ -1,2 +1,2 @@
1
- (self.webpackChunk=self.webpackChunk||[]).push([[945],{945:function(e,r){var n={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},o=function(){"use strict";var e=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),r=4017,o=799,a=3406,t=2276,s=1567,i=3784,c=5793,l=2896;function f(e,r){for(var n,o,a=0,t=[],s=16;s>0&&!e[s-1];)s--;t.push({children:[],index:0});var i,c=t[0];for(n=0;n<s;n++){for(o=0;o<e[n];o++){for((c=t.pop()).children[c.index]=r[a];c.index>0;)c=t.pop();for(c.index++,t.push(c);t.length<=n;)t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i;a++}n+1<s&&(t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i)}return t[0].children}function u(e,r,n){return 64*((e.blocksPerLine+1)*r+n)}function h(r,n,o,a,t,s,i,c,l){o.precision,o.samplesPerLine,o.scanLines;var f=o.mcusPerLine,h=o.progressive,b=(o.maxH,o.maxV,n),v=0,m=0;function p(){if(m>0)return m--,v>>m&1;if(255==(v=r[n++])){var e=r[n++];if(e)throw"unexpected marker: "+(v<<8|e).toString(16)}return m=7,v>>>7}function d(e){for(var r,n=e;null!==(r=p());){if("number"==typeof(n=n[r]))return n;if("object"!=typeof n)throw"invalid huffman sequence"}return null}function k(e){for(var r=0;e>0;){var n=p();if(null===n)return;r=r<<1|n,e--}return r}function w(e){var r=k(e);return r>=1<<e-1?r:r+(-1<<e)+1}var C=0;var P,g=0;function y(e,r,n,o,a){var t=n%f;r(e,u(e,(n/f|0)*e.v+o,t*e.h+a))}function D(e,r,n){r(e,u(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}var L,x,T,A,U,I,q=a.length;I=h?0===s?0===c?function(e,r){var n=d(e.huffmanTableDC),o=0===n?0:w(n)<<l;e.blockData[r]=e.pred+=o}:function(e,r){e.blockData[r]|=p()<<l}:0===c?function(r,n){if(C>0)C--;else for(var o=s,a=i;o<=a;){var t=d(r.huffmanTableAC),c=15&t,f=t>>4;if(0!==c){var u=e[o+=f];r.blockData[n+u]=w(c)*(1<<l),o++}else{if(f<15){C=k(f)+(1<<f)-1;break}o+=16}}}:function(r,n){for(var o=s,a=i,t=0;o<=a;){var c=e[o];switch(g){case 0:var f=d(r.huffmanTableAC),u=15&f;if(t=f>>4,0===u)t<15?(C=k(t)+(1<<t),g=4):(t=16,g=1);else{if(1!==u)throw"invalid ACn encoding";P=w(u),g=t?2:3}continue;case 1:case 2:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:0==--t&&(g=2==g?3:0);break;case 3:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:(r.blockData[n+c]=P<<l,g=0);break;case 4:r.blockData[n+c]&&(r.blockData[n+c]+=p()<<l)}o++}4===g&&0==--C&&(g=0)}:function(r,n){var o=d(r.huffmanTableDC),a=0===o?0:w(o);r.blockData[n]=r.pred+=a;for(var t=1;t<64;){var s=d(r.huffmanTableAC),i=15&s,c=s>>4;if(0!==i){var l=e[t+=c];r.blockData[n+l]=w(i),t++}else{if(c<15)break;t+=16}}};var G,M,z,H,R=0;for(M=1==q?a[0].blocksPerLine*a[0].blocksPerColumn:f*o.mcusPerColumn,t||(t=M);R<M;){for(x=0;x<q;x++)a[x].pred=0;if(C=0,1==q)for(L=a[0],U=0;U<t;U++)D(L,I,R),R++;else for(U=0;U<t;U++){for(x=0;x<q;x++)for(z=(L=a[x]).h,H=L.v,T=0;T<H;T++)for(A=0;A<z;A++)y(L,I,R,T,A);R++}if(m=0,(G=r[n]<<8|r[n+1])<=65280)throw"marker was not found";if(!(G>=65488&&G<=65495))break;n+=2}return n-b}function b(e,n,f){var u,h,b,v,m,p,d,k,w,C,P=e.quantizationTable;for(C=0;C<64;C++)f[C]=e.blockData[n+C]*P[C];for(C=0;C<8;++C){var g=8*C;0!==f[1+g]||0!==f[2+g]||0!==f[3+g]||0!==f[4+g]||0!==f[5+g]||0!==f[6+g]||0!==f[7+g]?(u=c*f[0+g]+128>>8,h=c*f[4+g]+128>>8,b=f[2+g],v=f[6+g],m=l*(f[1+g]-f[7+g])+128>>8,k=l*(f[1+g]+f[7+g])+128>>8,p=f[3+g]<<4,d=f[5+g]<<4,w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+128>>8,b=b*s-v*i+128>>8,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+g]=u+k,f[7+g]=u-k,f[1+g]=h+d,f[6+g]=h-d,f[2+g]=b+p,f[5+g]=b-p,f[3+g]=v+m,f[4+g]=v-m):(w=c*f[0+g]+512>>10,f[0+g]=w,f[1+g]=w,f[2+g]=w,f[3+g]=w,f[4+g]=w,f[5+g]=w,f[6+g]=w,f[7+g]=w)}for(C=0;C<8;++C){var y=C;0!==f[8+y]||0!==f[16+y]||0!==f[24+y]||0!==f[32+y]||0!==f[40+y]||0!==f[48+y]||0!==f[56+y]?(u=c*f[0+y]+2048>>12,h=c*f[32+y]+2048>>12,b=f[16+y],v=f[48+y],m=l*(f[8+y]-f[56+y])+2048>>12,k=l*(f[8+y]+f[56+y])+2048>>12,p=f[24+y],d=f[40+y],w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+2048>>12,b=b*s-v*i+2048>>12,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+y]=u+k,f[56+y]=u-k,f[8+y]=h+d,f[48+y]=h-d,f[16+y]=b+p,f[40+y]=b-p,f[24+y]=v+m,f[32+y]=v-m):(w=c*f[C+0]+8192>>14,f[0+y]=w,f[8+y]=w,f[16+y]=w,f[24+y]=w,f[32+y]=w,f[40+y]=w,f[48+y]=w,f[56+y]=w)}for(C=0;C<64;++C){var D=n+C,L=f[C];L=L<=-2056/e.bitConversion?0:L>=2024/e.bitConversion?255/e.bitConversion:L+2056/e.bitConversion>>4,e.blockData[D]=L}}function v(e,r){for(var n=r.blocksPerLine,o=r.blocksPerColumn,a=new Int32Array(64),t=0;t<o;t++)for(var s=0;s<n;s++){b(r,u(r,t,s),a)}return r.blockData}function m(e){return e<=0?0:e>=255?255:0|e}return constructor.prototype={load:function(e){var r=function(e){this.parse(e),this.onload&&this.onload()}.bind(this);if(e.indexOf("data:")>-1){for(var n=e.indexOf("base64,")+7,o=atob(e.substring(n)),a=new Uint8Array(o.length),t=o.length-1;t>=0;t--)a[t]=o.charCodeAt(t);r(o)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){var e=new Uint8Array(s.response);r(e)}.bind(this),s.send(null)}},parse:function(r){function o(){var e=r[c]<<8|r[c+1];return c+=2,e}function a(){var e=o(),n=r.subarray(c,c+e-2);return c+=n.length,n}function t(e){for(var r=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV),o=0;o<e.components.length;o++){S=e.components[o];var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),t=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=r*S.h,i=64*(n*S.v)*(s+1);S.blockData=new Int16Array(i),S.blocksPerLine=a,S.blocksPerColumn=t}e.mcusPerLine=r,e.mcusPerColumn=n}var s,i,c=0,l=(r.length,null),u=null,b=[],m=[],p=[],d=o();if(65496!=d)throw"SOI not found";for(d=o();65497!=d;){var k,w;switch(d){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var C=a();65504===d&&74===C[0]&&70===C[1]&&73===C[2]&&70===C[3]&&0===C[4]&&(l={version:{major:C[5],minor:C[6]},densityUnits:C[7],xDensity:C[8]<<8|C[9],yDensity:C[10]<<8|C[11],thumbWidth:C[12],thumbHeight:C[13],thumbData:C.subarray(14,14+3*C[12]*C[13])}),65518===d&&65===C[0]&&100===C[1]&&111===C[2]&&98===C[3]&&101===C[4]&&0===C[5]&&(u={version:C[6],flags0:C[7]<<8|C[8],flags1:C[9]<<8|C[10],transformCode:C[11]});break;case 65499:for(var P=o()+c-2;c<P;){var g=r[c++],y=new Int32Array(64);if(g>>4==0)for(k=0;k<64;k++){y[e[k]]=r[c++]}else{if(g>>4!=1)throw"DQT: invalid table spec";for(k=0;k<64;k++){y[e[k]]=o()}}b[15&g]=y}break;case 65472:case 65473:case 65474:if(s)throw"Only single frame JPEGs supported";o(),(s={}).extended=65473===d,s.progressive=65474===d,s.precision=r[c++],s.scanLines=o(),s.samplesPerLine=o(),s.components=[],s.componentIds={};var D,L=r[c++],x=0,T=0;for(J=0;J<L;J++){D=r[c];var A=r[c+1]>>4,U=15&r[c+1];x<A&&(x=A),T<U&&(T=U);var I=r[c+2];w=s.components.push({h:A,v:U,quantizationTable:b[I],quantizationTableId:I,bitConversion:255/((1<<s.precision)-1)}),s.componentIds[D]=w-1,c+=3}s.maxH=x,s.maxV=T,t(s);break;case 65476:var q=o();for(J=2;J<q;){var G=r[c++],M=new Uint8Array(16),z=0;for(k=0;k<16;k++,c++)z+=M[k]=r[c];var H=new Uint8Array(z);for(k=0;k<z;k++,c++)H[k]=r[c];J+=17+z,(G>>4==0?p:m)[15&G]=f(M,H)}break;case 65501:o(),i=o();break;case 65498:o();var R=r[c++],V=[];for(J=0;J<R;J++){var Y=s.componentIds[r[c++]];S=s.components[Y];var B=r[c++];S.huffmanTableDC=p[B>>4],S.huffmanTableAC=m[15&B],V.push(S)}var O=r[c++],X=r[c++],j=r[c++],E=h(r,c,s,V,i,O,X,j>>4,15&j);c+=E;break;case 65535:255!==r[c]&&c--;break;default:if(255==r[c-3]&&r[c-2]>=192&&r[c-2]<=254){c-=3;break}throw"unknown JPEG marker "+d.toString(16)}d=o()}switch(this.width=s.samplesPerLine,this.height=s.scanLines,this.jfif=l,this.adobe=u,this.components=[],s.components.length){case 1:this.colorspace=n.Grayscale;break;case 3:this.adobe?this.colorspace=n.AdobeRGB:this.colorspace=n.RGB;break;case 4:this.colorspace=n.CYMK;break;default:this.colorspace=n.Unknown}for(var J=0;J<s.components.length;J++){var S;(S=s.components[J]).quantizationTable||null===S.quantizationTableId||(S.quantizationTable=b[S.quantizationTableId]),this.components.push({output:v(0,S),scaleX:S.h/s.maxH,scaleY:S.v/s.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn,bitConversion:S.bitConversion})}},getData16:function(e,r){if(1!==this.components.length)throw"Unsupported color mode";var n,o,a,t,s,i,c=this.width/e,l=this.height/r,f=0,h=this.components.length,b=new Uint16Array(e*r*h),v=new Uint16Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<h;i++){for(var m,p,d,k=(n=this.components[i]).blocksPerLine,w=n.blocksPerColumn,C=k<<3,P=0,g=0;g<w;g++)for(var y=g<<3,D=0;D<k;D++){var L=u(n,g,D),x=(f=0,D<<3);for(m=0;m<8;m++){P=(y+m)*C;for(p=0;p<8;p++)v[P+x+p]=n.output[L+f++]}}for(o=n.scaleX*c,a=n.scaleY*l,f=i,s=0;s<r;s++)for(t=0;t<e;t++)d=(0|s*a)*C+(0|t*o),b[f]=v[d],f+=h}return b},getData:function(e,r){var n,o,a,t,s,i,c,l,f,h,b,v,p,d,k,w=this.width/e,C=this.height/r,P=0,g=this.components.length,y=e*r*g,D=new Uint8Array(y),L=new Uint8Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<g;i++){for(var x,T,A,U=(n=this.components[i]).blocksPerLine,I=n.blocksPerColumn,q=U<<3,G=0,M=0;M<I;M++)for(var z=M<<3,H=0;H<U;H++){var R=u(n,M,H),V=(P=0,H<<3);for(x=0;x<8;x++){G=(z+x)*q;for(T=0;T<8;T++)L[G+V+T]=n.output[R+P++]*n.bitConversion}}for(o=n.scaleX*w,a=n.scaleY*C,P=i,s=0;s<r;s++)for(t=0;t<e;t++)A=(0|s*a)*q+(0|t*o),D[P]=L[A],P+=g}switch(g){case 1:case 2:break;case 3:if(k=!0,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],v=m(c-179.456+1.402*(f=D[i+2])),p=m(c+135.459-.344*l-.714*f),d=m(c-226.816+1.772*l),D[i]=v,D[i+1]=p,D[i+2]=d;break;case 4:if(!this.adobe)throw"Unsupported color mode (4 components)";if(k=!1,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],h=m(434.456-c-1.402*(f=D[i+2])),b=m(119.541-c+.344*l+.714*f),c=m(481.816-c-1.772*l),D[i]=h,D[i+1]=b,D[i+2]=c;break;default:throw"Unsupported color mode"}return D}},constructor}();e.exports={JpegImage:o}}}]);
1
+ (self.webpackChunk=self.webpackChunk||[]).push([[945],{945:function(e,r){var n={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},o=function(){"use strict";var e=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),r=4017,o=799,a=3406,t=2276,s=1567,i=3784,c=5793,l=2896;function f(e,r){for(var n,o,a=0,t=[],s=16;s>0&&!e[s-1];)s--;t.push({children:[],index:0});var i,c=t[0];for(n=0;n<s;n++){for(o=0;o<e[n];o++){for((c=t.pop()).children[c.index]=r[a];c.index>0;)c=t.pop();for(c.index++,t.push(c);t.length<=n;)t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i;a++}n+1<s&&(t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i)}return t[0].children}function u(e,r,n){return 64*((e.blocksPerLine+1)*r+n)}function h(r,n,o,a,t,s,i,c,l){o.precision,o.samplesPerLine,o.scanLines;var f=o.mcusPerLine,h=o.progressive,b=(o.maxH,o.maxV,n),v=0,m=0;function p(){if(m>0)return m--,v>>m&1;if(255==(v=r[n++])){var e=r[n++];if(e)throw"unexpected marker: "+(v<<8|e).toString(16)}return m=7,v>>>7}function d(e){for(var r,n=e;null!==(r=p());){if("number"==typeof(n=n[r]))return n;if("object"!=typeof n)throw"invalid huffman sequence"}return null}function k(e){for(var r=0;e>0;){var n=p();if(null===n)return;r=r<<1|n,e--}return r}function w(e){var r=k(e);return r>=1<<e-1?r:r+(-1<<e)+1}var C=0;var P,g=0;function y(e,r,n,o,a){var t=n%f;r(e,u(e,(n/f|0)*e.v+o,t*e.h+a))}function D(e,r,n){r(e,u(e,n/e.blocksPerLine|0,n%e.blocksPerLine))}var L,x,T,A,U,I,q=a.length;I=h?0===s?0===c?function(e,r){var n=d(e.huffmanTableDC),o=0===n?0:w(n)<<l;e.blockData[r]=e.pred+=o}:function(e,r){e.blockData[r]|=p()<<l}:0===c?function(r,n){if(C>0)C--;else for(var o=s,a=i;o<=a;){var t=d(r.huffmanTableAC),c=15&t,f=t>>4;if(0!==c){var u=e[o+=f];r.blockData[n+u]=w(c)*(1<<l),o++}else{if(f<15){C=k(f)+(1<<f)-1;break}o+=16}}}:function(r,n){for(var o=s,a=i,t=0;o<=a;){var c=e[o];switch(g){case 0:var f=d(r.huffmanTableAC),u=15&f;if(t=f>>4,0===u)t<15?(C=k(t)+(1<<t),g=4):(t=16,g=1);else{if(1!==u)throw"invalid ACn encoding";P=w(u),g=t?2:3}continue;case 1:case 2:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:0==--t&&(g=2==g?3:0);break;case 3:r.blockData[n+c]?r.blockData[n+c]+=p()<<l:(r.blockData[n+c]=P<<l,g=0);break;case 4:r.blockData[n+c]&&(r.blockData[n+c]+=p()<<l)}o++}4===g&&0==--C&&(g=0)}:function(r,n){var o=d(r.huffmanTableDC),a=0===o?0:w(o);r.blockData[n]=r.pred+=a;for(var t=1;t<64;){var s=d(r.huffmanTableAC),i=15&s,c=s>>4;if(0!==i){var l=e[t+=c];r.blockData[n+l]=w(i),t++}else{if(c<15)break;t+=16}}};var G,M,z,H,O=0;for(M=1==q?a[0].blocksPerLine*a[0].blocksPerColumn:f*o.mcusPerColumn,t||(t=M);O<M;){for(x=0;x<q;x++)a[x].pred=0;if(C=0,1==q)for(L=a[0],U=0;U<t;U++)D(L,I,O),O++;else for(U=0;U<t;U++){for(x=0;x<q;x++)for(z=(L=a[x]).h,H=L.v,T=0;T<H;T++)for(A=0;A<z;A++)y(L,I,O,T,A);O++}if(m=0,(G=r[n]<<8|r[n+1])<=65280)throw"marker was not found";if(!(G>=65488&&G<=65495))break;n+=2}return n-b}function b(e,n,f){var u,h,b,v,m,p,d,k,w,C,P=e.quantizationTable;for(C=0;C<64;C++)f[C]=e.blockData[n+C]*P[C];for(C=0;C<8;++C){var g=8*C;0!==f[1+g]||0!==f[2+g]||0!==f[3+g]||0!==f[4+g]||0!==f[5+g]||0!==f[6+g]||0!==f[7+g]?(u=c*f[0+g]+128>>8,h=c*f[4+g]+128>>8,b=f[2+g],v=f[6+g],m=l*(f[1+g]-f[7+g])+128>>8,k=l*(f[1+g]+f[7+g])+128>>8,p=f[3+g]<<4,d=f[5+g]<<4,w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+128>>8,b=b*s-v*i+128>>8,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+g]=u+k,f[7+g]=u-k,f[1+g]=h+d,f[6+g]=h-d,f[2+g]=b+p,f[5+g]=b-p,f[3+g]=v+m,f[4+g]=v-m):(w=c*f[0+g]+512>>10,f[0+g]=w,f[1+g]=w,f[2+g]=w,f[3+g]=w,f[4+g]=w,f[5+g]=w,f[6+g]=w,f[7+g]=w)}for(C=0;C<8;++C){var y=C;0!==f[8+y]||0!==f[16+y]||0!==f[24+y]||0!==f[32+y]||0!==f[40+y]||0!==f[48+y]||0!==f[56+y]?(u=c*f[0+y]+2048>>12,h=c*f[32+y]+2048>>12,b=f[16+y],v=f[48+y],m=l*(f[8+y]-f[56+y])+2048>>12,k=l*(f[8+y]+f[56+y])+2048>>12,p=f[24+y],d=f[40+y],w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+2048>>12,b=b*s-v*i+2048>>12,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*r+2048>>12,p=p*r-d*o+2048>>12,d=w,f[0+y]=u+k,f[56+y]=u-k,f[8+y]=h+d,f[48+y]=h-d,f[16+y]=b+p,f[40+y]=b-p,f[24+y]=v+m,f[32+y]=v-m):(w=c*f[C+0]+8192>>14,f[0+y]=w,f[8+y]=w,f[16+y]=w,f[24+y]=w,f[32+y]=w,f[40+y]=w,f[48+y]=w,f[56+y]=w)}for(C=0;C<64;++C){var D=n+C,L=f[C];L=L<=-2056/e.bitConversion?0:L>=2024/e.bitConversion?255/e.bitConversion:L+2056/e.bitConversion>>4,e.blockData[D]=L}}function v(e,r){for(var n=r.blocksPerLine,o=r.blocksPerColumn,a=new Int32Array(64),t=0;t<o;t++)for(var s=0;s<n;s++){b(r,u(r,t,s),a)}return r.blockData}function m(e){return e<=0?0:e>=255?255:0|e}class p{}return Object.setPrototypeOf(p.prototype,{load:function(e){var r=function(e){this.parse(e),this.onload&&this.onload()}.bind(this);if(e.indexOf("data:")>-1){for(var n=e.indexOf("base64,")+7,o=atob(e.substring(n)),a=new Uint8Array(o.length),t=o.length-1;t>=0;t--)a[t]=o.charCodeAt(t);r(o)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){var e=new Uint8Array(s.response);r(e)}.bind(this),s.send(null)}},parse:function(r){function o(){var e=r[c]<<8|r[c+1];return c+=2,e}function a(){var e=o(),n=r.subarray(c,c+e-2);return c+=n.length,n}function t(e){for(var r=Math.ceil(e.samplesPerLine/8/e.maxH),n=Math.ceil(e.scanLines/8/e.maxV),o=0;o<e.components.length;o++){S=e.components[o];var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*S.h/e.maxH),t=Math.ceil(Math.ceil(e.scanLines/8)*S.v/e.maxV),s=r*S.h,i=64*(n*S.v)*(s+1);S.blockData=new Int16Array(i),S.blocksPerLine=a,S.blocksPerColumn=t}e.mcusPerLine=r,e.mcusPerColumn=n}var s,i,c=0,l=(r.length,null),u=null,b=[],m=[],p=[],d=o();if(65496!=d)throw"SOI not found";for(d=o();65497!=d;){var k,w;switch(d){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var C=a();65504===d&&74===C[0]&&70===C[1]&&73===C[2]&&70===C[3]&&0===C[4]&&(l={version:{major:C[5],minor:C[6]},densityUnits:C[7],xDensity:C[8]<<8|C[9],yDensity:C[10]<<8|C[11],thumbWidth:C[12],thumbHeight:C[13],thumbData:C.subarray(14,14+3*C[12]*C[13])}),65518===d&&65===C[0]&&100===C[1]&&111===C[2]&&98===C[3]&&101===C[4]&&0===C[5]&&(u={version:C[6],flags0:C[7]<<8|C[8],flags1:C[9]<<8|C[10],transformCode:C[11]});break;case 65499:for(var P=o()+c-2;c<P;){var g=r[c++],y=new Int32Array(64);if(g>>4==0)for(k=0;k<64;k++){y[e[k]]=r[c++]}else{if(g>>4!=1)throw"DQT: invalid table spec";for(k=0;k<64;k++){y[e[k]]=o()}}b[15&g]=y}break;case 65472:case 65473:case 65474:if(s)throw"Only single frame JPEGs supported";o(),(s={}).extended=65473===d,s.progressive=65474===d,s.precision=r[c++],s.scanLines=o(),s.samplesPerLine=o(),s.components=[],s.componentIds={};var D,L=r[c++],x=0,T=0;for(J=0;J<L;J++){D=r[c];var A=r[c+1]>>4,U=15&r[c+1];x<A&&(x=A),T<U&&(T=U);var I=r[c+2];w=s.components.push({h:A,v:U,quantizationTable:b[I],quantizationTableId:I,bitConversion:255/((1<<s.precision)-1)}),s.componentIds[D]=w-1,c+=3}s.maxH=x,s.maxV=T,t(s);break;case 65476:var q=o();for(J=2;J<q;){var G=r[c++],M=new Uint8Array(16),z=0;for(k=0;k<16;k++,c++)z+=M[k]=r[c];var H=new Uint8Array(z);for(k=0;k<z;k++,c++)H[k]=r[c];J+=17+z,(G>>4==0?p:m)[15&G]=f(M,H)}break;case 65501:o(),i=o();break;case 65498:o();var O=r[c++],R=[];for(J=0;J<O;J++){var V=s.componentIds[r[c++]];S=s.components[V];var Y=r[c++];S.huffmanTableDC=p[Y>>4],S.huffmanTableAC=m[15&Y],R.push(S)}var j=r[c++],B=r[c++],X=r[c++],E=h(r,c,s,R,i,j,B,X>>4,15&X);c+=E;break;case 65535:255!==r[c]&&c--;break;default:if(255==r[c-3]&&r[c-2]>=192&&r[c-2]<=254){c-=3;break}throw"unknown JPEG marker "+d.toString(16)}d=o()}switch(this.width=s.samplesPerLine,this.height=s.scanLines,this.jfif=l,this.adobe=u,this.components=[],s.components.length){case 1:this.colorspace=n.Grayscale;break;case 3:this.adobe?this.colorspace=n.AdobeRGB:this.colorspace=n.RGB;break;case 4:this.colorspace=n.CYMK;break;default:this.colorspace=n.Unknown}for(var J=0;J<s.components.length;J++){var S;(S=s.components[J]).quantizationTable||null===S.quantizationTableId||(S.quantizationTable=b[S.quantizationTableId]),this.components.push({output:v(0,S),scaleX:S.h/s.maxH,scaleY:S.v/s.maxV,blocksPerLine:S.blocksPerLine,blocksPerColumn:S.blocksPerColumn,bitConversion:S.bitConversion})}},getData16:function(e,r){if(1!==this.components.length)throw"Unsupported color mode";var n,o,a,t,s,i,c=this.width/e,l=this.height/r,f=0,h=this.components.length,b=new Uint16Array(e*r*h),v=new Uint16Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<h;i++){for(var m,p,d,k=(n=this.components[i]).blocksPerLine,w=n.blocksPerColumn,C=k<<3,P=0,g=0;g<w;g++)for(var y=g<<3,D=0;D<k;D++){var L=u(n,g,D),x=(f=0,D<<3);for(m=0;m<8;m++){P=(y+m)*C;for(p=0;p<8;p++)v[P+x+p]=n.output[L+f++]}}for(o=n.scaleX*c,a=n.scaleY*l,f=i,s=0;s<r;s++)for(t=0;t<e;t++)d=(0|s*a)*C+(0|t*o),b[f]=v[d],f+=h}return b},getData:function(e,r){var n,o,a,t,s,i,c,l,f,h,b,v,p,d,k,w=this.width/e,C=this.height/r,P=0,g=this.components.length,y=e*r*g,D=new Uint8Array(y),L=new Uint8Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<g;i++){for(var x,T,A,U=(n=this.components[i]).blocksPerLine,I=n.blocksPerColumn,q=U<<3,G=0,M=0;M<I;M++)for(var z=M<<3,H=0;H<U;H++){var O=u(n,M,H),R=(P=0,H<<3);for(x=0;x<8;x++){G=(z+x)*q;for(T=0;T<8;T++)L[G+R+T]=n.output[O+P++]*n.bitConversion}}for(o=n.scaleX*w,a=n.scaleY*C,P=i,s=0;s<r;s++)for(t=0;t<e;t++)A=(0|s*a)*q+(0|t*o),D[P]=L[A],P+=g}switch(g){case 1:case 2:break;case 3:if(k=!0,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],v=m(c-179.456+1.402*(f=D[i+2])),p=m(c+135.459-.344*l-.714*f),d=m(c-226.816+1.772*l),D[i]=v,D[i+1]=p,D[i+2]=d;break;case 4:if(!this.adobe)throw"Unsupported color mode (4 components)";if(k=!1,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],h=m(434.456-c-1.402*(f=D[i+2])),b=m(119.541-c+.344*l+.714*f),c=m(481.816-c-1.772*l),D[i]=h,D[i+1]=b,D[i+2]=c;break;default:throw"Unsupported color mode"}return D}}),p}();e.exports={JpegImage:o}}}]);
2
2
  //# sourceMappingURL=945.min.worker.js.map